youtrack-client
Version:
Client library for accessing the YouTrack REST and Widget API
8 lines (7 loc) • 40.6 kB
JavaScript
/*!
* youtrack-client v0.7.1
* Copyright (C) 2012-2025 undefined
* Date: Sat, 16 Aug 2025 14:45:45 GMT
*/
const e=e=>null!==e&&"object"==typeof e,t=(e,t)=>{let s=e,i=t;return s.endsWith("/")&&(s=s.slice(0,-1)),i.startsWith("/")&&(i=i.slice(1)),`${s}/${i}`},s=e=>e instanceof FormData?e:"object"==typeof e?JSON.stringify(e):e,i=(e,t={})=>Object.keys(t).reduce(((e,s)=>e.replace(`:${s}`,encodeURIComponent(t[s]))),e),n=(e=[],t=[])=>e.reduce(((e,s,i)=>(e[s]=`${t[i]}`,e)),{}),a=(t=[])=>{const s=t.map((t=>e(t)?Object.keys(t).map((e=>`${e}(${a(t[e])})`)).join(","):encodeURIComponent(t)));return s.length?s.join(","):""},r=(e=[])=>{const t="string"==typeof e?e:a(e);return t?`fields=${t}`:""},c=(e,t)=>Array.isArray(t)?t.map((t=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`)):void 0!==t?`${encodeURIComponent(e)}=${encodeURIComponent(t)}`:"",u=e=>t=>c(e,t),o=(...e)=>e.reduce(((e,t)=>(e[t]=e=>c(t,e),e)),{}),d=e=>c("customField",e);class l{constructor(e,t,s={}){Object.defineProperty(this,"baseUrl",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"_args",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.keys(s).forEach((e=>{if(e in t){const i=t[e],n="function"!=typeof i?c(e,s[e]):i(s[e]);n&&this._args.push(...Array.isArray(n)?n:[n])}}))}build(e){const t=this._args.join("&");return{...e,url:t?`${this.baseUrl}?${t}`:this.baseUrl}}get(){return this.build()}post(e){return this.build({method:"POST",data:e})}postFile(e){return this.build({method:"POST",data:e,headers:{"Content-Type":"multipart/form-data"}})}delete(){return this.build({method:"DELETE"})}put(){return this.build({method:"PUT"})}patch(){return this.build({method:"PATCH"})}}class p{constructor(e){Object.defineProperty(this,"youtrack",{enumerable:!0,configurable:!0,writable:!0,value:e})}}class h extends p{async getActivities(e){return this.youtrack.fetch(new l("api/activities",{fields:r,...o("$skip","$top","reverse","categories","author","start","end","issueQuery")},e).get())}async getActivityById(e,t){return this.youtrack.fetch(new l(`api/activities/${e}`,{fields:r},t).get())}async getActivitiesPage(e){return this.youtrack.fetch(new l("api/activitiesPage",{fields:r,...o("categories","reverse","author","start","end","issueQuery","cursor","activityId")},e).get())}}class f extends p{async getAgiles(e){return this.youtrack.fetch(new l("api/agiles",{fields:r,$skip:"number",$top:"number"},e).get())}async createAgile(e,t){return this.youtrack.fetch(new l("api/agiles",{fields:r,template:"string"},t).post(e))}async getAgileById(e,t){return this.youtrack.fetch(new l(`api/agiles/${e}`,{fields:r},t).get())}async updateAgile(e,t,s){return this.youtrack.fetch(new l(`api/agiles/${e}`,{fields:r},s).post(t))}async deleteAgile(e,t){return this.youtrack.fetch(new l(`api/agiles/${e}`,{fields:r},t).delete())}async getAgileSprints(e,t){return this.youtrack.fetch(new l(`api/agiles/${e}/sprints`,{fields:r,$skip:"number",$top:"number"},t).get())}async createAgileSprint(e,t,s){return this.youtrack.fetch(new l(`api/agiles/${e}/sprints`,{fields:r,muteUpdateNotifications:"boolean"},s).post(t))}async getAgileSprintById(e,t,s){return this.youtrack.fetch(new l(`api/agiles/${e}/sprints/${t}`,{fields:r},s).get())}async deleteAgileSprint(e,t,s){return this.youtrack.fetch(new l(`api/agiles/${e}/sprints/${t}`,{fields:r},s).delete())}async updateAgileSprint(e,t,s,i){return this.youtrack.fetch(new l(`api/agiles/${e}/sprints/${t}`,{fields:r},i).post(s))}}class y extends p{async getArticles(e){return this.youtrack.fetch(new l("api/articles",{fields:r,...o("$top","$skip")},e).get())}async createArticle(e,t){return this.youtrack.fetch(new l("api/articles",{fields:r,...o("muteUpdateNotifications","draftId")},t).post(e))}async getArticle(e,t){return this.youtrack.fetch(new l(`api/articles/${e}`,{fields:r},t).get())}async updateArticle(e,t,s){return this.youtrack.fetch(new l(`api/articles/${e}`,{fields:r,muteUpdateNotifications:"string"},s).post(t))}async deleteArticle(e,t){return this.youtrack.fetch(new l(`api/articles/${e}`,{fields:r},t).delete())}async getArticleAttachments(e,t){return this.youtrack.fetch(new l(`api/articles/${e}/attachments`,{fields:r,...o("$top","$skip")},t).get())}async createArticleAttachment(e,t,s){return this.youtrack.fetch(new l(`api/articles/${e}/attachments`,{fields:r,muteUpdateNotifications:"string"},s).postFile(t))}async getArticleAttachment(e,t,s){return this.youtrack.fetch(new l(`api/articles/${e}/attachments/${t}`,{fields:r},s).get())}async updateArticleAttachment(e,t,s,i){return this.youtrack.fetch(new l(`api/articles/${e}/attachments/${t}`,{fields:r},i).post(s))}async deleteArticleAttachment(e,t,s){return this.youtrack.fetch(new l(`api/articles/${e}/attachments/${t}`,{fields:r},s).delete())}async getChildArticles(e,t){return this.youtrack.fetch(new l(`api/articles/${e}/childArticles`,{fields:r,...o("$top","$skip")},t).get())}async addChildArticle(e,t,s){return this.youtrack.fetch(new l(`api/articles/${e}/childArticles`,{fields:r,...o("muteUpdateNotifications")},s).post(t))}async getChildArticle(e,t,s){return this.youtrack.fetch(new l(`api/articles/${e}/childArticles/${t}`,{fields:r},s).get())}async updateChildArticle(e,t,s,i){return this.youtrack.fetch(new l(`api/articles/${e}/childArticles/${t}`,{fields:r,muteUpdateNotifications:"boolean"},i).post(s))}async removeChildArticleLink(e,t,s){return this.youtrack.fetch(new l(`api/articles/${e}/childArticles/${t}`,{fields:r},s).delete())}async getArticleComments(e,t){return this.youtrack.fetch(new l(`api/articles/${e}/comments`,{fields:r,...o("$top","$skip")},t).get())}async createArticleComment(e,t,s){return this.youtrack.fetch(new l(`api/articles/${e}/comments`,{fields:r,...o("draftId","muteUpdateNotifications")},s).post(t))}async getArticleComment(e,t,s){return this.youtrack.fetch(new l(`api/articles/${e}/comments/${t}`,{fields:r},s).get())}async updateArticleComment(e,t,s,i){return this.youtrack.fetch(new l(`api/articles/${e}/comments/${t}`,{fields:r,muteUpdateNotifications:"boolean"},i).post(s))}async deleteArticleComment(e,t,s){return this.youtrack.fetch(new l(`api/articles/${e}/comments/${t}`,{fields:r},s).delete())}async getArticleCommentReactions(e,t,s){return this.youtrack.fetch(new l(`api/articles/${e}/comments/${t}/reactions`,{fields:r,...o("$top","$skip")},s).get())}async createCommentReaction(e,t,s,i){return this.youtrack.fetch(new l(`api/articles/${e}/comments/${t}/reactions`,{fields:r},i).post(s))}async getCommnetReaction(e,t,s,i){return this.youtrack.fetch(new l(`api/articles/${e}/comments/${t}/reactions/${s}`,{fields:r},i).get())}async removeCommnetReaction(e,t,s,i){return this.youtrack.fetch(new l(`api/articles/${e}/comments/${t}/reactions/${s}`,{fields:r},i).delete())}async getParentArticle(e,t){return this.youtrack.fetch(new l(`api/articles/${e}/parentArticle`,{fields:r},t).get())}async getArticleTags(e,t){return this.youtrack.fetch(new l(`api/articles/${e}/tags`,{fields:r,...o("$top","$skip")},t).get())}async createArticleTag(e,t,s){return this.youtrack.fetch(new l(`api/articles/${e}/tags`,{fields:r},s).post(t))}async getArticleTag(e,t,s){return this.youtrack.fetch(new l(`api/articles/${e}/tags/${t}`,{fields:r},s).get())}async removeArticleTag(e,t,s){return this.youtrack.fetch(new l(`api/articles/${e}/tags/${t}`,{fields:r},s).delete())}}class g extends p{async applyCommandToIssues(e,t){return this.youtrack.fetch(new l("api/commands",{fields:r,muteUpdateNotifications:"string"},t).post(e))}async getCommandSuggestions(e,t){return this.youtrack.fetch(new l("api/commands/assist",{fields:r},t).post(e))}}class m extends p{async getUserGroups(e){return this.youtrack.fetch(new l("api/groups",{fields:r,...o("$top","$skip")},e).get())}async getUserGroupById(e,t){return this.youtrack.fetch(new l(`api/groups/${e}`,{fields:r},t).get())}}class k extends p{async getIssueLinkTypes(e){return this.youtrack.fetch(new l("api/issueLinkTypes",{fields:r,...o("$top","$skip")},e).get())}async createIssueLinkType(e,t){return this.youtrack.fetch(new l("api/issueLinkTypes",{fields:r},t).post(e))}async getIssueLinkType(e,t){return this.youtrack.fetch(new l(`api/issueLinkTypes/${e}`,{fields:r},t).get())}async updateIssueLinkType(e,t,s){return this.youtrack.fetch(new l(`api/issueLinkTypes/${e}`,{fields:r},s).post(t))}async deleteIssueLinkType(e,t){return this.youtrack.fetch(new l(`api/issueLinkTypes/${e}`,{fields:r},t).delete())}}class $ extends p{async getIssues(e){return this.youtrack.fetch(new l("api/issues",{fields:r,...o("$top","$skip","query","customFields")},e).get())}async createIssue(e,t){return this.youtrack.fetch(new l("api/issues",{fields:r,...o("draftId","muteUpdateNotifications")},t).post(e))}async getIssueById(e,t){return this.youtrack.fetch(new l(`api/issues/${e}`,{fields:r},t).get())}async updateIssue(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}`,{fields:r,muteUpdateNotifications:"boolean"},s).post(t))}async deleteIssue(e,t){return this.youtrack.fetch(new l(`api/issues/${e}`,{fields:r},t).delete())}async getIssueCount(e,t){const s=await this.youtrack.fetch(new l("api/issuesGetter/count",{fields:r}).post(e));return-1===s.count?this.getIssueCount(e,t):s}async getIssueActivities(e,t){return this.youtrack.fetch(new l(`api/issues/${e}/activities`,{fields:r,...o("$top","$skip","categories","reverse","start","end","author")},t).get())}async getIssueActivity(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}/activities/${t}`,{fields:r},s).get())}async getActivitiesPage(e,t){return this.youtrack.fetch(new l(`api/issues/${e}/activitiesPage`,{fields:r,...o("categories","reverse","start","end","author","cursor","activityId")},t).get())}async getIssueCustomFields(e,t){return this.youtrack.fetch(new l(`api/issues/${e}/customFields`,{fields:r,...o("$top","$skip")},t).get())}async getIssueCustomFieldById(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}/customFields/${t}`,{fields:r},s).get())}async updateIssueCustomField(e,t,s,i){return this.youtrack.fetch(new l(`api/issues/${e}/customFields/${t}`,{fields:r,muteUpdateNotifications:"boolean"},i).post(s))}async getIssueProject(e,t){return this.youtrack.fetch(new l(`api/issues/${e}/project`,{fields:r},t).get())}async changeIssueProject(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}/project`,{fields:r,muteUpdateNotifications:"boolean"},s).post(t))}async getIssueSprints(e,t){return this.youtrack.fetch(new l(`api/issues/${e}/sprints`,{fields:r,...o("$skip","$top")},t).get())}}class w extends p{async getSavedQueries(e){return this.youtrack.fetch(new l("api/savedQueries",{fields:r,...o("$top","$skip")},e).get())}async createSavedQuery(e,t){return this.youtrack.fetch(new l("api/savedQueries",{fields:r},t).post(e))}async getSavedQueryById(e,t){return this.youtrack.fetch(new l(`api/savedQueries/${e}`,{fields:r},t).get())}async updateSavedQuery(e,t,s){return this.youtrack.fetch(new l(`api/savedQueries/${e}`,{fields:r},s).post(t))}async deleteSavedQuery(e,t){return this.youtrack.fetch(new l(`api/savedQueries/${e}`,{fields:r},t).delete())}}class b extends p{async getSearchSuggestions(e,t){return this.youtrack.fetch(new l("api/search/assist",{fields:r},t).post(e))}}class S extends p{async getTags(e){return this.youtrack.fetch(new l("api/tags",{fields:r,$skip:"number",$top:"number",query:"string"},e).get())}async getTagById(e,t){return this.youtrack.fetch(new l(`api/tags/${e}`,{fields:r},t).get())}async createTag(e,t){return this.youtrack.fetch(new l("api/tags",{fields:r},t).post(e))}async updateTag(e,t,s){return this.youtrack.fetch(new l(`api/tags/${e}`,{fields:r},s).post(t))}async deleteTag(e,t){return this.youtrack.fetch(new l(`api/tags/${e}`,{fields:r},t).delete())}async getIssuesByTag(e,t){return this.youtrack.fetch(new l(`api/tags/${e}/issues`,{fields:r,...o("$skip","$top","customFields")},t).get())}}class I extends p{async getUsers(e){return this.youtrack.fetch(new l("api/users",{fields:r,...o("$skip","$top")},e).get())}async getUserProfile(e,t){return this.youtrack.fetch(new l(`api/users/${e}`,{fields:r},t).get())}async getUserGeneralProfile(e,t){return this.youtrack.fetch(new l(`api/users/${e}/profiles/general`,{fields:r},t).get())}async updateUserGeneralProfile(e,t,s){return this.youtrack.fetch(new l(`api/users/${e}/profiles/general`,{fields:r},s).post(t))}async getUserNotificationProfile(e,t){return this.youtrack.fetch(new l(`api/users/${e}/profiles/notifications`,{fields:r},t).get())}async updateUserNotificationProfile(e,t,s){return this.youtrack.fetch(new l(`api/users/${e}/profiles/notifications`,{fields:r},s).post(t))}async getUserTimeTrackingProfile(e,t){return this.youtrack.fetch(new l(`api/users/${e}/profiles/timetracking`,{fields:r},t).get())}async updateUserTimeTrackingProfile(e,t,s){return this.youtrack.fetch(new l(`api/users/${e}/profiles/timetracking`,{fields:r},s).post(t))}async getUserSavedQueries(e,t){return this.youtrack.fetch(new l(`api/users/${e}/savedQueries`,{fields:r,$skip:"number",$top:"number"},t).get())}async getUserTags(e,t){return this.youtrack.fetch(new l(`api/users/${e}/tags`,{fields:r,...o("$skip","$top")},t).get())}async getCurrentUserProfile(e){return this.youtrack.fetch(new l("api/users/me",{fields:r},e).get())}}class v extends p{async getWorkItems(e){return this.youtrack.fetch(new l("api/workItems",{fields:r,...o("$skip","$top","query","startDate","endDate","author","creator","start","end","createdStart","createdEnd","updatedStart","updatedEnd")},e).get())}async getWorkItem(e,t){return this.youtrack.fetch(new l(`api/workItems/${e}`,{fields:r},t).get())}}class F extends p{async getIssueComments(e,t){return this.youtrack.fetch(new l(`api/issues/${e}/comments`,{fields:r,...o("$top","$skip")},t).get())}async createIssueComment(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}/comments`,{fields:r,...o("draftId","muteUpdateNotifications")},s).post(t))}async getIssueCommentById(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}/comments/${t}`,{fields:r},s).get())}async updateIssueComment(e,t,s,i){return this.youtrack.fetch(new l(`api/issues/${e}/comments/${t}`,{fields:r,muteUpdateNotifications:"boolean"},i).post(s))}async deleteIssueComment(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}/comments/${t}`,{fields:r},s).delete())}async getIssueCommnetReaction(e,t,s,i){return this.youtrack.fetch(new l(`api/issues/${e}/comments/${t}/reactions/${s}`,{fields:r},i).get())}async deleteIssueCommnetReaction(e,t,s,i){return this.youtrack.fetch(new l(`api/issues/${e}/comments/${t}/reactions/${s}`,{fields:r},i).delete())}}class B extends p{async getIssueLinks(e,t){return this.youtrack.fetch(new l(`api/issues/${e}/links`,{fields:r,...o("$top","$skip")},t).get())}async getIssueLinkById(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}/links/${t}`,{fields:r},s).get())}async getLinkedIssues(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}/links/${t}/issues`,{fields:r,...o("$skip","$top")},s).get())}async linkIssue(e,t,s,i){return this.youtrack.fetch(new l(`api/issues/${e}/links/${t}/issues`,{fields:r,muteUpdateNotifications:"boolean"},i).post(s))}async unlinkIssue(e,t,s,i){return this.youtrack.fetch(new l(`api/issues/${e}/links/${t}/issues/${s}`,{fields:r},i).delete())}}class T extends p{async getIssueTags(e,t){return this.youtrack.fetch(new l(`api/issues/${e}/tags`,{fields:r,...o("$top","$skip")},t).get())}async addTagToIssue(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}/tags`,{fields:r},s).post(t))}async getIssueTagById(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}/tags/${t}`,{fields:r},s).get())}async deleteIssueTag(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}/tags/${t}`,{fields:r},s).delete())}}class j extends p{async getIssueTimeTracking(e,t){return this.youtrack.fetch(new l(`api/issues/${e}/timeTracking`,{fields:r},t).get())}async getIssueWorkItems(e,t){return this.youtrack.fetch(new l(`api/issues/${e}/timeTracking/workItems`,{fields:r,...o("$top","$skip")},t).get())}async createIssueWorkItem(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}/timeTracking/workItems`,{fields:r,muteUpdateNotifications:"boolean"},s).post(t))}async getIssueWorkItemById(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}/timeTracking/workItems/${t}`,{fields:r},s).get())}async updateWorkItem(e,t,s,i){return this.youtrack.fetch(new l(`api/issues/${e}/timeTracking/workItems/${t}`,{fields:r,muteUpdateNotifications:"boolean"},i).post(s))}async deleteIssueWorkItem(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}/timeTracking/workItems/${t}`,{fields:r},s).delete())}}class A extends p{async getIssueVcsChanges(e,t){return this.youtrack.fetch(new l(`api/issues/${e}/vcsChanges`,{fields:r,...o("$top","$skip")},t).get())}async linkIssueVcsChange(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}/vcsChanges`,{fields:r,muteUpdateNotifications:"boolean"},s).post(t))}async getIssueVcsChangeById(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}/vcsChanges/${t}`,{fields:r},s).get())}async updateIssueVcsChange(e,t,s,i){return this.youtrack.fetch(new l(`api/issues/${e}/vcsChanges/${t}`,{fields:r,muteUpdateNotifications:"boolean"},i).post(s))}async detachIssueVcsChange(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}/vcsChanges/${t}`,{fields:r},s).delete())}}class U extends p{async getIssueAttachments(e,t){return this.youtrack.fetch(new l(`api/issues/${e}/attachments`,{fields:r,...o("$skip","$top")},t).get())}async createIssueAttachment(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}/attachments`,{fields:r,muteUpdateNotifications:"boolean"},s).postFile(t))}async getIssueAttachmentById(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}/attachments/${t}`,{fields:r},s).get())}async updateIssueAttachment(e,t,s,i){return this.youtrack.fetch(new l(`api/issues/${e}/attachments/${t}`,{fields:r},i).post(s))}async deleteIssueAttachment(e,t,s){return this.youtrack.fetch(new l(`api/issues/${e}/attachments/${t}`,{fields:r},s).delete())}}class C extends p{async getProjects(e){return this.youtrack.fetch(new l("api/admin/projects",{fields:r,...o("$top","$skip")},e).get())}async createProject(e,t){return this.youtrack.fetch(new l("api/admin/projects",{fields:r,template:"string"},t).post(e))}async getProjectById(e,t){return this.youtrack.fetch(new l(`api/admin/projects/${e}`,{fields:r},t).get())}async updateProject(e,t,s){return this.youtrack.fetch(new l(`api/admin/projects/${e}`,{fields:r},s).post(t))}async deleteProject(e,t){return this.youtrack.fetch(new l(`api/admin/projects/${e}`,{fields:r},t).delete())}async getProjectArticles(e,t){return this.youtrack.fetch(new l(`api/admin/projects/${e}/articles`,{fields:r,...o("$top","$skip")},t).get())}async getProjectCustomFields(e,t){return this.youtrack.fetch(new l(`api/admin/projects/${e}/customFields`,{fields:r,...o("$top","$skip")},t).get())}async addCustomFieldToProject(e,t,s){return this.youtrack.fetch(new l(`api/admin/projects/${e}/customFields`,{fields:r},s).post(t))}async getProjectCustomFieldById(e,t,s){return this.youtrack.fetch(new l(`api/admin/projects/${e}/customFields/${t}`,{fields:r},s).get())}async updateProjectCustomField(e,t,s,i){return this.youtrack.fetch(new l(`api/admin/projects/${e}/customFields/${t}`,{fields:r},i).post(s))}async removeProjectCustomField(e,t,s){return this.youtrack.fetch(new l(`api/admin/projects/${e}/customFields/${t}`,{fields:r},s).delete())}async getProjectIssues(e,t){return this.youtrack.fetch(new l(`api/admin/projects/${e}/issues`,{fields:r,...o("$top","$skip","customFields")},t).get())}async createProjectIssue(e,t,s){return this.youtrack.fetch(new l(`api/admin/projects/${e}/issues`,{fields:r,muteUpdateNotifications:"boolean"},s).post(t))}async getProjectIssueById(e,t,s){return this.youtrack.fetch(new l(`api/admin/projects/${e}/issues/${t}`,{fields:r},s).get())}async updateProjectIssue(e,t,s,i){return this.youtrack.fetch(new l(`api/admin/projects/${e}/issues/${t}`,{fields:r,muteUpdateNotifications:"boolean"},i).post(s))}async deleteProjectIssue(e,t,s){return this.youtrack.fetch(new l(`api/admin/projects/${e}/issues/${t}`,{fields:r},s).delete())}async getProjectTimeTrackingSettings(e,t){return this.youtrack.fetch(new l(`api/admin/projects/${e}/timeTrackingSettings`,{fields:r},t).get())}async updateProjectTimeTrackingSettings(e,t,s){return this.youtrack.fetch(new l(`api/admin/projects/${e}/timeTrackingSettings`,{fields:r},s).post(t))}async getProjectWorkItemTypes(e,t){return this.youtrack.fetch(new l(`api/admin/projects/${e}/timeTrackingSettings/workItemTypes`,{fields:r,...o("$top","$skip")},t).get())}async addProjectWorkItemType(e,t,s){return this.youtrack.fetch(new l(`api/admin/projects/${e}/timeTrackingSettings/workItems`,{fields:r,muteUpdateNotifications:"boolean"},s).post(t))}async getProjectWorkItemTypeById(e,t,s){return this.youtrack.fetch(new l(`api/admin/projects/${e}/timeTrackingSettings/workItems/${t}`,{fields:r},s).get())}async deleteProjectWorkItemType(e,t,s){return this.youtrack.fetch(new l(`api/admin/projects/${e}/timeTrackingSettings/workItems/${t}`,{fields:r},s).delete())}}class P extends p{async getBuildBundles(e){return this.youtrack.fetch(new l("api/admin/customFieldSettings/bundles/build",{fields:r,...o("$skip","$top")},e).get())}async createBuildBundle(e,t){return this.youtrack.fetch(new l("api/admin/customFieldSettings/bundles/build",{fields:r},t).post(e))}async getBuildBundleById(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/build/${e}`,{fields:r},t).get())}async updateBuildBundle(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/build/${e}`,{fields:r},s).post(t))}async deleteBuildBundle(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/build/${e}`,{fields:r},t).delete())}async getBuildBundleValues(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/build/${e}/values`,{fields:r,...o("$top","$skip")},t).get())}async addBuildToBundle(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/build/${e}/values`,{fields:r},s).post(t))}async getBuildFromBundle(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/build/${e}/values/${t}`,{fields:r},s).get())}async updateBuildInBundle(e,t,s,i){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/build/${e}/values/${t}`,{fields:r},i).post(s))}async removeBuildFromBundle(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/build/${e}/values/${t}`,{fields:r},s).delete())}}class O extends p{async getEnumBundles(e){return this.youtrack.fetch(new l("api/admin/customFieldSettings/bundles/enum",{fields:r,...o("$skip","$top")},e).get())}async createEnumBundle(e,t){return this.youtrack.fetch(new l("api/admin/customFieldSettings/bundles/enum",{fields:r},t).post(e))}async getEnumBundle(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/enum/${e}`,{fields:r},t).get())}async updateEnumBundle(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/enum/${e}`,{fields:r},s).post(t))}async deleteEnumBundle(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/enum/${e}`,{fields:r},t).delete())}async getEnumBundleValues(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/enum/${e}/values`,{fields:r,...o("$top","$skip")},t).get())}async addEnumBundleValue(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/enum/${e}/values`,{fields:r},s).post(t))}async getEnumBundleValueById(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/enum/${e}/values/${t}`,{fields:r},s).get())}async updateEnumBundleValue(e,t,s,i){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/enum/${e}/values/${t}`,{fields:r},i).post(s))}async deleteEnumBundleValue(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/enum/${e}/values/${t}`,{fields:r},s).delete())}}class x extends p{async getOwnedBundles(e){return this.youtrack.fetch(new l("api/admin/customFieldSettings/bundles/owned",{fields:r,...o("$top","$skip")},e).get())}async createOwnedBundle(e,t){return this.youtrack.fetch(new l("api/admin/customFieldSettings/bundles/owned",{fields:r},t).post(e))}async getOwnedBundleById(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/owned/${e}`,{fields:r},t).get())}async updateOwnedBundle(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/owned/${e}`,{fields:r},s).post(t))}async deleteOwnedBundle(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/owned/${e}`,{fields:r},t).delete())}async getOwnedBundleValues(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/owned/${e}/values`,{fields:r,...o("$top","$skip")},t).get())}async addOwnedToBundle(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/owned/${e}/values`,{fields:r},s).post(t))}async updateOwnedBundleValue(e,t,s,i){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/owned/${e}/values/${t}`,{fields:r},i).post(s))}async removeOwnedFromBundle(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/owned/${e}/values/${t}`,{fields:r},s).delete())}}class W extends p{async getStateBundles(e){return this.youtrack.fetch(new l("api/admin/customFieldSettings/bundles/state",{fields:r,...o("$top","$skip")},e).get())}async createStateBundle(e,t){return this.youtrack.fetch(new l("api/admin/customFieldSettings/bundles/state",{fields:r},t).post(e))}async getStateBundleById(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/state/${e}`,{fields:r},t).get())}async updateStateBundle(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/state/${e}`,{fields:r},s).post(t))}async deleteStateBundle(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/state/${e}`,{fields:r},t).delete())}async getStateBundleValues(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/state/${e}/values`,{fields:r,...o("$top","$skip")},t).get())}async addStateToBundle(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/state/${e}/values`,{fields:r},s).post(t))}async updateStateBundleValue(e,t,s,i){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/state/${e}/values/${t}`,{fields:r},i).post(s))}async removeStateFromBundle(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/state/${e}/values/${t}`,{fields:r},s).delete())}}class N extends p{async getUserBundles(e){return this.youtrack.fetch(new l("api/admin/customFieldSettings/bundles/user",{fields:r,...o("$top","$skip")},e).get())}async createUserBundle(e,t){return this.youtrack.fetch(new l("api/admin/customFieldSettings/bundles/user",{fields:r},t).post(e))}async getUserBundleById(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/user/${e}`,{fields:r},t).get())}async updateUserBundle(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/user/${e}`,{fields:r},s).post(t))}async deleteUserBundle(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/user/${e}`,{fields:r},t).delete())}async getUserBundleAggregatedUsers(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/user/${e}/aggregatedUsers`,{fields:r,...o("$top","$skip")},t).get())}async getUserBundleUserGroups(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/user/${e}/groups`,{fields:r,...o("$top","$skip")},t).get())}async addUserGroupToUserBundle(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/user/${e}/groups`,{fields:r},s).post(t))}async getUserGroupInBundleById(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/user/${e}/groups/${t}`,{fields:r},s).get())}async deleteUserGroupFromUserBundle(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/user/${e}/groups/${t}`,{fields:r},s).delete())}async getUserBundleIndividualUsers(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/user/${e}/individuals`,{fields:r,...o("$top","$skip")},t).get())}async addIndividualUserToUserBundle(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/user/${e}/individuals`,{fields:r},s).post(t))}async getIndividualUserInBundleById(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/user/${e}/individuals/${t}`,{fields:r},s).get())}async removeIndividualUserFromUserBundle(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/user/${e}/individuals/${t}`,{fields:r},s).delete())}}class V extends p{async getVersionBundles(e){return this.youtrack.fetch(new l("api/admin/customFieldSettings/bundles/version",{fields:r,...o("$top","$skip")},e).get())}async createVersionBundle(e,t){return this.youtrack.fetch(new l("api/admin/customFieldSettings/bundles/version",{fields:r},t).post(e))}async getVersionBundleById(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/version/${e}`,{fields:r},t).get())}async updateVersionBundle(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/version/${e}`,{fields:r},s).post(t))}async deleteVersionBundle(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/version/${e}`,{fields:r},t).delete())}async getVersionBundleValues(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/version/${e}/values`,{fields:r,...o("$top","$skip")},t).get())}async addVersionToBundle(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/version/${e}/values`,{fields:r},s).post(t))}async updateVersionBundleValue(e,t,s,i){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/version/${e}/values/${t}`,{fields:r},i).post(s))}async removeVersionFromBundle(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/bundles/version/${e}/values/${t}`,{fields:r},s).delete())}}class L extends p{async getWorkflows(e){return this.youtrack.fetch(new l("api/admin/workflows",{fields:r,...o("$top","$skip"),query:"string"},e).get())}async getWorkflowById(e,t){return this.youtrack.fetch(new l(`api/admin/workflows/${e}`,{fields:r},t).get())}async downloadWorkflow(e){const t=e.replace(/^@/,"");return this.youtrack.fetch({url:`api/admin/workflows/${t}`,method:"GET",headers:{Accept:"application/zip"}})}async uploadWorkflow(e,t){const s=new FormData;return s.append("file",t,`${e}.zip`),this.youtrack.fetch(new l("api/admin/workflows/import",{},{}).postFile(s))}async getWorkflowLogs(e,t,s){return this.youtrack.fetch(new l(`api/admin/workflows/${e}/rules/${t}/logs`,{fields:r,$top:"number",query:"string"},s).get())}async getWorkflowRule(e,t,s){return this.youtrack.fetch(new l(`api/admin/workflows/${e}/rules/${t}`,{fields:r,$top:"number",query:"string"},s).get())}}class E extends p{async getCustomFields(e){return this.youtrack.fetch(new l("api/admin/customFieldSettings/customFields",{fields:r,...o("$skip","$top")},e).get())}async createCustomField(e,t){return this.youtrack.fetch(new l("api/admin/customFieldSettings/customFields",{fields:r},t).post(e))}async getCustomFieldById(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/customFields/${e}`,{fields:r},t).get())}async updateCustomField(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/customFields/${e}`,{fields:r},s).post(t))}async deleteCustomField(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/customFields/${e}`,{fields:r},t).delete())}async getFieldTypes(e){return this.youtrack.fetch(new l("api/admin/customFieldSettings/types",{fields:r,...o("$top","$skip")},e).get())}async getCustomFieldDefaults(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/customFields/${e}/fieldDefaults`,{fields:r},t).get())}async updateCustomFieldDefaults(e,t,s){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/customFields/${e}/fieldDefaults`,{fields:r},s).post(t))}async getCustomFieldInstances(e,t){return this.youtrack.fetch(new l(`api/admin/customFieldSettings/customFields/${e}/instances`,{fields:r,...o("$top","$skip")},t).get())}}class G extends p{async getBackupFileData(e,t){return this.youtrack.fetch(new l(`api/admin/databaseBackup/backups/${e}`,{fields:r},t).get())}}class Q extends p{async getGlobalSettings(e){return this.youtrack.fetch(new l("api/admin/globalSettings",{fields:r},e).get())}async updateGlobalSettings(e,t){return this.youtrack.fetch(new l("api/admin/globalSettings",{fields:r},t).post(e))}async getAppearanceSettings(e){return this.youtrack.fetch(new l("api/admin/globalSettings/appearanceSettings",{fields:r},e).get())}async updateAppearanceSettings(e,t){return this.youtrack.fetch(new l("api/admin/globalSettings/appearanceSettings",{fields:r},t).post(e))}async getLicense(e){return this.youtrack.fetch(new l("api/admin/globalSettings/license",{fields:r},e).get())}async updateLicense(e,t){return this.youtrack.fetch(new l("api/admin/globalSettings/license",{fields:r},t).post(e))}async getLocaleSettings(e){return this.youtrack.fetch(new l("api/admin/globalSettings/localeSettings",{fields:r},e).get())}async updateLocaleSettings(e,t){return this.youtrack.fetch(new l("api/admin/globalSettings/localeSettings",{fields:r},t).post(e))}async getNotificationSettings(e){return this.youtrack.fetch(new l("api/admin/globalSettings/notificationSettings",{fields:r},e).get())}async updateNotificationSettings(e,t){return this.youtrack.fetch(new l("api/admin/globalSettings/notificationSettings",{fields:r},t).post(e))}async getRestSettings(e){return this.youtrack.fetch(new l("api/admin/globalSettings/restSettings",{fields:r},e).get())}async updateRestSettings(e,t){return this.youtrack.fetch(new l("api/admin/globalSettings/restSettings",{fields:r},t).post(e))}async getSystemSettings(e){return this.youtrack.fetch(new l("api/admin/globalSettings/systemSettings",{fields:r},e).get())}async updateSystemSettings(e,t){return this.youtrack.fetch(new l("api/admin/globalSettings/systemSettings",{fields:r},t).post(e))}}class D extends p{async getTelemetryData(e){return this.youtrack.fetch(new l("api/admin/telemetry",{fields:r},e).get())}}class R extends p{async getDatabaseBackupSettings(e){return this.youtrack.fetch(new l("api/admin/databaseBackup/settings",{fields:r},e).get())}async updateDatabaseBackupSettings(e,t){return this.youtrack.fetch(new l("api/admin/databaseBackup/settings",{fields:r},t).post(e))}async getBackupStatus(e){return this.youtrack.fetch(new l("api/admin/databaseBackup/settings/backupStatus",{fields:r},e).get())}}class q extends p{async getGlobalTimeTrackingSettings(e){return this.youtrack.fetch(new l("api/admin/timeTrackingSettings",{fields:r},e).get())}async getWorkItemTypes(e){return this.youtrack.fetch(new l("api/admin/timeTrackingSettings/workItemTypes",{fields:r,...o("$skip","$top")},e).get())}async createWorkItemType(e,t){return this.youtrack.fetch(new l("api/admin/timeTrackingSettings/workItemTypes",{fields:r},t).post(e))}async getWorkItemTypeById(e,t){return this.youtrack.fetch(new l(`api/admin/timeTrackingSettings/workItemTypes/${e}`,{fields:r},t).get())}async updateWorkItemType(e,t,s){return this.youtrack.fetch(new l(`api/admin/timeTrackingSettings/workItemTypes/${e}`,{fields:r},s).post(t))}async deleteWorkItemType(e,t){return this.youtrack.fetch(new l(`api/admin/timeTrackingSettings/workItemTypes/${e}`,{fields:r},t).delete())}async getWorkTimeSettings(e){return this.youtrack.fetch(new l("api/admin/timeTrackingSettings/workTimeSettings",{fields:r},e).get())}async updateWorkTimeSettings(e,t){return this.youtrack.fetch(new l("api/admin/timeTrackingSettings/workTimeSettings",{fields:r},t).post(e))}}class z{static client(e,i){return new z(e,(async({url:n,headers:a,data:r,...c})=>{const u=await fetch(t(e,n),{headers:{Authorization:`Bearer ${i}`,Accept:"application/json","Content-Type":"application/json",...a},...r?{body:s(r)}:{},...c});if(!u.ok)throw new Error(`Error: ${u.status} ${u.statusText}`);return u.headers.get("content-type")?.startsWith("application/json")?u.json():u.blob()}))}static axiosClient(e,s,i){return new z(s,(async({url:n,headers:a,...r})=>{const c={url:t(s,n),headers:{Authorization:`Bearer ${i}`,Accept:"application/json;charset=utf-8","Content-Type":"application/json",...a},...r},u=await e.request(c);return u.headers["content-type"]?.startsWith("application/json")&&"string"==typeof u.data&&""!==u.data?JSON.parse(u.data):u.data}))}static widget(e){return new z("",(t=>{const{url:s,data:i,...n}=t;return e.fetchYouTrack(s.slice(4),{...i?{body:i}:{},...n})}))}constructor(e,t){Object.defineProperty(this,"baseUrl",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"fetch",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"Agiles",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"Activities",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"Articles",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"Commands",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"Groups",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"IssueLinkTypes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"Issues",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"IssueComments",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"IssueLinks",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"IssueTags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"IssueTimeTracking",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"IssueVcsChanges",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"IssueAttachments",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"SavedQueries",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"Search",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"Tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"Users",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"WorkItems",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"Admin",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.Agiles=new f(this),this.Activities=new h(this),this.Articles=new y(this),this.Commands=new g(this),this.Groups=new m(this),this.IssueLinkTypes=new k(this),this.Issues=new $(this),this.IssueComments=new F(this),this.IssueLinks=new B(this),this.IssueTags=new T(this),this.IssueTimeTracking=new j(this),this.IssueVcsChanges=new A(this),this.IssueAttachments=new U(this),this.SavedQueries=new w(this),this.Search=new b(this),this.Tags=new S(this),this.Users=new I(this),this.WorkItems=new v(this),this.Admin={Projects:new C(this),BuildBundles:new P(this),EnumBundles:new O(this),OwnedBundles:new x(this),StateBundles:new W(this),UserBundles:new N(this),VersionBundles:new V(this),CustomFields:new E(this),BackupFiles:new G(this),DatabaseBackupSettings:new R(this),GlobalSettings:new Q(this),TelemetryData:new D(this),GlobalTimeTrackingSettings:new q(this),Workflows:new L(this)}}}export{h as ActivitiesApi,f as AgilesApi,y as ArticlesApi,G as BackupFilesApi,P as BuildBundlesApi,g as CommandsApi,E as CustomFieldsApi,R as DatabaseBackupSettingsApi,O as EnumBundlesApi,Q as GlobalSettingsApi,q as GlobalTimeTrackingSettingsApi,m as GroupsApi,U as IssueAttechmentsApi,F as IssueCommentsApi,k as IssueLinkTypesApi,B as IssueLinksApi,T as IssueTagsApi,j as IssueTimeTrackingApi,A as IssueVcsChangesApi,$ as IssuesApi,x as OwnedBundlesApi,C as ProjectsApi,l as RequestBuilder,w as SavedQueriesApi,b as SearchApi,W as StateBundlesApi,S as TagsApi,D as TelemetryDataApi,N as UserBundlesApi,I as UsersApi,V as VersionBundlesApi,v as WorkItemsApi,L as WorkflowsApi,z as YouTrack,c as buildQueryParam,i as buildUri,n as createParamsMap,d as customField,s as encodeBody,r as fields,e as isObject,t as joinUrl,o as queryParams,u as stringParam};
//# sourceMappingURL=index.mjs.map