@pnp/adaljsclient
Advanced tools
Comparing version 2.1.0-beta8 to 2.1.0-beta9
154
index.js
@@ -1,4 +0,3 @@ | ||
import { __awaiter, __extends, __generator } from "tslib"; | ||
import { __awaiter } from "tslib"; | ||
import { BearerTokenFetchClient, isUrlAbsolute, SPFxAdalClient, getADALResource } from "@pnp/common"; | ||
// @ts-ignore | ||
import * as adal from "adal-angular/dist/adal.min.js"; | ||
@@ -8,4 +7,3 @@ /** | ||
*/ | ||
var AdalClient = /** @class */ (function (_super) { | ||
__extends(AdalClient, _super); | ||
export class AdalClient extends BearerTokenFetchClient { | ||
/** | ||
@@ -17,10 +15,9 @@ * Creates a new instance of AdalClient | ||
*/ | ||
function AdalClient(clientId, tenant, redirectUri) { | ||
var _this = _super.call(this, null) || this; | ||
_this.clientId = clientId; | ||
_this.tenant = tenant; | ||
_this.redirectUri = redirectUri; | ||
_this._displayCallback = null; | ||
_this._loginPromise = null; | ||
return _this; | ||
constructor(clientId, tenant, redirectUri) { | ||
super(null); | ||
this.clientId = clientId; | ||
this.tenant = tenant; | ||
this.redirectUri = redirectUri; | ||
this._displayCallback = null; | ||
this._loginPromise = null; | ||
} | ||
@@ -34,5 +31,5 @@ /** | ||
*/ | ||
AdalClient.fromSPFxContext = function (spfxContext) { | ||
static fromSPFxContext(spfxContext) { | ||
return new SPFxAdalClient(spfxContext); | ||
}; | ||
} | ||
/** | ||
@@ -44,20 +41,16 @@ * Conducts the fetch opertation against the AAD secured resource | ||
*/ | ||
AdalClient.prototype.fetch = function (url, options) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var token; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
if (!isUrlAbsolute(url)) { | ||
throw Error("You must supply absolute urls to AdalClient.fetch."); | ||
} | ||
return [4 /*yield*/, this.getToken(getADALResource(url))]; | ||
case 1: | ||
token = _a.sent(); | ||
this.token = token; | ||
return [2 /*return*/, _super.prototype.fetch.call(this, url, options)]; | ||
} | ||
}); | ||
fetch(url, options) { | ||
const _super = Object.create(null, { | ||
fetch: { get: () => super.fetch } | ||
}); | ||
}; | ||
return __awaiter(this, void 0, void 0, function* () { | ||
if (!isUrlAbsolute(url)) { | ||
throw Error("You must supply absolute urls to AdalClient.fetch."); | ||
} | ||
// the url we are calling is the resource | ||
const token = yield this.getToken(getADALResource(url)); | ||
this.token = token; | ||
return _super.fetch.call(this, url, options); | ||
}); | ||
} | ||
/** | ||
@@ -68,63 +61,52 @@ * Gets a token based on the current user | ||
*/ | ||
AdalClient.prototype.getToken = function (resource) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, this.login()]; | ||
case 1: | ||
_a.sent(); | ||
return [2 /*return*/, new Promise(function (resolve, reject) { | ||
AdalClient._authContext.acquireToken(resource, function (message, token) { | ||
if (message) { | ||
reject(Error(message)); | ||
} | ||
else { | ||
resolve(token); | ||
} | ||
}); | ||
})]; | ||
} | ||
getToken(resource) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
yield this.login(); | ||
return new Promise((resolve, reject) => { | ||
AdalClient._authContext.acquireToken(resource, (message, token) => { | ||
if (message) { | ||
reject(Error(message)); | ||
} | ||
else { | ||
resolve(token); | ||
} | ||
}); | ||
}); | ||
}); | ||
}; | ||
} | ||
/** | ||
* Ensures we have created and setup the adal AuthenticationContext instance | ||
*/ | ||
AdalClient.prototype.ensureAuthContext = function () { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var _this = this; | ||
return __generator(this, function (_a) { | ||
if (AdalClient._authContext === null) { | ||
AdalClient._authContext = adal.inject({ | ||
clientId: this.clientId, | ||
displayCall: function (url) { | ||
if (_this._displayCallback) { | ||
_this._displayCallback(url); | ||
} | ||
}, | ||
navigateToLoginRequestUrl: false, | ||
redirectUri: this.redirectUri, | ||
tenant: this.tenant, | ||
}); | ||
} | ||
return [2 /*return*/]; | ||
}); | ||
ensureAuthContext() { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
if (AdalClient._authContext === null) { | ||
AdalClient._authContext = adal.inject({ | ||
clientId: this.clientId, | ||
displayCall: (url) => { | ||
if (this._displayCallback) { | ||
this._displayCallback(url); | ||
} | ||
}, | ||
navigateToLoginRequestUrl: false, | ||
redirectUri: this.redirectUri, | ||
tenant: this.tenant, | ||
}); | ||
} | ||
}); | ||
}; | ||
} | ||
/** | ||
* Ensures the current user is logged in | ||
*/ | ||
AdalClient.prototype.login = function () { | ||
var _this = this; | ||
login() { | ||
if (this._loginPromise) { | ||
return this._loginPromise; | ||
} | ||
this._loginPromise = new Promise(function (resolve, reject) { | ||
this._loginPromise = new Promise((resolve, reject) => { | ||
// this triggers the login process | ||
_this.ensureAuthContext().then(function (_) { | ||
this.ensureAuthContext().then(() => { | ||
if (AdalClient._authContext.getCachedUser()) { | ||
return resolve(); | ||
} | ||
_this._displayCallback = function (url) { | ||
var popupWindow = window.open(url, "login", "width=483, height=600"); | ||
this._displayCallback = (url) => { | ||
const popupWindow = window.open(url, "login", "width=483, height=600"); | ||
if (!popupWindow) { | ||
@@ -136,3 +118,3 @@ return reject(Error("Could not open pop-up window for auth. Likely pop-ups are blocked by the browser.")); | ||
} | ||
var pollTimer = window.setInterval(function () { | ||
const pollTimer = window.setInterval(() => { | ||
try { | ||
@@ -142,3 +124,3 @@ if (!popupWindow || popupWindow.closed || popupWindow.closed === undefined) { | ||
} | ||
if (popupWindow.document.URL.indexOf(_this.redirectUri) !== -1) { | ||
if (popupWindow.document.URL.indexOf(this.redirectUri) !== -1) { | ||
AdalClient._authContext.handleWindowCallback(popupWindow.location.hash); | ||
@@ -159,14 +141,12 @@ popupWindow.close(); | ||
AdalClient._authContext.login(); | ||
_this._displayCallback = null; | ||
this._displayCallback = null; | ||
}); | ||
}); | ||
return this._loginPromise; | ||
}; | ||
/** | ||
* Our auth context | ||
*/ | ||
AdalClient._authContext = null; | ||
return AdalClient; | ||
}(BearerTokenFetchClient)); | ||
export { AdalClient }; | ||
} | ||
} | ||
/** | ||
* Our auth context | ||
*/ | ||
AdalClient._authContext = null; | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "@pnp/adaljsclient", | ||
"version": "2.1.0-beta8", | ||
"version": "2.1.0-beta9", | ||
"description": "pnp - provides an ADAL client for use with PnPjs", | ||
@@ -10,3 +10,3 @@ "main": "./index.js", | ||
"tslib": "2.0.3", | ||
"@pnp/common": "2.1.0-beta8" | ||
"@pnp/common": "2.1.0-beta9" | ||
}, | ||
@@ -13,0 +13,0 @@ "devDependencies": { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
15158
200
+ Added@pnp/common@2.1.0-beta9(transitive)
- Removed@pnp/common@2.1.0-beta8(transitive)
Updated@pnp/common@2.1.0-beta9