@equinor/fusion-framework-module-msal 0.1.0-beta.1 → 0.1.0-beta.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/client/package.json +7 -0
  2. package/dist/esm/client/behavior.js +2 -0
  3. package/dist/esm/client/behavior.js.map +1 -0
  4. package/dist/esm/client/client.js +63 -0
  5. package/dist/esm/client/client.js.map +1 -0
  6. package/dist/esm/client/create-auth-client.js +16 -0
  7. package/dist/esm/client/create-auth-client.js.map +1 -0
  8. package/dist/esm/client/index.js +5 -0
  9. package/dist/esm/client/index.js.map +1 -0
  10. package/dist/esm/client/log/console.js +27 -0
  11. package/dist/esm/client/log/console.js.map +1 -0
  12. package/dist/esm/client/request.js +2 -0
  13. package/dist/esm/client/request.js.map +1 -0
  14. package/dist/esm/client/util/browser.js +5 -0
  15. package/dist/esm/client/util/browser.js.map +1 -0
  16. package/dist/esm/client/util/url.js +10 -0
  17. package/dist/esm/client/util/url.js.map +1 -0
  18. package/dist/esm/index.js.map +1 -1
  19. package/dist/esm/provider.js +28 -6
  20. package/dist/esm/provider.js.map +1 -1
  21. package/dist/tsconfig.tsbuildinfo +1 -1
  22. package/dist/types/client/behavior.d.ts +2 -0
  23. package/dist/types/client/client.d.ts +13 -0
  24. package/dist/types/client/create-auth-client.d.ts +7 -0
  25. package/dist/types/client/index.d.ts +4 -0
  26. package/dist/types/client/log/console.d.ts +8 -0
  27. package/dist/types/client/request.d.ts +2 -0
  28. package/dist/types/client/util/browser.d.ts +1 -0
  29. package/dist/types/client/util/url.d.ts +1 -0
  30. package/dist/types/configurator.d.ts +1 -1
  31. package/dist/types/provider.d.ts +20 -10
  32. package/package.json +5 -5
  33. package/src/client/behavior.ts +14 -0
  34. package/src/client/client.ts +158 -0
  35. package/src/client/create-auth-client.ts +46 -0
  36. package/src/client/index.ts +6 -0
  37. package/src/client/log/console.ts +55 -0
  38. package/src/client/request.ts +66 -0
  39. package/src/client/util/browser.ts +14 -0
  40. package/src/client/util/url.ts +24 -0
  41. package/src/configurator.ts +1 -1
  42. package/src/index.ts +1 -0
  43. package/src/provider.ts +68 -12
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "@equinor/fusion-framework-module-http/client",
3
+ "types": "../dist/types/client/index.d.ts",
4
+ "main": "../dist/esm/client/index.js",
5
+ "module": "../dist/esm/client/index.js",
6
+ "sideEffects": false
7
+ }
@@ -0,0 +1,2 @@
1
+ export const defaultBehavior = 'redirect';
2
+ //# sourceMappingURL=behavior.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"behavior.js","sourceRoot":"","sources":["../../../src/client/behavior.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,eAAe,GAAiB,UAAU,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { PublicClientApplication, } from '@azure/msal-browser';
2
+ import { defaultBehavior } from './behavior';
3
+ export class AuthClient extends PublicClientApplication {
4
+ tenantId;
5
+ get account() {
6
+ const accounts = this.getAllAccounts();
7
+ return accounts.find((a) => (a.tenantId = this.tenantId));
8
+ }
9
+ get clientId() {
10
+ return this.config.auth?.clientId;
11
+ }
12
+ get requestOrigin() {
13
+ return this.browserStorage.getTemporaryCache('request.origin', true);
14
+ }
15
+ constructor(tenantId, config) {
16
+ super(config);
17
+ this.tenantId = tenantId;
18
+ }
19
+ async login(options, behavior = defaultBehavior, silent = true) {
20
+ const loginHint = options?.loginHint || this.account?.username;
21
+ const scopes = options?.scopes || [];
22
+ const request = { ...options, loginHint, scopes };
23
+ if (loginHint && silent) {
24
+ this.logger.verbose('Attempting to login in silently');
25
+ try {
26
+ return this.ssoSilent(request);
27
+ }
28
+ catch {
29
+ this.logger.verbose('Silent login attempt failed');
30
+ }
31
+ }
32
+ this.logger.verbose(`Attempting to login in by [${behavior}]`);
33
+ switch (behavior) {
34
+ case 'popup':
35
+ return this.loginPopup(request);
36
+ case 'redirect': {
37
+ return this.loginRedirect(request);
38
+ }
39
+ }
40
+ }
41
+ async acquireToken(options = { scopes: [] }, behavior = defaultBehavior, silent = true) {
42
+ const account = await this.account;
43
+ if (silent && account) {
44
+ this.logger.verbose('Attempting to acquire token in silently');
45
+ try {
46
+ return this.acquireTokenSilent({ account, ...options });
47
+ }
48
+ catch (err) {
49
+ this.logger.info('Expected to navigate away from the current page but timeout occurred.');
50
+ }
51
+ }
52
+ this.logger.verbose(`Attempting to acquire token by [${behavior}]`);
53
+ switch (behavior) {
54
+ case 'popup':
55
+ return this.acquireTokenPopup(options);
56
+ case 'redirect': {
57
+ return this.acquireTokenRedirect(options);
58
+ }
59
+ }
60
+ }
61
+ }
62
+ export default AuthClient;
63
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,uBAAuB,GAO1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAgB,eAAe,EAAE,MAAM,YAAY,CAAC;AAkC3D,MAAM,OAAO,UAAW,SAAQ,uBAAuB;IA0B9B;IApBrB,IAAI,OAAO;QACP,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACvC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,CAAC;IAKD,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC;IACtC,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IAMD,YAAqB,QAAgB,EAAE,MAAqB;QACxD,KAAK,CAAC,MAAM,CAAC,CAAC;QADG,aAAQ,GAAR,QAAQ,CAAQ;IAErC,CAAC;IAaD,KAAK,CAAC,KAAK,CACP,OAAqB,EACrB,WAAyB,eAAe,EACxC,MAAM,GAAG,IAAI;QAEb,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC/D,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAElD,IAAI,SAAS,IAAI,MAAM,EAAE;YACrB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;YACvD,IAAI;gBACA,OAAO,IAAI,CAAC,SAAS,CAAC,OAA2B,CAAC,CAAC;aACtD;YAAC,MAAM;gBACJ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;aACtD;SACJ;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,8BAA8B,QAAQ,GAAG,CAAC,CAAC;QAE/D,QAAQ,QAAQ,EAAE;YACd,KAAK,OAAO;gBACR,OAAO,IAAI,CAAC,UAAU,CAAC,OAAuB,CAAC,CAAC;YACpD,KAAK,UAAU,CAAC,CAAC;gBACb,OAAO,IAAI,CAAC,aAAa,CAAC,OAA0B,CAAC,CAAC;aACzD;SACJ;IACL,CAAC;IAgBM,KAAK,CAAC,YAAY,CACrB,UAAuB,EAAE,MAAM,EAAE,EAAE,EAAE,EACrC,WAAyB,eAAe,EACxC,MAAM,GAAG,IAAI;QAEb,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;QACnC,IAAI,MAAM,IAAI,OAAO,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;YAC/D,IAAI;gBACA,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;aAC3D;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,uEAAuE,CAC1E,CAAC;aACL;SACJ;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mCAAmC,QAAQ,GAAG,CAAC,CAAC;QAEpE,QAAQ,QAAQ,EAAE;YACd,KAAK,OAAO;gBACR,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC3C,KAAK,UAAU,CAAC,CAAC;gBACb,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;aAC7C;SACJ;IACL,CAAC;CACJ;AAED,eAAe,UAAU,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { AuthClient } from './client';
2
+ import { normalizeUri } from './util/url';
3
+ export const createAuthClient = (tenantId, clientId, redirectUri, config, ctor) => {
4
+ const auth = {
5
+ clientId,
6
+ redirectUri: normalizeUri(redirectUri || ''),
7
+ navigateToLoginRequestUrl: false,
8
+ authority: `https://login.microsoftonline.com/${tenantId}`,
9
+ ...config?.auth,
10
+ };
11
+ const cache = { cacheLocation: 'localStorage', ...config?.cache };
12
+ const system = config?.system;
13
+ return new (ctor || AuthClient)(tenantId, { auth, cache, system });
14
+ };
15
+ export default createAuthClient;
16
+ //# sourceMappingURL=create-auth-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-auth-client.js","sourceRoot":"","sources":["../../../src/client/create-auth-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAwB1C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC5B,QAAgB,EAChB,QAAgB,EAChB,WAAoB,EACpB,MAAyB,EACzB,IAAyD,EACxD,EAAE;IACH,MAAM,IAAI,GAA0B;QAChC,QAAQ;QACR,WAAW,EAAE,YAAY,CAAC,WAAW,IAAI,EAAE,CAAC;QAC5C,yBAAyB,EAAE,KAAK;QAChC,SAAS,EAAE,qCAAqC,QAAQ,EAAE;QAC1D,GAAG,MAAM,EAAE,IAAI;KAClB,CAAC;IACF,MAAM,KAAK,GAAG,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC;IAClE,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC;IAC9B,OAAO,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAM,CAAC;AAC5E,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { default, createAuthClient } from './create-auth-client';
2
+ export { ConsoleLogger } from './log/console';
3
+ export * from './client';
4
+ export * from './request';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAoB,MAAM,sBAAsB,CAAC;AAEnF,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { Logger, LogLevel } from '@azure/msal-browser';
2
+ export class ConsoleLogger extends Logger {
3
+ constructor(logLevel) {
4
+ super({
5
+ logLevel,
6
+ loggerCallback: (...args) => this.loggerCallback(...args),
7
+ });
8
+ }
9
+ loggerCallback(lvl, msg, _containsPii) {
10
+ console[this.getLogType(lvl)](`%c FUSION::MSAL %c %s`, 'border: 1px solid;', 'border: none;', msg);
11
+ }
12
+ getLogType = (lvl) => {
13
+ switch (lvl) {
14
+ case LogLevel.Error:
15
+ return 'error';
16
+ case LogLevel.Warning:
17
+ return 'warn';
18
+ case LogLevel.Info:
19
+ return 'info';
20
+ case LogLevel.Verbose:
21
+ default:
22
+ return 'debug';
23
+ }
24
+ };
25
+ }
26
+ export default ConsoleLogger;
27
+ //# sourceMappingURL=console.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../../../src/client/log/console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAevD,MAAM,OAAO,aAAc,SAAQ,MAAM;IAIrC,YAAY,QAAmB;QAC3B,KAAK,CAAC;YACF,QAAQ;YACR,cAAc,EAAE,CAAC,GAAG,IAAiC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;SACzF,CAAC,CAAC;IACP,CAAC;IAGS,cAAc,CAAC,GAAa,EAAE,GAAW,EAAE,YAAsB;QACvE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CACzB,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,GAAG,CACN,CAAC;IACN,CAAC;IAKS,UAAU,GAAG,CAAC,GAAa,EAAgB,EAAE;QACnD,QAAQ,GAAG,EAAE;YACT,KAAK,QAAQ,CAAC,KAAK;gBACf,OAAO,OAAO,CAAC;YACnB,KAAK,QAAQ,CAAC,OAAO;gBACjB,OAAO,MAAM,CAAC;YAClB,KAAK,QAAQ,CAAC,IAAI;gBACd,OAAO,MAAM,CAAC;YAClB,KAAK,QAAQ,CAAC,OAAO,CAAC;YACtB;gBACI,OAAO,OAAO,CAAC;SACtB;IACL,CAAC,CAAC;CACL;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/client/request.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export const redirect = (url, timeout = 3000, history) => {
2
+ history ? window.location.assign(url) : window.location.replace(url);
3
+ return new Promise((_, reject) => setTimeout(reject, timeout));
4
+ };
5
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../../src/client/util/browser.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,OAAO,GAAG,IAAI,EAAE,OAAiB,EAAiB,EAAE;IACtF,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrE,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACnE,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ export const normalizeUri = (uri, home = window.location.origin) => {
2
+ uri = uri.match(/^http[s]?/) ? uri : home + uri;
3
+ const { origin, pathname } = new URL(uri);
4
+ return origin + pathname.replace(/((?<=[/])[/]+)|\/$/, '');
5
+ };
6
+ export const compareOrigin = (a, b) => {
7
+ const url = { a: normalizeUri(a), b: normalizeUri(b) };
8
+ return url.a === url.b;
9
+ };
10
+ //# sourceMappingURL=url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../../../../src/client/util/url.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,OAAe,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAU,EAAE;IACvF,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;IAChD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAS,EAAE,CAAS,EAAW,EAAE;IAC3D,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,OAAO,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAC3B,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC"}
@@ -1,8 +1,13 @@
1
- import { createAuthClient } from '@equinor/fusion-web-msal';
1
+ import { createAuthClient, ConsoleLogger } from './client';
2
+ const DEFAULT_CLIENT_NAME = 'default';
2
3
  export class AuthProvider {
3
4
  _config;
4
- get client() {
5
- return this.createClient();
5
+ _clients = {};
6
+ get defaultClient() {
7
+ return this.getClient(DEFAULT_CLIENT_NAME);
8
+ }
9
+ get defaultAccount() {
10
+ return this.defaultClient.account;
6
11
  }
7
12
  get defaultConfig() {
8
13
  return this._config.defaultConfig;
@@ -10,22 +15,39 @@ export class AuthProvider {
10
15
  constructor(_config) {
11
16
  this._config = _config;
12
17
  }
18
+ getClient(name) {
19
+ if (!this._clients[name]) {
20
+ this._clients[name] = this.createClient(name);
21
+ }
22
+ return this._clients[name];
23
+ }
13
24
  createClient(name) {
14
25
  const config = name ? this._config.getClientConfig(name) : this._config.defaultConfig;
15
26
  if (!config) {
16
27
  throw Error('Could not find any config');
17
28
  }
18
- return createAuthClient(config.tenantId, config.clientId, config.redirectUri, config.config);
29
+ const client = createAuthClient(config.tenantId, config.clientId, config.redirectUri, config.config);
30
+ client.setLogger(new ConsoleLogger(3));
31
+ return client;
32
+ }
33
+ async handleRedirect() {
34
+ const { redirectUri } = this.defaultConfig || {};
35
+ if (window.location.pathname === redirectUri) {
36
+ const url = this.defaultClient.requestOrigin || '';
37
+ await this.defaultClient.handleRedirectPromise();
38
+ window.location.replace(url);
39
+ }
40
+ return null;
19
41
  }
20
42
  acquireToken(req) {
21
- return this.createClient().acquireToken(req);
43
+ return this.defaultClient.acquireToken(req);
22
44
  }
23
45
  async acquireAccessToken(req) {
24
46
  const token = await this.acquireToken(req);
25
47
  return token ? token.accessToken : undefined;
26
48
  }
27
49
  async login() {
28
- await this.client.login();
50
+ await this.defaultClient.login();
29
51
  }
30
52
  }
31
53
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAgBxE,MAAM,OAAO,YAAY;IASC;IARtB,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;IACtC,CAAC;IAED,YAAsB,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;IAAG,CAAC;IAEpD,YAAY,CAAC,IAAa;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;QACtF,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;SAC5C;QACD,OAAO,gBAAgB,CACnB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,MAAM,CAChB,CAAC;IACN,CAAC;IAED,YAAY,CAAC,GAAgB;QACzB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,GAAgB;QACrC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC3C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;CACJ"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,gBAAgB,EAAe,aAAa,EAAE,MAAM,UAAU,CAAC;AA4CpF,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAEtC,MAAM,OAAO,YAAY;IAcC;IAbZ,QAAQ,GAA+B,EAAE,CAAC;IACpD,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACtC,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;IACtC,CAAC;IAED,YAAsB,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;IAAG,CAAC;IAEpD,SAAS,CAAC,IAAY;QAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SACjD;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,YAAY,CAAC,IAAa;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;QACtF,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;SAC5C;QACD,MAAM,MAAM,GAAG,gBAAgB,CAC3B,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,MAAM,CAChB,CAAC;QAEF,MAAM,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvC,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,cAAc;QAChB,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;QACjD,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,WAAW,EAAE;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,IAAI,EAAE,CAAC;YACnD,MAAM,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;YACjD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAChC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,GAAgB;QACzB,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,GAAgB;QACrC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC3C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;CACJ"}