{"version":3,"sources":["jsdelivr-header.js","/npm/tfs_api_wrapper@1.1.0/tfsapi.js"],"names":[],"mappings":"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","file":"/npm/tfs_api_wrapper@1.1.0/tfsapi.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/tfs_api_wrapper@1.1.0/tfsapi.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","var Promise = require('bluebird');\r\nvar readFile = Promise.promisify(require(\"fs\").readFile);\r\nvar rp = require('request-promise');\r\n\r\n\r\nfunction TFSAPI(options) {\r\n    this.instance = options.instance;\r\n    this.projectName = options.instance;\r\n    this.collectionName = options.collectionName;\r\n    this.tfsApiVersion = options.tfsApiVersion;\r\n    this.userName = options.userName;\r\n    this.password = options.password;\r\n    this.accessToken = new Buffer(this.userName + ':' + this.password).toString('base64');\r\n\r\n}\r\n\r\nTFSAPI.prototype.getProjects = function() {\r\n\r\n    var uri =\r\n        'http://' + this.instance + '/' +\r\n        this.collectionName +\r\n        '/_apis/projects?api-version=' + this.tfsApiVersion;\r\n\r\n\r\n\r\n    var options = {\r\n        uri: uri,\r\n        headers: {\r\n            'Authorization': 'Basic ' + this.accessToken\r\n        },\r\n        json: true\r\n    };\r\n\r\n    return rp(options);\r\n\r\n};\r\n\r\nTFSAPI.prototype.getProjectDetails = function(projectName) {\r\n\r\n    var uri =\r\n        'http://' + this.instance + '/' +\r\n        this.collectionName +\r\n        '/_apis/projects/' + projectName + '?api-version=' + this.tfsApiVersion;\r\n\r\n    var options = {\r\n        uri: uri,\r\n        headers: {\r\n            'Authorization': 'Basic ' + this.accessToken\r\n        },\r\n        json: true\r\n    };\r\n\r\n    return rp(options);\r\n\r\n};\r\n\r\nTFSAPI.prototype.createWorkItem = function(params) {\r\n\r\n    var uri =\r\n        'http://' + this.instance + '/' +\r\n        this.collectionName +\r\n        '/' + params.projectName +\r\n        '/_apis/wit/workitems/$' + params.workItemTypeName + '?api-version=' + this.tfsApiVersion;\r\n\r\n    var options = {\r\n        method: 'PATCH',\r\n        uri: uri,\r\n        body: [{\r\n            \"op\": \"add\",\r\n            \"path\": \"/fields/System.Title\",\r\n            \"value\": params.title\r\n        }, {\r\n            'op': 'add',\r\n            'path': '/fields/System.IterationPath',\r\n            'value': params.projectName + '\\\\' + params.iterationName\r\n\r\n        }, {\r\n            'op': 'add',\r\n            'path': '/fields/System.Description',\r\n            'value': params.description\r\n        }],\r\n        json: true,\r\n        headers: {\r\n            'Authorization': 'Basic ' + this.accessToken,\r\n            'Content-Type': 'application/json-patch+json'\r\n        }\r\n    };\r\n\r\n    return rp(options)\r\n        .then(function(body) {\r\n            return body.id;\r\n        });\r\n\r\n\r\n};\r\n\r\nTFSAPI.prototype.createLinkedWorkItem = function(params) {\r\n\r\n    var uri =\r\n        'http://' + this.instance + '/' +\r\n        this.collectionName +\r\n        '/' + params.projectName +\r\n        '/_apis/wit/workitems/$' + params.workItemTypeName + '?api-version=' + this.tfsApiVersion;\r\n\r\n    var options = {\r\n        method: 'PATCH',\r\n        uri: uri,\r\n        body: [{\r\n            \"op\": \"add\",\r\n            \"path\": \"/fields/System.Title\",\r\n            \"value\": params.title\r\n        }, {\r\n            'op': 'add',\r\n            'path': '/fields/System.IterationPath',\r\n            'value': params.projectName + '\\\\' + params.iterationName\r\n\r\n        }, {\r\n            'op': 'add',\r\n            'path': '/fields/System.Description',\r\n            'value': params.description\r\n        }, {\r\n            \"op\": \"add\",\r\n            \"path\": \"/relations/-\",\r\n            \"value\": {\r\n                'rel': 'System.LinkTypes.Hierarchy-Reverse',\r\n                'url': 'http://' + this.instance + '/_apis/wit/workitems/' + params.parentWorkItemId\r\n            }\r\n        }],\r\n        json: true,\r\n        headers: {\r\n            'Authorization': 'Basic ' + this.accessToken,\r\n            'Content-Type': 'application/json-patch+json'\r\n        }\r\n    };\r\n\r\n    return rp(options);\r\n\r\n};\r\n\r\nTFSAPI.prototype.attacheFileOnWorkItem = function(params) {\r\n\r\n    return readFile(params.fullFileAddress)\r\n        .then(function(content) {\r\n\r\n            return uploadFile.bind(this)(params, content);\r\n        }.bind(this))\r\n        .then(function attacheOnWorkItem(uploadedFileInfo) {\r\n            return linkUploadedFileOnWorkItem.bind(this)(JSON.parse(uploadedFileInfo), params.wrokItemId);\r\n        }.bind(this));\r\n\r\n\r\n\r\n};\r\n\r\n\r\nfunction uploadFile(params, content) {\r\n    var uri =\r\n        'http://' + this.instance + '/' +\r\n        this.collectionName +\r\n        '/_apis/wit/attachments?filename=' + params.fileName + '&api-version=' + this.tfsApiVersion;\r\n\r\n\r\n    var options = {\r\n        method: 'POST',\r\n        uri: uri,\r\n        body: content,\r\n        headers: {\r\n            'Authorization': 'Basic ' + this.accessToken,\r\n            'Content-Type': 'application/octet-stream'\r\n        }\r\n    };\r\n\r\n    return rp(options);\r\n\r\n}\r\n\r\nfunction linkUploadedFileOnWorkItem(uploadedFileInfo, workItemId) {\r\n\r\n    var uri =\r\n        'http://' + this.instance + '/' +\r\n        this.collectionName +\r\n        '/_apis/wit/workitems/' + workItemId + '?api-version=' + this.tfsApiVersion;\r\n\r\n\r\n    var options = {\r\n        method: 'PATCH',\r\n        uri: uri,\r\n        body: [{\r\n            \"op\": \"add\",\r\n            \"path\": \"/relations/-\",\r\n            \"value\": {\r\n                \"rel\": \"AttachedFile\",\r\n                \"url\": uploadedFileInfo.url,\r\n                \"attributes\": {\r\n                    \"comment\": \"uploaded\"\r\n                }\r\n            }\r\n        }],\r\n        json: true,\r\n        headers: {\r\n            'Authorization': 'Basic ' + this.accessToken,\r\n            'Content-Type': 'application/json-patch+json'\r\n        }\r\n    };\r\n\r\n    return rp(options);\r\n\r\n}\r\n\r\n\r\nmodule.exports = function(options) {\r\n    return new TFSAPI(options);\r\n};\r\n"]}