docusign-admin
Advanced tools
Comparing version 2.2.0 to 2.3.0-rc1
@@ -6,2 +6,29 @@ # DocuSign Node Client Changelog | ||
## [v2.3.0-rc1] - Admin API v2.1-1.3.0 - 2024-04-23 | ||
### Changed | ||
**Security Updates** | ||
- Updated HTTP Client: Due to identified security vulnerabilities in Superagent proxy version 3.0.0, we have transitioned from using Superagent to the more secure Axios HTTP client. This update helps in safeguarding your interactions by patching potential security gaps. | ||
**New Features** | ||
- Proxy Support for HTTP Requests: We've introduced the ability to make HTTP requests through a proxy. This enhancement is particularly useful for users operating within corporate or restricted networks. | ||
- JWT Token Request Functionality: The new sendJWTTokenRequest method allows you to obtain authentication tokens without exposing your privateKey. This method is designed to enhance security in your authentication processes. | ||
**Changes to Existing Features** | ||
- Updated Callback Response Structure: We have made changes to the response structure for callbacks. If you are using callback functions in your integration, please note the updated response object attributes: | ||
> statusCode | ||
header | ||
body | ||
**Migration Guide** | ||
- For those using callback functions, please adjust your implementation to handle the new response structure as detailed above. | ||
## [v2.3.0] - Admin API v2.1-1.3.0 - 2023-08-02 | ||
### Changed | ||
- Added support for version v2.1-1.3.0 of the DocuSign Admin API. | ||
- Updated the SDK release version. | ||
New endpoints: | ||
* `GET /v1/organizations/{organizationId}/assetGroups/accounts` Get asset group accounts for an organization. | ||
* `POST /v1/organizations/{organizationId}/assetGroups/accountClone` Clone an existing DocuSign account. | ||
* `GET /v1/organizations/{organizationId}/assetGroups/accountClones` Gets all asset group account clones for an organization. | ||
* `GET /v1/organizations/{organizationId}/assetGroups/{assetGroupId}/accountClones/{assetGroupWorkId}` Gets information about a single cloned account. | ||
## [v2.2.0] - Admin API v2.1-1.2.0 - 2023-05-10 | ||
@@ -8,0 +35,0 @@ ### Changed |
{ | ||
"name": "docusign-admin", | ||
"version": "2.2.0", | ||
"version": "2.3.0-rc1", | ||
"description": "The DocuSign Admin API enables you to automate user management with your existing systems while ensuring governance and compliance.", | ||
@@ -53,8 +53,9 @@ "license": "MIT", | ||
}, | ||
"dependencies": { | ||
"dependencies": { | ||
"axios": "^1.6.8", | ||
"@devhigley/parse-proxy":"^1.0.3", | ||
"csv-stringify": "^1.0.0", | ||
"jsonwebtoken": "^9.0.0", | ||
"passport-oauth2": "^1.6.1", | ||
"safe-buffer": "^5.1.2", | ||
"superagent": "3.8.2" | ||
"jsonwebtoken": "^9.0.0", | ||
"passport-oauth2": "^1.6.1", | ||
"safe-buffer": "^5.1.2" | ||
}, | ||
@@ -61,0 +62,0 @@ "devDependencies": { |
@@ -46,3 +46,3 @@ # The Official DocuSign Admin Node Client | ||
- Superagent 3.8.2 | ||
- axios 1.6.8 | ||
@@ -49,0 +49,0 @@ ### Optional: |
@@ -115,3 +115,3 @@ /** | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -171,3 +171,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -231,3 +231,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -290,3 +290,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -293,0 +293,0 @@ var accepts = ['application/json']; |
@@ -100,3 +100,3 @@ /** | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -159,3 +159,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -219,3 +219,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -279,3 +279,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -339,3 +339,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -392,3 +392,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -452,3 +452,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -505,3 +505,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -508,0 +508,0 @@ var accepts = ['application/json']; |
@@ -101,3 +101,3 @@ /** | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['multipart/form-data']; | ||
@@ -161,3 +161,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['multipart/form-data']; | ||
@@ -221,3 +221,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['multipart/form-data']; | ||
@@ -274,3 +274,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -341,3 +341,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['multipart/form-data']; | ||
@@ -408,3 +408,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['multipart/form-data']; | ||
@@ -468,3 +468,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['multipart/form-data']; | ||
@@ -528,3 +528,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -588,3 +588,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -648,3 +648,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -701,3 +701,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -761,3 +761,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -821,3 +821,3 @@ var accepts = ['text/csv']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -874,3 +874,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -877,0 +877,0 @@ var accepts = ['application/json']; |
@@ -107,3 +107,3 @@ /** | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -180,3 +180,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -246,3 +246,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -313,3 +313,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -392,3 +392,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -464,3 +464,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -537,3 +537,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -540,0 +540,0 @@ var accepts = ['application/json']; |
@@ -94,3 +94,3 @@ /** | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -97,0 +97,0 @@ var accepts = ['application/json']; |
@@ -100,3 +100,3 @@ /** | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -103,0 +103,0 @@ var accepts = ['application/json']; |
@@ -114,3 +114,3 @@ /** | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -180,3 +180,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -240,3 +240,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -307,3 +307,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -377,3 +377,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -443,3 +443,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -446,0 +446,0 @@ var accepts = ['application/json']; |
@@ -94,3 +94,3 @@ /** | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -97,0 +97,0 @@ var accepts = ['application/json']; |
@@ -114,3 +114,3 @@ /** | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -180,3 +180,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -246,3 +246,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -312,3 +312,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -371,3 +371,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -437,3 +437,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -507,3 +507,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -572,3 +572,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -635,3 +635,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -716,3 +716,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -775,3 +775,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -834,3 +834,3 @@ var accepts = ['application/json']; | ||
var authNames = []; | ||
var authNames = ['docusignAccessCode']; | ||
var contentTypes = ['application/json']; | ||
@@ -837,0 +837,0 @@ var accepts = ['application/json']; |
@@ -12,9 +12,13 @@ /** | ||
(function(root, factory) { | ||
if (typeof define === 'function' && define.amd) { | ||
(function (root, factory) { | ||
if (typeof define === "function" && define.amd) { | ||
// AMD. Register as an anonymous module. | ||
define(['superagent'], factory); | ||
} else if (typeof module === 'object' && module.exports) { | ||
define(["axios"], factory); | ||
define(["@devhigley/parse-proxy"], factory); | ||
} else if (typeof module === "object" && module.exports) { | ||
// CommonJS-like environments that support module.exports, like Node. | ||
module.exports = factory(require('superagent')); | ||
module.exports = factory( | ||
require("axios"), | ||
require("@devhigley/parse-proxy") | ||
); | ||
} else { | ||
@@ -25,8 +29,20 @@ // Browser globals (root is window) | ||
} | ||
root.Docusign.ApiClient = factory(root.superagent, optsOrCallback); | ||
root.Docusign.ApiClient = factory(root.axios, opts); | ||
} | ||
}(this, function(superagent, optsOrCallback) { | ||
'use strict'; | ||
})(this, function (axios, parseProxy, optsOrCallback) { | ||
"use strict"; | ||
var removeNulls = function(obj) { | ||
/* | ||
* The default HTTP headers to be included for all API calls. | ||
* @type {Array.<String>} | ||
* @default {} | ||
* */ | ||
var defaultHeaders = { | ||
"X-DocuSign-SDK": "Node", | ||
"Node-Ver": process.version, | ||
"User-Agent": `Swagger-Codegen/node/${process.version}`, | ||
}; | ||
var removeNulls = function (obj) { | ||
var isArray = obj instanceof Array; | ||
@@ -41,4 +57,11 @@ for (var k in obj) { | ||
var generateAndSignJWTAssertion = function(clientId, scopes, privateKey, oAuthBasePath, expiresIn, userId) { | ||
if(typeof expiresIn !== 'number' || expiresIn < 0) | ||
var generateAndSignJWTAssertion = function ( | ||
clientId, | ||
scopes, | ||
privateKey, | ||
oAuthBasePath, | ||
expiresIn, | ||
userId | ||
) { | ||
if (typeof expiresIn !== "number" || expiresIn < 0) | ||
throw new Error("Invalid expires in param detected"); | ||
@@ -50,4 +73,4 @@ | ||
later = now + expiresIn, | ||
jwt = require('jsonwebtoken'), | ||
parsedScopes = Array.isArray(scopes) ? scopes.join(' ') : scopes; | ||
jwt = require("jsonwebtoken"), | ||
parsedScopes = Array.isArray(scopes) ? scopes.join(" ") : scopes; | ||
@@ -63,3 +86,3 @@ var jwtPayload = { | ||
/** optional parameters **/ | ||
if(userId) { | ||
if (userId) { | ||
jwtPayload.sub = userId; | ||
@@ -70,40 +93,80 @@ } | ||
var sendJWTTokenRequest = function (assertion, oAuthBasePath, callback) { | ||
var request = superagent.post("https://" + oAuthBasePath + "/oauth/token") | ||
.timeout(exports.prototype.timeout) | ||
.set('Content-Type', 'application/x-www-form-urlencoded') | ||
.set('Cache-Control', 'no-store') | ||
.set('Pragma', 'no-cache') | ||
.send({ | ||
'assertion': assertion, | ||
'grant_type': 'urn:ietf:params:oauth:grant-type:jwt-bearer' | ||
var sendJWTTokenRequest = function ( | ||
assertion, | ||
oAuthBasePath, | ||
proxy, | ||
callback | ||
) { | ||
const requestConfig = { | ||
baseURL: `https://${oAuthBasePath}`, | ||
method: "post", | ||
url: "/oauth/token", | ||
headers: { | ||
...defaultHeaders, | ||
"Content-Type": "application/x-www-form-urlencoded", | ||
"Cache-Control": "no-store", | ||
Pragma: "no-cache", | ||
}, | ||
timeout: exports.prototype.timeout, | ||
data: { | ||
assertion: assertion, | ||
grant_type: "urn:ietf:params:oauth:grant-type:jwt-bearer", | ||
}, | ||
}; | ||
if (proxy) { | ||
const proxyObj = parseProxy(proxy); | ||
requestConfig.proxy = proxyObj[0]; | ||
} | ||
const oauthRequest = axios.request(requestConfig); | ||
if (!callback) { | ||
return new Promise(function (resolve, reject) { | ||
oauthRequest | ||
.then((response) => { | ||
const stdResponse = normalizeResponseFormat(response); | ||
resolve(stdResponse); | ||
}) | ||
.catch((err) => { | ||
const stdErrResponse = normalizeResponseFormat(err.response); | ||
reject(stdErrResponse); | ||
}); | ||
}); | ||
if (!callback){ | ||
return new Promise(function(resolve, reject){ | ||
request.end(function(err, data){ | ||
if (err){ | ||
reject(err); | ||
} else { | ||
resolve(data); | ||
} | ||
} else { | ||
oauthRequest | ||
.then((response) => { | ||
const stdResponse = normalizeResponseFormat(response); | ||
callback(null, stdResponse.body, stdResponse); | ||
}) | ||
}) | ||
} else { | ||
request.end(callback); | ||
.catch((err) => { | ||
const stdErrResponse = normalizeResponseFormat(err.response); | ||
callback(stdErrResponse); | ||
}); | ||
} | ||
}; | ||
const normalizeResponseFormat = (res) => { | ||
if(res){ | ||
const { data: body, headers: header, status: statusCode} = res; | ||
return { | ||
statusCode, | ||
header, | ||
body | ||
} | ||
} | ||
return null; | ||
}; | ||
var deriveOAuthBasePathFromRestBasePath = function(basePath) { | ||
var deriveOAuthBasePathFromRestBasePath = function (basePath) { | ||
if (basePath == null) { | ||
return exports.prototype.OAuth.BasePath.PRODUCTION; | ||
} | ||
if (basePath.includes('https://api-s')) { | ||
if (basePath.includes("https://api-s")) { | ||
return exports.prototype.OAuth.BasePath.STAGE; | ||
} | ||
if (basePath.includes('https://api-d')) { | ||
if (basePath.includes("https://api-d")) { | ||
return exports.prototype.OAuth.BasePath.DEMO; | ||
} | ||
if (basePath.includes('https://api.')) { | ||
if (basePath.includes("https://api.")) { | ||
return exports.prototype.OAuth.BasePath.PRODUCTION; | ||
@@ -126,10 +189,12 @@ } | ||
*/ | ||
var exports = function(optsOrCallback) { | ||
var exports = function (optsOrCallback) { | ||
var defaults = { | ||
basePath: 'https://www.docusign.net/restapi'.replace(/\/+$/, ''), | ||
oAuthBasePath: require('./OAuth').BasePath.PRODUCTION, | ||
basePath: "https://www.docusign.net/restapi".replace(/\/+$/, ""), | ||
oAuthBasePath: require("./OAuth").BasePath.PRODUCTION, | ||
}; | ||
optsOrCallback = Object.assign({},defaults, optsOrCallback); | ||
optsOrCallback.oAuthBasePath = deriveOAuthBasePathFromRestBasePath(optsOrCallback.basePath); | ||
optsOrCallback = Object.assign({}, defaults, optsOrCallback); | ||
optsOrCallback.oAuthBasePath = deriveOAuthBasePathFromRestBasePath( | ||
optsOrCallback.basePath | ||
); | ||
@@ -155,10 +220,4 @@ /** | ||
this.authentications = { | ||
'docusignAccessCode': {type: 'oauth2'} | ||
docusignAccessCode: { type: "oauth2" }, | ||
}; | ||
/** | ||
* The default HTTP headers to be included for all API calls. | ||
* @type {Array.<String>} | ||
* @default {} | ||
*/ | ||
this.defaultHeaders = { "X-DocuSign-SDK": "Node" }; | ||
@@ -173,2 +232,10 @@ /** | ||
/** | ||
* The full URI for the desired proxy. | ||
* A complete list of supported proxies can be found here: https://www.npmjs.com/package/proxy-agent. | ||
* @type {String} | ||
* @default | ||
*/ | ||
this.proxy = optsOrCallback.proxy; | ||
/** | ||
* If set to false an additional timestamp parameter is added to all API GET calls to | ||
@@ -207,3 +274,5 @@ * prevent browser caching | ||
*/ | ||
exports.prototype.setOAuthBasePath = function setOAuthBasePath(oAuthBasePath) { | ||
exports.prototype.setOAuthBasePath = function setOAuthBasePath( | ||
oAuthBasePath | ||
) { | ||
this.oAuthBasePath = oAuthBasePath; | ||
@@ -215,4 +284,7 @@ }; | ||
*/ | ||
exports.prototype.addDefaultHeader = function addDefaultHeader(header, value) { | ||
this.defaultHeaders[header] = value; | ||
exports.prototype.addDefaultHeader = function addDefaultHeader( | ||
header, | ||
value | ||
) { | ||
defaultHeaders[header] = value; | ||
}; | ||
@@ -225,5 +297,5 @@ | ||
*/ | ||
exports.prototype.paramToString = function(param) { | ||
exports.prototype.paramToString = function (param) { | ||
if (param == undefined || param == null) { | ||
return ''; | ||
return ""; | ||
} | ||
@@ -243,9 +315,9 @@ if (param instanceof Date) { | ||
*/ | ||
exports.prototype.buildUrl = function(path, pathParams) { | ||
exports.prototype.buildUrl = function (path, pathParams) { | ||
if (!path.match(/^\//)) { | ||
path = '/' + path; | ||
path = "/" + path; | ||
} | ||
var url = this.basePath + path; | ||
var _this = this; | ||
url = url.replace(/\{([\w-]+)\}/g, function(fullMatch, key) { | ||
url = url.replace(/\{([\w-]+)\}/g, function (fullMatch, key) { | ||
var value; | ||
@@ -273,4 +345,6 @@ if (pathParams.hasOwnProperty(key)) { | ||
*/ | ||
exports.prototype.isJsonMime = function(contentType) { | ||
return Boolean(contentType != null && contentType.match(/^application\/json(;.*)?$/i)); | ||
exports.prototype.isJsonMime = function (contentType) { | ||
return Boolean( | ||
contentType != null && contentType.match(/^application\/json(;.*)?$/i) | ||
); | ||
}; | ||
@@ -283,3 +357,3 @@ | ||
*/ | ||
exports.prototype.jsonPreferredMime = function(contentTypes) { | ||
exports.prototype.jsonPreferredMime = function (contentTypes) { | ||
for (var i = 0; i < contentTypes.length; i++) { | ||
@@ -298,20 +372,22 @@ if (this.isJsonMime(contentTypes[i])) { | ||
*/ | ||
exports.prototype.isFileParam = function(param) { | ||
exports.prototype.isFileParam = function (param) { | ||
// fs.ReadStream in Node.js (but not in runtime like browserify) | ||
if (typeof window === 'undefined' && | ||
typeof require === 'function' && | ||
require('fs') && | ||
param instanceof require('fs').ReadStream) { | ||
if ( | ||
typeof window === "undefined" && | ||
typeof require === "function" && | ||
require("fs") && | ||
param instanceof require("fs").ReadStream | ||
) { | ||
return true; | ||
} | ||
// Buffer in Node.js | ||
if (typeof Buffer === 'function' && param instanceof Buffer) { | ||
if (typeof Buffer === "function" && param instanceof Buffer) { | ||
return true; | ||
} | ||
// Blob in browser | ||
if (typeof Blob === 'function' && param instanceof Blob) { | ||
if (typeof Blob === "function" && param instanceof Blob) { | ||
return true; | ||
} | ||
// File in browser (it seems File object is also instance of Blob, but keep this for safe) | ||
if (typeof File === 'function' && param instanceof File) { | ||
if (typeof File === "function" && param instanceof File) { | ||
return true; | ||
@@ -332,6 +408,10 @@ } | ||
*/ | ||
exports.prototype.normalizeParams = function(params) { | ||
exports.prototype.normalizeParams = function (params) { | ||
var newParams = {}; | ||
for (var key in params) { | ||
if (params.hasOwnProperty(key) && params[key] != undefined && params[key] != null) { | ||
if ( | ||
params.hasOwnProperty(key) && | ||
params[key] != undefined && | ||
params[key] != null | ||
) { | ||
var value = params[key]; | ||
@@ -358,3 +438,3 @@ if (this.isFileParam(value) || Array.isArray(value)) { | ||
*/ | ||
CSV: ',', | ||
CSV: ",", | ||
/** | ||
@@ -364,3 +444,3 @@ * Space-separated values. Value: <code>ssv</code> | ||
*/ | ||
SSV: ' ', | ||
SSV: " ", | ||
/** | ||
@@ -370,3 +450,3 @@ * Tab-separated values. Value: <code>tsv</code> | ||
*/ | ||
TSV: '\t', | ||
TSV: "\t", | ||
/** | ||
@@ -376,3 +456,3 @@ * Pipe(|)-separated values. Value: <code>pipes</code> | ||
*/ | ||
PIPES: '|', | ||
PIPES: "|", | ||
/** | ||
@@ -382,3 +462,3 @@ * Native array. Value: <code>multi</code> | ||
*/ | ||
MULTI: 'multi' | ||
MULTI: "multi", | ||
}; | ||
@@ -393,3 +473,6 @@ | ||
*/ | ||
exports.prototype.buildCollectionParam = function buildCollectionParam(param, collectionFormat) { | ||
exports.prototype.buildCollectionParam = function buildCollectionParam( | ||
param, | ||
collectionFormat | ||
) { | ||
if (param == null) { | ||
@@ -399,15 +482,15 @@ return null; | ||
switch (collectionFormat) { | ||
case 'csv': | ||
return param.map(this.paramToString).join(','); | ||
case 'ssv': | ||
return param.map(this.paramToString).join(' '); | ||
case 'tsv': | ||
return param.map(this.paramToString).join('\t'); | ||
case 'pipes': | ||
return param.map(this.paramToString).join('|'); | ||
case 'multi': | ||
// return the array directly as SuperAgent will handle it as expected | ||
case "csv": | ||
return param.map(this.paramToString).join(","); | ||
case "ssv": | ||
return param.map(this.paramToString).join(" "); | ||
case "tsv": | ||
return param.map(this.paramToString).join("\t"); | ||
case "pipes": | ||
return param.map(this.paramToString).join("|"); | ||
case "multi": | ||
// return the array directly as axios will handle it as expected | ||
return param.map(this.paramToString); | ||
default: | ||
throw new Error('Unknown collection format: ' + collectionFormat); | ||
throw new Error("Unknown collection format: " + collectionFormat); | ||
} | ||
@@ -418,37 +501,46 @@ }; | ||
* Applies authentication headers to the request. | ||
* @param {Object} request The request object created by a <code>superagent()</code> call. | ||
* @param {Object} requestConfig The request configuration object used for Axios Request. | ||
* @param {Array.<String>} authNames An array of authentication method names. | ||
*/ | ||
exports.prototype.applyAuthToRequest = function(request, authNames) { | ||
exports.prototype.applyAuthToRequest = function (requestConfig, authNames) { | ||
var _this = this; | ||
authNames.forEach(function(authName) { | ||
authNames.forEach(function (authName) { | ||
var auth = _this.authentications[authName]; | ||
switch (auth.type) { | ||
case 'basic': | ||
case "basic": | ||
if (auth.username || auth.password) { | ||
request.auth(auth.username || '', auth.password || ''); | ||
requestConfig.auth = { | ||
username: auth.username || "", | ||
password: auth.password || "", | ||
}; | ||
} | ||
break; | ||
case 'apiKey': | ||
case "apiKey": | ||
if (auth.apiKey) { | ||
var data = {}; | ||
if (auth.apiKeyPrefix) { | ||
data[auth.name] = auth.apiKeyPrefix + ' ' + auth.apiKey; | ||
data[auth.name] = auth.apiKeyPrefix + " " + auth.apiKey; | ||
} else { | ||
data[auth.name] = auth.apiKey; | ||
} | ||
if (auth['in'] === 'header') { | ||
request.set(data); | ||
if (auth["in"] === "header") { | ||
requestConfig.headers = { | ||
...requestConfig.headers, | ||
...data, | ||
}; | ||
} else { | ||
request.query(data); | ||
requestConfig.params = { ...requestConfig.params, ...data }; | ||
} | ||
} | ||
break; | ||
case 'oauth2': | ||
case "oauth2": | ||
if (auth.accessToken) { | ||
request.set({'Authorization': 'Bearer ' + auth.accessToken}); | ||
requestConfig.headers = { | ||
...requestConfig.headers, | ||
Authorization: "Bearer " + auth.accessToken, | ||
}; | ||
} | ||
break; | ||
default: | ||
throw new Error('Unknown authentication type: ' + auth.type); | ||
throw new Error("Unknown authentication type: " + auth.type); | ||
} | ||
@@ -460,3 +552,3 @@ }); | ||
* Deserializes an HTTP response body into a value of the specified type. | ||
* @param {Object} response A SuperAgent response object. | ||
* @param {Object} response An Axios response object. | ||
* @param {(String|Array.<String>|Object.<String, Object>|Function)} returnType The type to return. Pass a string for simple types | ||
@@ -472,9 +564,5 @@ * or the constructor function for a complex type. Pass an array containing the type name to return an array of that type. To | ||
} | ||
// Rely on SuperAgent for parsing response body. | ||
// See http://visionmedia.github.io/superagent/#parsing-response-bodies | ||
var data = response.body || (response.res && response.res.data); | ||
if (data == null || !Object.keys(data).length) { | ||
// SuperAgent does not always produce a body; use the unparsed response as a fallback | ||
data = response.text; | ||
} | ||
// Rely on Axios Response Schema. | ||
// See https://axios-http.com/docs/res_schema | ||
var data = response.data; | ||
return exports.convertToType(data, returnType); | ||
@@ -506,67 +594,105 @@ }; | ||
* @param {module:ApiClient~callApiCallback} callback The callback function. If this is left undefined, this method will return a promise instead. | ||
* @returns {Object} The SuperAgent request object if a callback is specified, else {Promise} A {@link https://www.promisejs.org/|Promise} object. | ||
* @returns {Object} The Axios request object if a callback is specified, else {Promise} A {@link https://www.promisejs.org/|Promise} object. | ||
*/ | ||
exports.prototype.callApi = function callApi(path, httpMethod, pathParams, | ||
queryParams, headerParams, formParams, bodyParam, authNames, contentTypes, accepts, | ||
returnType, callback) { | ||
exports.prototype.callApi = function callApi( | ||
path, | ||
httpMethod, | ||
pathParams, | ||
queryParams, | ||
headerParams, | ||
formParams, | ||
bodyParam, | ||
authNames, | ||
contentTypes, | ||
accepts, | ||
returnType, | ||
callback | ||
) { | ||
const conf = require("./Configuration"); | ||
var _this = this; | ||
var url = this.buildUrl(path, pathParams); | ||
var request = superagent(httpMethod, url); | ||
const requestConfig = { | ||
method: httpMethod, | ||
url, | ||
timeout: this.timeout, | ||
paramsSerializer: { | ||
indexes: null, | ||
}, | ||
}; | ||
if (this.proxy) { | ||
const proxyObj = parseProxy(this.proxy); | ||
requestConfig.proxy = proxyObj[0]; | ||
} | ||
var _formParams = this.normalizeParams(formParams); | ||
var body = | ||
httpMethod.toUpperCase() === "GET" && !bodyParam | ||
? undefined | ||
: bodyParam || {}; | ||
// apply authentications | ||
this.applyAuthToRequest(request, authNames); | ||
this.applyAuthToRequest(requestConfig, authNames); | ||
// set query parameters | ||
if (httpMethod.toUpperCase() === 'GET' && this.cache === false) { | ||
queryParams['_'] = new Date().getTime(); | ||
if (httpMethod.toUpperCase() === "GET" && this.cache === false) { | ||
queryParams["_"] = new Date().getTime(); | ||
} | ||
request.query(this.normalizeParams(queryParams)); | ||
const _queryParams = this.normalizeParams(queryParams); | ||
requestConfig.params = { ...requestConfig.params, ..._queryParams }; | ||
// set header parameters | ||
request.set(this.defaultHeaders).set(this.normalizeParams(headerParams)); | ||
const _headerParams = this.normalizeParams(headerParams); | ||
requestConfig.headers = { | ||
...requestConfig.headers, | ||
...defaultHeaders, | ||
..._headerParams, | ||
}; | ||
// set request timeout | ||
request.timeout(this.timeout); | ||
requestConfig.timeout = this.timeout; | ||
var contentType = this.jsonPreferredMime(contentTypes); | ||
if (contentType) { | ||
// Issue with superagent and multipart/form-data (https://github.com/visionmedia/superagent/issues/746) | ||
if(contentType != 'multipart/form-data') { | ||
request.type(contentType); | ||
if (contentType != "multipart/form-data") { | ||
requestConfig.headers = { | ||
...requestConfig.headers, | ||
"Content-Type": contentType, | ||
}; | ||
} | ||
} else if (!request.header['Content-Type']) { | ||
request.type('application/json'); | ||
} else if (!requestConfig.headers["Content-Type"]) { | ||
requestConfig.headers = { | ||
...requestConfig.headers, | ||
"Content-Type": "application/json", | ||
}; | ||
} | ||
if (contentType === 'application/x-www-form-urlencoded') { | ||
request.send(this.normalizeParams(formParams)); | ||
} else if (contentType == 'multipart/form-data') { | ||
if (contentType === "application/x-www-form-urlencoded") { | ||
//automatic serialization happens with axios. ref: https://axios-http.com/docs/urlencoded | ||
requestConfig.data = this.normalizeParams(formParams); | ||
} else if (contentType == "multipart/form-data") { | ||
if (this.hasBufferFormParam(_formParams)) { | ||
request.set({ | ||
'Content-Disposition': 'form-data; name="file"; filename="file.csv"' | ||
}); | ||
request.set({ | ||
'Content-Type': 'application/octet-stream' | ||
}); | ||
var formAttachmentKey = Object.keys(formParams).find(function(key) { | ||
requestConfig.headers = { | ||
...requestConfig.headers, | ||
"Content-Disposition": 'form-data; name="file"; filename="file.csv"', | ||
"Content-Type": "application/octet-stream", | ||
}; | ||
var formAttachmentKey = Object.keys(formParams).find(function (key) { | ||
return _this.isFileParam(_formParams[key]); | ||
}); | ||
request.send(removeNulls(formParams[formAttachmentKey])); | ||
requestConfig.data = removeNulls(formParams[formAttachmentKey]); | ||
} else { | ||
//automatic serialization for formData is supported in axios as of 0.27.0. ref: https://axios-http.com/docs/multipart | ||
requestConfig.headers = { | ||
...requestConfig.headers, | ||
"Content-Type": "multipart/form-data", | ||
}; | ||
var _formParams = this.normalizeParams(formParams); | ||
for (var key in _formParams) { | ||
if (_formParams.hasOwnProperty(key)) { | ||
if (this.isFileParam(_formParams[key])) { | ||
// file field | ||
request.attach(key, _formParams[key]); | ||
} else { | ||
request.field(key, _formParams[key]); | ||
} | ||
} | ||
} | ||
requestConfig.data = _formParams; | ||
} | ||
} else if (bodyParam) { | ||
request.send(removeNulls(bodyParam)); | ||
} else if (body) { | ||
requestConfig.data = removeNulls(body); | ||
} | ||
@@ -576,56 +702,63 @@ | ||
if (accept) { | ||
request.accept(accept); | ||
requestConfig.headers = { ...requestConfig.headers, Accept: accept }; | ||
} | ||
var data; | ||
if (request.header['Accept'] === 'application/pdf') { | ||
request.buffer(); | ||
data = ''; | ||
} else { | ||
data = ''; | ||
if (requestConfig.headers["Accept"] === "application/pdf") { | ||
requestConfig.responseType = "stream"; | ||
} | ||
if (request.header['Accept'] === 'application/pdf') { | ||
request.parse( function (res, fn) { | ||
res.data = ''; | ||
res.setEncoding('binary'); | ||
res.on( 'data', function (chunk) { res.data += chunk; } ); | ||
res.on( 'end', function () { | ||
try { | ||
fn( null, res.data ); | ||
} catch ( err ) { | ||
fn( err ); | ||
} | ||
}); | ||
}) | ||
} | ||
const request = axios.request(requestConfig); | ||
var data = null; | ||
if (!callback) { | ||
return new Promise(function(resolve, reject){ | ||
request.end(function(error, data) { | ||
if (error) { | ||
reject(error); | ||
} else { | ||
return new Promise(function (resolve, reject) { | ||
request | ||
.then((response) => { | ||
try { | ||
data = _this.deserialize(data, returnType); | ||
resolve(data); | ||
} catch(error) { | ||
reject(error); | ||
let streamData; | ||
if (requestConfig.headers["Accept"] === "application/pdf") { | ||
response.data.on("data", (chunks) => { | ||
streamData += chunks; | ||
}); | ||
response.data.on("end", () => { | ||
resolve(streamData); | ||
}); | ||
} else { | ||
data = _this.deserialize(response, returnType); | ||
resolve(data); | ||
} | ||
} catch (err) { | ||
reject(err); | ||
} | ||
} | ||
}) | ||
}) | ||
.catch((err) => { | ||
const stdErrResponse = normalizeResponseFormat(err.response); | ||
reject(stdErrResponse); | ||
}); | ||
}); | ||
} else { | ||
request.end(function(error, response) { | ||
if (!error) { | ||
request | ||
.then((response) => { | ||
try { | ||
data = _this.deserialize(response, returnType); | ||
let streamData; | ||
const stdResponse = normalizeResponseFormat(response); | ||
if (requestConfig.headers["Accept"] === "application/pdf") { | ||
response.data.on("data", (chunks) => { | ||
streamData += chunks; | ||
}); | ||
response.data.on("end", () => { | ||
callback(null, streamData, stdResponse); | ||
}); | ||
} else { | ||
data = _this.deserialize(response, returnType); | ||
callback(null, data, stdResponse); | ||
} | ||
} catch (err) { | ||
error = err; | ||
callback(err); | ||
} | ||
} | ||
callback(error, data, response); | ||
}); | ||
}) | ||
.catch((err) => { | ||
const stdErrResponse = normalizeResponseFormat(err.response); | ||
callback(stdErrResponse); | ||
}); | ||
return request; | ||
@@ -640,4 +773,4 @@ } | ||
*/ | ||
exports.parseDate = function(str) { | ||
return new Date(str.replace(/T/i, ' ')); | ||
exports.parseDate = function (str) { | ||
return new Date(str.replace(/T/i, " ")); | ||
}; | ||
@@ -654,13 +787,13 @@ | ||
*/ | ||
exports.convertToType = function(data, type) { | ||
exports.convertToType = function (data, type) { | ||
switch (type) { | ||
case 'Boolean': | ||
case "Boolean": | ||
return Boolean(data); | ||
case 'Integer': | ||
case "Integer": | ||
return parseInt(data, 10); | ||
case 'Number': | ||
case "Number": | ||
return parseFloat(data); | ||
case 'String': | ||
case "String": | ||
return String(data); | ||
case 'Date': | ||
case "Date": | ||
return this.parseDate(String(data)); | ||
@@ -671,3 +804,3 @@ default: | ||
return data; | ||
} else if (typeof type === 'function') { | ||
} else if (typeof type === "function") { | ||
// for model type like: User | ||
@@ -678,6 +811,6 @@ return type.constructFromObject(data); | ||
var itemType = type[0]; | ||
return data.map(function(item) { | ||
return data.map(function (item) { | ||
return exports.convertToType(item, itemType); | ||
}); | ||
} else if (typeof type === 'object') { | ||
} else if (typeof type === "object") { | ||
// for plain object type like: {'String': 'Integer'} | ||
@@ -713,3 +846,3 @@ var keyType, valueType; | ||
*/ | ||
exports.constructFromObject = function(data, obj, itemType) { | ||
exports.constructFromObject = function (data, obj, itemType) { | ||
if (Array.isArray(data)) { | ||
@@ -727,10 +860,10 @@ for (var i = 0; i < data.length; i++) { | ||
}; | ||
exports.prototype.hasBufferFormParam = function(formParams) { | ||
if (!formParams) { | ||
return false; | ||
} | ||
return Object.keys(formParams).some(function(key) { | ||
return formParams[key] instanceof Buffer; | ||
}); | ||
}; | ||
exports.prototype.hasBufferFormParam = function (formParams) { | ||
if (!formParams) { | ||
return false; | ||
} | ||
return Object.keys(formParams).some(function (key) { | ||
return formParams[key] instanceof Buffer; | ||
}); | ||
}; | ||
/** | ||
@@ -749,19 +882,32 @@ * Helper method to configure the OAuth accessCode/implicit flow parameters | ||
*/ | ||
exports.prototype.getAuthorizationUri = function(clientId, scopes, redirectUri, responseType, state) { | ||
if (!clientId) throw new Error('Error clientId is required'); | ||
if (!scopes) throw new Error('Error scopes is required'); | ||
if (!scopes) throw new Error('Error scopes is required'); | ||
if (!this.hasNoInvalidScopes(scopes)) throw new Error('Error invalid scope detected'); | ||
if (!redirectUri) throw new Error('Error redirectUri is required'); | ||
if (!responseType) throw new Error('Error responseType is required'); | ||
exports.prototype.getAuthorizationUri = function ( | ||
clientId, | ||
scopes, | ||
redirectUri, | ||
responseType, | ||
state | ||
) { | ||
if (!clientId) throw new Error("Error clientId is required"); | ||
if (!scopes) throw new Error("Error scopes is required"); | ||
if (!scopes) throw new Error("Error scopes is required"); | ||
if (!this.hasNoInvalidScopes(scopes)) | ||
throw new Error("Error invalid scope detected"); | ||
if (!redirectUri) throw new Error("Error redirectUri is required"); | ||
if (!responseType) throw new Error("Error responseType is required"); | ||
var formattedScopes = scopes.join(encodeURI(' ')); | ||
return "https://" + | ||
var formattedScopes = scopes.join(encodeURI(" ")); | ||
return ( | ||
"https://" + | ||
this.getOAuthBasePath() + | ||
"/oauth/auth"+ | ||
"?response_type=" + responseType + | ||
"&scope=" + formattedScopes + | ||
"&client_id="+ clientId + | ||
"&redirect_uri=" + encodeURIComponent(redirectUri) + | ||
(state ? "&state=" + state : ''); | ||
"/oauth/auth" + | ||
"?response_type=" + | ||
responseType + | ||
"&scope=" + | ||
formattedScopes + | ||
"&client_id=" + | ||
clientId + | ||
"&redirect_uri=" + | ||
encodeURIComponent(redirectUri) + | ||
(state ? "&state=" + state : "") | ||
); | ||
}; | ||
@@ -776,43 +922,60 @@ | ||
*/ | ||
exports.prototype.generateAccessToken = function(clientId, clientSecret, code, callback) { | ||
if (!clientId) throw new Error('Error clientId is required', null); | ||
if (!clientSecret) throw new Error('Error clientSecret is required', null); | ||
if (!code) throw new Error('Error code is required', null); | ||
exports.prototype.generateAccessToken = function ( | ||
clientId, | ||
clientSecret, | ||
code, | ||
callback | ||
) { | ||
if (!clientId) throw new Error("Error clientId is required", null); | ||
if (!clientSecret) throw new Error("Error clientSecret is required", null); | ||
if (!code) throw new Error("Error code is required", null); | ||
var clientString = clientId + ":" + clientSecret, | ||
postData = { | ||
"grant_type": "authorization_code", | ||
grant_type: "authorization_code", | ||
code: code, | ||
}, | ||
headers = { | ||
"Authorization": "Basic " + (new Buffer(clientString).toString('base64')), | ||
Authorization: "Basic " + new Buffer(clientString).toString("base64"), | ||
"Cache-Control": "no-store", | ||
"Pragma": "no-cache" | ||
Pragma: "no-cache", | ||
...defaultHeaders, | ||
}, | ||
OAuthToken = require('./OAuth').OAuthToken, | ||
request = superagent.post("https://" + this.getOAuthBasePath() + "/oauth/token") | ||
.send(postData) | ||
.set(headers) | ||
.type("application/x-www-form-urlencoded"); | ||
OAuthToken = require("./OAuth").OAuthToken; | ||
const requestConfig = { | ||
baseURL: `https://${oAuthBasePath}`, | ||
method: "post", | ||
url: "/oauth/token", | ||
headers: { | ||
...headers, | ||
"Content-Type": "application/x-www-form-urlencoded", | ||
}, | ||
data: postData, | ||
}; | ||
const request = axios.request(requestConfig); | ||
if (!callback) { | ||
return new Promise(function (resolve, reject) { | ||
request.end(function (err, res) { | ||
if (err) { | ||
reject(err); | ||
} else { | ||
resolve(OAuthToken.constructFromObject(res.body)) | ||
} | ||
}); | ||
request | ||
.then((response) => { | ||
resolve(OAuthToken.constructFromObject(response.data)); | ||
}) | ||
.catch((err) => { | ||
const stdErrResponse = normalizeResponseFormat(err.response); | ||
reject(stdErrResponse); | ||
}); | ||
}); | ||
} else { | ||
request.end(function (err, res) { | ||
var OAuthToken; | ||
if (err) { | ||
return callback(err, res); | ||
} else { | ||
OAuthToken = require('./OAuth').OAuthToken; | ||
return callback(err, OAuthToken.constructFromObject(res.body)) | ||
} | ||
}); | ||
request | ||
.then((response) => { | ||
let OAuthToken = require("./OAuth").OAuthToken; | ||
const stdResponse = normalizeResponseFormat(response); | ||
return callback(null, OAuthToken.constructFromObject(response.data), stdResponse); | ||
}) | ||
.catch((err) => { | ||
const stdErrResponse = normalizeResponseFormat(err.response); | ||
return callback(stdErrResponse); | ||
}); | ||
} | ||
@@ -825,26 +988,35 @@ }; | ||
*/ | ||
exports.prototype.getUserInfo = function(accessToken, callback) { | ||
if(!accessToken) throw new Error('Error accessToken is required',null); | ||
exports.prototype.getUserInfo = function (accessToken, callback) { | ||
if (!accessToken) throw new Error("Error accessToken is required", null); | ||
var headers = { | ||
"Authorization": "Bearer " + accessToken, | ||
Authorization: "Bearer " + accessToken, | ||
"Cache-Control": "no-store", | ||
"Pragma": "no-cache" | ||
Pragma: "no-cache", | ||
...defaultHeaders, | ||
}; | ||
const requestConfig = { | ||
baseURL: `https://${this.oAuthBasePath}`, | ||
method: "get", | ||
url: "/oauth/userinfo", | ||
headers: headers, | ||
}; | ||
if (this.proxy) { | ||
const proxyObj = parseProxy(this.proxy); | ||
requestConfig.proxy = proxyObj[0]; | ||
} | ||
var request = superagent.get("https://" + this.getOAuthBasePath() + "/oauth/userinfo").set(headers); | ||
var UserInfo = require('./OAuth').UserInfo; | ||
const request = axios.request(requestConfig); | ||
var UserInfo = require("./OAuth").UserInfo; | ||
if(!callback) { | ||
if (!callback) { | ||
try { | ||
return new Promise(function (resolve, reject) { | ||
request.end(function (err, res) { | ||
if (err) { | ||
reject(err); | ||
} else { | ||
try { | ||
resolve(UserInfo.constructFromObject(res.body)); | ||
} catch (error) { | ||
reject(error); | ||
} | ||
request.then((response) => { | ||
try { | ||
return resolve(UserInfo.constructFromObject(response.data)); | ||
} catch (error) { | ||
throw error; | ||
} | ||
@@ -854,13 +1026,15 @@ }); | ||
} catch (err) { | ||
console.log(err) | ||
throw(err) | ||
console.log(err); | ||
reject(err); | ||
} | ||
} else { | ||
request.end(function (err, res) { | ||
if (err) { | ||
return callback(err, res); | ||
} else { | ||
return callback(err, UserInfo.constructFromObject(res.body)); | ||
} | ||
}); | ||
request | ||
.then((response) => { | ||
const stdResponse = normalizeResponseFormat(response); | ||
return callback(null, UserInfo.constructFromObject(response.data), stdResponse); | ||
}) | ||
.catch((err) => { | ||
const stdErrResponse = normalizeResponseFormat(err.response); | ||
return callback(stdErrResponse); | ||
}); | ||
} | ||
@@ -877,8 +1051,24 @@ }; | ||
*/ | ||
exports.prototype.getJWTUri = function(clientId, redirectURI, oAuthBasePath) { | ||
return "https://" + oAuthBasePath + "/oauth/auth" + "?" + | ||
exports.prototype.getJWTUri = function ( | ||
clientId, | ||
redirectURI, | ||
oAuthBasePath | ||
) { | ||
return ( | ||
"https://" + | ||
oAuthBasePath + | ||
"/oauth/auth" + | ||
"?" + | ||
"response_type=code&" + | ||
"client_id=" + encodeURIComponent(clientId) + "&" + | ||
"scope=" + encodeURIComponent("signature impersonation organization_orgadmin_config_read organization_orgadmin_config_write organization_orgadmin_events_read") + "&" + | ||
"redirect_uri=" + encodeURIComponent(redirectURI); | ||
"client_id=" + | ||
encodeURIComponent(clientId) + | ||
"&" + | ||
"scope=" + | ||
encodeURIComponent( | ||
"signature impersonation organization_orgadmin_config_read organization_orgadmin_config_write organization_orgadmin_events_read" | ||
) + | ||
"&" + | ||
"redirect_uri=" + | ||
encodeURIComponent(redirectURI) | ||
); | ||
}; | ||
@@ -897,10 +1087,19 @@ | ||
*/ | ||
exports.prototype.configureJWTAuthorizationFlow = function(privateKeyFilename, oAuthBasePath, clientId, userId, expiresIn, callback) { | ||
console.warn('configureJWTAuthorizationFlow is a deprecated function! Please use requestJWTUserToken()') | ||
exports.prototype.configureJWTAuthorizationFlow = function ( | ||
privateKeyFilename, | ||
oAuthBasePath, | ||
clientId, | ||
userId, | ||
expiresIn, | ||
callback | ||
) { | ||
console.warn( | ||
"configureJWTAuthorizationFlow is a deprecated function! Please use requestJWTUserToken()" | ||
); | ||
var _this = this; | ||
var jwt = require('jsonwebtoken') | ||
, fs = require('fs') | ||
, private_key = fs.readFileSync(privateKeyFilename) | ||
, now = Math.floor(Date.now() / 1000) | ||
, later = now + expiresIn; | ||
var jwt = require("jsonwebtoken"), | ||
fs = require("fs"), | ||
private_key = fs.readFileSync(privateKeyFilename), | ||
now = Math.floor(Date.now() / 1000), | ||
later = now + expiresIn; | ||
@@ -913,36 +1112,57 @@ var jwt_payload = { | ||
exp: later, | ||
scope: "signature" | ||
scope: SCOPE_SIGNATURE, | ||
}; | ||
var assertion = jwt.sign(jwt_payload, private_key, {algorithm: 'RS256'}); | ||
var assertion = jwt.sign(jwt_payload, private_key, { algorithm: "RS256" }); | ||
superagent('post', 'https://' + this.getOAuthBasePath() + '/oauth/token') | ||
.timeout(this.timeout) | ||
.set('Content-Type', 'application/x-www-form-urlencoded') | ||
.set('Cache-Control', 'no-store') | ||
.set('Pragma', 'no-cache') | ||
.send({ | ||
'assertion': assertion, | ||
'grant_type': 'urn:ietf:params:oauth:grant-type:jwt-bearer' | ||
}) | ||
.end(function(err, res) { | ||
if (callback) { | ||
if (!err && res.body && res.body.access_token) { | ||
_this.addDefaultHeader('Authorization', 'Bearer ' + res.body.access_token); | ||
} | ||
callback(err, res); | ||
const requestConfig = { | ||
baseURL: `https://${oAuthBasePath}`, | ||
method: "post", | ||
url: "/oauth/token", | ||
headers: { | ||
"Content-Type": "application/x-www-form-urlencoded", | ||
"Cache-Control": "no-store", | ||
Pragma: "no-cache", | ||
...defaultHeaders, | ||
}, | ||
timeout: this.timeout, | ||
data: { | ||
assertion: assertion, | ||
grant_type: "urn:ietf:params:oauth:grant-type:jwt-bearer", | ||
}, | ||
}; | ||
const request = axios.request(requestConfig); | ||
const onSuccess = (response) => { | ||
if (callback) { | ||
if (response.data && response.data.access_token) { | ||
_this.addDefaultHeader( | ||
"Authorization", | ||
"Bearer " + response.data.access_token | ||
); | ||
} | ||
}); | ||
const stdResponse = normalizeResponseFormat(response); | ||
callback(null, stdResponse.body, stdResponse); | ||
} | ||
}; | ||
const onFailure = (err) => { | ||
if (callback) { | ||
const stdErrResponse = normalizeResponseFormat(err.response); | ||
callback(stdErrResponse); | ||
} | ||
}; | ||
request.then(onSuccess, onFailure); | ||
}; | ||
exports.prototype.hasNoInvalidScopes = function(scopes) { | ||
var validScopes = require('./oauth/Scope'); | ||
exports.prototype.hasNoInvalidScopes = function (scopes) { | ||
var validScopes = require("./oauth/Scope"); | ||
return ( | ||
Array.isArray(scopes) | ||
&& scopes.length > 0 | ||
&& scopes.every(function(scope){ | ||
return Object.keys(validScopes).some(function(key){ | ||
Array.isArray(scopes) && | ||
scopes.length > 0 && | ||
scopes.every(function (scope) { | ||
return Object.keys(validScopes).some(function (key) { | ||
return validScopes[key] === scope; | ||
}) | ||
}); | ||
}) | ||
@@ -952,18 +1172,63 @@ ); | ||
exports.prototype.requestJWTUserToken = function(clientId, userId, scopes, rsaPrivateKey, expiresIn, callback) { | ||
exports.prototype.sendJWTTokenRequest = function (assertion, callback) { | ||
return sendJWTTokenRequest( | ||
assertion, | ||
this.oAuthBasePath, | ||
this.proxy, | ||
callback | ||
); | ||
}; | ||
exports.prototype.requestJWTUserToken = function ( | ||
clientId, | ||
userId, | ||
scopes, | ||
rsaPrivateKey, | ||
expiresIn, | ||
callback | ||
) { | ||
var privateKey = rsaPrivateKey, | ||
assertion = generateAndSignJWTAssertion(clientId, scopes, privateKey, this.getOAuthBasePath(), expiresIn, userId); | ||
assertion = generateAndSignJWTAssertion( | ||
clientId, | ||
scopes, | ||
privateKey, | ||
this.getOAuthBasePath(), | ||
expiresIn, | ||
userId | ||
); | ||
return sendJWTTokenRequest(assertion, this.oAuthBasePath, callback); | ||
return sendJWTTokenRequest( | ||
assertion, | ||
this.oAuthBasePath, | ||
this.proxy, | ||
callback | ||
); | ||
}; | ||
exports.prototype.requestJWTApplicationToken = function(clientId, scopes, rsaPrivateKey, expiresIn, callback) { | ||
exports.prototype.requestJWTApplicationToken = function ( | ||
clientId, | ||
scopes, | ||
rsaPrivateKey, | ||
expiresIn, | ||
callback | ||
) { | ||
var privateKey = rsaPrivateKey, | ||
assertion = generateAndSignJWTAssertion(clientId, scopes, privateKey, this.getOAuthBasePath(), expiresIn); | ||
assertion = generateAndSignJWTAssertion( | ||
clientId, | ||
scopes, | ||
privateKey, | ||
this.getOAuthBasePath(), | ||
expiresIn | ||
); | ||
return sendJWTTokenRequest(assertion, this.oAuthBasePath, callback); | ||
return sendJWTTokenRequest( | ||
assertion, | ||
this.oAuthBasePath, | ||
this.proxy, | ||
callback | ||
); | ||
}; | ||
exports.prototype.OAuth = require('./OAuth'); | ||
exports.prototype.RestApi = require('./RestApi'); | ||
exports.prototype.OAuth = require("./OAuth"); | ||
exports.prototype.RestApi = require("./RestApi"); | ||
/** | ||
@@ -976,5 +1241,5 @@ * The default API client implementation. | ||
return exports; | ||
})); | ||
}); | ||
module.exports.OAuth = require('./OAuth'); | ||
module.exports.RestApi = require('./RestApi'); | ||
module.exports.OAuth = require("./OAuth"); | ||
module.exports.RestApi = require("./RestApi"); |
@@ -14,8 +14,8 @@ /** | ||
// AMD. Register as an anonymous module. | ||
define(['Configuration', 'ApiClient', 'model/AddDSGroupAndUsersResponse', 'model/AddDSGroupUsersResponse', 'model/AddUserResponse', 'model/AddUserResponseAccountProperties', 'model/CertificateResponse', 'model/DSGroupAddRequest', 'model/DSGroupAndUsersResponse', 'model/DSGroupListResponse', 'model/DSGroupRequest', 'model/DSGroupResponse', 'model/DSGroupUserResponse', 'model/DSGroupUsersAddRequest', 'model/DSGroupUsersRemoveRequest', 'model/DSGroupUsersResponse', 'model/DeleteMembershipRequest', 'model/DeleteMembershipResponse', 'model/DeleteMembershipsRequest', 'model/DeleteMembershipsResponse', 'model/DeleteResponse', 'model/DeleteUserIdentityRequest', 'model/DomainResponse', 'model/DomainsResponse', 'model/ErrorDetails', 'model/ForceActivateMembershipRequest', 'model/GroupRequest', 'model/IdentityProviderResponse', 'model/IdentityProvidersResponse', 'model/IndividualMembershipDataRedactionRequest', 'model/IndividualUserDataRedactionRequest', 'model/IndividualUserDataRedactionResponse', 'model/LinkResponse', 'model/MemberGroupResponse', 'model/MemberGroupsResponse', 'model/MembershipDataRedactionRequest', 'model/MembershipDataRedactionResponse', 'model/MembershipResponse', 'model/NewAccountUserRequest', 'model/NewMultiProductUserAddRequest', 'model/NewUserRequest', 'model/NewUserRequestAccountProperties', 'model/NewUserResponse', 'model/NewUserResponseAccountProperties', 'model/OASIRRErrorDetails', 'model/OASIRROrganizationAccountSettingsErrorDataResponse', 'model/OETRErrorDetails', 'model/OSAMRContact', 'model/OrgExportSelectedAccount', 'model/OrgExportSelectedDomain', 'model/OrgReportConfigurationResponse', 'model/OrgReportCreateResponse', 'model/OrgReportListResponse', 'model/OrgReportListResponseOrgReport', 'model/OrgReportListResponseRequestor', 'model/OrgReportRequest', 'model/OrganizationAccountRequest', 'model/OrganizationAccountResponse', 'model/OrganizationAccountSettingsImportRequestorResponse', 'model/OrganizationAccountSettingsImportResponse', 'model/OrganizationAccountSettingsImportResultResponse', 'model/OrganizationAccountsRequest', 'model/OrganizationExportAccount', 'model/OrganizationExportDomain', 'model/OrganizationExportRequest', 'model/OrganizationExportRequestorResponse', 'model/OrganizationExportResponse', 'model/OrganizationExportTaskResponse', 'model/OrganizationExportsResponse', 'model/OrganizationImportResponse', 'model/OrganizationImportResponseErrorRollup', 'model/OrganizationImportResponseRequestor', 'model/OrganizationImportResponseWarningRollup', 'model/OrganizationImportsResponse', 'model/OrganizationResponse', 'model/OrganizationSalesforceAccountManagersResponse', 'model/OrganizationSimpleIdObject', 'model/OrganizationUserResponse', 'model/OrganizationUsersResponse', 'model/OrganizationsResponse', 'model/PagingResponseProperties', 'model/PermissionProfileRequest', 'model/PermissionProfileResponse', 'model/PermissionProfileResponse21', 'model/PermissionsResponse', 'model/ProductPermissionProfileRequest', 'model/ProductPermissionProfileResponse', 'model/ProductPermissionProfilesRequest', 'model/ProductPermissionProfilesResponse', 'model/RemoveDSGroupUsersResponse', 'model/RemoveUserProductsResponse', 'model/RequiredAttributeMappingResponse', 'model/Saml2IdentityProviderResponse', 'model/SettingResponse', 'model/UpdateMembershipRequest', 'model/UpdateResponse', 'model/UpdateUserEmailRequest', 'model/UpdateUserRequest', 'model/UpdateUsersEmailRequest', 'model/UpdateUsersRequest', 'model/UserDrilldownResponse', 'model/UserIdentityRequest', 'model/UserIdentityResponse', 'model/UserProductPermissionProfilesRequest', 'model/UserProductPermissionProfilesResponse', 'model/UserProductProfileDeleteRequest', 'model/UserUpdateResponse', 'model/UsersDrilldownResponse', 'model/UsersUpdateResponse', 'api/AccountsApi', 'api/BulkExportsApi', 'api/BulkImportsApi', 'api/DSGroupsApi', 'api/IdentityProvidersApi', 'api/OrganizationsApi', 'api/ProductPermissionProfilesApi', 'api/ReservedDomainsApi', 'api/UsersApi'], factory); | ||
define(['Configuration', 'ApiClient', 'model/AddDSGroupAndUsersResponse', 'model/AddDSGroupUsersResponse', 'model/AddUserResponse', 'model/AddUserResponseAccountProperties', 'model/AssetGroupAccountClone', 'model/AssetGroupAccountCloneSourceAccount', 'model/AssetGroupAccountCloneTargetAccount', 'model/AssetGroupAccountCloneTargetAccountAdmin', 'model/AssetGroupAccountClones', 'model/AssetGroupAccountResponse', 'model/AssetGroupAccountsResponse', 'model/CertificateResponse', 'model/CloneErrorDetails', 'model/DSGroupAddRequest', 'model/DSGroupAndUsersResponse', 'model/DSGroupListResponse', 'model/DSGroupRequest', 'model/DSGroupResponse', 'model/DSGroupUserResponse', 'model/DSGroupUsersAddRequest', 'model/DSGroupUsersRemoveRequest', 'model/DSGroupUsersResponse', 'model/DeleteMembershipRequest', 'model/DeleteMembershipResponse', 'model/DeleteMembershipsRequest', 'model/DeleteMembershipsResponse', 'model/DeleteResponse', 'model/DeleteUserIdentityRequest', 'model/DomainResponse', 'model/DomainsResponse', 'model/ErrorDetails', 'model/ForceActivateMembershipRequest', 'model/GroupRequest', 'model/IdentityProviderResponse', 'model/IdentityProvidersResponse', 'model/IndividualMembershipDataRedactionRequest', 'model/IndividualUserDataRedactionRequest', 'model/IndividualUserDataRedactionResponse', 'model/LinkResponse', 'model/MemberGroupResponse', 'model/MemberGroupsResponse', 'model/MembershipDataRedactionRequest', 'model/MembershipDataRedactionResponse', 'model/MembershipResponse', 'model/NewAccountUserRequest', 'model/NewMultiProductUserAddRequest', 'model/NewUserRequest', 'model/NewUserRequestAccountProperties', 'model/NewUserResponse', 'model/NewUserResponseAccountProperties', 'model/OASIRRErrorDetails', 'model/OASIRROrganizationAccountSettingsErrorDataResponse', 'model/OETRErrorDetails', 'model/OSAMRContact', 'model/OrgExportSelectedAccount', 'model/OrgExportSelectedDomain', 'model/OrgReportConfigurationResponse', 'model/OrgReportCreateResponse', 'model/OrgReportListResponse', 'model/OrgReportListResponseOrgReport', 'model/OrgReportListResponseRequestor', 'model/OrgReportRequest', 'model/OrganizationAccountRequest', 'model/OrganizationAccountResponse', 'model/OrganizationAccountSettingsImportRequestorResponse', 'model/OrganizationAccountSettingsImportResponse', 'model/OrganizationAccountSettingsImportResultResponse', 'model/OrganizationAccountsRequest', 'model/OrganizationExportAccount', 'model/OrganizationExportDomain', 'model/OrganizationExportRequest', 'model/OrganizationExportRequestorResponse', 'model/OrganizationExportResponse', 'model/OrganizationExportTaskResponse', 'model/OrganizationExportsResponse', 'model/OrganizationImportResponse', 'model/OrganizationImportResponseErrorRollup', 'model/OrganizationImportResponseRequestor', 'model/OrganizationImportResponseWarningRollup', 'model/OrganizationImportsResponse', 'model/OrganizationResponse', 'model/OrganizationSalesforceAccountManagersResponse', 'model/OrganizationSimpleIdObject', 'model/OrganizationUserResponse', 'model/OrganizationUsersResponse', 'model/OrganizationsResponse', 'model/PagingResponseProperties', 'model/PermissionProfileRequest', 'model/PermissionProfileResponse', 'model/PermissionProfileResponse21', 'model/PermissionsResponse', 'model/ProductPermissionProfileRequest', 'model/ProductPermissionProfileResponse', 'model/ProductPermissionProfilesRequest', 'model/ProductPermissionProfilesResponse', 'model/RemoveDSGroupUsersResponse', 'model/RemoveUserProductsResponse', 'model/RequiredAttributeMappingResponse', 'model/Saml2IdentityProviderResponse', 'model/SettingResponse', 'model/UpdateMembershipRequest', 'model/UpdateResponse', 'model/UpdateUserEmailRequest', 'model/UpdateUserRequest', 'model/UpdateUsersEmailRequest', 'model/UpdateUsersRequest', 'model/UserDrilldownResponse', 'model/UserIdentityRequest', 'model/UserIdentityResponse', 'model/UserProductPermissionProfilesRequest', 'model/UserProductPermissionProfilesResponse', 'model/UserProductProfileDeleteRequest', 'model/UserUpdateResponse', 'model/UsersDrilldownResponse', 'model/UsersUpdateResponse', 'api/AccountsApi', 'api/BulkExportsApi', 'api/BulkImportsApi', 'api/DSGroupsApi', 'api/IdentityProvidersApi', 'api/OrganizationsApi', 'api/ProductPermissionProfilesApi', 'api/ProvisionAssetGroupApi', 'api/ReservedDomainsApi', 'api/UsersApi'], factory); | ||
} else if (typeof module === 'object' && module.exports) { | ||
// CommonJS-like environments that support module.exports, like Node. | ||
module.exports = factory(require('./Configuration'), require('./ApiClient'), require('./model/AddDSGroupAndUsersResponse'), require('./model/AddDSGroupUsersResponse'), require('./model/AddUserResponse'), require('./model/AddUserResponseAccountProperties'), require('./model/CertificateResponse'), require('./model/DSGroupAddRequest'), require('./model/DSGroupAndUsersResponse'), require('./model/DSGroupListResponse'), require('./model/DSGroupRequest'), require('./model/DSGroupResponse'), require('./model/DSGroupUserResponse'), require('./model/DSGroupUsersAddRequest'), require('./model/DSGroupUsersRemoveRequest'), require('./model/DSGroupUsersResponse'), require('./model/DeleteMembershipRequest'), require('./model/DeleteMembershipResponse'), require('./model/DeleteMembershipsRequest'), require('./model/DeleteMembershipsResponse'), require('./model/DeleteResponse'), require('./model/DeleteUserIdentityRequest'), require('./model/DomainResponse'), require('./model/DomainsResponse'), require('./model/ErrorDetails'), require('./model/ForceActivateMembershipRequest'), require('./model/GroupRequest'), require('./model/IdentityProviderResponse'), require('./model/IdentityProvidersResponse'), require('./model/IndividualMembershipDataRedactionRequest'), require('./model/IndividualUserDataRedactionRequest'), require('./model/IndividualUserDataRedactionResponse'), require('./model/LinkResponse'), require('./model/MemberGroupResponse'), require('./model/MemberGroupsResponse'), require('./model/MembershipDataRedactionRequest'), require('./model/MembershipDataRedactionResponse'), require('./model/MembershipResponse'), require('./model/NewAccountUserRequest'), require('./model/NewMultiProductUserAddRequest'), require('./model/NewUserRequest'), require('./model/NewUserRequestAccountProperties'), require('./model/NewUserResponse'), require('./model/NewUserResponseAccountProperties'), require('./model/OASIRRErrorDetails'), require('./model/OASIRROrganizationAccountSettingsErrorDataResponse'), require('./model/OETRErrorDetails'), require('./model/OSAMRContact'), require('./model/OrgExportSelectedAccount'), require('./model/OrgExportSelectedDomain'), require('./model/OrgReportConfigurationResponse'), require('./model/OrgReportCreateResponse'), require('./model/OrgReportListResponse'), require('./model/OrgReportListResponseOrgReport'), require('./model/OrgReportListResponseRequestor'), require('./model/OrgReportRequest'), require('./model/OrganizationAccountRequest'), require('./model/OrganizationAccountResponse'), require('./model/OrganizationAccountSettingsImportRequestorResponse'), require('./model/OrganizationAccountSettingsImportResponse'), require('./model/OrganizationAccountSettingsImportResultResponse'), require('./model/OrganizationAccountsRequest'), require('./model/OrganizationExportAccount'), require('./model/OrganizationExportDomain'), require('./model/OrganizationExportRequest'), require('./model/OrganizationExportRequestorResponse'), require('./model/OrganizationExportResponse'), require('./model/OrganizationExportTaskResponse'), require('./model/OrganizationExportsResponse'), require('./model/OrganizationImportResponse'), require('./model/OrganizationImportResponseErrorRollup'), require('./model/OrganizationImportResponseRequestor'), require('./model/OrganizationImportResponseWarningRollup'), require('./model/OrganizationImportsResponse'), require('./model/OrganizationResponse'), require('./model/OrganizationSalesforceAccountManagersResponse'), require('./model/OrganizationSimpleIdObject'), require('./model/OrganizationUserResponse'), require('./model/OrganizationUsersResponse'), require('./model/OrganizationsResponse'), require('./model/PagingResponseProperties'), require('./model/PermissionProfileRequest'), require('./model/PermissionProfileResponse'), require('./model/PermissionProfileResponse21'), require('./model/PermissionsResponse'), require('./model/ProductPermissionProfileRequest'), require('./model/ProductPermissionProfileResponse'), require('./model/ProductPermissionProfilesRequest'), require('./model/ProductPermissionProfilesResponse'), require('./model/RemoveDSGroupUsersResponse'), require('./model/RemoveUserProductsResponse'), require('./model/RequiredAttributeMappingResponse'), require('./model/Saml2IdentityProviderResponse'), require('./model/SettingResponse'), require('./model/UpdateMembershipRequest'), require('./model/UpdateResponse'), require('./model/UpdateUserEmailRequest'), require('./model/UpdateUserRequest'), require('./model/UpdateUsersEmailRequest'), require('./model/UpdateUsersRequest'), require('./model/UserDrilldownResponse'), require('./model/UserIdentityRequest'), require('./model/UserIdentityResponse'), require('./model/UserProductPermissionProfilesRequest'), require('./model/UserProductPermissionProfilesResponse'), require('./model/UserProductProfileDeleteRequest'), require('./model/UserUpdateResponse'), require('./model/UsersDrilldownResponse'), require('./model/UsersUpdateResponse'), require('./api/AccountsApi'), require('./api/BulkExportsApi'), require('./api/BulkImportsApi'), require('./api/DSGroupsApi'), require('./api/IdentityProvidersApi'), require('./api/OrganizationsApi'), require('./api/ProductPermissionProfilesApi'), require('./api/ReservedDomainsApi'), require('./api/UsersApi')); | ||
module.exports = factory(require('./Configuration'), require('./ApiClient'), require('./model/AddDSGroupAndUsersResponse'), require('./model/AddDSGroupUsersResponse'), require('./model/AddUserResponse'), require('./model/AddUserResponseAccountProperties'), require('./model/AssetGroupAccountClone'), require('./model/AssetGroupAccountCloneSourceAccount'), require('./model/AssetGroupAccountCloneTargetAccount'), require('./model/AssetGroupAccountCloneTargetAccountAdmin'), require('./model/AssetGroupAccountClones'), require('./model/AssetGroupAccountResponse'), require('./model/AssetGroupAccountsResponse'), require('./model/CertificateResponse'), require('./model/CloneErrorDetails'), require('./model/DSGroupAddRequest'), require('./model/DSGroupAndUsersResponse'), require('./model/DSGroupListResponse'), require('./model/DSGroupRequest'), require('./model/DSGroupResponse'), require('./model/DSGroupUserResponse'), require('./model/DSGroupUsersAddRequest'), require('./model/DSGroupUsersRemoveRequest'), require('./model/DSGroupUsersResponse'), require('./model/DeleteMembershipRequest'), require('./model/DeleteMembershipResponse'), require('./model/DeleteMembershipsRequest'), require('./model/DeleteMembershipsResponse'), require('./model/DeleteResponse'), require('./model/DeleteUserIdentityRequest'), require('./model/DomainResponse'), require('./model/DomainsResponse'), require('./model/ErrorDetails'), require('./model/ForceActivateMembershipRequest'), require('./model/GroupRequest'), require('./model/IdentityProviderResponse'), require('./model/IdentityProvidersResponse'), require('./model/IndividualMembershipDataRedactionRequest'), require('./model/IndividualUserDataRedactionRequest'), require('./model/IndividualUserDataRedactionResponse'), require('./model/LinkResponse'), require('./model/MemberGroupResponse'), require('./model/MemberGroupsResponse'), require('./model/MembershipDataRedactionRequest'), require('./model/MembershipDataRedactionResponse'), require('./model/MembershipResponse'), require('./model/NewAccountUserRequest'), require('./model/NewMultiProductUserAddRequest'), require('./model/NewUserRequest'), require('./model/NewUserRequestAccountProperties'), require('./model/NewUserResponse'), require('./model/NewUserResponseAccountProperties'), require('./model/OASIRRErrorDetails'), require('./model/OASIRROrganizationAccountSettingsErrorDataResponse'), require('./model/OETRErrorDetails'), require('./model/OSAMRContact'), require('./model/OrgExportSelectedAccount'), require('./model/OrgExportSelectedDomain'), require('./model/OrgReportConfigurationResponse'), require('./model/OrgReportCreateResponse'), require('./model/OrgReportListResponse'), require('./model/OrgReportListResponseOrgReport'), require('./model/OrgReportListResponseRequestor'), require('./model/OrgReportRequest'), require('./model/OrganizationAccountRequest'), require('./model/OrganizationAccountResponse'), require('./model/OrganizationAccountSettingsImportRequestorResponse'), require('./model/OrganizationAccountSettingsImportResponse'), require('./model/OrganizationAccountSettingsImportResultResponse'), require('./model/OrganizationAccountsRequest'), require('./model/OrganizationExportAccount'), require('./model/OrganizationExportDomain'), require('./model/OrganizationExportRequest'), require('./model/OrganizationExportRequestorResponse'), require('./model/OrganizationExportResponse'), require('./model/OrganizationExportTaskResponse'), require('./model/OrganizationExportsResponse'), require('./model/OrganizationImportResponse'), require('./model/OrganizationImportResponseErrorRollup'), require('./model/OrganizationImportResponseRequestor'), require('./model/OrganizationImportResponseWarningRollup'), require('./model/OrganizationImportsResponse'), require('./model/OrganizationResponse'), require('./model/OrganizationSalesforceAccountManagersResponse'), require('./model/OrganizationSimpleIdObject'), require('./model/OrganizationUserResponse'), require('./model/OrganizationUsersResponse'), require('./model/OrganizationsResponse'), require('./model/PagingResponseProperties'), require('./model/PermissionProfileRequest'), require('./model/PermissionProfileResponse'), require('./model/PermissionProfileResponse21'), require('./model/PermissionsResponse'), require('./model/ProductPermissionProfileRequest'), require('./model/ProductPermissionProfileResponse'), require('./model/ProductPermissionProfilesRequest'), require('./model/ProductPermissionProfilesResponse'), require('./model/RemoveDSGroupUsersResponse'), require('./model/RemoveUserProductsResponse'), require('./model/RequiredAttributeMappingResponse'), require('./model/Saml2IdentityProviderResponse'), require('./model/SettingResponse'), require('./model/UpdateMembershipRequest'), require('./model/UpdateResponse'), require('./model/UpdateUserEmailRequest'), require('./model/UpdateUserRequest'), require('./model/UpdateUsersEmailRequest'), require('./model/UpdateUsersRequest'), require('./model/UserDrilldownResponse'), require('./model/UserIdentityRequest'), require('./model/UserIdentityResponse'), require('./model/UserProductPermissionProfilesRequest'), require('./model/UserProductPermissionProfilesResponse'), require('./model/UserProductProfileDeleteRequest'), require('./model/UserUpdateResponse'), require('./model/UsersDrilldownResponse'), require('./model/UsersUpdateResponse'), require('./api/AccountsApi'), require('./api/BulkExportsApi'), require('./api/BulkImportsApi'), require('./api/DSGroupsApi'), require('./api/IdentityProvidersApi'), require('./api/OrganizationsApi'), require('./api/ProductPermissionProfilesApi'), require('./api/ProvisionAssetGroupApi'), require('./api/ReservedDomainsApi'), require('./api/UsersApi')); | ||
} | ||
}(function(Configuration, ApiClient, AddDSGroupAndUsersResponse, AddDSGroupUsersResponse, AddUserResponse, AddUserResponseAccountProperties, CertificateResponse, DSGroupAddRequest, DSGroupAndUsersResponse, DSGroupListResponse, DSGroupRequest, DSGroupResponse, DSGroupUserResponse, DSGroupUsersAddRequest, DSGroupUsersRemoveRequest, DSGroupUsersResponse, DeleteMembershipRequest, DeleteMembershipResponse, DeleteMembershipsRequest, DeleteMembershipsResponse, DeleteResponse, DeleteUserIdentityRequest, DomainResponse, DomainsResponse, ErrorDetails, ForceActivateMembershipRequest, GroupRequest, IdentityProviderResponse, IdentityProvidersResponse, IndividualMembershipDataRedactionRequest, IndividualUserDataRedactionRequest, IndividualUserDataRedactionResponse, LinkResponse, MemberGroupResponse, MemberGroupsResponse, MembershipDataRedactionRequest, MembershipDataRedactionResponse, MembershipResponse, NewAccountUserRequest, NewMultiProductUserAddRequest, NewUserRequest, NewUserRequestAccountProperties, NewUserResponse, NewUserResponseAccountProperties, OASIRRErrorDetails, OASIRROrganizationAccountSettingsErrorDataResponse, OETRErrorDetails, OSAMRContact, OrgExportSelectedAccount, OrgExportSelectedDomain, OrgReportConfigurationResponse, OrgReportCreateResponse, OrgReportListResponse, OrgReportListResponseOrgReport, OrgReportListResponseRequestor, OrgReportRequest, OrganizationAccountRequest, OrganizationAccountResponse, OrganizationAccountSettingsImportRequestorResponse, OrganizationAccountSettingsImportResponse, OrganizationAccountSettingsImportResultResponse, OrganizationAccountsRequest, OrganizationExportAccount, OrganizationExportDomain, OrganizationExportRequest, OrganizationExportRequestorResponse, OrganizationExportResponse, OrganizationExportTaskResponse, OrganizationExportsResponse, OrganizationImportResponse, OrganizationImportResponseErrorRollup, OrganizationImportResponseRequestor, OrganizationImportResponseWarningRollup, OrganizationImportsResponse, OrganizationResponse, OrganizationSalesforceAccountManagersResponse, OrganizationSimpleIdObject, OrganizationUserResponse, OrganizationUsersResponse, OrganizationsResponse, PagingResponseProperties, PermissionProfileRequest, PermissionProfileResponse, PermissionProfileResponse21, PermissionsResponse, ProductPermissionProfileRequest, ProductPermissionProfileResponse, ProductPermissionProfilesRequest, ProductPermissionProfilesResponse, RemoveDSGroupUsersResponse, RemoveUserProductsResponse, RequiredAttributeMappingResponse, Saml2IdentityProviderResponse, SettingResponse, UpdateMembershipRequest, UpdateResponse, UpdateUserEmailRequest, UpdateUserRequest, UpdateUsersEmailRequest, UpdateUsersRequest, UserDrilldownResponse, UserIdentityRequest, UserIdentityResponse, UserProductPermissionProfilesRequest, UserProductPermissionProfilesResponse, UserProductProfileDeleteRequest, UserUpdateResponse, UsersDrilldownResponse, UsersUpdateResponse, AccountsApi, BulkExportsApi, BulkImportsApi, DSGroupsApi, IdentityProvidersApi, OrganizationsApi, ProductPermissionProfilesApi, ReservedDomainsApi, UsersApi) { | ||
}(function(Configuration, ApiClient, AddDSGroupAndUsersResponse, AddDSGroupUsersResponse, AddUserResponse, AddUserResponseAccountProperties, AssetGroupAccountClone, AssetGroupAccountCloneSourceAccount, AssetGroupAccountCloneTargetAccount, AssetGroupAccountCloneTargetAccountAdmin, AssetGroupAccountClones, AssetGroupAccountResponse, AssetGroupAccountsResponse, CertificateResponse, CloneErrorDetails, DSGroupAddRequest, DSGroupAndUsersResponse, DSGroupListResponse, DSGroupRequest, DSGroupResponse, DSGroupUserResponse, DSGroupUsersAddRequest, DSGroupUsersRemoveRequest, DSGroupUsersResponse, DeleteMembershipRequest, DeleteMembershipResponse, DeleteMembershipsRequest, DeleteMembershipsResponse, DeleteResponse, DeleteUserIdentityRequest, DomainResponse, DomainsResponse, ErrorDetails, ForceActivateMembershipRequest, GroupRequest, IdentityProviderResponse, IdentityProvidersResponse, IndividualMembershipDataRedactionRequest, IndividualUserDataRedactionRequest, IndividualUserDataRedactionResponse, LinkResponse, MemberGroupResponse, MemberGroupsResponse, MembershipDataRedactionRequest, MembershipDataRedactionResponse, MembershipResponse, NewAccountUserRequest, NewMultiProductUserAddRequest, NewUserRequest, NewUserRequestAccountProperties, NewUserResponse, NewUserResponseAccountProperties, OASIRRErrorDetails, OASIRROrganizationAccountSettingsErrorDataResponse, OETRErrorDetails, OSAMRContact, OrgExportSelectedAccount, OrgExportSelectedDomain, OrgReportConfigurationResponse, OrgReportCreateResponse, OrgReportListResponse, OrgReportListResponseOrgReport, OrgReportListResponseRequestor, OrgReportRequest, OrganizationAccountRequest, OrganizationAccountResponse, OrganizationAccountSettingsImportRequestorResponse, OrganizationAccountSettingsImportResponse, OrganizationAccountSettingsImportResultResponse, OrganizationAccountsRequest, OrganizationExportAccount, OrganizationExportDomain, OrganizationExportRequest, OrganizationExportRequestorResponse, OrganizationExportResponse, OrganizationExportTaskResponse, OrganizationExportsResponse, OrganizationImportResponse, OrganizationImportResponseErrorRollup, OrganizationImportResponseRequestor, OrganizationImportResponseWarningRollup, OrganizationImportsResponse, OrganizationResponse, OrganizationSalesforceAccountManagersResponse, OrganizationSimpleIdObject, OrganizationUserResponse, OrganizationUsersResponse, OrganizationsResponse, PagingResponseProperties, PermissionProfileRequest, PermissionProfileResponse, PermissionProfileResponse21, PermissionsResponse, ProductPermissionProfileRequest, ProductPermissionProfileResponse, ProductPermissionProfilesRequest, ProductPermissionProfilesResponse, RemoveDSGroupUsersResponse, RemoveUserProductsResponse, RequiredAttributeMappingResponse, Saml2IdentityProviderResponse, SettingResponse, UpdateMembershipRequest, UpdateResponse, UpdateUserEmailRequest, UpdateUserRequest, UpdateUsersEmailRequest, UpdateUsersRequest, UserDrilldownResponse, UserIdentityRequest, UserIdentityResponse, UserProductPermissionProfilesRequest, UserProductPermissionProfilesResponse, UserProductProfileDeleteRequest, UserUpdateResponse, UsersDrilldownResponse, UsersUpdateResponse, AccountsApi, BulkExportsApi, BulkImportsApi, DSGroupsApi, IdentityProvidersApi, OrganizationsApi, ProductPermissionProfilesApi, ProvisionAssetGroupApi, ReservedDomainsApi, UsersApi) { | ||
'use strict'; | ||
@@ -85,2 +85,37 @@ | ||
/** | ||
* The AssetGroupAccountClone model constructor. | ||
* @property {module:model/AssetGroupAccountClone} | ||
*/ | ||
AssetGroupAccountClone: AssetGroupAccountClone, | ||
/** | ||
* The AssetGroupAccountCloneSourceAccount model constructor. | ||
* @property {module:model/AssetGroupAccountCloneSourceAccount} | ||
*/ | ||
AssetGroupAccountCloneSourceAccount: AssetGroupAccountCloneSourceAccount, | ||
/** | ||
* The AssetGroupAccountCloneTargetAccount model constructor. | ||
* @property {module:model/AssetGroupAccountCloneTargetAccount} | ||
*/ | ||
AssetGroupAccountCloneTargetAccount: AssetGroupAccountCloneTargetAccount, | ||
/** | ||
* The AssetGroupAccountCloneTargetAccountAdmin model constructor. | ||
* @property {module:model/AssetGroupAccountCloneTargetAccountAdmin} | ||
*/ | ||
AssetGroupAccountCloneTargetAccountAdmin: AssetGroupAccountCloneTargetAccountAdmin, | ||
/** | ||
* The AssetGroupAccountClones model constructor. | ||
* @property {module:model/AssetGroupAccountClones} | ||
*/ | ||
AssetGroupAccountClones: AssetGroupAccountClones, | ||
/** | ||
* The AssetGroupAccountResponse model constructor. | ||
* @property {module:model/AssetGroupAccountResponse} | ||
*/ | ||
AssetGroupAccountResponse: AssetGroupAccountResponse, | ||
/** | ||
* The AssetGroupAccountsResponse model constructor. | ||
* @property {module:model/AssetGroupAccountsResponse} | ||
*/ | ||
AssetGroupAccountsResponse: AssetGroupAccountsResponse, | ||
/** | ||
* The CertificateResponse model constructor. | ||
@@ -91,2 +126,7 @@ * @property {module:model/CertificateResponse} | ||
/** | ||
* The CloneErrorDetails model constructor. | ||
* @property {module:model/CloneErrorDetails} | ||
*/ | ||
CloneErrorDetails: CloneErrorDetails, | ||
/** | ||
* The DSGroupAddRequest model constructor. | ||
@@ -637,2 +677,7 @@ * @property {module:model/DSGroupAddRequest} | ||
/** | ||
* The ProvisionAssetGroupApi service constructor. | ||
* @property {module:api/ProvisionAssetGroupApi} | ||
*/ | ||
ProvisionAssetGroupApi: ProvisionAssetGroupApi, | ||
/** | ||
* The ReservedDomainsApi service constructor. | ||
@@ -639,0 +684,0 @@ * @property {module:api/ReservedDomainsApi} |
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
650912
142
15853
6
2
+ Addedaxios@^1.6.8
+ Added@devhigley/parse-proxy@1.0.3(transitive)
+ Addedaxios@1.7.9(transitive)
+ Addedfollow-redirects@1.15.9(transitive)
+ Addedform-data@4.0.2(transitive)
+ Addedproxy-from-env@1.1.0(transitive)
- Removedsuperagent@3.8.2
- Removedcall-bound@1.0.3(transitive)
- Removedcomponent-emitter@1.3.1(transitive)
- Removedcookiejar@2.1.4(transitive)
- Removedcore-util-is@1.0.3(transitive)
- Removeddebug@3.2.7(transitive)
- Removedextend@3.0.2(transitive)
- Removedform-data@2.5.3(transitive)
- Removedformidable@1.2.6(transitive)
- Removedinherits@2.0.4(transitive)
- Removedisarray@1.0.0(transitive)
- Removedmethods@1.1.2(transitive)
- Removedmime@1.6.0(transitive)
- Removedobject-inspect@1.13.4(transitive)
- Removedprocess-nextick-args@2.0.1(transitive)
- Removedqs@6.14.0(transitive)
- Removedreadable-stream@2.3.8(transitive)
- Removedsafe-buffer@5.1.2(transitive)
- Removedside-channel@1.1.0(transitive)
- Removedside-channel-list@1.0.0(transitive)
- Removedside-channel-map@1.0.1(transitive)
- Removedside-channel-weakmap@1.0.2(transitive)
- Removedstring_decoder@1.1.1(transitive)
- Removedsuperagent@3.8.2(transitive)
- Removedutil-deprecate@1.0.2(transitive)