diff --git a/api/BuildApi.ts b/api/BuildApi.ts index 37fc35a..f2aa8ac 100644 --- a/api/BuildApi.ts +++ b/api/BuildApi.ts @@ -3910,7 +3910,7 @@ export class BuildApi extends basem.ClientApiBase implements IBuildApi { /** * Adds tags to a build. * - * @param {string[]} tags - The tags to add. + * @param {string[]} tags - The tags to add. Request body is composed directly from listed tags. * @param {string} project - Project ID or project name * @param {number} buildId - The ID of the build. */ diff --git a/api/FileContainerApiBase.ts b/api/FileContainerApiBase.ts index 03e03ce..76a7dcf 100644 --- a/api/FileContainerApiBase.ts +++ b/api/FileContainerApiBase.ts @@ -30,7 +30,7 @@ export class FileContainerApiBase extends basem.ClientApiBase implements IFileCo } /** - * Creates the specified items in in the referenced container. + * Creates the specified items in the referenced container. * * @param {VSSInterfaces.VssJsonCollectionWrapperV} items * @param {number} containerId diff --git a/api/GalleryApi.ts b/api/GalleryApi.ts index c0b7cfd..78f66f2 100644 --- a/api/GalleryApi.ts +++ b/api/GalleryApi.ts @@ -75,6 +75,7 @@ export interface IGalleryApi extends compatBase.GalleryCompatHttpClientBase { getPublisher(publisherName: string, flags?: number): Promise; updatePublisher(publisher: GalleryInterfaces.Publisher, publisherName: string): Promise; updatePublisherMembers(roleAssignments: GalleryInterfaces.PublisherUserRoleAssignmentRef[], publisherName: string, limitToCallerIdentityDomain?: boolean): Promise; + getPublisherWithoutToken(publisherName: string): Promise; getQuestions(publisherName: string, extensionName: string, count?: number, page?: number, afterDate?: Date): Promise; reportQuestion(concern: GalleryInterfaces.Concern, pubName: string, extName: string, questionId: number): Promise; createQuestion(question: GalleryInterfaces.Question, publisherName: string, extensionName: string): Promise; @@ -2825,6 +2826,45 @@ export class GalleryApi extends compatBase.GalleryCompatHttpClientBase implement }); } + /** + * @param {string} publisherName + */ + public async getPublisherWithoutToken( + publisherName: string + ): Promise { + + return new Promise(async (resolve, reject) => { + let routeValues: any = { + publisherName: publisherName + }; + + try { + let verData: vsom.ClientVersioningData = await this.vsoClient.getVersioningData( + "7.1-preview.1", + "gallery", + "215a2ed8-458a-4850-ad5a-45f1dabc3461", + routeValues); + + let url: string = verData.requestUrl!; + let options: restm.IRequestOptions = this.createRequestOptions('application/json', + verData.apiVersion); + + let res: restm.IRestResponse; + res = await this.rest.get(url, options); + + let ret = this.formatResponse(res.result, + GalleryInterfaces.TypeInfo.Publisher, + false); + + resolve(ret); + + } + catch (err) { + reject(err); + } + }); + } + /** * Returns a list of questions with their responses associated with an extension. * diff --git a/api/GitApi.ts b/api/GitApi.ts index e1dbb05..e3e2289 100644 --- a/api/GitApi.ts +++ b/api/GitApi.ts @@ -55,7 +55,7 @@ export interface IGitApi extends basem.ClientApiBase { updateImportRequest(importRequestToUpdate: GitInterfaces.GitImportRequest, project: string, repositoryId: string, importRequestId: number): Promise; getItem(repositoryId: string, path: string, project?: string, scopePath?: string, recursionLevel?: GitInterfaces.VersionControlRecursionType, includeContentMetadata?: boolean, latestProcessedChange?: boolean, download?: boolean, versionDescriptor?: GitInterfaces.GitVersionDescriptor, includeContent?: boolean, resolveLfs?: boolean, sanitize?: boolean): Promise; getItemContent(repositoryId: string, path: string, project?: string, scopePath?: string, recursionLevel?: GitInterfaces.VersionControlRecursionType, includeContentMetadata?: boolean, latestProcessedChange?: boolean, download?: boolean, versionDescriptor?: GitInterfaces.GitVersionDescriptor, includeContent?: boolean, resolveLfs?: boolean, sanitize?: boolean): Promise; - getItems(repositoryId: string, project?: string, scopePath?: string, recursionLevel?: GitInterfaces.VersionControlRecursionType, includeContentMetadata?: boolean, latestProcessedChange?: boolean, download?: boolean, includeLinks?: boolean, versionDescriptor?: GitInterfaces.GitVersionDescriptor): Promise; + getItems(repositoryId: string, project?: string, scopePath?: string, recursionLevel?: GitInterfaces.VersionControlRecursionType, includeContentMetadata?: boolean, latestProcessedChange?: boolean, download?: boolean, includeLinks?: boolean, versionDescriptor?: GitInterfaces.GitVersionDescriptor, zipForUnix?: boolean): Promise; getItemText(repositoryId: string, path: string, project?: string, scopePath?: string, recursionLevel?: GitInterfaces.VersionControlRecursionType, includeContentMetadata?: boolean, latestProcessedChange?: boolean, download?: boolean, versionDescriptor?: GitInterfaces.GitVersionDescriptor, includeContent?: boolean, resolveLfs?: boolean, sanitize?: boolean): Promise; getItemZip(repositoryId: string, path: string, project?: string, scopePath?: string, recursionLevel?: GitInterfaces.VersionControlRecursionType, includeContentMetadata?: boolean, latestProcessedChange?: boolean, download?: boolean, versionDescriptor?: GitInterfaces.GitVersionDescriptor, includeContent?: boolean, resolveLfs?: boolean, sanitize?: boolean): Promise; getItemsBatch(requestData: GitInterfaces.GitItemRequestData, repositoryId: string, project?: string): Promise; @@ -2058,6 +2058,7 @@ export class GitApi extends basem.ClientApiBase implements IGitApi { * @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. + * @param {boolean} zipForUnix - Set to true to keep the file permissions for unix (and POSIX) systems like executables and symlinks */ public async getItems( repositoryId: string, @@ -2068,7 +2069,8 @@ export class GitApi extends basem.ClientApiBase implements IGitApi { latestProcessedChange?: boolean, download?: boolean, includeLinks?: boolean, - versionDescriptor?: GitInterfaces.GitVersionDescriptor + versionDescriptor?: GitInterfaces.GitVersionDescriptor, + zipForUnix?: boolean ): Promise { return new Promise(async (resolve, reject) => { @@ -2085,6 +2087,7 @@ export class GitApi extends basem.ClientApiBase implements IGitApi { download: download, includeLinks: includeLinks, versionDescriptor: versionDescriptor, + zipForUnix: zipForUnix, }; try { @@ -3286,7 +3289,7 @@ export class GitApi extends basem.ClientApiBase implements IGitApi { try { let verData: vsom.ClientVersioningData = await this.vsoClient.getVersioningData( - "7.1-preview.1", + "7.1-preview.2", "git", "d43911ee-6958-46b0-a42b-8445b8a0d004", routeValues); @@ -3339,7 +3342,7 @@ export class GitApi extends basem.ClientApiBase implements IGitApi { try { let verData: vsom.ClientVersioningData = await this.vsoClient.getVersioningData( - "7.1-preview.1", + "7.1-preview.2", "git", "d43911ee-6958-46b0-a42b-8445b8a0d004", routeValues, diff --git a/api/PolicyApi.ts b/api/PolicyApi.ts index 13d0df9..b4b58cd 100644 --- a/api/PolicyApi.ts +++ b/api/PolicyApi.ts @@ -17,7 +17,7 @@ import VsoBaseInterfaces = require('./interfaces/common/VsoBaseInterfaces'); import PolicyInterfaces = require("./interfaces/PolicyInterfaces"); export interface IPolicyApi extends basem.ClientApiBase { - createPolicyConfiguration(configuration: PolicyInterfaces.PolicyConfiguration, project: string, configurationId?: number): Promise; + createPolicyConfiguration(configuration: PolicyInterfaces.PolicyConfiguration, project: string): Promise; deletePolicyConfiguration(project: string, configurationId: number): Promise; getPolicyConfiguration(project: string, configurationId: number): Promise; getPolicyConfigurations(project: string, scope?: string, policyType?: string): Promise; @@ -43,18 +43,15 @@ export class PolicyApi extends basem.ClientApiBase implements IPolicyApi { * * @param {PolicyInterfaces.PolicyConfiguration} configuration - The policy configuration to create. * @param {string} project - Project ID or project name - * @param {number} configurationId */ public async createPolicyConfiguration( configuration: PolicyInterfaces.PolicyConfiguration, - project: string, - configurationId?: number + project: string ): Promise { return new Promise(async (resolve, reject) => { let routeValues: any = { - project: project, - configurationId: configurationId + project: project }; try { diff --git a/api/TaskAgentApiBase.ts b/api/TaskAgentApiBase.ts index 2178b25..cf4d1c4 100644 --- a/api/TaskAgentApiBase.ts +++ b/api/TaskAgentApiBase.ts @@ -169,7 +169,6 @@ export interface ITaskAgentApiBase extends basem.ClientApiBase { updateVirtualMachineGroup(resource: TaskAgentInterfaces.VirtualMachineGroup, project: string, environmentId: number): Promise; getVirtualMachines(project: string, environmentId: number, resourceId: number, continuationToken?: string, name?: string, partialNameMatch?: boolean, tags?: string[], top?: number): Promise; updateVirtualMachines(machines: TaskAgentInterfaces.VirtualMachine[], project: string, environmentId: number, resourceId: number): Promise; - acquireAccessToken(authenticationRequest: TaskAgentInterfaces.AadOauthTokenRequest): Promise; createAadOAuthRequest(tenantId: string, redirectUri: string, promptOption?: TaskAgentInterfaces.AadLoginPromptOption, completeCallbackPayload?: string, completeCallbackByAuthCode?: boolean): Promise; getVstsAadTenantId(): Promise; getYamlSchema(validateTaskNames?: boolean): Promise; @@ -7382,44 +7381,6 @@ export class TaskAgentApiBase extends basem.ClientApiBase implements ITaskAgentA }); } - /** - * @param {TaskAgentInterfaces.AadOauthTokenRequest} authenticationRequest - */ - public async acquireAccessToken( - authenticationRequest: TaskAgentInterfaces.AadOauthTokenRequest - ): Promise { - - return new Promise(async (resolve, reject) => { - let routeValues: any = { - }; - - try { - let verData: vsom.ClientVersioningData = await this.vsoClient.getVersioningData( - "7.1-preview.1", - "distributedtask", - "9c63205e-3a0f-42a0-ad88-095200f13607", - routeValues); - - let url: string = verData.requestUrl!; - let options: restm.IRequestOptions = this.createRequestOptions('application/json', - verData.apiVersion); - - let res: restm.IRestResponse; - res = await 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 diff --git a/api/TaskApi.ts b/api/TaskApi.ts index 55d8eb8..208e2cb 100644 --- a/api/TaskApi.ts +++ b/api/TaskApi.ts @@ -33,6 +33,7 @@ export interface ITaskApi extends basem.ClientApiBase { getLog(scopeIdentifier: string, hubName: string, planId: string, logId: number, startLine?: number, endLine?: number): Promise; getLogs(scopeIdentifier: string, hubName: string, planId: string): Promise; getPlanGroupsQueueMetrics(scopeIdentifier: string, hubName: string): Promise; + createOidcToken(claims: { [key: string] : string; }, scopeIdentifier: string, hubName: string, planId: string, jobId: string, serviceConnectionId: string): Promise; getQueuedPlanGroups(scopeIdentifier: string, hubName: string, statusFilter?: TaskAgentInterfaces.PlanGroupStatus, count?: number): Promise; getQueuedPlanGroup(scopeIdentifier: string, hubName: string, planGroup: string): Promise; getPlan(scopeIdentifier: string, hubName: string, planId: string): Promise; @@ -51,7 +52,7 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { /** * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" * @param {string} planId * @param {string} type */ @@ -100,7 +101,7 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { /** * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" * @param {string} planId * @param {string} timelineId * @param {string} recordId @@ -163,7 +164,7 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { /** * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" * @param {string} planId * @param {string} timelineId * @param {string} recordId @@ -236,7 +237,7 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { /** * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" * @param {string} planId * @param {string} timelineId * @param {string} recordId @@ -293,7 +294,7 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { /** * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" * @param {string} planId * @param {string} timelineId * @param {string} recordId @@ -342,7 +343,7 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { /** * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" * @param {string} planId * @param {string} timelineId * @param {string} recordId @@ -395,12 +396,14 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { } /** - * @param {TaskAgentInterfaces.TimelineRecordFeedLinesWrapper} lines + * Append content to timeline record feed. + * + * @param {TaskAgentInterfaces.TimelineRecordFeedLinesWrapper} lines - Content to be appended to the timeline record feed. * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" + * @param {string} planId - ID of the plan. + * @param {string} timelineId - ID of the task's timeline. + * @param {string} recordId - ID of the timeline record. */ public async appendTimelineRecordFeed( lines: TaskAgentInterfaces.TimelineRecordFeedLinesWrapper, @@ -449,7 +452,7 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { /** * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" * @param {string} planId * @param {string} timelineId * @param {string} recordId @@ -519,7 +522,7 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { /** * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" * @param {string} orchestrationId */ public async getJobInstance( @@ -563,11 +566,13 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { } /** + * Append a log to a task's log. The log should be sent in the body of the request as a TaskLog object stream. + * * @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 + * @param {string} hubName - The name of the server hub. Common examples: "build", "rm", "checks" + * @param {string} planId - The ID of the plan. + * @param {number} logId - The ID of the log. */ public async appendLogContent( customHeaders: any, @@ -619,7 +624,7 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { /** * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" * @param {string} planId * @param {number} logId * @param {string} serializedBlobId @@ -682,10 +687,12 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { } /** - * @param {TaskAgentInterfaces.TaskLog} log + * Create a log and connect it to a pipeline run's execution plan. + * + * @param {TaskAgentInterfaces.TaskLog} log - An object that contains information about log's path. * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" + * @param {string} planId - The ID of the plan. */ public async createLog( log: TaskAgentInterfaces.TaskLog, @@ -730,7 +737,7 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { /** * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" * @param {string} planId * @param {number} logId * @param {number} startLine @@ -788,7 +795,7 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { /** * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" * @param {string} planId */ public async getLogs( @@ -833,7 +840,7 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { /** * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" */ public async getPlanGroupsQueueMetrics( scopeIdentifier: string, @@ -874,8 +881,68 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { } /** + * @param {{ [key: string] : string; }} claims * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" + * @param {string} planId + * @param {string} jobId + * @param {string} serviceConnectionId + */ + public async createOidcToken( + claims: { [key: string] : string; }, + scopeIdentifier: string, + hubName: string, + planId: string, + jobId: string, + serviceConnectionId: string + ): Promise { + if (serviceConnectionId == null) { + throw new TypeError('serviceConnectionId can not be null or undefined'); + } + + return new Promise(async (resolve, reject) => { + let routeValues: any = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId, + jobId: jobId + }; + + let queryValues: any = { + serviceConnectionId: serviceConnectionId, + }; + + try { + let verData: vsom.ClientVersioningData = await this.vsoClient.getVersioningData( + "7.1-preview.1", + "distributedtask", + "69a319f4-28c1-4bfd-93e6-ea0ff5c6f1a2", + routeValues, + queryValues); + + let url: string = verData.requestUrl!; + let options: restm.IRequestOptions = this.createRequestOptions('application/json', + verData.apiVersion); + + let res: restm.IRestResponse; + res = await this.rest.create(url, claims, 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. Common examples: "build", "rm", "checks" * @param {TaskAgentInterfaces.PlanGroupStatus} statusFilter * @param {number} count */ @@ -927,7 +994,7 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { /** * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" * @param {string} planGroup */ public async getQueuedPlanGroup( @@ -972,7 +1039,7 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { /** * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" * @param {string} planId */ public async getPlan( @@ -1017,7 +1084,7 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { /** * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" * @param {string} planId * @param {string} timelineId * @param {number} changeId @@ -1071,11 +1138,13 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { } /** - * @param {VSSInterfaces.VssJsonCollectionWrapperV} records + * Update timeline records if they already exist, otherwise create new ones for the same timeline. + * + * @param {VSSInterfaces.VssJsonCollectionWrapperV} records - The array of timeline records to be updated. * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" + * @param {string} planId - The ID of the plan. + * @param {string} timelineId - The ID of the timeline. */ public async updateRecords( records: VSSInterfaces.VssJsonCollectionWrapperV, @@ -1123,7 +1192,7 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { /** * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" * @param {string} planId */ public async createTimeline( @@ -1169,7 +1238,7 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { /** * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" * @param {string} planId * @param {string} timelineId */ @@ -1217,7 +1286,7 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { /** * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" * @param {string} planId * @param {string} timelineId * @param {number} changeId @@ -1275,7 +1344,7 @@ export class TaskApi extends basem.ClientApiBase implements ITaskApi { /** * @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} hubName - The name of the server hub. Common examples: "build", "rm", "checks" * @param {string} planId */ public async getTimelines( diff --git a/api/WorkItemTrackingProcessApi.ts b/api/WorkItemTrackingProcessApi.ts index 0f73542..4dbd0ca 100644 --- a/api/WorkItemTrackingProcessApi.ts +++ b/api/WorkItemTrackingProcessApi.ts @@ -2363,7 +2363,7 @@ export class WorkItemTrackingProcessApi extends basem.ClientApiBase implements I } /** - * Removes a work itewm type in the process. + * Removes a 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. diff --git a/api/WorkItemTrackingProcessDefinitionsApi.ts b/api/WorkItemTrackingProcessDefinitionsApi.ts index 28fb150..3fd8346 100644 --- a/api/WorkItemTrackingProcessDefinitionsApi.ts +++ b/api/WorkItemTrackingProcessDefinitionsApi.ts @@ -1824,7 +1824,7 @@ export class WorkItemTrackingProcessDefinitionsApi extends basem.ClientApiBase i } /** - * Removes a work itewm type in the process. + * Removes a 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 diff --git a/api/interfaces/BuildInterfaces.ts b/api/interfaces/BuildInterfaces.ts index c12ba26..279868e 100644 --- a/api/interfaces/BuildInterfaces.ts +++ b/api/interfaces/BuildInterfaces.ts @@ -158,6 +158,10 @@ export interface Build { * The agent specification for the build. */ agentSpecification?: AgentSpecification; + /** + * Append Commit Message To BuildNumber in UI. + */ + appendCommitMessageToRunName?: boolean; /** * The build number/name of the build. */ @@ -2117,6 +2121,10 @@ export interface PhaseTarget { * Contains pipeline general settings. */ export interface PipelineGeneralSettings { + /** + * Disable classic pipelines creation. + */ + disableClassicPipelineCreation?: boolean; /** * If enabled, scope of access for all non-release pipelines reduces to the current project. */ diff --git a/api/interfaces/ExtensionManagementInterfaces.ts b/api/interfaces/ExtensionManagementInterfaces.ts index 69eab53..f2e8eee 100644 --- a/api/interfaces/ExtensionManagementInterfaces.ts +++ b/api/interfaces/ExtensionManagementInterfaces.ts @@ -31,7 +31,7 @@ export enum AcquisitionAssignmentType { export interface AcquisitionOperation { /** - * State of the the AcquisitionOperation for the current user + * State of the AcquisitionOperation for the current user */ operationState?: AcquisitionOperationState; /** diff --git a/api/interfaces/GalleryInterfaces.ts b/api/interfaces/GalleryInterfaces.ts index 9a8d308..6c17908 100644 --- a/api/interfaces/GalleryInterfaces.ts +++ b/api/interfaces/GalleryInterfaces.ts @@ -30,7 +30,7 @@ export enum AcquisitionAssignmentType { export interface AcquisitionOperation { /** - * State of the the AcquisitionOperation for the current user + * State of the AcquisitionOperation for the current user */ operationState?: AcquisitionOperationState; /** @@ -765,6 +765,10 @@ export enum ExtensionQueryFilterType { * Filter to get VS Code extensions by target platform. */ TargetPlatform = 23, + /** + * Retrieve an extension based on the extensionName. + */ + ExtensionName = 24, } /** @@ -2101,7 +2105,8 @@ export var TypeInfo = { "includeWithPublisherFlags": 20, "organizationSharedWith": 21, "productArchitecture": 22, - "targetPlatform": 23 + "targetPlatform": 23, + "extensionName": 24 } }, ExtensionQueryFlags: { diff --git a/api/interfaces/GitInterfaces.ts b/api/interfaces/GitInterfaces.ts index fa18f5b..32f90a5 100644 --- a/api/interfaces/GitInterfaces.ts +++ b/api/interfaces/GitInterfaces.ts @@ -837,6 +837,10 @@ export interface GitCommitRef { * Committer of the commit. */ committer?: GitUserDate; + /** + * Indicates that commit contains too many changes to be displayed + */ + commitTooManyChanges?: boolean; /** * An enumeration of the parent commit IDs for this commit. */ @@ -2329,6 +2333,10 @@ export interface GitRepository { * True if the repository was created as a fork. */ isFork?: boolean; + /** + * True if the repository is in maintenance. False otherwise. + */ + isInMaintenance?: boolean; name?: string; parentRepository?: GitRepositoryRef; project?: TfsCoreInterfaces.TeamProjectReference; @@ -2829,7 +2837,7 @@ export interface IdentityRefWithVote extends VSSInterfaces.IdentityRef { */ vote?: number; /** - * Groups or teams that that this reviewer contributed to.
Groups and teams can be reviewers on pull requests but can not vote directly. When a member of the group or team votes, that vote is rolled up into the group or team vote. VotedFor is a list of such votes. + * Groups or teams that this reviewer contributed to.
Groups and teams can be reviewers on pull requests but can not vote directly. When a member of the group or team votes, that vote is rolled up into the group or team vote. VotedFor is a list of such votes. */ votedFor?: IdentityRefWithVote[]; } @@ -2898,6 +2906,7 @@ export enum IterationReason { Rebase = 4, Unknown = 8, Retarget = 16, + ResolveConflicts = 32, } /** @@ -4297,7 +4306,8 @@ export var TypeInfo = { "create": 2, "rebase": 4, "unknown": 8, - "retarget": 16 + "retarget": 16, + "resolveConflicts": 32 } }, LineDiffBlock: { diff --git a/api/interfaces/GraphInterfaces.ts b/api/interfaces/GraphInterfaces.ts index 95421e9..8f6ccf3 100644 --- a/api/interfaces/GraphInterfaces.ts +++ b/api/interfaces/GraphInterfaces.ts @@ -13,6 +13,22 @@ import IdentitiesInterfaces = require("../interfaces/IdentitiesInterfaces"); +export interface AadGraphMember extends GraphMember { + /** + * The short, generally unique name for the user in the backing directory. For AAD users, this corresponds to the mail nickname, which is often but not necessarily similar to the part of the user's mail address before the @ sign. For GitHub users, this corresponds to the GitHub user handle. + */ + directoryAlias?: string; + /** + * When true, the group has been deleted in the identity provider + */ + isDeletedInOrigin?: boolean; + metadataUpdateDate?: Date; + /** + * The meta type of the user in the origin, such as "member", "guest", etc. See UserMetaType for the set of possible values. + */ + metaType?: string; +} + export interface GraphCachePolicies { /** * Size of the cache @@ -277,6 +293,50 @@ export interface GraphScopeCreationContext { storageKey?: string; } +export interface GraphServicePrincipal extends AadGraphMember { + applicationId?: string; +} + +/** + * Do not attempt to use this type to create a new service principal. Use one of the subclasses instead. This type does not contain sufficient fields to create a new service principal. + */ +export interface GraphServicePrincipalCreationContext { + /** + * Optional: If provided, we will use this identifier for the storage key of the created service principal + */ + storageKey?: string; +} + +/** + * Use this type to create a new service principal using the OriginID as a reference to an existing service principal from an external AAD backed provider. This is the subset of GraphServicePrincipal fields required for creation of a GraphServicePrincipal for the AAD use case when looking up the service principal by its unique ID in the backing provider. + */ +export interface GraphServicePrincipalOriginIdCreationContext extends GraphServicePrincipalCreationContext { + /** + * This should be the object id of the service principal from the AAD provider. Example: d47d025a-ce2f-4a79-8618-e8862ade30dd Team Services will communicate with the source provider to fill all other fields on creation. + */ + originId: string; +} + +/** + * Use this type to update an existing service principal using the OriginID as a reference to an existing service principal from an external AAD backed provider. This is the subset of GraphServicePrincipal fields required for creation of a GraphServicePrincipal for AAD use case when looking up the service principal by its unique ID in the backing provider. + */ +export interface GraphServicePrincipalOriginIdUpdateContext extends GraphServicePrincipalUpdateContext { + /** + * This should be the object id or sid of the service principal from the source AAD provider. Example: d47d025a-ce2f-4a79-8618-e8862ade30dd Azure Devops will communicate with the source provider to fill all other fields on creation. + */ + originId: string; +} + +/** + * Do not attempt to use this type to update service principal. Use one of the subclasses instead. This type does not contain sufficient fields to create a new service principal. + */ +export interface GraphServicePrincipalUpdateContext { + /** + * Storage key should not be specified in case of updating service principal + */ + storageKey?: string; +} + /** * Storage key of a Graph entity */ @@ -367,23 +427,7 @@ export enum GraphTraversalDirection { Up = 2, } -/** - * Graph user entity - */ -export interface GraphUser extends GraphMember { - /** - * The short, generally unique name for the user in the backing directory. For AAD users, this corresponds to the mail nickname, which is often but not necessarily similar to the part of the user's mail address before the @ sign. For GitHub users, this corresponds to the GitHub user handle. - */ - directoryAlias?: string; - /** - * When true, the group has been deleted in the identity provider - */ - isDeletedInOrigin?: boolean; - metadataUpdateDate?: Date; - /** - * The meta type of the user in the origin, such as "member", "guest", etc. See UserMetaType for the set of possible values. - */ - metaType?: string; +export interface GraphUser extends AadGraphMember { } /** @@ -400,6 +444,9 @@ export interface GraphUserCreationContext { * Use this type to create a new user using the mail address as a reference to an existing user from an external AD or AAD backed provider. This is the subset of GraphUser fields required for creation of a GraphUser for the AD and AAD use case when looking up the user by its mail address in the backing provider. */ export interface GraphUserMailAddressCreationContext extends GraphUserCreationContext { + /** + * This should be the mail address of the user in the source AD or AAD provider. Example: Jamal.Hartnett@contoso.com Team Services will communicate with the source provider to fill all other fields on creation. + */ mailAddress: string; } @@ -437,6 +484,16 @@ export interface GraphUserPrincipalNameCreationContext extends GraphUserCreation principalName: string; } +/** + * Use this type for transfering identity rights, for instance after performing a Tenant switch. + */ +export interface GraphUserPrincipalNameUpdateContext extends GraphUserUpdateContext { + /** + * This should be Principal Name (UPN) to which we want to transfer rights. Example: destination@email.com + */ + principalName: string; +} + /** * Do not attempt to use this type to update user. Use one of the subclasses instead. This type does not contain sufficient fields to create a new user. */ @@ -447,6 +504,20 @@ export interface GraphUserUpdateContext { storageKey?: string; } +export interface IdentityMapping { + source?: UserPrincipalName; + target?: UserPrincipalName; +} + +export interface IdentityMappings { + mappings?: IdentityMapping[]; +} + +export interface MappingResult { + code?: string; + errorMessage?: string; +} + export interface PagedGraphGroups { /** * This will be non-null if there is another page of data. There will never be more than one continuation token returned by a request. @@ -458,6 +529,17 @@ export interface PagedGraphGroups { graphGroups?: GraphGroup[]; } +export interface PagedGraphServicePrincipals { + /** + * This will be non-null if there is another page of data. There will never be more than one continuation token returned by a request. + */ + continuationToken?: string[]; + /** + * The enumerable list of service principals found within a page. + */ + graphServicePrincipals?: GraphServicePrincipal[]; +} + export interface PagedGraphUsers { /** * This will be non-null if there is another page of data. There will never be more than one continuation token returned by a request. @@ -475,11 +557,25 @@ export interface RequestAccessPayLoad { urlRequested?: string; } +export interface ResolveDisconnectedUsersResponse { + code?: string; + errorMessage?: string; + mappingResults?: MappingResult[]; +} + +export interface UserPrincipalName { + principalName?: string; +} + export var TypeInfo = { + AadGraphMember: { + }, GraphScope: { }, GraphScopeCreationContext: { }, + GraphServicePrincipal: { + }, GraphTraversalDirection: { enumValues: { "unknown": 0, @@ -489,10 +585,18 @@ export var TypeInfo = { }, GraphUser: { }, + PagedGraphServicePrincipals: { + }, PagedGraphUsers: { }, }; +TypeInfo.AadGraphMember.fields = { + metadataUpdateDate: { + isDate: true, + } +}; + TypeInfo.GraphScope.fields = { scopeType: { enumType: IdentitiesInterfaces.TypeInfo.GroupScopeType @@ -505,12 +609,25 @@ TypeInfo.GraphScopeCreationContext.fields = { } }; +TypeInfo.GraphServicePrincipal.fields = { + metadataUpdateDate: { + isDate: true, + } +}; + TypeInfo.GraphUser.fields = { metadataUpdateDate: { isDate: true, } }; +TypeInfo.PagedGraphServicePrincipals.fields = { + graphServicePrincipals: { + isArray: true, + typeInfo: TypeInfo.GraphServicePrincipal + } +}; + TypeInfo.PagedGraphUsers.fields = { graphUsers: { isArray: true, diff --git a/api/interfaces/NotificationInterfaces.ts b/api/interfaces/NotificationInterfaces.ts index 22b7978..3159595 100644 --- a/api/interfaces/NotificationInterfaces.ts +++ b/api/interfaces/NotificationInterfaces.ts @@ -799,7 +799,7 @@ export interface NotificationSubscription { */ subscriber?: VSSInterfaces.IdentityRef; /** - * REST API URL of the subscriotion. + * REST API URL of the subscription. */ url?: string; /** @@ -1183,7 +1183,7 @@ export interface SubscriptionQueryCondition { */ filter?: ISubscriptionFilter; /** - * Flags to specify the the type subscriptions to query for. + * Flags to specify the type subscriptions to query for. */ flags?: SubscriptionFlags; /** diff --git a/api/interfaces/ReleaseInterfaces.ts b/api/interfaces/ReleaseInterfaces.ts index a688cdf..4f91c67 100644 --- a/api/interfaces/ReleaseInterfaces.ts +++ b/api/interfaces/ReleaseInterfaces.ts @@ -1592,7 +1592,7 @@ export interface FavoriteItem { */ data?: string; /** - * Unique Id of the the entry. + * Unique Id of the entry. */ id?: string; /** diff --git a/api/interfaces/SBOMInterfaces.ts b/api/interfaces/SBOMInterfaces.ts index 89554bf..7c57a38 100644 --- a/api/interfaces/SBOMInterfaces.ts +++ b/api/interfaces/SBOMInterfaces.ts @@ -210,6 +210,10 @@ export interface SBOMTelemetry { * Error messages that came from the extension task. */ taskErrorMessage?: string; + /** + * The unique id for this telemetry + */ + telemetryId?: string; /** * The result of the tool as a numeric value. */ diff --git a/api/interfaces/ServiceEndpointInterfaces.ts b/api/interfaces/ServiceEndpointInterfaces.ts index e7f2237..ef8ef2a 100644 --- a/api/interfaces/ServiceEndpointInterfaces.ts +++ b/api/interfaces/ServiceEndpointInterfaces.ts @@ -676,6 +676,10 @@ export interface ServiceEndpointExecutionData { * Gets the owner of service endpoint execution data. */ owner?: ServiceEndpointExecutionOwner; + /** + * Gets the additional details about the instance that used the service endpoint. + */ + ownerDetails?: string; /** * Gets the plan type of service endpoint execution data. */ diff --git a/api/interfaces/TaskAgentInterfaces.ts b/api/interfaces/TaskAgentInterfaces.ts index a9f8bf5..3578a3b 100644 --- a/api/interfaces/TaskAgentInterfaces.ts +++ b/api/interfaces/TaskAgentInterfaces.ts @@ -572,6 +572,7 @@ export enum ElasticComputeState { Deleting = 3, Failed = 4, Stopped = 5, + Reimaging = 6, } /** @@ -648,6 +649,12 @@ export enum ElasticNodeState { DeletingCompute = 10, Deleted = 11, Lost = 12, + ReimagingCompute = 13, + RestartingAgent = 14, + FailedToStartPendingDelete = 15, + FailedToRestartPendingDelete = 16, + FailedVMPendingDelete = 17, + AssignedPendingDelete = 18, } /** @@ -1176,24 +1183,51 @@ export interface InputValidationRequest { inputs?: { [key: string] : ValidationItem; }; } +/** + * An issue (error, warning) associated with a pipeline run. + */ export interface Issue { + /** + * The category of the issue.
Example: Code - refers to compilation errors
Example: General - refers to generic errors + */ category?: string; + /** + * A dictionary containing details about the issue. + */ data?: { [key: string] : string; }; + /** + * A description of issue. + */ message?: string; + /** + * The type (error, warning) of the issue. + */ type?: IssueType; } +/** + * The type of issue based on severity. + */ export enum IssueType { Error = 1, Warning = 2, } export interface JobAssignedEvent extends JobEvent { + /** + * A pipeline job request for an agent. + */ request?: TaskAgentJobRequest; } export interface JobCanceledEvent extends JobEvent { + /** + * The reason for job cancellation. + */ reason?: string; + /** + * The job's timeout interval. + */ timeout?: any; } @@ -1203,8 +1237,17 @@ export interface JobCancelMessage { } export interface JobCompletedEvent extends JobEvent { + /** + * Indicates whether the agent is in the process of shutting down. + */ agentShuttingDown?: boolean; + /** + * The ID of the request. + */ requestId?: number; + /** + * The result of the request. + */ result?: TaskResult; } @@ -1223,8 +1266,17 @@ export interface JobEnvironment { variables?: { [key: string] : string; }; } +/** + * A pipeline job event to be processed by the execution plan. + */ export interface JobEvent { + /** + * The ID of the pipeline job affected by the event. + */ jobId?: string; + /** + * The name of the pipeline job event. + */ name?: string; } @@ -1239,11 +1291,23 @@ export interface JobEventsConfig extends EventsConfig { } export interface JobMetadataEvent extends JobEvent { + /** + * A message to be sent to an agent currently running the job. + */ message?: JobMetadataMessage; } +/** + * A message to be sent to an agent currently running the job. + */ export interface JobMetadataMessage { + /** + * The id of the job. + */ jobId?: string; + /** + * The agent's frequency of posting lines to the logs console expressed in milliseconds. There are 2 modes: Slow (10 seconds) and Fast (half a second). + */ postLinesFrequencyMillis?: number; } @@ -2216,7 +2280,7 @@ export interface TaskAgentPool extends TaskAgentPoolReference { owner?: VSSInterfaces.IdentityRef; properties?: any; /** - * Target parallelism. + * Target parallelism - Only applies to agent pools that are backed by pool providers. It will be null for regular pools. */ targetSize?: number; } @@ -2703,6 +2767,9 @@ export interface TaskCommandRestrictions { } export interface TaskCompletedEvent extends TaskEvent { + /** + * The result of the task. + */ result?: TaskResult; } @@ -2805,6 +2872,9 @@ export enum TaskDefinitionStatus { } export interface TaskEvent extends JobEvent { + /** + * The ID of the task definition. + */ taskId?: string; } @@ -3116,6 +3186,10 @@ export interface TaskHubLicenseDetails { totalPrivateLicenseCount?: number; } +export interface TaskHubOidcToken { + oidcToken?: string; +} + export interface TaskInputDefinition extends DistributedTaskCommonInterfaces.TaskInputDefinitionBase { } @@ -3132,16 +3206,43 @@ export interface TaskInstance extends TaskReference { timeoutInMinutes?: number; } +/** + * A task log connected to a timeline record. + */ export interface TaskLog extends TaskLogReference { + /** + * The time of the task log creation. + */ createdOn?: Date; + /** + * The REST URL of the task log when indexed. + */ indexLocation?: string; + /** + * The time of the last modification of the task log. + */ lastChangedOn?: Date; + /** + * The number of the task log lines. + */ lineCount?: number; + /** + * The path of the task log. + */ path?: string; } +/** + * A reference to a task log. This class contains information about the output printed to the timeline record's logs console during pipeline run. + */ export interface TaskLogReference { + /** + * The ID of the task log. + */ id?: number; + /** + * The REST URL of the task log. + */ location?: string; } @@ -3267,10 +3368,25 @@ export interface TaskPackageMetadata { version?: string; } +/** + * A reference to a task. + */ export interface TaskReference { + /** + * The ID of the task definition. Corresponds to the id value of task.json file.
Example: CmdLineV2 { "id": "D9BAFED4-0B18-4F58-968D-86655B4D2CE9" } + */ id?: string; + /** + * A dictionary of inputs specific to a task definition. Corresponds to inputs value of task.json file. + */ inputs?: { [key: string] : string; }; + /** + * The name of the task definition. Corresponds to the name value of task.json file.
Example: CmdLineV2 { "name": "CmdLine" } + */ name?: string; + /** + * The version of the task definition. Corresponds to the version value of task.json file.
Example: CmdLineV2 { "version": { "Major": 2, "Minor": 212, "Patch": 0 } } + */ version?: string; } @@ -3279,6 +3395,9 @@ export interface TaskRestrictions { settableVariables?: TaskVariableRestrictions; } +/** + * The result of an operation tracked by a timeline record. + */ export enum TaskResult { Succeeded = 0, SucceededWithIssues = 1, @@ -3311,54 +3430,147 @@ export interface Timeline extends TimelineReference { records?: TimelineRecord[]; } +/** + * An attempt to update a TimelineRecord. + */ export interface TimelineAttempt { /** - * Gets or sets the attempt of the record. + * The attempt of the record. */ attempt?: number; /** - * Gets or sets the unique identifier for the record. + * The unique identifier for the record. */ identifier?: string; /** - * Gets or sets the record identifier located within the specified timeline. + * The record identifier located within the specified timeline. */ recordId?: string; /** - * Gets or sets the timeline identifier which owns the record representing this attempt. + * The timeline identifier which owns the record representing this attempt. */ timelineId?: string; } +/** + * Detailed information about the execution of different operations during pipeline run. + */ export interface TimelineRecord { + /** + * The specification of an agent running a pipeline job, in binary format. Applicable when record is of type Job.
Example: { "VMImage" : "windows-2019" } + */ agentSpecification?: any; + /** + * The number of record attempts. + */ attempt?: number; + /** + * The ID connecting all records updated at the same time. This value is taken from timeline's ChangeId. + */ changeId?: number; + /** + * A string that indicates the current operation. + */ currentOperation?: string; + /** + * A reference to a sub-timeline. + */ details?: TimelineReference; + /** + * The number of errors produced by this operation. + */ errorCount?: number; + /** + * The finish time of the record. + */ finishTime?: Date; + /** + * The ID of the record. + */ id?: string; + /** + * String identifier that is consistent across attempts. + */ identifier?: string; + /** + * The list of issues produced by this operation. + */ issues?: Issue[]; + /** + * The time the record was last modified. + */ lastModified?: Date; + /** + * The REST URL of the record. + */ location?: string; + /** + * A reference to the log produced by this operation. + */ log?: TaskLogReference; + /** + * The name of the record. + */ name?: string; + /** + * An ordinal value relative to other records within the timeline. + */ order?: number; + /** + * The ID of the record's parent.
Example: Stage is a parent of a Phase, Phase is a parent of a Job, Job is a parent of a Task. + */ parentId?: string; + /** + * The percentage of record completion. + */ percentComplete?: number; + /** + * The previous record attempts. + */ previousAttempts?: TimelineAttempt[]; + /** + * The ID of the queue which connects projects to agent pools on which the operation ran on. Applicable when record is of type Job. + */ queueId?: number; + /** + * Name of the referenced record. + */ refName?: string; + /** + * The result of the record. + */ result?: TaskResult; + /** + * Evaluation of predefined conditions upon completion of record's operation.
Example: Evaluating `succeeded()`, Result = True
Example: Evaluating `and(succeeded(), eq(variables['system.debug'], False))`, Result = False + */ resultCode?: string; + /** + * The start time of the record. + */ startTime?: Date; + /** + * The state of the record. + */ state?: TimelineRecordState; + /** + * A reference to the task. Applicable when record is of type Task. + */ task?: TaskReference; + /** + * The type of operation being tracked by the record.
Example: Stage, Phase, Job, Task... + */ type?: string; + /** + * The variables of the record. + */ variables?: { [key: string] : VariableValue; }; + /** + * The number of warnings produced by this operation. + */ warningCount?: number; + /** + * The name of the agent running the operation. Applicable when record is of type Job. + */ workerName?: string; } @@ -3370,15 +3582,30 @@ export interface TimelineRecordFeedLinesWrapper { value?: string[]; } +/** + * The state of the timeline record. + */ export enum TimelineRecordState { Pending = 0, InProgress = 1, Completed = 2, } +/** + * A reference to a timeline. + */ export interface TimelineReference { + /** + * The change ID. + */ changeId?: number; + /** + * The ID of the timeline. + */ id?: string; + /** + * The REST URL of the timeline. + */ location?: string; } @@ -3523,9 +3750,21 @@ export enum VariableGroupQueryOrder { IdDescending = 1, } +/** + * A wrapper class for a generic variable. + */ export interface VariableValue { + /** + * Indicates whether the variable can be changed during script's execution runtime. + */ isReadOnly?: boolean; + /** + * Indicates whether the variable should be encrypted at rest. + */ isSecret?: boolean; + /** + * The value of the variable. + */ value?: string; } @@ -3662,7 +3901,8 @@ export var TypeInfo = { "creating": 2, "deleting": 3, "failed": 4, - "stopped": 5 + "stopped": 5, + "reimaging": 6 } }, ElasticNode: { @@ -3683,7 +3923,13 @@ export var TypeInfo = { "saved": 9, "deletingCompute": 10, "deleted": 11, - "lost": 12 + "lost": 12, + "reimagingCompute": 13, + "restartingAgent": 14, + "failedToStartPendingDelete": 15, + "failedToRestartPendingDelete": 16, + "failedVMPendingDelete": 17, + "assignedPendingDelete": 18 } }, ElasticPool: { diff --git a/api/interfaces/TestInterfaces.ts b/api/interfaces/TestInterfaces.ts index ae57fa7..05c4438 100644 --- a/api/interfaces/TestInterfaces.ts +++ b/api/interfaces/TestInterfaces.ts @@ -2884,7 +2884,7 @@ export interface TestConfiguration { */ project?: ShallowReference; /** - * Revision of the the configuration + * Revision of the configuration */ revision?: number; /** @@ -3264,6 +3264,46 @@ export enum TestLogStatusCode { StorageCapacityExceeded = 16, } +/** + * Attachment metadata for test attachments from LogStore. + */ +export interface TestLogStoreAttachment { + /** + * Attachment type. + */ + attachmentType?: AttachmentType; + /** + * Comment associated with attachment. + */ + comment?: string; + /** + * Attachment created date. + */ + createdDate?: Date; + /** + * Attachment file name. + */ + fileName?: string; + /** + * Attachment size. + */ + size?: number; + /** + * Attachment Url. + */ + url?: string; +} + +/** + * Reference to test attachment. + */ +export interface TestLogStoreAttachmentReference { + /** + * Url to download the attachment. + */ + url: string; +} + /** * Represents Test Log store endpoint details. */ @@ -5468,6 +5508,8 @@ export var TypeInfo = { "storageCapacityExceeded": 16 } }, + TestLogStoreAttachment: { + }, TestLogStoreEndpointDetails: { }, TestLogStoreEndpointType: { @@ -6396,6 +6438,15 @@ TypeInfo.TestLogStatus.fields = { } }; +TypeInfo.TestLogStoreAttachment.fields = { + attachmentType: { + enumType: TypeInfo.AttachmentType + }, + createdDate: { + isDate: true, + } +}; + TypeInfo.TestLogStoreEndpointDetails.fields = { endpointType: { enumType: TypeInfo.TestLogStoreEndpointType diff --git a/api/interfaces/TfvcInterfaces.ts b/api/interfaces/TfvcInterfaces.ts index 7003645..7dd62b7 100644 --- a/api/interfaces/TfvcInterfaces.ts +++ b/api/interfaces/TfvcInterfaces.ts @@ -80,6 +80,10 @@ export interface GitRepository { * True if the repository was created as a fork. */ isFork?: boolean; + /** + * True if the repository is in maintenance. False otherwise. + */ + isInMaintenance?: boolean; name?: string; parentRepository?: GitRepositoryRef; project?: TfsCoreInterfaces.TeamProjectReference; diff --git a/api/interfaces/WorkInterfaces.ts b/api/interfaces/WorkInterfaces.ts index 529b34f..fb9126e 100644 --- a/api/interfaces/WorkInterfaces.ts +++ b/api/interfaces/WorkInterfaces.ts @@ -281,6 +281,7 @@ export interface BoardReference { } export interface BoardRow { + color?: string; id?: string; name?: string; } @@ -354,7 +355,7 @@ export interface CardFieldSettings { */ showId?: boolean; /** - * Flag indicating whether to show show parent field on cards + * Flag indicating whether to show parent field on cards */ showParent?: boolean; /** @@ -655,6 +656,10 @@ export interface Plan { * Id of the plan */ id?: string; + /** + * Date when the plan was last accessed. Default is null. + */ + lastAccessed?: Date; /** * Identity that last modified this plan. Defaults to null for records before upgrading to ScaledAgileViewComponent4. */ @@ -1646,6 +1651,9 @@ TypeInfo.Plan.fields = { createdDate: { isDate: true, }, + lastAccessed: { + isDate: true, + }, modifiedDate: { isDate: true, }, diff --git a/api/interfaces/WorkItemTrackingInterfaces.ts b/api/interfaces/WorkItemTrackingInterfaces.ts index 7b5deb5..ac2ecf5 100644 --- a/api/interfaces/WorkItemTrackingInterfaces.ts +++ b/api/interfaces/WorkItemTrackingInterfaces.ts @@ -516,6 +516,20 @@ export enum FieldType { PicklistDouble = 13, } +/** + * Describes an update request for a work item field. + */ +export interface FieldUpdate { + /** + * Indicates whether the user wants to restore the field. + */ + isDeleted?: boolean; + /** + * Indicates whether the user wants to lock the field. + */ + isLocked?: boolean; +} + /** * Enum for field usages. */ @@ -1026,6 +1040,26 @@ export enum TemplateType { GlobalWorkflow = 1, } +/** + * Describes a request to create a temporary query + */ +export interface TemporaryQueryRequestModel extends WorkItemTrackingResource { + /** + * The WIQL text of the temporary query + */ + wiql?: string; +} + +/** + * The result of a temporary query creation. + */ +export interface TemporaryQueryResponseModel { + /** + * The id of the temporary query item. + */ + id?: string; +} + /** * Types of tree node structures. */ @@ -1256,6 +1290,34 @@ export interface WorkItemDelete extends WorkItemDeleteReference { resource?: WorkItem; } +/** + * Describes response to delete a set of work items. + */ +export interface WorkItemDeleteBatch { + /** + * List of results for each work item + */ + results?: WorkItemDelete[]; +} + +/** + * Describes a request to delete a set of work items + */ +export interface WorkItemDeleteBatchRequest { + /** + * Optional parameter, if set to true, the work item is deleted permanently. Please note: the destroy action is PERMANENT and cannot be undone. + */ + destroy?: boolean; + /** + * The requested work item ids + */ + ids?: number[]; + /** + * Optional parameter, if set to true, notifications will be disabled. + */ + skipNotifications?: boolean; +} + /** * Reference to a deleted work item. */ @@ -1424,6 +1486,16 @@ export interface WorkItemField extends WorkItemTrackingResource { usage?: FieldUsage; } +/** + * Describes a field on a work item and it's properties specific to that work item type. + */ +export interface WorkItemField2 extends WorkItemField { + /** + * Indicates whether this field is marked as locked for editing. + */ + isLocked?: boolean; +} + /** * Describes a work item field operation. */ @@ -1702,6 +1774,7 @@ export interface WorkItemStateTransition { export interface WorkItemTagDefinition { id?: string; + lastUpdated?: Date; name?: string; url?: string; } @@ -1857,7 +1930,7 @@ export interface WorkItemTypeColor { } /** - * Describes work item type nam, its icon and color. + * Describes work item type name, its icon and color. */ export interface WorkItemTypeColorAndIcon { /** @@ -1868,12 +1941,30 @@ export interface WorkItemTypeColorAndIcon { * The work item type icon. */ icon?: string; + /** + * Indicates if the work item is disabled in the process. + */ + isDisabled?: boolean; /** * The name of the work item type. */ workItemTypeName?: string; } +/** + * Describes the list of allowed values of the field. + */ +export interface WorkItemTypeFieldAlowedValues { + /** + * The list of field allowed values. + */ + allowedValues?: string[]; + /** + * Name of the field. + */ + fieldName?: string; +} + /** * Field instance of a work item type. */ @@ -2240,6 +2331,8 @@ export var TypeInfo = { }, WorkItemField: { }, + WorkItemField2: { + }, WorkItemHistory: { }, WorkItemQueryClause: { @@ -2254,6 +2347,8 @@ export var TypeInfo = { "restored": 3 } }, + WorkItemTagDefinition: { + }, WorkItemTypeFieldsExpandLevel: { enumValues: { "none": 0, @@ -2467,6 +2562,15 @@ TypeInfo.WorkItemField.fields = { } }; +TypeInfo.WorkItemField2.fields = { + type: { + enumType: TypeInfo.FieldType + }, + usage: { + enumType: TypeInfo.FieldUsage + } +}; + TypeInfo.WorkItemHistory.fields = { revisedDate: { isDate: true, @@ -2495,6 +2599,12 @@ TypeInfo.WorkItemQueryResult.fields = { } }; +TypeInfo.WorkItemTagDefinition.fields = { + lastUpdated: { + isDate: true, + } +}; + TypeInfo.WorkItemTypeTemplateUpdateModel.fields = { actionType: { enumType: TypeInfo.ProvisioningActionType diff --git a/api/interfaces/WorkItemTrackingProcessInterfaces.ts b/api/interfaces/WorkItemTrackingProcessInterfaces.ts index 38c9cae..0bd94e6 100644 --- a/api/interfaces/WorkItemTrackingProcessInterfaces.ts +++ b/api/interfaces/WorkItemTrackingProcessInterfaces.ts @@ -206,6 +206,7 @@ export interface FieldModel { description?: string; id?: string; isIdentity?: boolean; + isLocked?: boolean; name?: string; type?: FieldType; url?: string; @@ -527,7 +528,7 @@ export interface ProcessBehavior { */ color?: string; /** - * Indicates the type of customization on this work item. System behaviors are inherited from parent process but not modified. Inherited behaviors are modified modified behaviors that were inherited from parent process. Custom behaviors are behaviors created by user in current process. + * Indicates the type of customization on this work item. System behaviors are inherited from parent process but not modified. Inherited behaviors are modified behaviors that were inherited from parent process. Custom behaviors are behaviors created by user in current process. */ customization?: CustomizationType; /** @@ -816,6 +817,10 @@ export interface ProcessWorkItemTypeField { * Description of the field. */ description?: string; + /** + * Information about field definition being locked for editing + */ + isLocked?: boolean; /** * Name of the field. */ diff --git a/api/interfaces/common/VSSInterfaces.ts b/api/interfaces/common/VSSInterfaces.ts index 4e65914..f4d4fe8 100644 --- a/api/interfaces/common/VSSInterfaces.ts +++ b/api/interfaces/common/VSSInterfaces.ts @@ -373,13 +373,19 @@ export interface VssJsonCollectionWrapper extends VssJsonCollectionWrapperBase { } /** - * This class is used to serialized collections as a single JSON object on the wire, to avoid serializing JSON arrays directly to the client, which can be a security hole + * This class is used to serialize collections as a single JSON object on the wire. */ export interface VssJsonCollectionWrapperV extends VssJsonCollectionWrapperBase { + /** + * The serialized item. + */ value?: T; } export interface VssJsonCollectionWrapperBase { + /** + * The number of serialized items. + */ count?: number; } @@ -416,7 +422,7 @@ export interface VssNotificationEvent { */ processDelay?: any; /** - * Optional: A list of scopes which are are relevant to the event. + * Optional: A list of scopes which are relevant to the event. */ scopes?: EventScope[]; /** diff --git a/package-lock.json b/package-lock.json index d1df90b..68992bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "azure-devops-node-api", - "version": "11.2.0", + "version": "12.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 773eaf2..68adc0d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "azure-devops-node-api", "description": "Node client for Azure DevOps and TFS REST APIs", - "version": "11.2.0", + "version": "12.0.0", "main": "./WebApi.js", "types": "./WebApi.d.ts", "scripts": { @@ -28,6 +28,8 @@ "typed-rest-client": "^1.8.4" }, "devDependencies": { + "@types/glob": "5.0.35", + "@types/minimatch": "3.0.3", "@types/mocha": "^2.2.44", "@types/shelljs": "0.7.8", "mocha": "^3.5.3", diff --git a/samples/package-lock.json b/samples/package-lock.json index a7d27fa..edb8e82 100644 --- a/samples/package-lock.json +++ b/samples/package-lock.json @@ -13,8 +13,7 @@ "dependencies": { "call-bind": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "bundled": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -22,49 +21,42 @@ }, "function-bind": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "bundled": true }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.1.3", + "bundled": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" } }, "has": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "bundled": true, "requires": { "function-bind": "^1.1.1" } }, "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==" + "version": "1.0.3", + "bundled": true }, "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + "version": "1.12.3", + "bundled": true }, "qs": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", - "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", + "version": "6.11.0", + "bundled": true, "requires": { "side-channel": "^1.0.4" } }, "side-channel": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "bundled": true, "requires": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -73,13 +65,11 @@ }, "tunnel": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + "bundled": true }, "typed-rest-client": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.6.tgz", - "integrity": "sha512-xcQpTEAJw2DP7GqVNECh4dD+riS+C1qndXLfBCJ3xk0kqprtGN491P5KlmrDbKdtuW8NEcP/5ChxiJI3S9WYTA==", + "version": "1.8.9", + "bundled": true, "requires": { "qs": "^6.9.1", "tunnel": "0.0.6", @@ -87,9 +77,8 @@ } }, "underscore": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", - "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==" + "version": "1.13.6", + "bundled": true } } } diff --git a/test/package-lock.json b/test/package-lock.json index 555c8fa..ca73d40 100644 --- a/test/package-lock.json +++ b/test/package-lock.json @@ -13,8 +13,7 @@ "dependencies": { "call-bind": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "bundled": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -22,13 +21,11 @@ }, "function-bind": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "bundled": true }, "get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "version": "1.1.3", + "bundled": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -37,34 +34,29 @@ }, "has": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "bundled": true, "requires": { "function-bind": "^1.1.1" } }, "has-symbols": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "bundled": true }, "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + "version": "1.12.3", + "bundled": true }, "qs": { "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "bundled": true, "requires": { "side-channel": "^1.0.4" } }, "side-channel": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "bundled": true, "requires": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -73,13 +65,11 @@ }, "tunnel": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + "bundled": true }, "typed-rest-client": { "version": "1.8.9", - "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.9.tgz", - "integrity": "sha512-uSmjE38B80wjL85UFX3sTYEUlvZ1JgCRhsWj/fJ4rZ0FqDUFoIuodtiVeE+cUqiVTOKPdKrp/sdftD15MDek6g==", + "bundled": true, "requires": { "qs": "^6.9.1", "tunnel": "0.0.6", @@ -87,9 +77,8 @@ } }, "underscore": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.4.tgz", - "integrity": "sha512-BQFnUDuAQ4Yf/cYY5LNrK9NCJFKriaRbD9uR1fTeXnBeoa97W0i41qkZfGO9pSo8I5KzjAcSY2XYtdf0oKd7KQ==" + "version": "1.13.6", + "bundled": true } } }, @@ -104,8 +93,7 @@ "dependencies": { "call-bind": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "bundled": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -113,13 +101,11 @@ }, "function-bind": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "bundled": true }, "get-intrinsic": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "bundled": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -128,34 +114,29 @@ }, "has": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "bundled": true, "requires": { "function-bind": "^1.1.1" } }, "has-symbols": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "bundled": true }, "object-inspect": { "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + "bundled": true }, "qs": { "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "bundled": true, "requires": { "side-channel": "^1.0.4" } }, "side-channel": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "bundled": true, "requires": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -164,13 +145,11 @@ }, "tunnel": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + "bundled": true }, "underscore": { "version": "1.13.4", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.4.tgz", - "integrity": "sha512-BQFnUDuAQ4Yf/cYY5LNrK9NCJFKriaRbD9uR1fTeXnBeoa97W0i41qkZfGO9pSo8I5KzjAcSY2XYtdf0oKd7KQ==" + "bundled": true } } }