@equinor/fusion-framework-vite-plugin-spa 4.0.17-next.1 → 4.0.17
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.
- package/CHANGELOG.md +2 -37
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/html/bootstrap.js +427 -558
- package/dist/html/bootstrap.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/html/html.d.ts +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +6 -6
- package/src/version.ts +1 -1
- package/vitest.config.ts +1 -1
package/dist/html/bootstrap.js
CHANGED
|
@@ -6314,7 +6314,7 @@ async function runDisposePhase(ctx, instance, ref) {
|
|
|
6314
6314
|
}
|
|
6315
6315
|
|
|
6316
6316
|
// Generated by genversion.
|
|
6317
|
-
const version$8 = '6.1.
|
|
6317
|
+
const version$8 = '6.1.2';
|
|
6318
6318
|
|
|
6319
6319
|
// biome-ignore-all lint/suspicious/noExplicitAny: internal type-erased dispatch arrays — callbacks are registered with concrete module types but stored erased; the orchestrator never inspects these shapes itself
|
|
6320
6320
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
@@ -6449,34 +6449,7 @@ class ModulesConfigurator {
|
|
|
6449
6449
|
* @param modules - Optional array of module descriptors to pre-register.
|
|
6450
6450
|
*/
|
|
6451
6451
|
constructor(modules) {
|
|
6452
|
-
this._modules = new Set(modules
|
|
6453
|
-
}
|
|
6454
|
-
/**
|
|
6455
|
-
* Keeps the last registration for each module name.
|
|
6456
|
-
*
|
|
6457
|
-
* @param modules - Module descriptors to deduplicate.
|
|
6458
|
-
* @returns The deduplicated module descriptors.
|
|
6459
|
-
*/
|
|
6460
|
-
_dedupeModulesByName(modules) {
|
|
6461
|
-
const lastByName = new Map();
|
|
6462
|
-
// Iterate in registration order so later descriptors intentionally override earlier ones.
|
|
6463
|
-
for (const module of modules) {
|
|
6464
|
-
lastByName.set(module.name, module);
|
|
6465
|
-
}
|
|
6466
|
-
return Array.from(lastByName.values());
|
|
6467
|
-
}
|
|
6468
|
-
/**
|
|
6469
|
-
* Removes lifecycle callbacks belonging to a replaced module.
|
|
6470
|
-
*
|
|
6471
|
-
* @param moduleName - Name of the module whose callbacks are removed.
|
|
6472
|
-
*/
|
|
6473
|
-
_removeModuleCallbacks(moduleName) {
|
|
6474
|
-
// Remove callbacks from each lifecycle phase so replaced modules cannot run stale behavior.
|
|
6475
|
-
this._configs = this._configs.filter((callback) => callback.moduleName !== moduleName);
|
|
6476
|
-
// Keep cleanup callbacks aligned with the module replacement.
|
|
6477
|
-
this._afterConfiguration = this._afterConfiguration.filter((callback) => callback.moduleName !== moduleName);
|
|
6478
|
-
// Remove initialization callbacks as well, preventing the old module from being initialized.
|
|
6479
|
-
this._afterInit = this._afterInit.filter((callback) => callback.moduleName !== moduleName);
|
|
6452
|
+
this._modules = new Set(modules);
|
|
6480
6453
|
}
|
|
6481
6454
|
/**
|
|
6482
6455
|
* Returns all registered module descriptors as an ordered array.
|
|
@@ -6503,9 +6476,6 @@ class ModulesConfigurator {
|
|
|
6503
6476
|
/**
|
|
6504
6477
|
* Registers a single module configurator.
|
|
6505
6478
|
*
|
|
6506
|
-
* If a module with the same `name` was already registered, the previous
|
|
6507
|
-
* registration is replaced so the last added module wins.
|
|
6508
|
-
*
|
|
6509
6479
|
* Adds the module to the known module set and registers the optional
|
|
6510
6480
|
* `configure`, `afterConfig`, and `afterInit` callbacks into their
|
|
6511
6481
|
* respective lifecycle phase arrays.
|
|
@@ -6516,26 +6486,7 @@ class ModulesConfigurator {
|
|
|
6516
6486
|
*/
|
|
6517
6487
|
addConfig(config) {
|
|
6518
6488
|
const { module, afterConfig, afterInit, configure } = config;
|
|
6519
|
-
|
|
6520
|
-
const existingModule = Array.from(this._modules).find((m) => m.name === module.name);
|
|
6521
|
-
// Only handle replacement/dedupe when a descriptor is already registered under this name.
|
|
6522
|
-
if (existingModule) {
|
|
6523
|
-
// Only a genuinely different descriptor for this name is a replacement that must
|
|
6524
|
-
// discard the old callbacks. Re-registering the SAME descriptor object (as helpers
|
|
6525
|
-
// like `configureHttpClient`/`useFrameworkServiceClient` do on every call, since they
|
|
6526
|
-
// all share one module singleton) must stay additive so multiple calls can register
|
|
6527
|
-
// multiple named clients without clobbering each other.
|
|
6528
|
-
if (existingModule !== module) {
|
|
6529
|
-
this._removeModuleCallbacks(module.name);
|
|
6530
|
-
const modules = Array.from(this._modules)
|
|
6531
|
-
// Preserve every descriptor while substituting the newly registered module.
|
|
6532
|
-
.map((m) => (m.name === module.name ? module : m));
|
|
6533
|
-
this._modules = new Set(modules);
|
|
6534
|
-
}
|
|
6535
|
-
}
|
|
6536
|
-
else {
|
|
6537
|
-
this._modules.add(module);
|
|
6538
|
-
}
|
|
6489
|
+
this._modules.add(module);
|
|
6539
6490
|
this._registerEvent({
|
|
6540
6491
|
level: ModuleEventLevel.Debug,
|
|
6541
6492
|
name: ModuleConfiguratorEventName.ModuleConfigAdded,
|
|
@@ -6548,26 +6499,15 @@ class ModulesConfigurator {
|
|
|
6548
6499
|
afterInit: !!afterInit,
|
|
6549
6500
|
},
|
|
6550
6501
|
});
|
|
6551
|
-
// Register each optional callback into its corresponding lifecycle phase array
|
|
6552
|
-
|
|
6553
|
-
|
|
6554
|
-
if
|
|
6555
|
-
|
|
6556
|
-
|
|
6557
|
-
|
|
6558
|
-
|
|
6559
|
-
|
|
6560
|
-
if (afterConfig) {
|
|
6561
|
-
const callback = ((cfg) => afterConfig(cfg[module.name]));
|
|
6562
|
-
callback.moduleName = module.name;
|
|
6563
|
-
this._afterConfiguration.push(callback);
|
|
6564
|
-
}
|
|
6565
|
-
// Register the afterInit callback, if provided.
|
|
6566
|
-
if (afterInit) {
|
|
6567
|
-
const callback = ((instances) => afterInit(instances[module.name]));
|
|
6568
|
-
callback.moduleName = module.name;
|
|
6569
|
-
this._afterInit.push(callback);
|
|
6570
|
-
}
|
|
6502
|
+
// Register each optional callback into its corresponding lifecycle phase array
|
|
6503
|
+
if (configure)
|
|
6504
|
+
this._configs.push((cfg, ref) => configure(cfg[module.name], ref));
|
|
6505
|
+
// Register the afterConfig callback, if provided
|
|
6506
|
+
if (afterConfig)
|
|
6507
|
+
this._afterConfiguration.push((cfg) => afterConfig(cfg[module.name]));
|
|
6508
|
+
// Register the afterInit callback, if provided
|
|
6509
|
+
if (afterInit)
|
|
6510
|
+
this._afterInit.push((instances) => afterInit(instances[module.name]));
|
|
6571
6511
|
}
|
|
6572
6512
|
/**
|
|
6573
6513
|
* Registers a callback for the post-configure phase.
|
|
@@ -6989,49 +6929,6 @@ class HttpRequestHandler extends ProcessOperators {
|
|
|
6989
6929
|
class HttpResponseHandler extends ProcessOperators {
|
|
6990
6930
|
}
|
|
6991
6931
|
|
|
6992
|
-
/**
|
|
6993
|
-
* Normalizes a step's result to a `Promise`, so a middleware calling `next(...)` never has to
|
|
6994
|
-
* branch on whether the next step short-circuited with a plain `Response` or reached all the
|
|
6995
|
-
* way to an Observable-returning network call.
|
|
6996
|
-
*/
|
|
6997
|
-
function toPromise(result) {
|
|
6998
|
-
return result instanceof Response ? Promise.resolve(result) : firstValueFrom(from(result));
|
|
6999
|
-
}
|
|
7000
|
-
/**
|
|
7001
|
-
* Composes registered {@link HttpMiddleware} into a single execution pipeline wrapping the
|
|
7002
|
-
* network call, so retries, caching, telemetry, or circuit-breaking can wrap `_performFetch`
|
|
7003
|
-
* without touching request or response payload transforms.
|
|
7004
|
-
*
|
|
7005
|
-
* @see {@link HttpClient}
|
|
7006
|
-
*/
|
|
7007
|
-
class HttpMiddlewareHandler {
|
|
7008
|
-
#middleware;
|
|
7009
|
-
/**
|
|
7010
|
-
* Constructs a handler, optionally cloning another handler's registered middleware.
|
|
7011
|
-
* @param source - An existing handler to clone the registered middleware from.
|
|
7012
|
-
*/
|
|
7013
|
-
constructor(source) {
|
|
7014
|
-
this.#middleware = source ? [...source.middleware] : [];
|
|
7015
|
-
}
|
|
7016
|
-
/** @inheritdoc */
|
|
7017
|
-
get middleware() {
|
|
7018
|
-
return this.#middleware;
|
|
7019
|
-
}
|
|
7020
|
-
/** @inheritdoc */
|
|
7021
|
-
use(middleware) {
|
|
7022
|
-
this.#middleware.push(middleware);
|
|
7023
|
-
return this;
|
|
7024
|
-
}
|
|
7025
|
-
/** @inheritdoc */
|
|
7026
|
-
process(uri, init, terminal) {
|
|
7027
|
-
// wrap outward-in so the first-registered middleware is outermost, matching a conventional middleware chain
|
|
7028
|
-
const chain = this.#middleware.reduceRight((next, middleware) => (nextUri, nextInit) => middleware(nextUri, nextInit, (u, i) => toPromise(next(u, i))), terminal);
|
|
7029
|
-
const result = chain(uri, init);
|
|
7030
|
-
// a middleware may short-circuit with a plain Response (no ObservableInput wrapping needed)
|
|
7031
|
-
return result instanceof Response ? of(result) : from(result);
|
|
7032
|
-
}
|
|
7033
|
-
}
|
|
7034
|
-
|
|
7035
6932
|
var _a$1;
|
|
7036
6933
|
/** A special constant with type `never` */
|
|
7037
6934
|
const NEVER = /*@__PURE__*/ Object.freeze({
|
|
@@ -7271,7 +7168,7 @@ const allowsEval = /* @__PURE__*/ cached(() => {
|
|
|
7271
7168
|
return false;
|
|
7272
7169
|
}
|
|
7273
7170
|
});
|
|
7274
|
-
function isPlainObject$
|
|
7171
|
+
function isPlainObject$2(o) {
|
|
7275
7172
|
if (isObject(o) === false)
|
|
7276
7173
|
return false;
|
|
7277
7174
|
// modified constructor
|
|
@@ -7291,7 +7188,7 @@ function isPlainObject$1(o) {
|
|
|
7291
7188
|
return true;
|
|
7292
7189
|
}
|
|
7293
7190
|
function shallowClone(o) {
|
|
7294
|
-
if (isPlainObject$
|
|
7191
|
+
if (isPlainObject$2(o))
|
|
7295
7192
|
return { ...o };
|
|
7296
7193
|
if (Array.isArray(o))
|
|
7297
7194
|
return [...o];
|
|
@@ -7497,7 +7394,7 @@ function omit(schema, mask) {
|
|
|
7497
7394
|
return clone(schema, def);
|
|
7498
7395
|
}
|
|
7499
7396
|
function extend(schema, shape) {
|
|
7500
|
-
if (!isPlainObject$
|
|
7397
|
+
if (!isPlainObject$2(shape)) {
|
|
7501
7398
|
throw new Error("Invalid input to extend: expected a plain object");
|
|
7502
7399
|
}
|
|
7503
7400
|
const checks = schema._zod.def.checks;
|
|
@@ -7522,7 +7419,7 @@ function extend(schema, shape) {
|
|
|
7522
7419
|
return clone(schema, def);
|
|
7523
7420
|
}
|
|
7524
7421
|
function safeExtend(schema, shape) {
|
|
7525
|
-
if (!isPlainObject$
|
|
7422
|
+
if (!isPlainObject$2(shape)) {
|
|
7526
7423
|
throw new Error("Invalid input to safeExtend: expected a plain object");
|
|
7527
7424
|
}
|
|
7528
7425
|
const def = mergeDefs(schema._zod.def, {
|
|
@@ -7819,7 +7716,7 @@ var util = /*#__PURE__*/Object.freeze({
|
|
|
7819
7716
|
getSizableOrigin: getSizableOrigin,
|
|
7820
7717
|
hexToUint8Array: hexToUint8Array,
|
|
7821
7718
|
isObject: isObject,
|
|
7822
|
-
isPlainObject: isPlainObject$
|
|
7719
|
+
isPlainObject: isPlainObject$2,
|
|
7823
7720
|
issue: issue,
|
|
7824
7721
|
joinValues: joinValues,
|
|
7825
7722
|
jsonStringifyReplacer: jsonStringifyReplacer,
|
|
@@ -10151,7 +10048,7 @@ function mergeValues(a, b) {
|
|
|
10151
10048
|
if (a instanceof Date && b instanceof Date && +a === +b) {
|
|
10152
10049
|
return { valid: true, data: a };
|
|
10153
10050
|
}
|
|
10154
|
-
if (isPlainObject$
|
|
10051
|
+
if (isPlainObject$2(a) && isPlainObject$2(b)) {
|
|
10155
10052
|
const bKeys = Object.keys(b);
|
|
10156
10053
|
const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);
|
|
10157
10054
|
const newObj = { ...a, ...b };
|
|
@@ -10357,7 +10254,7 @@ const $ZodRecord = /*@__PURE__*/ $constructor("$ZodRecord", (inst, def) => {
|
|
|
10357
10254
|
$ZodType.init(inst, def);
|
|
10358
10255
|
inst._zod.parse = (payload, ctx) => {
|
|
10359
10256
|
const input = payload.value;
|
|
10360
|
-
if (!isPlainObject$
|
|
10257
|
+
if (!isPlainObject$2(input)) {
|
|
10361
10258
|
payload.issues.push({
|
|
10362
10259
|
expected: "record",
|
|
10363
10260
|
code: "invalid_type",
|
|
@@ -22633,8 +22530,6 @@ class HttpClientConfigurator {
|
|
|
22633
22530
|
// validate the request object
|
|
22634
22531
|
'request-validation': requestValidationOperator(),
|
|
22635
22532
|
});
|
|
22636
|
-
/** Default middleware chain cloned into each created client instance. */
|
|
22637
|
-
defaultHttpMiddlewareHandler = new HttpMiddlewareHandler();
|
|
22638
22533
|
/**
|
|
22639
22534
|
* Creates a configurator with the default client constructor.
|
|
22640
22535
|
* @param client - The default client constructor used when `ctor` is not configured per client.
|
|
@@ -22647,11 +22542,6 @@ class HttpClientConfigurator {
|
|
|
22647
22542
|
return Object.keys(this._clients).includes(name);
|
|
22648
22543
|
}
|
|
22649
22544
|
/** @inheritdoc */
|
|
22650
|
-
addMiddleware(middleware) {
|
|
22651
|
-
this.defaultHttpMiddlewareHandler.use(middleware);
|
|
22652
|
-
return this;
|
|
22653
|
-
}
|
|
22654
|
-
/** @inheritdoc */
|
|
22655
22545
|
configureClient(name, args) {
|
|
22656
22546
|
const argFn = typeof args === 'string' ? { baseUri: args } : args;
|
|
22657
22547
|
const options = typeof argFn === 'function' ? { onCreate: argFn } : argFn;
|
|
@@ -22666,7 +22556,7 @@ class HttpClientConfigurator {
|
|
|
22666
22556
|
}
|
|
22667
22557
|
|
|
22668
22558
|
// Generated by genversion.
|
|
22669
|
-
const version$6 = '8.
|
|
22559
|
+
const version$6 = '8.0.5';
|
|
22670
22560
|
|
|
22671
22561
|
/** URL protocols accepted as valid ad-hoc base URIs. */
|
|
22672
22562
|
const SUPPORTED_PROTOCOLS = ['http:', 'https:', 'ws:', 'wss:'];
|
|
@@ -22705,13 +22595,6 @@ class HttpClientProvider extends BaseModuleProvider {
|
|
|
22705
22595
|
get defaultHttpRequestHandler() {
|
|
22706
22596
|
return this.config.defaultHttpRequestHandler;
|
|
22707
22597
|
}
|
|
22708
|
-
/**
|
|
22709
|
-
* Gets the default middleware chain for the HTTP client provider.
|
|
22710
|
-
* @returns The default middleware chain.
|
|
22711
|
-
*/
|
|
22712
|
-
get defaultHttpMiddlewareHandler() {
|
|
22713
|
-
return this.config.defaultHttpMiddlewareHandler;
|
|
22714
|
-
}
|
|
22715
22598
|
/**
|
|
22716
22599
|
* Creates a new `HttpClientProvider`.
|
|
22717
22600
|
* @param config - The configurator providing client definitions and defaults.
|
|
@@ -22749,8 +22632,8 @@ class HttpClientProvider extends BaseModuleProvider {
|
|
|
22749
22632
|
*/
|
|
22750
22633
|
createClient(keyOrConfig) {
|
|
22751
22634
|
const config = this._resolveConfig(keyOrConfig);
|
|
22752
|
-
const { baseUri, defaultScopes = [], onCreate, ctor = this.config.defaultHttpClientCtor, requestHandler = this.defaultHttpRequestHandler, responseHandler,
|
|
22753
|
-
const options = { requestHandler, responseHandler
|
|
22635
|
+
const { baseUri, defaultScopes = [], onCreate, ctor = this.config.defaultHttpClientCtor, requestHandler = this.defaultHttpRequestHandler, responseHandler, } = config;
|
|
22636
|
+
const options = { requestHandler, responseHandler };
|
|
22754
22637
|
const instance = new ctor(baseUri || '', options);
|
|
22755
22638
|
// attach the resolved default scopes onto the instance without overwriting other own properties
|
|
22756
22639
|
Object.assign(instance, { defaultScopes });
|
|
@@ -22949,12 +22832,6 @@ class HttpClient {
|
|
|
22949
22832
|
* This property is part of the `HttpClientCreateOptions` configuration object used to create an `HttpClient` instance.
|
|
22950
22833
|
*/
|
|
22951
22834
|
responseHandler;
|
|
22952
|
-
/**
|
|
22953
|
-
* Middleware wrapping the network call, for cross-cutting concerns such as retries,
|
|
22954
|
-
* caching, or telemetry. This property is part of the `HttpClientCreateOptions`
|
|
22955
|
-
* configuration object used to create an `HttpClient` instance.
|
|
22956
|
-
*/
|
|
22957
|
-
middlewareHandler;
|
|
22958
22835
|
/**
|
|
22959
22836
|
* A stream of requests that are about to be executed.
|
|
22960
22837
|
* This property is used internally by the `HttpClient` class to manage the lifecycle of requests.
|
|
@@ -22993,7 +22870,6 @@ class HttpClient {
|
|
|
22993
22870
|
this.uri = uri;
|
|
22994
22871
|
this.requestHandler = new HttpRequestHandler(options?.requestHandler);
|
|
22995
22872
|
this.responseHandler = new HttpResponseHandler(options?.responseHandler);
|
|
22996
|
-
this.middlewareHandler = new HttpMiddlewareHandler(options?.middlewareHandler);
|
|
22997
22873
|
this._init();
|
|
22998
22874
|
}
|
|
22999
22875
|
/**
|
|
@@ -23165,9 +23041,7 @@ class HttpClient {
|
|
|
23165
23041
|
/**
|
|
23166
23042
|
* Aborts any ongoing HTTP requests made by this `IHttpClient` instance.
|
|
23167
23043
|
* This will trigger the `takeUntil` operator in the `_fetch$` method,
|
|
23168
|
-
* causing any in-flight requests to be cancelled
|
|
23169
|
-
* per-request `AbortSignal` passed through to `_performFetch`, so the
|
|
23170
|
-
* underlying network call is cancelled even behind registered middleware.
|
|
23044
|
+
* causing any in-flight requests to be cancelled.
|
|
23171
23045
|
*/
|
|
23172
23046
|
abort() {
|
|
23173
23047
|
this._abort$.next();
|
|
@@ -23192,26 +23066,11 @@ class HttpClient {
|
|
|
23192
23066
|
*/
|
|
23193
23067
|
_fetch$(path, args) {
|
|
23194
23068
|
const { selector, ...options } = args || {};
|
|
23195
|
-
// A registered middleware's `next(...)` resolves through a `Promise` (see
|
|
23196
|
-
// `HttpMiddlewareHandler`), which `firstValueFrom` fulfils via its own independent
|
|
23197
|
-
// subscription to `_performFetch` — one the `takeUntil(this._abort$)` below never reaches,
|
|
23198
|
-
// since it sits outside the subscription tree that `takeUntil` tears down. Combining this
|
|
23199
|
-
// controller's signal into the request `init` lets `_performFetch` (`fromFetch` by default)
|
|
23200
|
-
// abort the underlying network call directly, regardless of whether middleware severed the
|
|
23201
|
-
// RxJS teardown chain.
|
|
23202
|
-
const abortController = new AbortController();
|
|
23203
|
-
// abort only fires once per request; the subscription is torn down in `finalize` below
|
|
23204
|
-
const abort = this._abort$.pipe(take(1)).subscribe(() => abortController.abort());
|
|
23205
|
-
const callerSignal = options.signal;
|
|
23206
|
-
const signal = callerSignal
|
|
23207
|
-
? AbortSignal.any([callerSignal, abortController.signal])
|
|
23208
|
-
: abortController.signal;
|
|
23209
23069
|
// `fromFetch` yields the raw fetch `Response`, but `responseHandler.process()` (called via
|
|
23210
23070
|
// `_prepareResponse`) expects the pipeline's generic `TResponse` shape — cast through
|
|
23211
23071
|
// `unknown` since the two are only compatible after that processing step.
|
|
23212
23072
|
const response$ = of({
|
|
23213
23073
|
...options,
|
|
23214
|
-
signal,
|
|
23215
23074
|
path,
|
|
23216
23075
|
uri: this._resolveUrl(path),
|
|
23217
23076
|
}).pipe(
|
|
@@ -23219,8 +23078,8 @@ class HttpClient {
|
|
|
23219
23078
|
switchMap((x) => this._prepareRequest(x)),
|
|
23220
23079
|
/** push request to event buss */
|
|
23221
23080
|
tap((x) => this._request$.next(x)),
|
|
23222
|
-
/** execute request
|
|
23223
|
-
switchMap(({ uri, path: _path, ...init }) =>
|
|
23081
|
+
/** execute request */
|
|
23082
|
+
switchMap(({ uri, path: _path, ...init }) => fromFetch(uri, init)),
|
|
23224
23083
|
/** prepare response, allow extensions to modify response */
|
|
23225
23084
|
switchMap((x) => this._prepareResponse(x)),
|
|
23226
23085
|
/** push response to event buss */
|
|
@@ -23241,30 +23100,11 @@ class HttpClient {
|
|
|
23241
23100
|
return of(response);
|
|
23242
23101
|
}),
|
|
23243
23102
|
/** cancel request on abort signal */
|
|
23244
|
-
takeUntil(this._abort$)
|
|
23245
|
-
/** the abort signal subscription only ever fires once; tear it down once this request settles either way */
|
|
23246
|
-
finalize$2(() => abort.unsubscribe()));
|
|
23103
|
+
takeUntil(this._abort$));
|
|
23247
23104
|
// The pipe above resolves to the per-call generic `T` (via the optional `selector`), but
|
|
23248
23105
|
// the observable's static type tracks the class-level `TResponse` — cast to the caller's `T`.
|
|
23249
23106
|
return response$;
|
|
23250
23107
|
}
|
|
23251
|
-
/**
|
|
23252
|
-
* Performs the actual network call for a prepared request.
|
|
23253
|
-
*
|
|
23254
|
-
* @remarks
|
|
23255
|
-
* Isolated from {@link _fetch$} so a test double can replace only this step —
|
|
23256
|
-
* matching a request against registered route handlers instead of reaching
|
|
23257
|
-
* the network — while everything around it (request preparation, the
|
|
23258
|
-
* response pipeline, abort handling) runs unchanged. See
|
|
23259
|
-
* `@equinor/fusion-framework-module-http/mock`.
|
|
23260
|
-
*
|
|
23261
|
-
* @param uri - The fully resolved URL for the request.
|
|
23262
|
-
* @param init - The prepared `fetch` request options.
|
|
23263
|
-
* @returns An observable of the raw `Response`, ahead of {@link _prepareResponse}.
|
|
23264
|
-
*/
|
|
23265
|
-
_performFetch(uri, init) {
|
|
23266
|
-
return fromFetch(uri, init);
|
|
23267
|
-
}
|
|
23268
23108
|
/**
|
|
23269
23109
|
* Prepares the request by passing it through the `requestHandler.process()` method.
|
|
23270
23110
|
* This method is an implementation detail of the `_fetch$()` method, and is not part of the public API.
|
|
@@ -23485,11 +23325,11 @@ var isDraft = (value) => !!value && !!value[DRAFT_STATE];
|
|
|
23485
23325
|
function isDraftable(value) {
|
|
23486
23326
|
if (!value)
|
|
23487
23327
|
return false;
|
|
23488
|
-
return isPlainObject(value) || isArray(value) || !!value[DRAFTABLE] || !!value[CONSTRUCTOR]?.[DRAFTABLE] || isMap(value) || isSet(value);
|
|
23328
|
+
return isPlainObject$1(value) || isArray(value) || !!value[DRAFTABLE] || !!value[CONSTRUCTOR]?.[DRAFTABLE] || isMap(value) || isSet(value);
|
|
23489
23329
|
}
|
|
23490
23330
|
var objectCtorString = O[PROTOTYPE][CONSTRUCTOR].toString();
|
|
23491
23331
|
var cachedCtorStrings = /* @__PURE__ */ new WeakMap();
|
|
23492
|
-
function isPlainObject(value) {
|
|
23332
|
+
function isPlainObject$1(value) {
|
|
23493
23333
|
if (!value || !isObjectish(value))
|
|
23494
23334
|
return false;
|
|
23495
23335
|
const proto = getPrototypeOf(value);
|
|
@@ -23562,7 +23402,7 @@ function shallowCopy(base, strict) {
|
|
|
23562
23402
|
}
|
|
23563
23403
|
if (isArray(base))
|
|
23564
23404
|
return Array[PROTOTYPE].slice.call(base);
|
|
23565
|
-
const isPlain = isPlainObject(base);
|
|
23405
|
+
const isPlain = isPlainObject$1(base);
|
|
23566
23406
|
if (strict === true || strict === "class_only" && !isPlain) {
|
|
23567
23407
|
const descriptors = O.getOwnPropertyDescriptors(base);
|
|
23568
23408
|
delete descriptors[DRAFT_STATE];
|
|
@@ -23921,7 +23761,7 @@ var objectTraps = {
|
|
|
23921
23761
|
) && isArrayIndex(prop)) {
|
|
23922
23762
|
return value;
|
|
23923
23763
|
}
|
|
23924
|
-
if (value === peek(state.base_, prop)) {
|
|
23764
|
+
if (value === peek(state.base_, prop) || isRelocatedBaseRef(state, prop, value)) {
|
|
23925
23765
|
prepareCopy(state);
|
|
23926
23766
|
const childKey = state.type_ === 1 /* Array */ ? +prop : prop;
|
|
23927
23767
|
const childDraft = createProxy(state.scope_, value, state, childKey);
|
|
@@ -23955,7 +23795,7 @@ var objectTraps = {
|
|
|
23955
23795
|
markChanged(state);
|
|
23956
23796
|
}
|
|
23957
23797
|
if (state.copy_[prop] === value && // special case: handle new props with value 'undefined'
|
|
23958
|
-
(value !== void 0 || prop
|
|
23798
|
+
(value !== void 0 || has(state.copy_, prop, state.type_)) || // special case: NaN
|
|
23959
23799
|
Number.isNaN(value) && Number.isNaN(state.copy_[prop]))
|
|
23960
23800
|
return true;
|
|
23961
23801
|
state.copy_[prop] = value;
|
|
@@ -24024,6 +23864,12 @@ function peek(draft, prop) {
|
|
|
24024
23864
|
const source = state ? latest(state) : draft;
|
|
24025
23865
|
return source[prop];
|
|
24026
23866
|
}
|
|
23867
|
+
function isRelocatedBaseRef(state, prop, value) {
|
|
23868
|
+
if (state.type_ !== 1 /* Array */ || !state.allIndicesReassigned_ || state.assigned_?.get(prop) || !isDraftable(value) || value[DRAFT_STATE]) {
|
|
23869
|
+
return false;
|
|
23870
|
+
}
|
|
23871
|
+
return state.baseRefs_.has(value);
|
|
23872
|
+
}
|
|
24027
23873
|
function readPropFromProto(state, source, prop) {
|
|
24028
23874
|
const desc = getDescriptorFromProto(source, prop);
|
|
24029
23875
|
return desc ? VALUE in desc ? desc[VALUE] : (
|
|
@@ -25168,7 +25014,7 @@ class TelemetryConfigurator extends BaseConfigBuilder {
|
|
|
25168
25014
|
}
|
|
25169
25015
|
|
|
25170
25016
|
// Generated by genversion.
|
|
25171
|
-
const version$5 = '
|
|
25017
|
+
const version$5 = '7.0.3';
|
|
25172
25018
|
|
|
25173
25019
|
/**
|
|
25174
25020
|
* Enum representing the severity levels of telemetry items.
|
|
@@ -26160,7 +26006,7 @@ configurator, options) => {
|
|
|
26160
26006
|
});
|
|
26161
26007
|
};
|
|
26162
26008
|
|
|
26163
|
-
/*! @azure/msal-common v16.
|
|
26009
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
26164
26010
|
/*
|
|
26165
26011
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
26166
26012
|
* Licensed under the MIT License.
|
|
@@ -26210,9 +26056,10 @@ const INSTANCE_AWARE = "instance_aware";
|
|
|
26210
26056
|
const EAR_JWK = "ear_jwk";
|
|
26211
26057
|
const EAR_JWE_CRYPTO = "ear_jwe_crypto";
|
|
26212
26058
|
const RESOURCE = "resource";
|
|
26213
|
-
const CLI_DATA = "clidata";
|
|
26059
|
+
const CLI_DATA = "clidata";
|
|
26060
|
+
const ATTRIBUTE_TOKENS = "attribute_tokens";
|
|
26214
26061
|
|
|
26215
|
-
/*! @azure/msal-common v16.
|
|
26062
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
26216
26063
|
/*
|
|
26217
26064
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
26218
26065
|
* Licensed under the MIT License.
|
|
@@ -26443,7 +26290,7 @@ const JsonWebTokenTypes = {
|
|
|
26443
26290
|
// Token renewal offset default in seconds
|
|
26444
26291
|
const DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;
|
|
26445
26292
|
|
|
26446
|
-
/*! @azure/msal-common v16.
|
|
26293
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
26447
26294
|
/*
|
|
26448
26295
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
26449
26296
|
* Licensed under the MIT License.
|
|
@@ -26472,7 +26319,7 @@ function createAuthError(code, correlationId, additionalMessage) {
|
|
|
26472
26319
|
return new AuthError(code, correlationId, additionalMessage || getDefaultErrorMessage$1(code));
|
|
26473
26320
|
}
|
|
26474
26321
|
|
|
26475
|
-
/*! @azure/msal-common v16.
|
|
26322
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
26476
26323
|
|
|
26477
26324
|
/*
|
|
26478
26325
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -26495,7 +26342,7 @@ function createClientAuthError(errorCode, correlationId, additionalMessage) {
|
|
|
26495
26342
|
return new ClientAuthError(errorCode, correlationId, additionalMessage);
|
|
26496
26343
|
}
|
|
26497
26344
|
|
|
26498
|
-
/*! @azure/msal-common v16.
|
|
26345
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
26499
26346
|
/*
|
|
26500
26347
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
26501
26348
|
* Licensed under the MIT License.
|
|
@@ -26532,7 +26379,7 @@ const methodNotImplemented = "method_not_implemented";
|
|
|
26532
26379
|
const resourceParameterRequired = "resource_parameter_required";
|
|
26533
26380
|
const misplacedResourceParam = "misplaced_resource_parameter";
|
|
26534
26381
|
|
|
26535
|
-
/*! @azure/msal-common v16.
|
|
26382
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
26536
26383
|
|
|
26537
26384
|
/*
|
|
26538
26385
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -26570,7 +26417,7 @@ function buildClientInfoFromHomeAccountId(homeAccountId) {
|
|
|
26570
26417
|
};
|
|
26571
26418
|
}
|
|
26572
26419
|
|
|
26573
|
-
/*! @azure/msal-common v16.
|
|
26420
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
26574
26421
|
|
|
26575
26422
|
/*
|
|
26576
26423
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -26636,7 +26483,7 @@ function getJWSPayload(authToken, correlationId) {
|
|
|
26636
26483
|
return matches[2];
|
|
26637
26484
|
}
|
|
26638
26485
|
|
|
26639
|
-
/*! @azure/msal-common v16.
|
|
26486
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
26640
26487
|
|
|
26641
26488
|
/*
|
|
26642
26489
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -26724,7 +26571,7 @@ function updateAccountTenantProfileData(baseAccountInfo, tenantProfile, idTokenC
|
|
|
26724
26571
|
return updatedAccountInfo;
|
|
26725
26572
|
}
|
|
26726
26573
|
|
|
26727
|
-
/*! @azure/msal-common v16.
|
|
26574
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
26728
26575
|
/*
|
|
26729
26576
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
26730
26577
|
* Licensed under the MIT License.
|
|
@@ -26739,7 +26586,7 @@ const AuthorityType = {
|
|
|
26739
26586
|
Ciam: 3,
|
|
26740
26587
|
};
|
|
26741
26588
|
|
|
26742
|
-
/*! @azure/msal-common v16.
|
|
26589
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
26743
26590
|
/*
|
|
26744
26591
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
26745
26592
|
* Licensed under the MIT License.
|
|
@@ -26761,7 +26608,7 @@ function getTenantIdFromIdTokenClaims(idTokenClaims) {
|
|
|
26761
26608
|
return null;
|
|
26762
26609
|
}
|
|
26763
26610
|
|
|
26764
|
-
/*! @azure/msal-common v16.
|
|
26611
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
26765
26612
|
/*
|
|
26766
26613
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
26767
26614
|
* Licensed under the MIT License.
|
|
@@ -26785,7 +26632,7 @@ const ProtocolMode = {
|
|
|
26785
26632
|
EAR: "EAR",
|
|
26786
26633
|
};
|
|
26787
26634
|
|
|
26788
|
-
/*! @azure/msal-common v16.
|
|
26635
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
26789
26636
|
/**
|
|
26790
26637
|
* Returns the AccountInfo interface for this account.
|
|
26791
26638
|
* @internal
|
|
@@ -26974,7 +26821,7 @@ function isAccountEntity(entity) {
|
|
|
26974
26821
|
entity.hasOwnProperty("authorityType"));
|
|
26975
26822
|
}
|
|
26976
26823
|
|
|
26977
|
-
/*! @azure/msal-common v16.
|
|
26824
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
26978
26825
|
/*
|
|
26979
26826
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
26980
26827
|
* Licensed under the MIT License.
|
|
@@ -26984,7 +26831,7 @@ function isAccountEntity(entity) {
|
|
|
26984
26831
|
*/
|
|
26985
26832
|
const unexpectedError = "unexpected_error";
|
|
26986
26833
|
|
|
26987
|
-
/*! @azure/msal-common v16.
|
|
26834
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
26988
26835
|
|
|
26989
26836
|
/*
|
|
26990
26837
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -27004,7 +26851,7 @@ function createClientConfigurationError(errorCode, correlationId) {
|
|
|
27004
26851
|
return new ClientConfigurationError(errorCode, correlationId);
|
|
27005
26852
|
}
|
|
27006
26853
|
|
|
27007
|
-
/*! @azure/msal-common v16.
|
|
26854
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
27008
26855
|
/*
|
|
27009
26856
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
27010
26857
|
* Licensed under the MIT License.
|
|
@@ -27030,7 +26877,7 @@ const invalidRequestMethodForEAR = "invalid_request_method_for_EAR";
|
|
|
27030
26877
|
const invalidPlatformBrokerConfiguration = "invalid_platform_broker_configuration";
|
|
27031
26878
|
const issuerValidationFailed = "issuer_validation_failed";
|
|
27032
26879
|
|
|
27033
|
-
/*! @azure/msal-common v16.
|
|
26880
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
27034
26881
|
/*
|
|
27035
26882
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
27036
26883
|
* Licensed under the MIT License.
|
|
@@ -27042,7 +26889,7 @@ function isOpenIdConfigResponse(response) {
|
|
|
27042
26889
|
response.hasOwnProperty("jwks_uri"));
|
|
27043
26890
|
}
|
|
27044
26891
|
|
|
27045
|
-
/*! @azure/msal-common v16.
|
|
26892
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
27046
26893
|
/*
|
|
27047
26894
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
27048
26895
|
* Licensed under the MIT License.
|
|
@@ -27122,7 +26969,7 @@ class StringUtils {
|
|
|
27122
26969
|
}
|
|
27123
26970
|
}
|
|
27124
26971
|
|
|
27125
|
-
/*! @azure/msal-common v16.
|
|
26972
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
27126
26973
|
|
|
27127
26974
|
/*
|
|
27128
26975
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -27280,7 +27127,7 @@ class UrlString {
|
|
|
27280
27127
|
}
|
|
27281
27128
|
}
|
|
27282
27129
|
|
|
27283
|
-
/*! @azure/msal-common v16.
|
|
27130
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
27284
27131
|
|
|
27285
27132
|
/*
|
|
27286
27133
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -27446,7 +27293,7 @@ function getCloudDiscoveryMetadataFromNetworkResponse(response, authorityHost) {
|
|
|
27446
27293
|
return null;
|
|
27447
27294
|
}
|
|
27448
27295
|
|
|
27449
|
-
/*! @azure/msal-common v16.
|
|
27296
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
27450
27297
|
/*
|
|
27451
27298
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
27452
27299
|
* Licensed under the MIT License.
|
|
@@ -27455,7 +27302,7 @@ const AzureCloudInstance = {
|
|
|
27455
27302
|
// AzureCloudInstance is not specified.
|
|
27456
27303
|
None: "none"};
|
|
27457
27304
|
|
|
27458
|
-
/*! @azure/msal-common v16.
|
|
27305
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
27459
27306
|
/*
|
|
27460
27307
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
27461
27308
|
* Licensed under the MIT License.
|
|
@@ -27465,7 +27312,7 @@ function isCloudInstanceDiscoveryResponse(response) {
|
|
|
27465
27312
|
response.hasOwnProperty("metadata"));
|
|
27466
27313
|
}
|
|
27467
27314
|
|
|
27468
|
-
/*! @azure/msal-common v16.
|
|
27315
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
27469
27316
|
/*
|
|
27470
27317
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
27471
27318
|
* Licensed under the MIT License.
|
|
@@ -27475,7 +27322,7 @@ function isCloudInstanceDiscoveryErrorResponse(response) {
|
|
|
27475
27322
|
response.hasOwnProperty("error_description"));
|
|
27476
27323
|
}
|
|
27477
27324
|
|
|
27478
|
-
/*! @azure/msal-common v16.
|
|
27325
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
27479
27326
|
/*
|
|
27480
27327
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
27481
27328
|
* Licensed under the MIT License.
|
|
@@ -27546,7 +27393,7 @@ const RegionDiscoveryGetCurrentVersion = "regionDiscoveryGetCurrentVersion";
|
|
|
27546
27393
|
const CacheManagerGetRefreshToken = "cacheManagerGetRefreshToken";
|
|
27547
27394
|
const SetUserData = "setUserData";
|
|
27548
27395
|
|
|
27549
|
-
/*! @azure/msal-common v16.
|
|
27396
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
27550
27397
|
/*
|
|
27551
27398
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
27552
27399
|
* Licensed under the MIT License.
|
|
@@ -27639,7 +27486,7 @@ const invokeAsync = (callback, eventName, logger, telemetryClient, correlationId
|
|
|
27639
27486
|
};
|
|
27640
27487
|
};
|
|
27641
27488
|
|
|
27642
|
-
/*! @azure/msal-common v16.
|
|
27489
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
27643
27490
|
|
|
27644
27491
|
/*
|
|
27645
27492
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -27750,7 +27597,7 @@ RegionDiscovery.IMDS_OPTIONS = {
|
|
|
27750
27597
|
},
|
|
27751
27598
|
};
|
|
27752
27599
|
|
|
27753
|
-
/*! @azure/msal-common v16.
|
|
27600
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
27754
27601
|
/*
|
|
27755
27602
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
27756
27603
|
* Licensed under the MIT License.
|
|
@@ -27815,7 +27662,7 @@ function wasClockTurnedBack(cachedAt) {
|
|
|
27815
27662
|
return cachedAtSec > nowSeconds();
|
|
27816
27663
|
}
|
|
27817
27664
|
|
|
27818
|
-
/*! @azure/msal-common v16.
|
|
27665
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
27819
27666
|
|
|
27820
27667
|
/*
|
|
27821
27668
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -28080,9 +27927,22 @@ function updateCloudDiscoveryMetadata(authorityMetadata, updatedValues, fromNetw
|
|
|
28080
27927
|
*/
|
|
28081
27928
|
function isAuthorityMetadataExpired(metadata) {
|
|
28082
27929
|
return metadata.expiresAt <= nowSeconds();
|
|
27930
|
+
}
|
|
27931
|
+
/**
|
|
27932
|
+
* Serialize attribute tokens synchronously (sort and join).
|
|
27933
|
+
* This is a sync-only operation for use at request construction time.
|
|
27934
|
+
* @param attributeTokens - array of tokens
|
|
27935
|
+
* @returns serialized partition string or undefined if no tokens
|
|
27936
|
+
*/
|
|
27937
|
+
function serializeAttributeTokens(attributeTokens) {
|
|
27938
|
+
if (!attributeTokens || attributeTokens.length === 0) {
|
|
27939
|
+
return undefined;
|
|
27940
|
+
}
|
|
27941
|
+
// Serialize: sort and join tokens
|
|
27942
|
+
return [...attributeTokens].sort().join(" ");
|
|
28083
27943
|
}
|
|
28084
27944
|
|
|
28085
|
-
/*! @azure/msal-common v16.
|
|
27945
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
28086
27946
|
|
|
28087
27947
|
/*
|
|
28088
27948
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -29052,7 +28912,7 @@ function buildStaticAuthorityOptions(authOptions) {
|
|
|
29052
28912
|
};
|
|
29053
28913
|
}
|
|
29054
28914
|
|
|
29055
|
-
/*! @azure/msal-common v16.
|
|
28915
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
29056
28916
|
|
|
29057
28917
|
/*
|
|
29058
28918
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -29086,7 +28946,7 @@ async function createDiscoveredInstance(authorityUri, networkClient, cacheManage
|
|
|
29086
28946
|
}
|
|
29087
28947
|
}
|
|
29088
28948
|
|
|
29089
|
-
/*! @azure/msal-common v16.
|
|
28949
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
29090
28950
|
|
|
29091
28951
|
/*
|
|
29092
28952
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -29282,7 +29142,7 @@ class ScopeSet {
|
|
|
29282
29142
|
}
|
|
29283
29143
|
}
|
|
29284
29144
|
|
|
29285
|
-
/*! @azure/msal-common v16.
|
|
29145
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
29286
29146
|
|
|
29287
29147
|
/*
|
|
29288
29148
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -29410,13 +29270,14 @@ function addSid(parameters, sid) {
|
|
|
29410
29270
|
* @param claims - The claims string from the request
|
|
29411
29271
|
* @param clientCapabilities - The client capabilities from configuration
|
|
29412
29272
|
* @param skipBrokerClaims - When true and BROKER_CLIENT_ID is present, excludes clientCapabilities from claims
|
|
29273
|
+
* @param claimsToMerge - Optional client-originated claims JSON string (e.g. `claimsFromClient`) deep-merged into `claims` with precedence on conflicts
|
|
29413
29274
|
*/
|
|
29414
|
-
function addClaims(parameters, correlationId, claims, clientCapabilities, skipBrokerClaims) {
|
|
29275
|
+
function addClaims(parameters, correlationId, claims, clientCapabilities, skipBrokerClaims, claimsToMerge) {
|
|
29415
29276
|
// Skip clientCapabilities if skipBrokerClaims is set to true and this is a brokered authentication flow
|
|
29416
29277
|
const configClaims = skipBrokerClaims && parameters.has(BROKER_CLIENT_ID)
|
|
29417
29278
|
? undefined
|
|
29418
29279
|
: clientCapabilities;
|
|
29419
|
-
const mergedClaims = buildMergedClaims(claims, configClaims, correlationId);
|
|
29280
|
+
const mergedClaims = buildMergedClaims(claims, configClaims, correlationId, claimsToMerge);
|
|
29420
29281
|
parameters.set(CLAIMS, mergedClaims);
|
|
29421
29282
|
}
|
|
29422
29283
|
/**
|
|
@@ -29582,32 +29443,79 @@ const DEFAULT_ID_TOKEN_CLAIMS = {
|
|
|
29582
29443
|
[ClaimsRequestKeys.LOGIN_HINT]: { essential: false },
|
|
29583
29444
|
};
|
|
29584
29445
|
/**
|
|
29585
|
-
* Parses claims JSON
|
|
29586
|
-
*
|
|
29446
|
+
* Parses a claims JSON string into an object, throwing a ClientConfigurationError
|
|
29447
|
+
* (error code `invalid_claims`) if the value is not a valid JSON object. The raw
|
|
29448
|
+
* claims value is never included in the error - it may contain sensitive data.
|
|
29449
|
+
* @param claims - Claims JSON string. Must be valid JSON representing an object.
|
|
29450
|
+
* @param correlationId - The request correlation id
|
|
29451
|
+
* @returns The parsed claims object
|
|
29452
|
+
*/
|
|
29453
|
+
function parseClaims(claims, correlationId = "") {
|
|
29454
|
+
let parsed;
|
|
29455
|
+
try {
|
|
29456
|
+
parsed = JSON.parse(claims);
|
|
29457
|
+
}
|
|
29458
|
+
catch (e) {
|
|
29459
|
+
// Malformed JSON
|
|
29460
|
+
throw createClientConfigurationError(invalidClaims, correlationId);
|
|
29461
|
+
}
|
|
29462
|
+
if (!isPlainObject(parsed)) {
|
|
29463
|
+
// Valid JSON, but not an object (e.g. an array, a scalar, or the literal `null`).
|
|
29464
|
+
throw createClientConfigurationError(invalidClaims, correlationId);
|
|
29465
|
+
}
|
|
29466
|
+
return parsed;
|
|
29467
|
+
}
|
|
29468
|
+
/**
|
|
29469
|
+
* Type guard for a non-null, non-array object (a JSON "object" value).
|
|
29470
|
+
* @param value - The value to test
|
|
29471
|
+
* @returns True when value is a plain object that can be deep-merged
|
|
29472
|
+
*/
|
|
29473
|
+
function isPlainObject(value) {
|
|
29474
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
29475
|
+
}
|
|
29476
|
+
/**
|
|
29477
|
+
* Recursively deep-merges two parsed claims objects. Nested objects are merged key-by-key;
|
|
29478
|
+
* for any other value type (arrays, scalars, null) the value from `claimsToMerge` replaces
|
|
29479
|
+
* the base. This mirrors the deep merge used by msal-dotnet so that, for example, a server
|
|
29480
|
+
* `access_token` challenge and a client-originated `access_token` claim are combined rather
|
|
29481
|
+
* than one clobbering the other.
|
|
29482
|
+
* @param baseClaims - The parsed base claims object
|
|
29483
|
+
* @param claimsToMerge - The parsed claims object merged in with precedence
|
|
29484
|
+
* @returns The deep-merged claims object
|
|
29485
|
+
*/
|
|
29486
|
+
function deepMergeClaims(baseClaims, claimsToMerge) {
|
|
29487
|
+
const merged = { ...baseClaims };
|
|
29488
|
+
for (const [key, mergeInValue] of Object.entries(claimsToMerge)) {
|
|
29489
|
+
const baseValue = merged[key];
|
|
29490
|
+
if (isPlainObject(baseValue) && isPlainObject(mergeInValue)) {
|
|
29491
|
+
merged[key] = deepMergeClaims(baseValue, mergeInValue);
|
|
29492
|
+
}
|
|
29493
|
+
else {
|
|
29494
|
+
merged[key] = mergeInValue;
|
|
29495
|
+
}
|
|
29496
|
+
}
|
|
29497
|
+
return merged;
|
|
29498
|
+
}
|
|
29499
|
+
/**
|
|
29500
|
+
* Parses claims JSON, optionally deep-merges a second client-originated claims string
|
|
29501
|
+
* (`claimsToMerge`, e.g. `claimsFromClient`) with precedence on conflicting keys, merges
|
|
29502
|
+
* default optional idToken claims (signin_state, login_hint), and appends client
|
|
29503
|
+
* capabilities (xms_cc) to the access_token section.
|
|
29587
29504
|
* Does not overwrite idToken claims already specified by the caller.
|
|
29588
29505
|
* @param claims - Existing claims JSON string from the request (may be undefined)
|
|
29589
29506
|
* @param clientCapabilities - Client capabilities array from configuration
|
|
29507
|
+
* @param correlationId - The request correlation id
|
|
29508
|
+
* @param claimsToMerge - Optional second claims JSON string (e.g. client-originated `claimsFromClient`)
|
|
29509
|
+
* deep-merged into `claims` with precedence on conflicts; parsed and validated when present. Nested
|
|
29510
|
+
* objects are merged recursively; arrays and scalar values are replaced.
|
|
29590
29511
|
* @returns Merged claims JSON string
|
|
29591
29512
|
*/
|
|
29592
|
-
function buildMergedClaims(claims, clientCapabilities, correlationId = "") {
|
|
29593
|
-
let mergedClaims;
|
|
29513
|
+
function buildMergedClaims(claims, clientCapabilities, correlationId = "", claimsToMerge) {
|
|
29594
29514
|
// Parse provided claims into JSON object or initialize empty object
|
|
29595
|
-
|
|
29596
|
-
|
|
29597
|
-
|
|
29598
|
-
|
|
29599
|
-
try {
|
|
29600
|
-
const parsed = JSON.parse(claims);
|
|
29601
|
-
if (typeof parsed !== "object" ||
|
|
29602
|
-
parsed === null ||
|
|
29603
|
-
Array.isArray(parsed)) {
|
|
29604
|
-
throw new Error("Claims must be a JSON object");
|
|
29605
|
-
}
|
|
29606
|
-
mergedClaims = parsed;
|
|
29607
|
-
}
|
|
29608
|
-
catch (e) {
|
|
29609
|
-
throw createClientConfigurationError(invalidClaims, correlationId);
|
|
29610
|
-
}
|
|
29515
|
+
let mergedClaims = claims ? parseClaims(claims, correlationId) : {};
|
|
29516
|
+
// Deep-merge client-originated claims (e.g. `claimsFromClient`) with precedence on conflicts
|
|
29517
|
+
if (claimsToMerge?.trim()) {
|
|
29518
|
+
mergedClaims = deepMergeClaims(mergedClaims, parseClaims(claimsToMerge, correlationId));
|
|
29611
29519
|
}
|
|
29612
29520
|
// Add default optional idToken claims
|
|
29613
29521
|
if (!Object.prototype.hasOwnProperty.call(mergedClaims, ClaimsRequestKeys.ID_TOKEN)) {
|
|
@@ -29695,9 +29603,28 @@ function addResource(parameters, resource) {
|
|
|
29695
29603
|
if (resource) {
|
|
29696
29604
|
parameters.set(RESOURCE, resource);
|
|
29697
29605
|
}
|
|
29606
|
+
}
|
|
29607
|
+
/**
|
|
29608
|
+
* Add the `attribute_tokens` parameter to a /token request body.
|
|
29609
|
+
*
|
|
29610
|
+
* When `attributeTokens` is a non-empty array the values are sorted lexicographically and joined
|
|
29611
|
+
* with a single space, then written to the request body. When `attributeTokens` is an empty array
|
|
29612
|
+
* the parameter is deleted from the request body.
|
|
29613
|
+
*
|
|
29614
|
+
* @param parameters - request parameter map that will be serialized into the /token body
|
|
29615
|
+
* @param attributeTokens - caller-provided attribute token strings
|
|
29616
|
+
*/
|
|
29617
|
+
function addAttributeTokens(parameters, attributeTokens) {
|
|
29618
|
+
const serialized = serializeAttributeTokens(attributeTokens);
|
|
29619
|
+
if (serialized) {
|
|
29620
|
+
parameters.set(ATTRIBUTE_TOKENS, serialized);
|
|
29621
|
+
}
|
|
29622
|
+
else {
|
|
29623
|
+
parameters.delete(ATTRIBUTE_TOKENS);
|
|
29624
|
+
}
|
|
29698
29625
|
}
|
|
29699
29626
|
|
|
29700
|
-
/*! @azure/msal-common v16.
|
|
29627
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
29701
29628
|
|
|
29702
29629
|
/*
|
|
29703
29630
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -29819,7 +29746,7 @@ function validateUrl(url, logger, correlationId) {
|
|
|
29819
29746
|
}
|
|
29820
29747
|
}
|
|
29821
29748
|
|
|
29822
|
-
/*! @azure/msal-common v16.
|
|
29749
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
29823
29750
|
|
|
29824
29751
|
/*
|
|
29825
29752
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -29862,7 +29789,7 @@ const DEFAULT_CRYPTO_IMPLEMENTATION = {
|
|
|
29862
29789
|
},
|
|
29863
29790
|
};
|
|
29864
29791
|
|
|
29865
|
-
/*! @azure/msal-common v16.
|
|
29792
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
29866
29793
|
/*
|
|
29867
29794
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
29868
29795
|
* Licensed under the MIT License.
|
|
@@ -30137,12 +30064,12 @@ class Logger {
|
|
|
30137
30064
|
}
|
|
30138
30065
|
}
|
|
30139
30066
|
|
|
30140
|
-
/*! @azure/msal-common v16.
|
|
30067
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
30141
30068
|
/* eslint-disable header/header */
|
|
30142
30069
|
const name$1 = "@azure/msal-common";
|
|
30143
|
-
const version$4 = "16.
|
|
30070
|
+
const version$4 = "16.12.0";
|
|
30144
30071
|
|
|
30145
|
-
/*! @azure/msal-common v16.
|
|
30072
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
30146
30073
|
/*
|
|
30147
30074
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
30148
30075
|
* Licensed under the MIT License.
|
|
@@ -30150,7 +30077,7 @@ const version$4 = "16.11.3";
|
|
|
30150
30077
|
const cacheQuotaExceeded = "cache_quota_exceeded";
|
|
30151
30078
|
const cacheErrorUnknown = "cache_error_unknown";
|
|
30152
30079
|
|
|
30153
|
-
/*! @azure/msal-common v16.
|
|
30080
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
30154
30081
|
|
|
30155
30082
|
/*
|
|
30156
30083
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -30188,7 +30115,7 @@ function createCacheError(e) {
|
|
|
30188
30115
|
}
|
|
30189
30116
|
}
|
|
30190
30117
|
|
|
30191
|
-
/*! @azure/msal-common v16.
|
|
30118
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
30192
30119
|
|
|
30193
30120
|
/*
|
|
30194
30121
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -30415,9 +30342,17 @@ class CacheManager {
|
|
|
30415
30342
|
}
|
|
30416
30343
|
/**
|
|
30417
30344
|
* saves access token credential
|
|
30418
|
-
* @param credential
|
|
30345
|
+
* @param credential - the access token entity to save
|
|
30346
|
+
* @param correlationId - unique identifier for the request
|
|
30347
|
+
* @param kmsi - keep me signed in flag
|
|
30419
30348
|
*/
|
|
30420
30349
|
async saveAccessToken(credential, correlationId, kmsi) {
|
|
30350
|
+
// Compute hash from components on the entity itself — no need to thread externally.
|
|
30351
|
+
let additionalCacheKeyHash;
|
|
30352
|
+
if (credential.additionalCacheKeyComponents &&
|
|
30353
|
+
Object.keys(credential.additionalCacheKeyComponents).length > 0) {
|
|
30354
|
+
additionalCacheKeyHash = await this.cryptoImpl.hashString(JSON.stringify(credential.additionalCacheKeyComponents));
|
|
30355
|
+
}
|
|
30421
30356
|
const accessTokenFilter = {
|
|
30422
30357
|
clientId: credential.clientId,
|
|
30423
30358
|
credentialType: credential.credentialType,
|
|
@@ -30441,7 +30376,7 @@ class CacheManager {
|
|
|
30441
30376
|
}
|
|
30442
30377
|
}
|
|
30443
30378
|
});
|
|
30444
|
-
await this.setAccessTokenCredential(credential, correlationId, kmsi);
|
|
30379
|
+
await this.setAccessTokenCredential(credential, correlationId, kmsi, additionalCacheKeyHash);
|
|
30445
30380
|
}
|
|
30446
30381
|
/**
|
|
30447
30382
|
* Retrieve account entities matching all provided tenant-agnostic filters; if no filter is set, get all account entities in the cache
|
|
@@ -30852,6 +30787,12 @@ class CacheManager {
|
|
|
30852
30787
|
AuthenticationScheme.BEARER.toLowerCase()
|
|
30853
30788
|
? CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME
|
|
30854
30789
|
: CredentialType.ACCESS_TOKEN;
|
|
30790
|
+
const attributeTokenPartition = serializeAttributeTokens(request.attributeTokens);
|
|
30791
|
+
const additionalCacheKeyComponents = attributeTokenPartition
|
|
30792
|
+
? {
|
|
30793
|
+
attribute_tokens: attributeTokenPartition,
|
|
30794
|
+
}
|
|
30795
|
+
: undefined;
|
|
30855
30796
|
const accessTokenFilter = {
|
|
30856
30797
|
homeAccountId: account.homeAccountId,
|
|
30857
30798
|
environment: account.environment,
|
|
@@ -30861,10 +30802,12 @@ class CacheManager {
|
|
|
30861
30802
|
target: scopes,
|
|
30862
30803
|
tokenType: authScheme,
|
|
30863
30804
|
keyId: request.sshKid,
|
|
30805
|
+
additionalCacheKeyComponents: additionalCacheKeyComponents,
|
|
30864
30806
|
};
|
|
30865
30807
|
const accessTokenKeys = (tokenKeys && tokenKeys.accessToken) ||
|
|
30866
30808
|
this.getTokenKeys().accessToken;
|
|
30867
30809
|
const accessTokens = [];
|
|
30810
|
+
const matchedKeys = [];
|
|
30868
30811
|
accessTokenKeys.forEach((key) => {
|
|
30869
30812
|
// Validate key
|
|
30870
30813
|
if (this.accessTokenKeyMatchesFilter(key, accessTokenFilter, true)) {
|
|
@@ -30873,18 +30816,18 @@ class CacheManager {
|
|
|
30873
30816
|
if (accessToken &&
|
|
30874
30817
|
this.credentialMatchesFilter(accessToken, accessTokenFilter, correlationId)) {
|
|
30875
30818
|
accessTokens.push(accessToken);
|
|
30819
|
+
matchedKeys.push(key);
|
|
30876
30820
|
}
|
|
30877
30821
|
}
|
|
30878
30822
|
});
|
|
30879
|
-
|
|
30880
|
-
if (numAccessTokens < 1) {
|
|
30823
|
+
if (accessTokens.length < 1) {
|
|
30881
30824
|
this.commonLogger.info("1nckna", correlationId);
|
|
30882
30825
|
return null;
|
|
30883
30826
|
}
|
|
30884
|
-
else if (
|
|
30827
|
+
else if (accessTokens.length > 1) {
|
|
30885
30828
|
this.commonLogger.info("1wkfwp", correlationId);
|
|
30886
|
-
|
|
30887
|
-
this.removeAccessToken(
|
|
30829
|
+
matchedKeys.forEach((key) => {
|
|
30830
|
+
this.removeAccessToken(key, correlationId);
|
|
30888
30831
|
});
|
|
30889
30832
|
this.performanceClient.addFields({ multiMatchedAT: accessTokens.length }, correlationId);
|
|
30890
30833
|
return null;
|
|
@@ -31327,7 +31270,9 @@ class DefaultStorageClass extends CacheManager {
|
|
|
31327
31270
|
getTokenKeys() {
|
|
31328
31271
|
throw createClientAuthError(methodNotImplemented, "");
|
|
31329
31272
|
}
|
|
31330
|
-
|
|
31273
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
31274
|
+
generateCredentialKey(_credential, _hash) {
|
|
31275
|
+
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
31331
31276
|
throw createClientAuthError(methodNotImplemented, "");
|
|
31332
31277
|
}
|
|
31333
31278
|
generateAccountKey() {
|
|
@@ -31335,7 +31280,7 @@ class DefaultStorageClass extends CacheManager {
|
|
|
31335
31280
|
}
|
|
31336
31281
|
}
|
|
31337
31282
|
|
|
31338
|
-
/*! @azure/msal-common v16.
|
|
31283
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
31339
31284
|
/*
|
|
31340
31285
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
31341
31286
|
* Licensed under the MIT License.
|
|
@@ -31349,7 +31294,7 @@ class DefaultStorageClass extends CacheManager {
|
|
|
31349
31294
|
const PerformanceEventStatus = {
|
|
31350
31295
|
InProgress: 1};
|
|
31351
31296
|
|
|
31352
|
-
/*! @azure/msal-common v16.
|
|
31297
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
31353
31298
|
|
|
31354
31299
|
/*
|
|
31355
31300
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -31407,7 +31352,7 @@ class StubPerformanceClient {
|
|
|
31407
31352
|
}
|
|
31408
31353
|
}
|
|
31409
31354
|
|
|
31410
|
-
/*! @azure/msal-common v16.
|
|
31355
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
31411
31356
|
|
|
31412
31357
|
/*
|
|
31413
31358
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -31503,7 +31448,7 @@ function isOidcProtocolMode(config) {
|
|
|
31503
31448
|
return (config.authOptions.authority.options.protocolMode === ProtocolMode.OIDC);
|
|
31504
31449
|
}
|
|
31505
31450
|
|
|
31506
|
-
/*! @azure/msal-common v16.
|
|
31451
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
31507
31452
|
/*
|
|
31508
31453
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
31509
31454
|
* Licensed under the MIT License.
|
|
@@ -31530,7 +31475,7 @@ function isOidcProtocolMode(config) {
|
|
|
31530
31475
|
}
|
|
31531
31476
|
}
|
|
31532
31477
|
|
|
31533
|
-
/*! @azure/msal-common v16.
|
|
31478
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
31534
31479
|
|
|
31535
31480
|
/*
|
|
31536
31481
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -31610,7 +31555,7 @@ class PopTokenGenerator {
|
|
|
31610
31555
|
}
|
|
31611
31556
|
}
|
|
31612
31557
|
|
|
31613
|
-
/*! @azure/msal-common v16.
|
|
31558
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
31614
31559
|
/*
|
|
31615
31560
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
31616
31561
|
* Licensed under the MIT License.
|
|
@@ -31661,7 +31606,7 @@ const badToken = "bad_token";
|
|
|
31661
31606
|
*/
|
|
31662
31607
|
const interruptedUser = "interrupted_user";
|
|
31663
31608
|
|
|
31664
|
-
/*! @azure/msal-common v16.
|
|
31609
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
31665
31610
|
|
|
31666
31611
|
/*
|
|
31667
31612
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -31728,7 +31673,7 @@ function createInteractionRequiredAuthError(errorCode, correlationId, errorMessa
|
|
|
31728
31673
|
return new InteractionRequiredAuthError(errorCode, correlationId, errorMessage);
|
|
31729
31674
|
}
|
|
31730
31675
|
|
|
31731
|
-
/*! @azure/msal-common v16.
|
|
31676
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
31732
31677
|
|
|
31733
31678
|
/*
|
|
31734
31679
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -31747,7 +31692,7 @@ class ServerError extends AuthError {
|
|
|
31747
31692
|
}
|
|
31748
31693
|
}
|
|
31749
31694
|
|
|
31750
|
-
/*! @azure/msal-common v16.
|
|
31695
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
31751
31696
|
|
|
31752
31697
|
/*
|
|
31753
31698
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -31818,7 +31763,7 @@ function parseRequestState(base64Decode, state, correlationId) {
|
|
|
31818
31763
|
}
|
|
31819
31764
|
}
|
|
31820
31765
|
|
|
31821
|
-
/*! @azure/msal-common v16.
|
|
31766
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
31822
31767
|
|
|
31823
31768
|
/*
|
|
31824
31769
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -31907,7 +31852,15 @@ class ResponseHandler {
|
|
|
31907
31852
|
// Add keyId from request to serverTokenResponse if defined
|
|
31908
31853
|
serverTokenResponse.key_id =
|
|
31909
31854
|
serverTokenResponse.key_id || request.sshKid || undefined;
|
|
31910
|
-
|
|
31855
|
+
// Compute components once for entity storage (fallback if hash not provided by client)
|
|
31856
|
+
const attributeTokenPartition = serializeAttributeTokens(request.attributeTokens);
|
|
31857
|
+
const cacheKeyComponents = additionalCacheKeyComponents ??
|
|
31858
|
+
(attributeTokenPartition
|
|
31859
|
+
? {
|
|
31860
|
+
attribute_tokens: attributeTokenPartition,
|
|
31861
|
+
}
|
|
31862
|
+
: undefined);
|
|
31863
|
+
const cacheRecord = this.generateCacheRecord(serverTokenResponse, authority, reqTimestamp, request, idTokenClaims, userAssertionHash, authCodePayload, cacheKeyComponents);
|
|
31911
31864
|
let cacheContext;
|
|
31912
31865
|
try {
|
|
31913
31866
|
if (this.persistencePlugin && this.serializableCache) {
|
|
@@ -32169,7 +32122,7 @@ function buildAccountToCache(cacheStorage, authority, homeAccountId, base64Decod
|
|
|
32169
32122
|
return baseAccount;
|
|
32170
32123
|
}
|
|
32171
32124
|
|
|
32172
|
-
/*! @azure/msal-common v16.
|
|
32125
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
32173
32126
|
/*
|
|
32174
32127
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
32175
32128
|
* Licensed under the MIT License.
|
|
@@ -32179,7 +32132,7 @@ const CcsCredentialType = {
|
|
|
32179
32132
|
UPN: "UPN",
|
|
32180
32133
|
};
|
|
32181
32134
|
|
|
32182
|
-
/*! @azure/msal-common v16.
|
|
32135
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
32183
32136
|
/*
|
|
32184
32137
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
32185
32138
|
* Licensed under the MIT License.
|
|
@@ -32198,7 +32151,8 @@ async function getClientAssertion(clientAssertion, clientId, tokenEndpoint, fmiP
|
|
|
32198
32151
|
}
|
|
32199
32152
|
}
|
|
32200
32153
|
|
|
32201
|
-
/*! @azure/msal-common v16.
|
|
32154
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
32155
|
+
|
|
32202
32156
|
/*
|
|
32203
32157
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
32204
32158
|
* Licensed under the MIT License.
|
|
@@ -32217,10 +32171,11 @@ function getRequestThumbprint(clientId, request, homeAccountId) {
|
|
|
32217
32171
|
sshKid: request.sshKid,
|
|
32218
32172
|
embeddedClientId: request.embeddedClientId || request.extraParameters?.clientId,
|
|
32219
32173
|
resource: request.resource,
|
|
32174
|
+
attributeTokens: serializeAttributeTokens(request.attributeTokens),
|
|
32220
32175
|
};
|
|
32221
32176
|
}
|
|
32222
32177
|
|
|
32223
|
-
/*! @azure/msal-common v16.
|
|
32178
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
32224
32179
|
|
|
32225
32180
|
/*
|
|
32226
32181
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -32306,7 +32261,7 @@ class ThrottlingUtils {
|
|
|
32306
32261
|
}
|
|
32307
32262
|
}
|
|
32308
32263
|
|
|
32309
|
-
/*! @azure/msal-common v16.
|
|
32264
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
32310
32265
|
|
|
32311
32266
|
/*
|
|
32312
32267
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -32337,7 +32292,7 @@ function createNetworkError(error, httpStatus, responseHeaders, additionalError)
|
|
|
32337
32292
|
return new NetworkError(error, httpStatus, responseHeaders);
|
|
32338
32293
|
}
|
|
32339
32294
|
|
|
32340
|
-
/*! @azure/msal-common v16.
|
|
32295
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
32341
32296
|
|
|
32342
32297
|
/*
|
|
32343
32298
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -32453,7 +32408,7 @@ async function sendPostRequest(thumbprint, tokenEndpoint, options, correlationId
|
|
|
32453
32408
|
return response;
|
|
32454
32409
|
}
|
|
32455
32410
|
|
|
32456
|
-
/*! @azure/msal-common v16.
|
|
32411
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
32457
32412
|
|
|
32458
32413
|
/*
|
|
32459
32414
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -32574,6 +32529,12 @@ class AuthorizationCodeClient {
|
|
|
32574
32529
|
// Add scope array, parameter builder will add default scopes and dedupe
|
|
32575
32530
|
addScopes(parameters, request.scopes, request.correlationId, true, this.oidcDefaultScopes);
|
|
32576
32531
|
addResource(parameters, request.resource);
|
|
32532
|
+
if (request.attributeTokens) {
|
|
32533
|
+
addAttributeTokens(parameters, request.attributeTokens);
|
|
32534
|
+
}
|
|
32535
|
+
this.performanceClient?.addFields({
|
|
32536
|
+
hasAttributeTokens: !!request.attributeTokens?.length,
|
|
32537
|
+
}, request.correlationId);
|
|
32577
32538
|
// add code: user set, not validated
|
|
32578
32539
|
addAuthorizationCode(parameters, request.code);
|
|
32579
32540
|
// Add library metadata
|
|
@@ -32710,7 +32671,7 @@ class AuthorizationCodeClient {
|
|
|
32710
32671
|
}
|
|
32711
32672
|
}
|
|
32712
32673
|
|
|
32713
|
-
/*! @azure/msal-common v16.
|
|
32674
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
32714
32675
|
|
|
32715
32676
|
/*
|
|
32716
32677
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -32937,7 +32898,7 @@ function extractLoginHint(account) {
|
|
|
32937
32898
|
return account.loginHint || account.idTokenClaims?.login_hint || null;
|
|
32938
32899
|
}
|
|
32939
32900
|
|
|
32940
|
-
/*! @azure/msal-common v16.
|
|
32901
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
32941
32902
|
|
|
32942
32903
|
/*
|
|
32943
32904
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -32958,7 +32919,7 @@ function createJoseHeaderError(code, correlationId) {
|
|
|
32958
32919
|
return new JoseHeaderError(code, correlationId);
|
|
32959
32920
|
}
|
|
32960
32921
|
|
|
32961
|
-
/*! @azure/msal-common v16.
|
|
32922
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
32962
32923
|
/*
|
|
32963
32924
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
32964
32925
|
* Licensed under the MIT License.
|
|
@@ -32966,7 +32927,7 @@ function createJoseHeaderError(code, correlationId) {
|
|
|
32966
32927
|
const missingKidError = "missing_kid_error";
|
|
32967
32928
|
const missingAlgError = "missing_alg_error";
|
|
32968
32929
|
|
|
32969
|
-
/*! @azure/msal-common v16.
|
|
32930
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
32970
32931
|
|
|
32971
32932
|
/*
|
|
32972
32933
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -33006,7 +32967,7 @@ class JoseHeader {
|
|
|
33006
32967
|
}
|
|
33007
32968
|
}
|
|
33008
32969
|
|
|
33009
|
-
/*! @azure/msal-common v16.
|
|
32970
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
33010
32971
|
|
|
33011
32972
|
/*
|
|
33012
32973
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -33167,6 +33128,12 @@ class RefreshTokenClient {
|
|
|
33167
33128
|
addServerTelemetry(parameters, this.serverTelemetryManager);
|
|
33168
33129
|
}
|
|
33169
33130
|
addRefreshToken(parameters, request.refreshToken);
|
|
33131
|
+
if (request.attributeTokens) {
|
|
33132
|
+
addAttributeTokens(parameters, request.attributeTokens);
|
|
33133
|
+
}
|
|
33134
|
+
this.performanceClient?.addFields({
|
|
33135
|
+
hasAttributeTokens: !!request.attributeTokens?.length,
|
|
33136
|
+
}, request.correlationId);
|
|
33170
33137
|
if (this.config.clientCredentials.clientSecret) {
|
|
33171
33138
|
addClientSecret(parameters, this.config.clientCredentials.clientSecret);
|
|
33172
33139
|
}
|
|
@@ -33227,7 +33194,7 @@ class RefreshTokenClient {
|
|
|
33227
33194
|
}
|
|
33228
33195
|
}
|
|
33229
33196
|
|
|
33230
|
-
/*! @azure/msal-common v16.
|
|
33197
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
33231
33198
|
|
|
33232
33199
|
/*
|
|
33233
33200
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -33520,7 +33487,7 @@ class StubServerTelemetryManager extends ServerTelemetryManager {
|
|
|
33520
33487
|
clearNativeBrokerErrorCode() { }
|
|
33521
33488
|
}
|
|
33522
33489
|
|
|
33523
|
-
/*! @azure/msal-common v16.
|
|
33490
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
33524
33491
|
|
|
33525
33492
|
/*
|
|
33526
33493
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -33628,7 +33595,7 @@ class SilentFlowClient {
|
|
|
33628
33595
|
}
|
|
33629
33596
|
}
|
|
33630
33597
|
|
|
33631
|
-
/*! @azure/msal-common v16.
|
|
33598
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
33632
33599
|
|
|
33633
33600
|
/*
|
|
33634
33601
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -33644,7 +33611,7 @@ const StubbedNetworkModule = {
|
|
|
33644
33611
|
},
|
|
33645
33612
|
};
|
|
33646
33613
|
|
|
33647
|
-
/*! @azure/msal-common v16.
|
|
33614
|
+
/*! @azure/msal-common v16.12.0 2026-08-04 */
|
|
33648
33615
|
|
|
33649
33616
|
/*
|
|
33650
33617
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -33677,7 +33644,7 @@ function containsResourceParam(params) {
|
|
|
33677
33644
|
return Object.prototype.hasOwnProperty.call(params, "resource");
|
|
33678
33645
|
}
|
|
33679
33646
|
|
|
33680
|
-
/*! @azure/msal-browser v5.
|
|
33647
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
33681
33648
|
/*
|
|
33682
33649
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
33683
33650
|
* Licensed under the MIT License.
|
|
@@ -33804,7 +33771,7 @@ const DecryptEarResponse = "decryptEarResponse";
|
|
|
33804
33771
|
*/
|
|
33805
33772
|
const WaitForBridgeLateResponse = "waitForBridgeLateResponse";
|
|
33806
33773
|
|
|
33807
|
-
/*! @azure/msal-browser v5.
|
|
33774
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
33808
33775
|
|
|
33809
33776
|
/*
|
|
33810
33777
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -33827,7 +33794,7 @@ function createBrowserAuthError(errorCode, correlationId, subError) {
|
|
|
33827
33794
|
return new BrowserAuthError(errorCode, correlationId, subError);
|
|
33828
33795
|
}
|
|
33829
33796
|
|
|
33830
|
-
/*! @azure/msal-browser v5.
|
|
33797
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
33831
33798
|
/*
|
|
33832
33799
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
33833
33800
|
* Licensed under the MIT License.
|
|
@@ -33882,7 +33849,7 @@ const failedToDecryptEarResponse = "failed_to_decrypt_ear_response";
|
|
|
33882
33849
|
const timedOut = "timed_out";
|
|
33883
33850
|
const emptyResponse = "empty_response";
|
|
33884
33851
|
|
|
33885
|
-
/*! @azure/msal-browser v5.
|
|
33852
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
33886
33853
|
|
|
33887
33854
|
/*
|
|
33888
33855
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -33921,7 +33888,7 @@ function base64DecToArr(base64String) {
|
|
|
33921
33888
|
return Uint8Array.from(binString, (m) => m.codePointAt(0) || 0);
|
|
33922
33889
|
}
|
|
33923
33890
|
|
|
33924
|
-
/*! @azure/msal-browser v5.
|
|
33891
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
33925
33892
|
|
|
33926
33893
|
/*
|
|
33927
33894
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -34107,7 +34074,7 @@ const iFrameRenewalPolicies = [
|
|
|
34107
34074
|
CacheLookupPolicy.RefreshTokenAndNetwork,
|
|
34108
34075
|
];
|
|
34109
34076
|
|
|
34110
|
-
/*! @azure/msal-browser v5.
|
|
34077
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
34111
34078
|
/*
|
|
34112
34079
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
34113
34080
|
* Licensed under the MIT License.
|
|
@@ -34152,7 +34119,7 @@ function base64EncArr(aBytes) {
|
|
|
34152
34119
|
return btoa(binString);
|
|
34153
34120
|
}
|
|
34154
34121
|
|
|
34155
|
-
/*! @azure/msal-browser v5.
|
|
34122
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
34156
34123
|
|
|
34157
34124
|
/*
|
|
34158
34125
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -34499,7 +34466,7 @@ async function computeJwkThumbprint(publicJwk) {
|
|
|
34499
34466
|
return hashString(thumbprintJson);
|
|
34500
34467
|
}
|
|
34501
34468
|
|
|
34502
|
-
/*! @azure/msal-browser v5.
|
|
34469
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
34503
34470
|
|
|
34504
34471
|
/*
|
|
34505
34472
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -34519,7 +34486,7 @@ function createBrowserConfigurationAuthError(errorCode, correlationId) {
|
|
|
34519
34486
|
return new BrowserConfigurationAuthError(errorCode, correlationId, getDefaultErrorMessage(errorCode));
|
|
34520
34487
|
}
|
|
34521
34488
|
|
|
34522
|
-
/*! @azure/msal-browser v5.
|
|
34489
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
34523
34490
|
/*
|
|
34524
34491
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
34525
34492
|
* Licensed under the MIT License.
|
|
@@ -34527,7 +34494,7 @@ function createBrowserConfigurationAuthError(errorCode, correlationId) {
|
|
|
34527
34494
|
const storageNotSupported = "storage_not_supported";
|
|
34528
34495
|
const inMemRedirectUnavailable = "in_mem_redirect_unavailable";
|
|
34529
34496
|
|
|
34530
|
-
/*! @azure/msal-browser v5.
|
|
34497
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
34531
34498
|
|
|
34532
34499
|
/*
|
|
34533
34500
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -34868,7 +34835,7 @@ function createGuid() {
|
|
|
34868
34835
|
return createNewGuid();
|
|
34869
34836
|
}
|
|
34870
34837
|
|
|
34871
|
-
/*! @azure/msal-browser v5.
|
|
34838
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
34872
34839
|
|
|
34873
34840
|
/*
|
|
34874
34841
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -35071,7 +35038,7 @@ class DatabaseStorage {
|
|
|
35071
35038
|
}
|
|
35072
35039
|
}
|
|
35073
35040
|
|
|
35074
|
-
/*! @azure/msal-browser v5.
|
|
35041
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
35075
35042
|
/*
|
|
35076
35043
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
35077
35044
|
* Licensed under the MIT License.
|
|
@@ -35117,7 +35084,7 @@ class MemoryStorage {
|
|
|
35117
35084
|
}
|
|
35118
35085
|
}
|
|
35119
35086
|
|
|
35120
|
-
/*! @azure/msal-browser v5.
|
|
35087
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
35121
35088
|
|
|
35122
35089
|
/*
|
|
35123
35090
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -35258,7 +35225,7 @@ class AsyncMemoryStorage {
|
|
|
35258
35225
|
}
|
|
35259
35226
|
}
|
|
35260
35227
|
|
|
35261
|
-
/*! @azure/msal-browser v5.
|
|
35228
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
35262
35229
|
|
|
35263
35230
|
/*
|
|
35264
35231
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -35435,7 +35402,7 @@ function getSortedObjectString(obj) {
|
|
|
35435
35402
|
return JSON.stringify(obj, Object.keys(obj).sort());
|
|
35436
35403
|
}
|
|
35437
35404
|
|
|
35438
|
-
/*! @azure/msal-browser v5.
|
|
35405
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
35439
35406
|
/*
|
|
35440
35407
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
35441
35408
|
* Licensed under the MIT License.
|
|
@@ -35482,7 +35449,7 @@ const LocalStorageUpdated = "localStorageUpdated";
|
|
|
35482
35449
|
*/
|
|
35483
35450
|
const SsoCapable = "ssoCapable";
|
|
35484
35451
|
|
|
35485
|
-
/*! @azure/msal-browser v5.
|
|
35452
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
35486
35453
|
/*
|
|
35487
35454
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
35488
35455
|
* Licensed under the MIT License.
|
|
@@ -35511,7 +35478,7 @@ function getTokenKeysCacheKey(clientId, schema = CREDENTIAL_SCHEMA_VERSION) {
|
|
|
35511
35478
|
return `${PREFIX}.${schema}.${TOKEN_KEYS}.${clientId}`;
|
|
35512
35479
|
}
|
|
35513
35480
|
|
|
35514
|
-
/*! @azure/msal-browser v5.
|
|
35481
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
35515
35482
|
|
|
35516
35483
|
/*
|
|
35517
35484
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -35602,7 +35569,7 @@ function getCookieExpirationTime(cookieLifeDays) {
|
|
|
35602
35569
|
return expr.toUTCString();
|
|
35603
35570
|
}
|
|
35604
35571
|
|
|
35605
|
-
/*! @azure/msal-browser v5.
|
|
35572
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
35606
35573
|
|
|
35607
35574
|
/*
|
|
35608
35575
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -35644,7 +35611,7 @@ function getTokenKeys(clientId, storage, schemaVersion) {
|
|
|
35644
35611
|
};
|
|
35645
35612
|
}
|
|
35646
35613
|
|
|
35647
|
-
/*! @azure/msal-browser v5.
|
|
35614
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
35648
35615
|
/*
|
|
35649
35616
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
35650
35617
|
* Licensed under the MIT License.
|
|
@@ -35655,7 +35622,7 @@ function isEncrypted(data) {
|
|
|
35655
35622
|
data.hasOwnProperty("data"));
|
|
35656
35623
|
}
|
|
35657
35624
|
|
|
35658
|
-
/*! @azure/msal-browser v5.
|
|
35625
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
35659
35626
|
|
|
35660
35627
|
/*
|
|
35661
35628
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -35947,7 +35914,7 @@ class LocalStorage {
|
|
|
35947
35914
|
}
|
|
35948
35915
|
}
|
|
35949
35916
|
|
|
35950
|
-
/*! @azure/msal-browser v5.
|
|
35917
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
35951
35918
|
|
|
35952
35919
|
/*
|
|
35953
35920
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -35989,7 +35956,7 @@ class SessionStorage {
|
|
|
35989
35956
|
}
|
|
35990
35957
|
}
|
|
35991
35958
|
|
|
35992
|
-
/*! @azure/msal-browser v5.
|
|
35959
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
35993
35960
|
/*
|
|
35994
35961
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
35995
35962
|
* Licensed under the MIT License.
|
|
@@ -36017,12 +35984,12 @@ const EventType = {
|
|
|
36017
35984
|
BROKER_CONNECTION_ESTABLISHED: "msal:brokerConnectionEstablished",
|
|
36018
35985
|
};
|
|
36019
35986
|
|
|
36020
|
-
/*! @azure/msal-browser v5.
|
|
35987
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
36021
35988
|
/* eslint-disable header/header */
|
|
36022
35989
|
const name = "@azure/msal-browser";
|
|
36023
|
-
const version$3 = "5.
|
|
35990
|
+
const version$3 = "5.18.0";
|
|
36024
35991
|
|
|
36025
|
-
/*! @azure/msal-browser v5.
|
|
35992
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
36026
35993
|
/*
|
|
36027
35994
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
36028
35995
|
* Licensed under the MIT License.
|
|
@@ -36039,7 +36006,7 @@ function removeElementFromArray(array, element) {
|
|
|
36039
36006
|
}
|
|
36040
36007
|
}
|
|
36041
36008
|
|
|
36042
|
-
/*! @azure/msal-browser v5.
|
|
36009
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
36043
36010
|
|
|
36044
36011
|
/*
|
|
36045
36012
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -36916,12 +36883,12 @@ class BrowserCacheManager extends CacheManager {
|
|
|
36916
36883
|
return parsedAccessToken;
|
|
36917
36884
|
}
|
|
36918
36885
|
/**
|
|
36919
|
-
*
|
|
36920
|
-
* @param accessToken
|
|
36886
|
+
* Set accessToken credential to the platform cache
|
|
36887
|
+
* @param accessToken - the access token entity to cache
|
|
36921
36888
|
*/
|
|
36922
|
-
async setAccessTokenCredential(accessToken, correlationId, kmsi) {
|
|
36889
|
+
async setAccessTokenCredential(accessToken, correlationId, kmsi, additionalCacheKeyHash) {
|
|
36923
36890
|
this.logger.trace("1pondb", correlationId);
|
|
36924
|
-
const accessTokenKey = this.generateCredentialKey(accessToken);
|
|
36891
|
+
const accessTokenKey = this.generateCredentialKey(accessToken, additionalCacheKeyHash);
|
|
36925
36892
|
const timestamp = Date.now().toString();
|
|
36926
36893
|
accessToken.lastUpdatedAt = timestamp;
|
|
36927
36894
|
await this.setUserData(accessTokenKey, JSON.stringify(accessToken), correlationId, timestamp, kmsi);
|
|
@@ -37231,11 +37198,13 @@ class BrowserCacheManager extends CacheManager {
|
|
|
37231
37198
|
}
|
|
37232
37199
|
/**
|
|
37233
37200
|
* Generate Credential Key. All changes to the key REQUIRE a schema version update.
|
|
37234
|
-
* Cache Key: msal.<schema_version>|<home_account_id>|<environment>|<credential_type>|<client_id or familyId>|<realm>|<scopes>|<scheme>
|
|
37201
|
+
* Cache Key: msal.<schema_version>|<home_account_id>|<environment>|<credential_type>|<client_id or familyId>|<realm>|<scopes>|<scheme>|<additional_cache_key_components_hash>
|
|
37202
|
+
*
|
|
37235
37203
|
* @param credentialEntity
|
|
37204
|
+
* @param hash - optional precomputed hash of additionalCacheKeyComponents
|
|
37236
37205
|
* @returns
|
|
37237
37206
|
*/
|
|
37238
|
-
generateCredentialKey(credential) {
|
|
37207
|
+
generateCredentialKey(credential, additionalCacheKeyHash) {
|
|
37239
37208
|
const familyId = (credential.credentialType ===
|
|
37240
37209
|
CredentialType.REFRESH_TOKEN &&
|
|
37241
37210
|
credential.familyId) ||
|
|
@@ -37255,6 +37224,12 @@ class BrowserCacheManager extends CacheManager {
|
|
|
37255
37224
|
credential.target || "",
|
|
37256
37225
|
scheme,
|
|
37257
37226
|
];
|
|
37227
|
+
// Append precomputed component-hash segment.
|
|
37228
|
+
if (credential.additionalCacheKeyComponents &&
|
|
37229
|
+
Object.keys(credential.additionalCacheKeyComponents).length > 0 &&
|
|
37230
|
+
additionalCacheKeyHash) {
|
|
37231
|
+
credentialKey.push(additionalCacheKeyHash);
|
|
37232
|
+
}
|
|
37258
37233
|
return credentialKey.join(CACHE_KEY_SEPARATOR).toLowerCase();
|
|
37259
37234
|
}
|
|
37260
37235
|
/**
|
|
@@ -37477,7 +37452,7 @@ const DEFAULT_BROWSER_CACHE_MANAGER = (clientId, logger, performanceClient, even
|
|
|
37477
37452
|
return new BrowserCacheManager(clientId, cacheOptions, DEFAULT_CRYPTO_IMPLEMENTATION, logger, performanceClient, eventHandler);
|
|
37478
37453
|
};
|
|
37479
37454
|
|
|
37480
|
-
/*! @azure/msal-browser v5.
|
|
37455
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
37481
37456
|
/*
|
|
37482
37457
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
37483
37458
|
* Licensed under the MIT License.
|
|
@@ -37524,7 +37499,7 @@ function getActiveAccount(browserStorage, correlationId) {
|
|
|
37524
37499
|
return browserStorage.getActiveAccount(correlationId);
|
|
37525
37500
|
}
|
|
37526
37501
|
|
|
37527
|
-
/*! @azure/msal-browser v5.
|
|
37502
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
37528
37503
|
|
|
37529
37504
|
/*
|
|
37530
37505
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -37628,7 +37603,7 @@ class EventHandler {
|
|
|
37628
37603
|
}
|
|
37629
37604
|
}
|
|
37630
37605
|
|
|
37631
|
-
/*! @azure/msal-browser v5.
|
|
37606
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
37632
37607
|
|
|
37633
37608
|
/*
|
|
37634
37609
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -37768,7 +37743,7 @@ async function clearCacheOnLogout(browserStorage, browserCrypto, logger, correla
|
|
|
37768
37743
|
}
|
|
37769
37744
|
}
|
|
37770
37745
|
|
|
37771
|
-
/*! @azure/msal-browser v5.
|
|
37746
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
37772
37747
|
|
|
37773
37748
|
/*
|
|
37774
37749
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -37846,7 +37821,7 @@ function validateRequestMethod(interactionRequest, protocolMode) {
|
|
|
37846
37821
|
return httpMethod;
|
|
37847
37822
|
}
|
|
37848
37823
|
|
|
37849
|
-
/*! @azure/msal-browser v5.
|
|
37824
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
37850
37825
|
|
|
37851
37826
|
/*
|
|
37852
37827
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -38052,7 +38027,7 @@ async function initializeAuthorizationRequest(request, interactionType, config,
|
|
|
38052
38027
|
return validatedRequest;
|
|
38053
38028
|
}
|
|
38054
38029
|
|
|
38055
|
-
/*! @azure/msal-browser v5.
|
|
38030
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
38056
38031
|
/*
|
|
38057
38032
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
38058
38033
|
* Licensed under the MIT License.
|
|
@@ -38070,7 +38045,7 @@ async function initializeAuthorizationRequest(request, interactionType, config,
|
|
|
38070
38045
|
*/
|
|
38071
38046
|
const POPUP_RELAY_RESPONSE_TYPE = "msal:popup-relay-response:v1";
|
|
38072
38047
|
|
|
38073
|
-
/*! @azure/msal-browser v5.
|
|
38048
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
38074
38049
|
|
|
38075
38050
|
/*
|
|
38076
38051
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -38176,7 +38151,7 @@ async function waitForPopupRelayResponse(timeoutMs, logger, request, popupWindow
|
|
|
38176
38151
|
});
|
|
38177
38152
|
}
|
|
38178
38153
|
|
|
38179
|
-
/*! @azure/msal-browser v5.
|
|
38154
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
38180
38155
|
|
|
38181
38156
|
/*
|
|
38182
38157
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -38200,7 +38175,7 @@ function extractBrowserRequestState(browserCrypto, state, correlationId) {
|
|
|
38200
38175
|
}
|
|
38201
38176
|
}
|
|
38202
38177
|
|
|
38203
|
-
/*! @azure/msal-browser v5.
|
|
38178
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
38204
38179
|
|
|
38205
38180
|
/*
|
|
38206
38181
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -38239,7 +38214,7 @@ function validateInteractionType(response, browserCrypto, interactionType, corre
|
|
|
38239
38214
|
}
|
|
38240
38215
|
}
|
|
38241
38216
|
|
|
38242
|
-
/*! @azure/msal-browser v5.
|
|
38217
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
38243
38218
|
|
|
38244
38219
|
/*
|
|
38245
38220
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -38328,7 +38303,7 @@ class InteractionHandler {
|
|
|
38328
38303
|
}
|
|
38329
38304
|
}
|
|
38330
38305
|
|
|
38331
|
-
/*! @azure/msal-browser v5.
|
|
38306
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
38332
38307
|
/*
|
|
38333
38308
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
38334
38309
|
* Licensed under the MIT License.
|
|
@@ -38337,7 +38312,7 @@ const contentError = "ContentError";
|
|
|
38337
38312
|
const pageException = "PageException";
|
|
38338
38313
|
const userSwitch = "user_switch";
|
|
38339
38314
|
|
|
38340
|
-
/*! @azure/msal-browser v5.
|
|
38315
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
38341
38316
|
/*
|
|
38342
38317
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
38343
38318
|
* Licensed under the MIT License.
|
|
@@ -38350,7 +38325,7 @@ const DISABLED = "DISABLED";
|
|
|
38350
38325
|
const ACCOUNT_UNAVAILABLE = "ACCOUNT_UNAVAILABLE";
|
|
38351
38326
|
const UI_NOT_ALLOWED = "UI_NOT_ALLOWED";
|
|
38352
38327
|
|
|
38353
|
-
/*! @azure/msal-browser v5.
|
|
38328
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
38354
38329
|
|
|
38355
38330
|
/*
|
|
38356
38331
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -38422,7 +38397,7 @@ function createNativeAuthError(code, correlationId, description, ext) {
|
|
|
38422
38397
|
return error;
|
|
38423
38398
|
}
|
|
38424
38399
|
|
|
38425
|
-
/*! @azure/msal-browser v5.
|
|
38400
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
38426
38401
|
|
|
38427
38402
|
/*
|
|
38428
38403
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -38471,7 +38446,7 @@ class SilentCacheClient extends StandardInteractionClient {
|
|
|
38471
38446
|
}
|
|
38472
38447
|
}
|
|
38473
38448
|
|
|
38474
|
-
/*! @azure/msal-browser v5.
|
|
38449
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
38475
38450
|
|
|
38476
38451
|
/*
|
|
38477
38452
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -38608,13 +38583,18 @@ class PlatformAuthInteractionClient extends BaseInteractionClient {
|
|
|
38608
38583
|
* @returns CommonSilentFlowRequest
|
|
38609
38584
|
*/
|
|
38610
38585
|
createSilentCacheRequest(request, cachedAccount) {
|
|
38611
|
-
|
|
38586
|
+
const silentRequest = {
|
|
38612
38587
|
authority: request.authority,
|
|
38613
38588
|
correlationId: this.correlationId,
|
|
38614
38589
|
scopes: ScopeSet.fromString(request.scope, this.correlationId).asArray(),
|
|
38615
38590
|
account: cachedAccount,
|
|
38616
38591
|
forceRefresh: false,
|
|
38617
38592
|
};
|
|
38593
|
+
// Preserve FMI partition semantics for silent cache filtering.
|
|
38594
|
+
if (request.attributeTokens) {
|
|
38595
|
+
silentRequest.attributeTokens = request.attributeTokens.split(" ");
|
|
38596
|
+
}
|
|
38597
|
+
return silentRequest;
|
|
38618
38598
|
}
|
|
38619
38599
|
/**
|
|
38620
38600
|
* Fetches the tokens from the cache if un-expired
|
|
@@ -38940,7 +38920,12 @@ class PlatformAuthInteractionClient extends BaseInteractionClient {
|
|
|
38940
38920
|
: response.expires_in) || 0;
|
|
38941
38921
|
const tokenExpirationSeconds = reqTimestamp + expiresIn;
|
|
38942
38922
|
const responseScopes = this.generateScopes(response.scope, request.scope);
|
|
38943
|
-
const
|
|
38923
|
+
const additionalCacheKeyComponents = request.attributeTokens
|
|
38924
|
+
? {
|
|
38925
|
+
attribute_tokens: request.attributeTokens,
|
|
38926
|
+
}
|
|
38927
|
+
: undefined;
|
|
38928
|
+
const cachedAccessToken = createAccessTokenEntity(homeAccountIdentifier, environment, response.access_token, request.clientId, idTokenClaims.tid || tenantId, responseScopes.printScopes(), tokenExpirationSeconds, 0, base64Decode, request.correlationId, undefined, request.tokenType, undefined, request.keyId, additionalCacheKeyComponents);
|
|
38944
38929
|
// save idtoken credential in configured browser storage
|
|
38945
38930
|
if (!!cachedIdToken && storeInCache?.idToken !== false) {
|
|
38946
38931
|
await this.browserStorage.setIdTokenCredential(cachedIdToken, this.correlationId, isKmsi(idTokenClaims));
|
|
@@ -39021,11 +39006,18 @@ class PlatformAuthInteractionClient extends BaseInteractionClient {
|
|
|
39021
39006
|
const configClaims = request.skipBrokerClaims && !!request.embeddedClientId
|
|
39022
39007
|
? undefined
|
|
39023
39008
|
: this.config.auth.clientCapabilities;
|
|
39024
|
-
|
|
39009
|
+
/*
|
|
39010
|
+
* scopes are expected to be received by the native broker as "scope" and will be added to the request below. Other properties that should be dropped from the request to the native broker can be included in the object destructuring here.
|
|
39011
|
+
* attributeTokens is destructured out because PlatformAuthRequest represents it as a pre-serialized string, not the caller-provided Array<string>.
|
|
39012
|
+
*/
|
|
39025
39013
|
const { scopes, claims } = request;
|
|
39026
39014
|
const scopeSet = new ScopeSet(scopes || [], this.correlationId);
|
|
39027
39015
|
scopeSet.appendScopes(OIDC_DEFAULT_SCOPES);
|
|
39028
39016
|
const mergedClaims = buildMergedClaims(claims, configClaims?.length ? configClaims : undefined);
|
|
39017
|
+
const hasAttributeTokens = !!request.attributeTokens?.length;
|
|
39018
|
+
this.performanceClient?.addFields({
|
|
39019
|
+
hasAttributeTokens,
|
|
39020
|
+
}, this.correlationId);
|
|
39029
39021
|
const validatedRequest = {
|
|
39030
39022
|
claims: mergedClaims,
|
|
39031
39023
|
accountId: this.accountId,
|
|
@@ -39052,6 +39044,10 @@ class PlatformAuthInteractionClient extends BaseInteractionClient {
|
|
|
39052
39044
|
shrClaims: request.shrClaims,
|
|
39053
39045
|
shrNonce: request.shrNonce,
|
|
39054
39046
|
};
|
|
39047
|
+
if (hasAttributeTokens) {
|
|
39048
|
+
validatedRequest.attributeTokens =
|
|
39049
|
+
serializeAttributeTokens(request.attributeTokens);
|
|
39050
|
+
}
|
|
39055
39051
|
// Check for PoP token requests: signPopToken should only be set to true if popKid is not set
|
|
39056
39052
|
if (validatedRequest.signPopToken && !!request.popKid) {
|
|
39057
39053
|
throw createBrowserAuthError(invalidPopTokenRequest, this.correlationId);
|
|
@@ -39170,7 +39166,7 @@ class PlatformAuthInteractionClient extends BaseInteractionClient {
|
|
|
39170
39166
|
}
|
|
39171
39167
|
}
|
|
39172
39168
|
|
|
39173
|
-
/*! @azure/msal-browser v5.
|
|
39169
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
39174
39170
|
|
|
39175
39171
|
/*
|
|
39176
39172
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -39488,7 +39484,7 @@ async function handleResponseEAR(request, response, apiId, config, authority, br
|
|
|
39488
39484
|
return (await invokeAsync(responseHandler.handleServerTokenResponse.bind(responseHandler), HandleServerTokenResponse, logger, performanceClient, request.correlationId)(decryptedData, authority, nowSeconds(), request, apiId, additionalData, undefined, undefined, undefined, undefined));
|
|
39489
39485
|
}
|
|
39490
39486
|
|
|
39491
|
-
/*! @azure/msal-browser v5.
|
|
39487
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
39492
39488
|
|
|
39493
39489
|
/*
|
|
39494
39490
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -39543,7 +39539,7 @@ async function generateCodeChallengeFromVerifier(pkceCodeVerifier, performanceCl
|
|
|
39543
39539
|
}
|
|
39544
39540
|
}
|
|
39545
39541
|
|
|
39546
|
-
/*! @azure/msal-browser v5.
|
|
39542
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
39547
39543
|
|
|
39548
39544
|
/*
|
|
39549
39545
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -39586,7 +39582,7 @@ class NavigationClient {
|
|
|
39586
39582
|
}
|
|
39587
39583
|
}
|
|
39588
39584
|
|
|
39589
|
-
/*! @azure/msal-browser v5.
|
|
39585
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
39590
39586
|
|
|
39591
39587
|
/*
|
|
39592
39588
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -39733,7 +39729,7 @@ function getHeaderDict(headers) {
|
|
|
39733
39729
|
}
|
|
39734
39730
|
}
|
|
39735
39731
|
|
|
39736
|
-
/*! @azure/msal-browser v5.
|
|
39732
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
39737
39733
|
|
|
39738
39734
|
/*
|
|
39739
39735
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -39864,7 +39860,7 @@ function buildConfiguration({ auth: userInputAuth, cache: userInputCache, system
|
|
|
39864
39860
|
return overlayedConfig;
|
|
39865
39861
|
}
|
|
39866
39862
|
|
|
39867
|
-
/*! @azure/msal-browser v5.
|
|
39863
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
39868
39864
|
|
|
39869
39865
|
/*
|
|
39870
39866
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -40125,7 +40121,7 @@ class PlatformAuthExtensionHandler {
|
|
|
40125
40121
|
}
|
|
40126
40122
|
}
|
|
40127
40123
|
|
|
40128
|
-
/*! @azure/msal-browser v5.
|
|
40124
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
40129
40125
|
|
|
40130
40126
|
/*
|
|
40131
40127
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -40273,7 +40269,7 @@ class PlatformAuthDOMHandler {
|
|
|
40273
40269
|
}
|
|
40274
40270
|
}
|
|
40275
40271
|
|
|
40276
|
-
/*! @azure/msal-browser v5.
|
|
40272
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
40277
40273
|
async function getPlatformAuthProvider(logger, performanceClient, correlationId, nativeBrokerHandshakeTimeout, enablePlatformBrokerDOMSupport) {
|
|
40278
40274
|
logger.trace("134j0v", correlationId);
|
|
40279
40275
|
logger.trace(`04c81g ${enablePlatformBrokerDOMSupport}`, correlationId);
|
|
@@ -40338,7 +40334,7 @@ function isPlatformAuthAllowed(config, logger, correlationId, platformAuthProvid
|
|
|
40338
40334
|
return true;
|
|
40339
40335
|
}
|
|
40340
40336
|
|
|
40341
|
-
/*! @azure/msal-browser v5.
|
|
40337
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
40342
40338
|
|
|
40343
40339
|
/*
|
|
40344
40340
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -40843,7 +40839,7 @@ class PopupClient extends StandardInteractionClient {
|
|
|
40843
40839
|
}
|
|
40844
40840
|
}
|
|
40845
40841
|
|
|
40846
|
-
/*! @azure/msal-browser v5.
|
|
40842
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
40847
40843
|
|
|
40848
40844
|
/*
|
|
40849
40845
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -41286,7 +41282,7 @@ class RedirectClient extends StandardInteractionClient {
|
|
|
41286
41282
|
}
|
|
41287
41283
|
}
|
|
41288
41284
|
|
|
41289
|
-
/*! @azure/msal-browser v5.
|
|
41285
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
41290
41286
|
|
|
41291
41287
|
/*
|
|
41292
41288
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -41352,7 +41348,7 @@ function removeHiddenIframe(iframe) {
|
|
|
41352
41348
|
}
|
|
41353
41349
|
}
|
|
41354
41350
|
|
|
41355
|
-
/*! @azure/msal-browser v5.
|
|
41351
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
41356
41352
|
|
|
41357
41353
|
/*
|
|
41358
41354
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -41588,7 +41584,7 @@ class SilentIframeClient extends StandardInteractionClient {
|
|
|
41588
41584
|
}
|
|
41589
41585
|
}
|
|
41590
41586
|
|
|
41591
|
-
/*! @azure/msal-browser v5.
|
|
41587
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
41592
41588
|
|
|
41593
41589
|
/*
|
|
41594
41590
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -41653,7 +41649,7 @@ class SilentRefreshClient extends StandardInteractionClient {
|
|
|
41653
41649
|
}
|
|
41654
41650
|
}
|
|
41655
41651
|
|
|
41656
|
-
/*! @azure/msal-browser v5.
|
|
41652
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
41657
41653
|
|
|
41658
41654
|
/*
|
|
41659
41655
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -41666,7 +41662,7 @@ class HybridSpaAuthorizationCodeClient extends AuthorizationCodeClient {
|
|
|
41666
41662
|
}
|
|
41667
41663
|
}
|
|
41668
41664
|
|
|
41669
|
-
/*! @azure/msal-browser v5.
|
|
41665
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
41670
41666
|
|
|
41671
41667
|
/*
|
|
41672
41668
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -41737,7 +41733,7 @@ class SilentAuthCodeClient extends StandardInteractionClient {
|
|
|
41737
41733
|
}
|
|
41738
41734
|
}
|
|
41739
41735
|
|
|
41740
|
-
/*! @azure/msal-browser v5.
|
|
41736
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
41741
41737
|
function collectInstanceStats(currentClientId, performanceEvent, logger, correlationId) {
|
|
41742
41738
|
const frameInstances =
|
|
41743
41739
|
// @ts-ignore
|
|
@@ -41753,7 +41749,7 @@ function collectInstanceStats(currentClientId, performanceEvent, logger, correla
|
|
|
41753
41749
|
});
|
|
41754
41750
|
}
|
|
41755
41751
|
|
|
41756
|
-
/*! @azure/msal-browser v5.
|
|
41752
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
41757
41753
|
|
|
41758
41754
|
/*
|
|
41759
41755
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -42692,21 +42688,32 @@ class StandardController {
|
|
|
42692
42688
|
// Create idToken entity and store in browser storage
|
|
42693
42689
|
const idTokenEntity = createIdTokenEntity(result.account.homeAccountId, result.account.environment, result.idToken, this.config.auth.clientId, result.tenantId);
|
|
42694
42690
|
// Create accessToken entity and store in native internal storage
|
|
42691
|
+
const attributeTokenPartition = serializeAttributeTokens(request.attributeTokens);
|
|
42692
|
+
const additionalCacheKeyComponents = attributeTokenPartition
|
|
42693
|
+
? {
|
|
42694
|
+
attribute_tokens: attributeTokenPartition,
|
|
42695
|
+
}
|
|
42696
|
+
: undefined;
|
|
42695
42697
|
const accessTokenEntity = createAccessTokenEntity(result.account.homeAccountId, result.account.environment, result.accessToken, this.config.auth.clientId, result.tenantId, result.scopes.join(" "), result.expiresOn
|
|
42696
42698
|
? toSecondsFromDate(result.expiresOn)
|
|
42697
42699
|
: 0, result.extExpiresOn
|
|
42698
42700
|
? toSecondsFromDate(result.extExpiresOn)
|
|
42699
42701
|
: 0, base64Decode, request.correlationId || "", undefined, // refreshOn
|
|
42700
42702
|
result.tokenType, undefined, // userAssertionHash
|
|
42701
|
-
request.sshKid);
|
|
42703
|
+
request.sshKid, additionalCacheKeyComponents);
|
|
42702
42704
|
if (request.resource) {
|
|
42703
42705
|
accessTokenEntity.resource = request.resource;
|
|
42704
42706
|
}
|
|
42707
|
+
// Get attribute token partition hash for cache key isolation
|
|
42708
|
+
const components = additionalCacheKeyComponents;
|
|
42709
|
+
const additionalCacheKeyHash = components
|
|
42710
|
+
? await this.browserCrypto.hashString(JSON.stringify(components))
|
|
42711
|
+
: undefined;
|
|
42705
42712
|
const kmsi = isKmsi(result.idTokenClaims);
|
|
42706
42713
|
// Store idToken in browser storage
|
|
42707
42714
|
await this.browserStorage.setIdTokenCredential(idTokenEntity, result.correlationId, kmsi);
|
|
42708
42715
|
// Store accessToken in native internal storage
|
|
42709
|
-
await this.nativeInternalStorage.setAccessTokenCredential(accessTokenEntity, result.correlationId, kmsi);
|
|
42716
|
+
await this.nativeInternalStorage.setAccessTokenCredential(accessTokenEntity, result.correlationId, kmsi, additionalCacheKeyHash);
|
|
42710
42717
|
}
|
|
42711
42718
|
else {
|
|
42712
42719
|
return this.browserStorage.hydrateCache(result, request);
|
|
@@ -43237,7 +43244,7 @@ function checkIfRefreshTokenErrorCanBeResolvedSilently(refreshTokenError, cacheL
|
|
|
43237
43244
|
return isSilentlyResolvable && tryIframeRenewal;
|
|
43238
43245
|
}
|
|
43239
43246
|
|
|
43240
|
-
/*! @azure/msal-browser v5.
|
|
43247
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
43241
43248
|
|
|
43242
43249
|
/*
|
|
43243
43250
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -43342,7 +43349,7 @@ class BaseOperatingContext {
|
|
|
43342
43349
|
}
|
|
43343
43350
|
}
|
|
43344
43351
|
|
|
43345
|
-
/*! @azure/msal-browser v5.
|
|
43352
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
43346
43353
|
|
|
43347
43354
|
/*
|
|
43348
43355
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -43389,7 +43396,7 @@ StandardOperatingContext.MODULE_NAME = "";
|
|
|
43389
43396
|
*/
|
|
43390
43397
|
StandardOperatingContext.ID = "StandardOperatingContext";
|
|
43391
43398
|
|
|
43392
|
-
/*! @azure/msal-browser v5.
|
|
43399
|
+
/*! @azure/msal-browser v5.18.0 2026-08-04 */
|
|
43393
43400
|
|
|
43394
43401
|
/*
|
|
43395
43402
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -44021,7 +44028,7 @@ const createClientLogCallback = (provider, metadata, scope) => {
|
|
|
44021
44028
|
};
|
|
44022
44029
|
|
|
44023
44030
|
// Generated by genversion.
|
|
44024
|
-
const version$2 = '
|
|
44031
|
+
const version$2 = '10.0.2';
|
|
44025
44032
|
|
|
44026
44033
|
/**
|
|
44027
44034
|
* Zod schema for telemetry configuration validation.
|
|
@@ -44036,15 +44043,10 @@ const TelemetryConfigSchema = z.object({
|
|
|
44036
44043
|
}),
|
|
44037
44044
|
scope: z.array(z.string()).optional().default(['framework', 'authentication']),
|
|
44038
44045
|
});
|
|
44039
|
-
|
|
44040
44046
|
/**
|
|
44041
44047
|
* Zod schema for MSAL module configuration validation.
|
|
44042
44048
|
*
|
|
44043
|
-
* @
|
|
44044
|
-
* Kept in its own module so the configuration can be extended at its source.
|
|
44045
|
-
* The schema itself describes what reaches `MsalProvider` and strips anything
|
|
44046
|
-
* else; keys a variant of this module needs only while the configuration is
|
|
44047
|
-
* being built are declared on {@link MsalConfigExtension} instead.
|
|
44049
|
+
* @internal
|
|
44048
44050
|
*/
|
|
44049
44051
|
const MsalConfigSchema = z.object({
|
|
44050
44052
|
client: z.custom().optional(),
|
|
@@ -44057,19 +44059,9 @@ const MsalConfigSchema = z.object({
|
|
|
44057
44059
|
.custom((val) => typeof val === 'number' &&
|
|
44058
44060
|
Object.values(CacheLookupPolicy).includes(val))
|
|
44059
44061
|
.optional(),
|
|
44060
|
-
version: z.string().transform((
|
|
44061
|
-
const coerced = semver.coerce(value);
|
|
44062
|
-
// `semver.coerce` returns `null` for an unparseable version; without this guard it
|
|
44063
|
-
// would silently become the literal string "null" instead of failing validation.
|
|
44064
|
-
if (!coerced) {
|
|
44065
|
-
ctx.addIssue({ code: z.ZodIssueCode.custom, message: 'Invalid MSAL module version' });
|
|
44066
|
-
return z.NEVER;
|
|
44067
|
-
}
|
|
44068
|
-
return coerced.version;
|
|
44069
|
-
}),
|
|
44062
|
+
version: z.string().transform((x) => String(semver.coerce(x))),
|
|
44070
44063
|
telemetry: TelemetryConfigSchema,
|
|
44071
44064
|
});
|
|
44072
|
-
|
|
44073
44065
|
/**
|
|
44074
44066
|
* Configuration builder for MSAL v4 authentication module.
|
|
44075
44067
|
*
|
|
@@ -44085,7 +44077,6 @@ const MsalConfigSchema = z.object({
|
|
|
44085
44077
|
*/
|
|
44086
44078
|
class MsalConfigurator extends BaseConfigBuilder {
|
|
44087
44079
|
#msalConfig;
|
|
44088
|
-
#client;
|
|
44089
44080
|
/**
|
|
44090
44081
|
* The MSAL module version being configured.
|
|
44091
44082
|
*
|
|
@@ -44112,9 +44103,6 @@ class MsalConfigurator extends BaseConfigBuilder {
|
|
|
44112
44103
|
return telemetry;
|
|
44113
44104
|
}
|
|
44114
44105
|
});
|
|
44115
|
-
// Always resolve the configured client instance through the builder.
|
|
44116
|
-
// This keeps the client getter live and avoids re-registering the same config key.
|
|
44117
|
-
this._set('client', async () => this.#client);
|
|
44118
44106
|
// Default cache lookup policy to AccessTokenAndRefreshToken to avoid iframe fallback delays
|
|
44119
44107
|
this._set('cacheLookupPolicy', async () => CacheLookupPolicy.AccessTokenAndRefreshToken);
|
|
44120
44108
|
}
|
|
@@ -44142,22 +44130,6 @@ class MsalConfigurator extends BaseConfigBuilder {
|
|
|
44142
44130
|
this.#msalConfig = config;
|
|
44143
44131
|
return this;
|
|
44144
44132
|
}
|
|
44145
|
-
/**
|
|
44146
|
-
* Returns the client configuration declared through
|
|
44147
|
-
* {@link MsalConfigurator.setClientConfig | setClientConfig}, if any.
|
|
44148
|
-
*
|
|
44149
|
-
* @remarks
|
|
44150
|
-
* This is the configuration as declared, not the resolved one a client is
|
|
44151
|
-
* built from — see
|
|
44152
|
-
* {@link MsalConfigurator._createClientConfig | _createClientConfig} for that.
|
|
44153
|
-
* Reading it is how a subclass can tell "nothing was declared" apart from
|
|
44154
|
-
* "declared, and here it is", without re-deriving that from a resolved value.
|
|
44155
|
-
*
|
|
44156
|
-
* @returns The declared client configuration, or `undefined` when none was declared.
|
|
44157
|
-
*/
|
|
44158
|
-
getClientConfig() {
|
|
44159
|
-
return this.#msalConfig;
|
|
44160
|
-
}
|
|
44161
44133
|
/**
|
|
44162
44134
|
* Sets the cache lookup policy used for every silent token acquisition.
|
|
44163
44135
|
*
|
|
@@ -44291,21 +44263,9 @@ class MsalConfigurator extends BaseConfigBuilder {
|
|
|
44291
44263
|
* ```
|
|
44292
44264
|
*/
|
|
44293
44265
|
setClient(client) {
|
|
44294
|
-
this
|
|
44266
|
+
this._set('client', async () => client);
|
|
44295
44267
|
return this;
|
|
44296
44268
|
}
|
|
44297
|
-
/**
|
|
44298
|
-
* Returns the currently configured MSAL client, if one has been set.
|
|
44299
|
-
*
|
|
44300
|
-
* @remarks
|
|
44301
|
-
* This is useful in tests when a mock client has been provided and the test
|
|
44302
|
-
* wants to adjust its state after it has been assigned to the configurator.
|
|
44303
|
-
*
|
|
44304
|
-
* @returns The configured client, or `undefined` when none has been set.
|
|
44305
|
-
*/
|
|
44306
|
-
getClient() {
|
|
44307
|
-
return this.#client;
|
|
44308
|
-
}
|
|
44309
44269
|
/**
|
|
44310
44270
|
* Sets telemetry provider for MSAL authentication events.
|
|
44311
44271
|
*
|
|
@@ -44353,151 +44313,64 @@ class MsalConfigurator extends BaseConfigBuilder {
|
|
|
44353
44313
|
/**
|
|
44354
44314
|
* Processes and validates the configuration.
|
|
44355
44315
|
*
|
|
44356
|
-
* @param
|
|
44357
|
-
* @param init - The builder arguments, carrying the host reference when hoisted
|
|
44316
|
+
* @param config - Raw configuration object
|
|
44358
44317
|
* @returns Processed and validated configuration
|
|
44359
44318
|
*/
|
|
44360
|
-
async _processConfig(rawConfig
|
|
44319
|
+
async _processConfig(rawConfig) {
|
|
44361
44320
|
// Validate and coerce configuration using Zod schema
|
|
44362
44321
|
const config = await MsalConfigSchema.parseAsync(rawConfig);
|
|
44363
|
-
// Auto-create client if no client instance
|
|
44322
|
+
// Auto-create client if config provided but no client instance
|
|
44364
44323
|
// This allows users to provide configuration without manually instantiating the client
|
|
44365
|
-
|
|
44366
|
-
|
|
44367
|
-
|
|
44368
|
-
|
|
44369
|
-
config.client = await this._createClient(config, init);
|
|
44370
|
-
}
|
|
44371
|
-
return config;
|
|
44372
|
-
}
|
|
44373
|
-
/**
|
|
44374
|
-
* Creates the client to authenticate through, when none was supplied.
|
|
44375
|
-
*
|
|
44376
|
-
* @remarks
|
|
44377
|
-
* Called by {@link MsalConfigurator._processConfig | _processConfig} only when
|
|
44378
|
-
* no client was set, so a client supplied through
|
|
44379
|
-
* {@link MsalConfigurator.setClient | setClient} always wins. It is likewise
|
|
44380
|
-
* not called when the module is hoisted onto a host application's provider —
|
|
44381
|
-
* see {@link MsalConfigurator._isHoisted | _isHoisted}.
|
|
44382
|
-
*
|
|
44383
|
-
* This is the seam for authenticating through something other than Entra ID.
|
|
44384
|
-
* Overriding it replaces only the client, leaving the builder, the schema
|
|
44385
|
-
* validation and `MsalProvider` untouched — which is how
|
|
44386
|
-
* `MsalMockConfigurator` substitutes an in-process client for tests.
|
|
44387
|
-
*
|
|
44388
|
-
* An override normally builds from
|
|
44389
|
-
* {@link MsalConfigurator._createClientConfig | _createClientConfig}, so it
|
|
44390
|
-
* receives the same fully-resolved {@link MsalClientConfig} the real client is
|
|
44391
|
-
* built from rather than re-deriving it.
|
|
44392
|
-
*
|
|
44393
|
-
* Returning `undefined` is legitimate and means "there is nothing to build a
|
|
44394
|
-
* client from", which leaves the module without one.
|
|
44395
|
-
*
|
|
44396
|
-
* @param config - The validated configuration the client is built from.
|
|
44397
|
-
* @param init - The builder arguments, carrying the host reference when hoisted.
|
|
44398
|
-
* @returns The client, or `undefined` when there is nothing to build one from.
|
|
44399
|
-
*/
|
|
44400
|
-
async _createClient(config, _init) {
|
|
44401
|
-
const clientConfig = this._createClientConfig(config);
|
|
44402
|
-
// A client can be omitted for a hoisted module or an intentionally incomplete setup.
|
|
44403
|
-
if (!clientConfig) {
|
|
44404
|
-
return undefined;
|
|
44405
|
-
}
|
|
44406
|
-
// Instantiate MSAL client with fully configured options
|
|
44407
|
-
return new MsalClient(clientConfig);
|
|
44408
|
-
}
|
|
44409
|
-
/**
|
|
44410
|
-
* Whether this module is hoisted onto a host application's authentication.
|
|
44411
|
-
*
|
|
44412
|
-
* @remarks
|
|
44413
|
-
* When an application runs inside a host — a portal loading an app, or an app
|
|
44414
|
-
* loading a widget — the module initializer returns a proxy of the host's
|
|
44415
|
-
* provider instead of building its own (see the host-provider branch of the
|
|
44416
|
-
* module initializer). A client built during configuration would therefore be
|
|
44417
|
-
* constructed and immediately discarded.
|
|
44418
|
-
*
|
|
44419
|
-
* Detecting this during configuration lets the configurator skip building a
|
|
44420
|
-
* client entirely, which matters most for substituted clients: a mock client
|
|
44421
|
-
* built here would otherwise silently shadow the host's real signed-in user.
|
|
44422
|
-
*
|
|
44423
|
-
* @param init - The builder arguments, carrying the host reference when hoisted.
|
|
44424
|
-
* @returns `true` when a host provider will be used instead of a locally built client.
|
|
44425
|
-
*/
|
|
44426
|
-
_isHoisted(init) {
|
|
44427
|
-
return !!init?.ref?.auth;
|
|
44428
|
-
}
|
|
44429
|
-
/**
|
|
44430
|
-
* Resolves the full MSAL client configuration to build a client from.
|
|
44431
|
-
*
|
|
44432
|
-
* @remarks
|
|
44433
|
-
* Applies the defaults a client is expected to be built with — authority
|
|
44434
|
-
* derived from the tenant, cache location, telemetry-backed logging and the
|
|
44435
|
-
* configured cache lookup policy.
|
|
44436
|
-
*
|
|
44437
|
-
* Kept separate from {@link MsalConfigurator._createClient | _createClient} so
|
|
44438
|
-
* that substituting the client does not also mean re-implementing this
|
|
44439
|
-
* resolution. `MsalMockConfigurator` relies on it to hand its mock client the
|
|
44440
|
-
* very same configuration the real client would have received.
|
|
44441
|
-
*
|
|
44442
|
-
* @param config - The validated configuration.
|
|
44443
|
-
* @returns The client configuration, or `undefined` when none was declared.
|
|
44444
|
-
*/
|
|
44445
|
-
_createClientConfig(config) {
|
|
44446
|
-
const declared = this.#msalConfig;
|
|
44447
|
-
// Do not construct a client when configuration has not supplied client settings.
|
|
44448
|
-
if (!declared) {
|
|
44449
|
-
return undefined;
|
|
44450
|
-
}
|
|
44451
|
-
config.telemetry.provider?.trackEvent({
|
|
44452
|
-
name: 'module-msal.configurator._processConfig.creating-client',
|
|
44453
|
-
level: TelemetryLevel.Debug,
|
|
44454
|
-
scope: config.telemetry.scope,
|
|
44455
|
-
metadata: { ...config.telemetry.metadata, clientConfig: declared },
|
|
44456
|
-
});
|
|
44457
|
-
// Copied rather than enriched in place, so the object a caller passed to
|
|
44458
|
-
// `setClientConfig` is never rewritten behind its back — a caller may well
|
|
44459
|
-
// be reusing or asserting on it
|
|
44460
|
-
const clientConfig = {
|
|
44461
|
-
...declared,
|
|
44462
|
-
auth: { ...declared.auth },
|
|
44463
|
-
// Default to localStorage: MSAL supports sessionStorage too, but
|
|
44464
|
-
// localStorage is the standard for persistent auth in browsers
|
|
44465
|
-
cache: declared.cache ?? { cacheLocation: 'localStorage' },
|
|
44466
|
-
};
|
|
44467
|
-
// Auto-generate authority URL from tenant ID if not explicitly provided
|
|
44468
|
-
// This simplifies configuration for most common cases
|
|
44469
|
-
if (!clientConfig.auth.authority && clientConfig.auth.tenantId) {
|
|
44470
|
-
clientConfig.auth.authority = `https://login.microsoftonline.com/${clientConfig.auth.tenantId}`;
|
|
44471
|
-
}
|
|
44472
|
-
// Integrate framework telemetry with MSAL logging system
|
|
44473
|
-
// This allows MSAL events to flow through the framework's telemetry pipeline
|
|
44474
|
-
if (!clientConfig.system?.loggerOptions && config.telemetry?.provider) {
|
|
44475
|
-
const { provider, metadata, scope } = config.telemetry;
|
|
44476
|
-
provider.trackEvent({
|
|
44477
|
-
name: 'module-msal.configurator._processConfig.client-telemetry-connected',
|
|
44324
|
+
if (!config.client && this.#msalConfig) {
|
|
44325
|
+
const clientConfig = this.#msalConfig;
|
|
44326
|
+
config.telemetry.provider?.trackEvent({
|
|
44327
|
+
name: 'module-msal.configurator._processConfig.creating-client',
|
|
44478
44328
|
level: TelemetryLevel.Debug,
|
|
44479
|
-
scope,
|
|
44480
|
-
metadata,
|
|
44329
|
+
scope: config.telemetry.scope,
|
|
44330
|
+
metadata: { ...config.telemetry.metadata, clientConfig },
|
|
44481
44331
|
});
|
|
44482
|
-
|
|
44483
|
-
|
|
44484
|
-
|
|
44485
|
-
|
|
44486
|
-
|
|
44487
|
-
|
|
44488
|
-
|
|
44489
|
-
|
|
44490
|
-
|
|
44491
|
-
|
|
44492
|
-
|
|
44493
|
-
|
|
44494
|
-
|
|
44495
|
-
|
|
44496
|
-
|
|
44497
|
-
|
|
44498
|
-
|
|
44332
|
+
// Auto-generate authority URL from tenant ID if not explicitly provided
|
|
44333
|
+
// This simplifies configuration for most common cases
|
|
44334
|
+
if (!clientConfig.auth.authority && clientConfig.auth.tenantId) {
|
|
44335
|
+
clientConfig.auth.authority = `https://login.microsoftonline.com/${clientConfig.auth.tenantId}`;
|
|
44336
|
+
}
|
|
44337
|
+
// Set default cache location to localStorage for browser environments
|
|
44338
|
+
// MSAL supports sessionStorage as well, but localStorage is the standard for persistent auth
|
|
44339
|
+
if (!clientConfig.cache) {
|
|
44340
|
+
clientConfig.cache = { cacheLocation: 'localStorage' };
|
|
44341
|
+
}
|
|
44342
|
+
// Integrate framework telemetry with MSAL logging system
|
|
44343
|
+
// This allows MSAL events to flow through the framework's telemetry pipeline
|
|
44344
|
+
if (!clientConfig.system?.loggerOptions && config.telemetry?.provider) {
|
|
44345
|
+
const { provider, metadata, scope } = config.telemetry;
|
|
44346
|
+
provider.trackEvent({
|
|
44347
|
+
name: 'module-msal.configurator._processConfig.client-telemetry-connected',
|
|
44348
|
+
level: TelemetryLevel.Debug,
|
|
44349
|
+
scope,
|
|
44350
|
+
metadata,
|
|
44351
|
+
});
|
|
44352
|
+
clientConfig.system = {
|
|
44353
|
+
...clientConfig.system,
|
|
44354
|
+
loggerOptions: {
|
|
44355
|
+
// Only log PII in development to protect user privacy in production
|
|
44356
|
+
piiLoggingEnabled: process.env.NODE_ENV === 'development',
|
|
44357
|
+
// Bridge MSAL log events to framework telemetry system
|
|
44358
|
+
loggerCallback: createClientLogCallback(provider, metadata, [...scope, '3rd-party']),
|
|
44359
|
+
// Use Warning level by default - captures errors and warnings without being verbose
|
|
44360
|
+
logLevel: LogLevel.Warning,
|
|
44361
|
+
// Preserve any user-provided logger options (allows customization)
|
|
44362
|
+
...clientConfig.system?.loggerOptions,
|
|
44363
|
+
},
|
|
44364
|
+
};
|
|
44365
|
+
}
|
|
44366
|
+
// Apply silent cache lookup policy if configured
|
|
44367
|
+
if (config.cacheLookupPolicy !== undefined) {
|
|
44368
|
+
clientConfig.cacheLookupPolicy = config.cacheLookupPolicy;
|
|
44369
|
+
}
|
|
44370
|
+
// Instantiate MSAL client with fully configured options
|
|
44371
|
+
config.client = new MsalClient(clientConfig);
|
|
44499
44372
|
}
|
|
44500
|
-
return
|
|
44373
|
+
return config;
|
|
44501
44374
|
}
|
|
44502
44375
|
}
|
|
44503
44376
|
|
|
@@ -44615,6 +44488,7 @@ class VersionError extends Error {
|
|
|
44615
44488
|
* ```
|
|
44616
44489
|
*/
|
|
44617
44490
|
function mapVersionToEnumVersion(version) {
|
|
44491
|
+
console.log('Resolving version:', version);
|
|
44618
44492
|
const coercedVersion = semver.coerce(version);
|
|
44619
44493
|
// An uncoercible version string cannot be mapped to a module version
|
|
44620
44494
|
if (!coercedVersion) {
|
|
@@ -48501,7 +48375,7 @@ class ServiceDiscoveryConfigurator extends BaseConfigBuilder {
|
|
|
48501
48375
|
}
|
|
48502
48376
|
|
|
48503
48377
|
// Generated by genversion.
|
|
48504
|
-
const version$1 = '10.
|
|
48378
|
+
const version$1 = '10.0.2';
|
|
48505
48379
|
|
|
48506
48380
|
/**
|
|
48507
48381
|
* Default implementation of {@link IServiceDiscoveryProvider}.
|
|
@@ -48525,10 +48399,6 @@ class ServiceDiscoveryProvider extends BaseModuleProvider {
|
|
|
48525
48399
|
this.config = config;
|
|
48526
48400
|
this._http = _http;
|
|
48527
48401
|
}
|
|
48528
|
-
/** {@inheritDoc IServiceDiscoveryProvider.client} */
|
|
48529
|
-
get client() {
|
|
48530
|
-
return this.config.discoveryClient;
|
|
48531
|
-
}
|
|
48532
48402
|
/** {@inheritDoc IServiceDiscoveryProvider.resolveServices} */
|
|
48533
48403
|
resolveServices() {
|
|
48534
48404
|
return this.config.discoveryClient.resolveServices();
|
|
@@ -48643,9 +48513,8 @@ const configureServiceDiscovery = (callback) => ({
|
|
|
48643
48513
|
*
|
|
48644
48514
|
* @param configurator - The modules configurator to register the module on.
|
|
48645
48515
|
* Must already include {@link HttpModule}.
|
|
48646
|
-
* @param callback - Optional callback receiving a
|
|
48647
|
-
* {@link ServiceDiscoveryConfigurator} for advanced setup.
|
|
48648
|
-
* or asynchronous.
|
|
48516
|
+
* @param callback - Optional async callback receiving a
|
|
48517
|
+
* {@link ServiceDiscoveryConfigurator} for advanced setup.
|
|
48649
48518
|
*
|
|
48650
48519
|
* @example
|
|
48651
48520
|
* ```typescript
|
|
@@ -49140,7 +49009,7 @@ async function registerServiceWorker(framework) {
|
|
|
49140
49009
|
}
|
|
49141
49010
|
|
|
49142
49011
|
// Generated by genversion.
|
|
49143
|
-
const version = '4.0.17
|
|
49012
|
+
const version = '4.0.17';
|
|
49144
49013
|
|
|
49145
49014
|
// Allow dynamic import without vite
|
|
49146
49015
|
const importWithoutVite = (path) => import(/* @vite-ignore */ path);
|