@equinor/fusion-framework-vite-plugin-spa 5.2.3 → 5.2.4-next.1
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/dist/{TelemetryAdapter-B6JH_RXA.js → TelemetryAdapter-C6KyX3cq.js} +3 -2
- package/dist/TelemetryAdapter-C6KyX3cq.js.map +1 -0
- package/dist/{create-legacy-browser-delegate-4GII-R4B.js → create-legacy-browser-delegate-CNfcydOG.js} +3 -926
- package/dist/create-legacy-browser-delegate-CNfcydOG.js.map +1 -0
- package/dist/{enable-dev-server-tracing-GfRoCLxu.js → enable-dev-server-tracing-ac1hNKwa.js} +3 -2
- package/dist/{enable-dev-server-tracing-GfRoCLxu.js.map → enable-dev-server-tracing-ac1hNKwa.js.map} +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/html/bootstrap.js +1834 -745
- package/dist/html/bootstrap.js.map +1 -1
- package/dist/{index-glg6-DFO.js → index-By7EVum8.js} +3 -2
- package/dist/{index-glg6-DFO.js.map → index-By7EVum8.js.map} +1 -1
- package/dist/{index-CiqJ1Og1.js → index-CYwi54x_.js} +38 -6
- package/dist/{index-CiqJ1Og1.js.map → index-CYwi54x_.js.map} +1 -1
- package/dist/{module-BR47HvRl.js → module-BnhyaZvt.js} +1111 -208
- package/dist/module-BnhyaZvt.js.map +1 -0
- package/dist/trace-api-DzxUyN-s.js +927 -0
- package/dist/trace-api-DzxUyN-s.js.map +1 -0
- 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/dist/TelemetryAdapter-B6JH_RXA.js.map +0 -1
- package/dist/create-legacy-browser-delegate-4GII-R4B.js.map +0 -1
- package/dist/module-BR47HvRl.js.map +0 -1
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { t as trace, c as context } from './trace-api-DzxUyN-s.js';
|
|
2
|
+
|
|
1
3
|
function getDefaultExportFromCjs (x) {
|
|
2
4
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
3
5
|
}
|
|
@@ -2848,6 +2850,12 @@ class SemanticVersion extends semverExports.SemVer {
|
|
|
2848
2850
|
}
|
|
2849
2851
|
}
|
|
2850
2852
|
|
|
2853
|
+
/**
|
|
2854
|
+
* Identifies an exporter-owned request so operational instrumentation does not instrument its own exports.
|
|
2855
|
+
* Symbol properties survive object spreads without becoming HTTP headers or serialized payload fields.
|
|
2856
|
+
*/
|
|
2857
|
+
const telemetryExportRequest = Symbol('fusion.telemetry-export-request');
|
|
2858
|
+
|
|
2851
2859
|
/******************************************************************************
|
|
2852
2860
|
Copyright (c) Microsoft Corporation.
|
|
2853
2861
|
|
|
@@ -3205,7 +3213,7 @@ function reportUnhandledError(err) {
|
|
|
3205
3213
|
});
|
|
3206
3214
|
}
|
|
3207
3215
|
|
|
3208
|
-
function noop() { }
|
|
3216
|
+
function noop$1() { }
|
|
3209
3217
|
|
|
3210
3218
|
function errorContext(cb) {
|
|
3211
3219
|
{
|
|
@@ -3354,9 +3362,9 @@ function defaultErrorHandler(err) {
|
|
|
3354
3362
|
}
|
|
3355
3363
|
var EMPTY_OBSERVER = {
|
|
3356
3364
|
closed: true,
|
|
3357
|
-
next: noop,
|
|
3365
|
+
next: noop$1,
|
|
3358
3366
|
error: defaultErrorHandler,
|
|
3359
|
-
complete: noop,
|
|
3367
|
+
complete: noop$1,
|
|
3360
3368
|
};
|
|
3361
3369
|
|
|
3362
3370
|
var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();
|
|
@@ -4021,6 +4029,12 @@ function mergeMap(project, resultSelector, concurrent) {
|
|
|
4021
4029
|
return operate(function (source, subscriber) { return mergeInternals(source, subscriber, project, concurrent); });
|
|
4022
4030
|
}
|
|
4023
4031
|
|
|
4032
|
+
function defer(observableFactory) {
|
|
4033
|
+
return new Observable(function (subscriber) {
|
|
4034
|
+
innerFrom(observableFactory()).subscribe(subscriber);
|
|
4035
|
+
});
|
|
4036
|
+
}
|
|
4037
|
+
|
|
4024
4038
|
function filter(predicate, thisArg) {
|
|
4025
4039
|
return operate(function (source, subscriber) {
|
|
4026
4040
|
var index = 0;
|
|
@@ -4077,6 +4091,17 @@ function reduce(accumulator, seed) {
|
|
|
4077
4091
|
return operate(scanInternals(accumulator, seed, arguments.length >= 2, false, true));
|
|
4078
4092
|
}
|
|
4079
4093
|
|
|
4094
|
+
function finalize$1(callback) {
|
|
4095
|
+
return operate(function (source, subscriber) {
|
|
4096
|
+
try {
|
|
4097
|
+
source.subscribe(subscriber);
|
|
4098
|
+
}
|
|
4099
|
+
finally {
|
|
4100
|
+
subscriber.add(callback);
|
|
4101
|
+
}
|
|
4102
|
+
});
|
|
4103
|
+
}
|
|
4104
|
+
|
|
4080
4105
|
function switchMap(project, resultSelector) {
|
|
4081
4106
|
return operate(function (source, subscriber) {
|
|
4082
4107
|
var innerSubscriber = null;
|
|
@@ -4098,6 +4123,42 @@ function switchMap(project, resultSelector) {
|
|
|
4098
4123
|
});
|
|
4099
4124
|
}
|
|
4100
4125
|
|
|
4126
|
+
function tap(observerOrNext, error, complete) {
|
|
4127
|
+
var tapObserver = isFunction(observerOrNext) || error || complete
|
|
4128
|
+
?
|
|
4129
|
+
{ next: observerOrNext, error: error, complete: complete }
|
|
4130
|
+
: observerOrNext;
|
|
4131
|
+
return tapObserver
|
|
4132
|
+
? operate(function (source, subscriber) {
|
|
4133
|
+
var _a;
|
|
4134
|
+
(_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);
|
|
4135
|
+
var isUnsub = true;
|
|
4136
|
+
source.subscribe(createOperatorSubscriber(subscriber, function (value) {
|
|
4137
|
+
var _a;
|
|
4138
|
+
(_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);
|
|
4139
|
+
subscriber.next(value);
|
|
4140
|
+
}, function () {
|
|
4141
|
+
var _a;
|
|
4142
|
+
isUnsub = false;
|
|
4143
|
+
(_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);
|
|
4144
|
+
subscriber.complete();
|
|
4145
|
+
}, function (err) {
|
|
4146
|
+
var _a;
|
|
4147
|
+
isUnsub = false;
|
|
4148
|
+
(_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);
|
|
4149
|
+
subscriber.error(err);
|
|
4150
|
+
}, function () {
|
|
4151
|
+
var _a, _b;
|
|
4152
|
+
if (isUnsub) {
|
|
4153
|
+
(_a = tapObserver.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);
|
|
4154
|
+
}
|
|
4155
|
+
(_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver);
|
|
4156
|
+
}));
|
|
4157
|
+
})
|
|
4158
|
+
:
|
|
4159
|
+
identity;
|
|
4160
|
+
}
|
|
4161
|
+
|
|
4101
4162
|
/**
|
|
4102
4163
|
* Recursively assigns a configuration value to a nested object property.
|
|
4103
4164
|
*
|
|
@@ -4870,6 +4931,20 @@ function unwrapMessage(message) {
|
|
|
4870
4931
|
return typeof message === "string" ? message : message?.message;
|
|
4871
4932
|
}
|
|
4872
4933
|
/* A check holds no link back to the schema it is attached to — the same check instance is shared by every clone of that schema — so the owner is stamped onto the issues a check just raised, at the only point where both are in scope. Runs on the failure path only; `start` is the issue count from before the check ran. */
|
|
4934
|
+
/** The leading size checks of `defChecks` that set an upper bound, each paired with it. */
|
|
4935
|
+
function sizeCaps(defChecks) {
|
|
4936
|
+
const caps = [];
|
|
4937
|
+
for (const ch of defChecks ?? []) {
|
|
4938
|
+
const d = ch._zod.def;
|
|
4939
|
+
// a later check may rewrite the value
|
|
4940
|
+
if (!/_(length|size)$|_equals$/.test(d.check))
|
|
4941
|
+
break;
|
|
4942
|
+
const max = d.maximum ?? d.length ?? d.size;
|
|
4943
|
+
if (max >= 0)
|
|
4944
|
+
caps.push([max, ch]);
|
|
4945
|
+
}
|
|
4946
|
+
return caps;
|
|
4947
|
+
}
|
|
4873
4948
|
function attachSchema(issues, start, inst) {
|
|
4874
4949
|
var _a;
|
|
4875
4950
|
for (let i = start; i < issues.length; i++) {
|
|
@@ -6076,7 +6151,7 @@ class Doc {
|
|
|
6076
6151
|
const version$3 = {
|
|
6077
6152
|
major: 4,
|
|
6078
6153
|
minor: 6,
|
|
6079
|
-
patch:
|
|
6154
|
+
patch: 7,
|
|
6080
6155
|
};
|
|
6081
6156
|
|
|
6082
6157
|
const $ZodType = /*@__PURE__*/ $constructor("$ZodType", (inst, def) => {
|
|
@@ -6684,6 +6759,31 @@ const $ZodNever = /*@__PURE__*/ $constructor("$ZodNever", (inst, def) => {
|
|
|
6684
6759
|
return payload;
|
|
6685
6760
|
};
|
|
6686
6761
|
});
|
|
6762
|
+
// an oversized container fails its leading size checks before any element is parsed
|
|
6763
|
+
function capSize(inst, size) {
|
|
6764
|
+
const caps = sizeCaps(inst._zod.def.checks);
|
|
6765
|
+
if (!caps.length)
|
|
6766
|
+
return;
|
|
6767
|
+
const cap = Math.min(...caps.map((c) => c[0]));
|
|
6768
|
+
const parse = inst._zod.parse;
|
|
6769
|
+
inst._zod.parse = (payload, ctx) => {
|
|
6770
|
+
const n = size(payload.value);
|
|
6771
|
+
if (n > cap && !ctx?.skipChecks && ctx?.direction !== "backward") {
|
|
6772
|
+
for (const [max, ch] of sizeCaps(inst._zod.def.checks)) {
|
|
6773
|
+
if (n > max && ch._zod.def.when(payload)) {
|
|
6774
|
+
const start = payload.issues.length;
|
|
6775
|
+
ch._zod.check(payload);
|
|
6776
|
+
// the value is still the raw input, so no later check may read it
|
|
6777
|
+
payload.issues[start].continue = false;
|
|
6778
|
+
attachSchema(payload.issues, start, inst);
|
|
6779
|
+
return payload;
|
|
6780
|
+
}
|
|
6781
|
+
}
|
|
6782
|
+
}
|
|
6783
|
+
return parse(payload, ctx);
|
|
6784
|
+
};
|
|
6785
|
+
}
|
|
6786
|
+
const arraySize = (input) => (Array.isArray(input) ? input.length : -1);
|
|
6687
6787
|
function handleArrayResult(result, final, index) {
|
|
6688
6788
|
if (result.issues.length) {
|
|
6689
6789
|
final.issues.push(...prefixIssues(index, result.issues));
|
|
@@ -6729,6 +6829,7 @@ const $ZodArray = /*@__PURE__*/ $constructor("$ZodArray", (inst, def) => {
|
|
|
6729
6829
|
}
|
|
6730
6830
|
return payload; //handleArrayResultsAsync(parseResults, final);
|
|
6731
6831
|
};
|
|
6832
|
+
capSize(inst, arraySize);
|
|
6732
6833
|
});
|
|
6733
6834
|
function handlePropertyResult(result, final, key, input, optin, optout) {
|
|
6734
6835
|
const isPresent = key in input;
|
|
@@ -11058,6 +11159,84 @@ const ZodIssueCode = {
|
|
|
11058
11159
|
custom: "custom",
|
|
11059
11160
|
};
|
|
11060
11161
|
|
|
11162
|
+
/**
|
|
11163
|
+
* Internal helper utilities for constructing and inspecting Redux-style
|
|
11164
|
+
* lifecycle action types (`::request`, `::success`, `::failure`).
|
|
11165
|
+
*/
|
|
11166
|
+
/**
|
|
11167
|
+
* Separates an action's base type from its lifecycle suffix.
|
|
11168
|
+
*/
|
|
11169
|
+
const actionSuffixDivider = '::';
|
|
11170
|
+
|
|
11171
|
+
// biome-ignore-all lint/suspicious/noExplicitAny: ported redux-toolkit conditional-type dispatch logic (e.g. IsAny<T, ...>) requires real `any`, not `unknown`, to distinguish the two at the type level
|
|
11172
|
+
// biome-ignore-all lint/suspicious/noConfusingVoidType: `void` here is the ported redux-toolkit sentinel meaning "no payload type provided", distinct from `undefined` (see IfVoid in ts-helpers.ts) — replacing with `undefined` would change dispatch semantics
|
|
11173
|
+
/**
|
|
11174
|
+
* taken from https://github.com/reduxjs/redux-toolkit/tree/master/packages/toolkit/src
|
|
11175
|
+
*/
|
|
11176
|
+
/**
|
|
11177
|
+
* Creates the runtime action creator implementation shared by the overloads above.
|
|
11178
|
+
*
|
|
11179
|
+
* @param type - The action type to assign to created actions.
|
|
11180
|
+
* @param prepareAction - An optional function that prepares payload, metadata, and errors.
|
|
11181
|
+
* @returns A callable action creator with type and matching metadata.
|
|
11182
|
+
* @throws {Error} When the prepare callback does not return an action object.
|
|
11183
|
+
*/
|
|
11184
|
+
function createAction(type, prepareAction) {
|
|
11185
|
+
function actionCreator(...args) {
|
|
11186
|
+
// Use the prepare callback when the caller needs custom payload construction.
|
|
11187
|
+
if (prepareAction) {
|
|
11188
|
+
const prepared = prepareAction(...args);
|
|
11189
|
+
// Reject invalid prepare callbacks before reading their action fields.
|
|
11190
|
+
if (!prepared) {
|
|
11191
|
+
throw new Error('prepareAction did not return an object');
|
|
11192
|
+
}
|
|
11193
|
+
// Merge optional metadata and error fields into the prepared action.
|
|
11194
|
+
return {
|
|
11195
|
+
type,
|
|
11196
|
+
payload: prepared.payload,
|
|
11197
|
+
...('meta' in prepared && { meta: prepared.meta }),
|
|
11198
|
+
...('error' in prepared && { error: prepared.error }),
|
|
11199
|
+
};
|
|
11200
|
+
}
|
|
11201
|
+
return { type, payload: args[0] };
|
|
11202
|
+
}
|
|
11203
|
+
actionCreator.toString = () => `${type}`;
|
|
11204
|
+
actionCreator.type = type;
|
|
11205
|
+
actionCreator.match = (action) => action.type === type;
|
|
11206
|
+
return actionCreator;
|
|
11207
|
+
}
|
|
11208
|
+
|
|
11209
|
+
// biome-ignore-all lint/suspicious/noExplicitAny: generic constraints mirror create-action.ts's ported redux-toolkit PrepareAction<any> dispatch pattern
|
|
11210
|
+
/**
|
|
11211
|
+
* Creates the runtime async action implementation shared by the overloads above.
|
|
11212
|
+
*
|
|
11213
|
+
* @param type - The base action type string.
|
|
11214
|
+
* @param request - A prepare function for the request action payload.
|
|
11215
|
+
* @param success - A prepare function for the success action payload.
|
|
11216
|
+
* @param failure - An optional prepare function for the failure action payload.
|
|
11217
|
+
* @returns An action creator with request, success, and optional failure actions.
|
|
11218
|
+
*/
|
|
11219
|
+
function createAsyncAction(type, request, success, failure) {
|
|
11220
|
+
const action = createAction([type, 'request'].join(actionSuffixDivider), request);
|
|
11221
|
+
// Attach the success action only when the caller supplied its prepare function.
|
|
11222
|
+
if (success) {
|
|
11223
|
+
// Add the success action while preserving the request creator's identity.
|
|
11224
|
+
Object.assign(action, {
|
|
11225
|
+
success: createAction([type, 'success'].join(actionSuffixDivider), success),
|
|
11226
|
+
});
|
|
11227
|
+
}
|
|
11228
|
+
// Attach the failure action only for async workflows that support failure results.
|
|
11229
|
+
if (failure) {
|
|
11230
|
+
// Add the failure action alongside the existing request and success actions.
|
|
11231
|
+
Object.assign(action, {
|
|
11232
|
+
failure: createAction([type, 'failure'].join(actionSuffixDivider), failure),
|
|
11233
|
+
});
|
|
11234
|
+
}
|
|
11235
|
+
// `action` is progressively mutated with `success`/`failure` properties above, so its static
|
|
11236
|
+
// type can't reflect the final shape declared by this function's overload signatures.
|
|
11237
|
+
return action;
|
|
11238
|
+
}
|
|
11239
|
+
|
|
11061
11240
|
var cjs;
|
|
11062
11241
|
var hasRequiredCjs;
|
|
11063
11242
|
|
|
@@ -11202,6 +11381,13 @@ function requireCjs () {
|
|
|
11202
11381
|
var cjsExports = requireCjs();
|
|
11203
11382
|
var deepmerge = /*@__PURE__*/getDefaultExportFromCjs(cjsExports);
|
|
11204
11383
|
|
|
11384
|
+
/**
|
|
11385
|
+
* Static, lowercase kebab-case label used for operational source kinds, modules and operations.
|
|
11386
|
+
* Open-ended so any host or module can define its own labels, while the character set
|
|
11387
|
+
* prevents URLs, user names, paths or payload fragments from becoming exported labels.
|
|
11388
|
+
*/
|
|
11389
|
+
const operationalIdentifier = string().regex(/^[a-z][a-z0-9-]*$/);
|
|
11390
|
+
|
|
11205
11391
|
/**
|
|
11206
11392
|
* Enum representing the severity levels of telemetry items.
|
|
11207
11393
|
*
|
|
@@ -11262,6 +11448,24 @@ const TelemetryItemNames = {
|
|
|
11262
11448
|
MetadataError: 'TelemetryMetadataError',
|
|
11263
11449
|
};
|
|
11264
11450
|
|
|
11451
|
+
/** Allowlisted operational context, captured before enrichment and preserved across relay. */
|
|
11452
|
+
const diagnosticContext = object({
|
|
11453
|
+
schemaVersion: literal(1),
|
|
11454
|
+
source: operationalIdentifier.optional(),
|
|
11455
|
+
hostId: string(),
|
|
11456
|
+
hostName: string().optional(),
|
|
11457
|
+
hostVersion: string().optional(),
|
|
11458
|
+
module: operationalIdentifier,
|
|
11459
|
+
operation: operationalIdentifier,
|
|
11460
|
+
outcome: _enum(['success', 'failure', 'cancelled']),
|
|
11461
|
+
occurredAt: number().finite().nonnegative(),
|
|
11462
|
+
unit: literal('ms'),
|
|
11463
|
+
traceId: string().optional(),
|
|
11464
|
+
spanId: string().optional(),
|
|
11465
|
+
traceFlags: number().int().min(0).max(255).optional(),
|
|
11466
|
+
})
|
|
11467
|
+
.strict();
|
|
11468
|
+
|
|
11265
11469
|
/**
|
|
11266
11470
|
* Schema for a telemetry item, defining the structure and validation rules for telemetry data.
|
|
11267
11471
|
*
|
|
@@ -11273,6 +11477,7 @@ const TelemetryItemNames = {
|
|
|
11273
11477
|
*/
|
|
11274
11478
|
const TelemetryItemSchema = object({
|
|
11275
11479
|
name: string().describe('The name of the telemetry item.'),
|
|
11480
|
+
diagnostic: diagnosticContext.optional(),
|
|
11276
11481
|
type: nativeEnum(TelemetryType).describe('The type of telemetry. Defaults to Custom.'),
|
|
11277
11482
|
level: nativeEnum(TelemetryLevel)
|
|
11278
11483
|
.optional()
|
|
@@ -11334,7 +11539,588 @@ const TelemetryCustomEventSchema = TelemetryEventSchema.extend({
|
|
|
11334
11539
|
type: literal(TelemetryType.Custom),
|
|
11335
11540
|
}).passthrough();
|
|
11336
11541
|
|
|
11337
|
-
|
|
11542
|
+
/**
|
|
11543
|
+
* Scope for built-in operational records: the host's own kind, when it classified itself,
|
|
11544
|
+
* followed by `operational`. Built-in records never inherit a provider's custom default scope.
|
|
11545
|
+
* @param source - Host identity captured by the composition root.
|
|
11546
|
+
* @returns The record scope.
|
|
11547
|
+
*/
|
|
11548
|
+
function operationalScope(source) {
|
|
11549
|
+
return source.source ? [source.source, 'operational'] : ['operational'];
|
|
11550
|
+
}
|
|
11551
|
+
|
|
11552
|
+
/**
|
|
11553
|
+
* Actions describing a telemetry provider's lifecycle, in-flight work and health.
|
|
11554
|
+
*
|
|
11555
|
+
* `initialize` and `dispose` are async actions: the request carries the shared operation
|
|
11556
|
+
* promise, flows perform the work, and the success or failure action settles that promise.
|
|
11557
|
+
*/
|
|
11558
|
+
const telemetryProviderActions = {
|
|
11559
|
+
/** Connects exporters, the parent relay and startup streams once. */
|
|
11560
|
+
initialize: createAsyncAction('telemetry/initialize', (args, operation) => ({
|
|
11561
|
+
payload: args,
|
|
11562
|
+
meta: { operation },
|
|
11563
|
+
}), () => ({ payload: undefined }), (error) => ({ payload: error })),
|
|
11564
|
+
/** Drains owned work, closes delivery and shuts down exporters once. */
|
|
11565
|
+
dispose: createAsyncAction('telemetry/dispose', (operation) => ({ payload: undefined, meta: { operation } }), () => ({ payload: undefined }), (error) => ({ payload: error })),
|
|
11566
|
+
/** Delivery closed after bounded built-in enrichment drained; custom enrichment is canceled. */
|
|
11567
|
+
close: createAction('telemetry/close'),
|
|
11568
|
+
/** One metadata enrichment entered flight; built-in enrichment is awaited at shutdown. */
|
|
11569
|
+
enrichmentStarted: createAction('telemetry/enrichment/started', (builtIn) => ({
|
|
11570
|
+
payload: { builtIn },
|
|
11571
|
+
})),
|
|
11572
|
+
/** One metadata enrichment left flight. */
|
|
11573
|
+
enrichmentSettled: createAction('telemetry/enrichment/settled', (builtIn) => ({
|
|
11574
|
+
payload: { builtIn },
|
|
11575
|
+
})),
|
|
11576
|
+
/** Asynchronous processing entered flight for one adapter. */
|
|
11577
|
+
processingStarted: createAction('telemetry/processing/started', (adapter) => ({
|
|
11578
|
+
payload: adapter,
|
|
11579
|
+
})),
|
|
11580
|
+
/** Asynchronous processing left flight for one adapter. */
|
|
11581
|
+
processingSettled: createAction('telemetry/processing/settled', (adapter) => ({
|
|
11582
|
+
payload: adapter,
|
|
11583
|
+
})),
|
|
11584
|
+
/** A pipeline health failure occurred; occurrences are counted by message. */
|
|
11585
|
+
failed: createAction('telemetry/failed', (error) => ({ payload: error })),
|
|
11586
|
+
};
|
|
11587
|
+
|
|
11588
|
+
/**
|
|
11589
|
+
* Creates the safe, versioned `diagnostic` envelope for a built-in record.
|
|
11590
|
+
*
|
|
11591
|
+
* Use it for operational notifications that have no measured duration, such as navigation
|
|
11592
|
+
* or cache events; use `createOperationalRecords` for measured terminal outcomes. The envelope
|
|
11593
|
+
* captures occurrence time and the active OpenTelemetry span now, so later enrichment or
|
|
11594
|
+
* relaying cannot change where or when the outcome happened.
|
|
11595
|
+
*
|
|
11596
|
+
* @param args - Host identity and static operation identity.
|
|
11597
|
+
* @returns A diagnostic envelope that passes the strict diagnostic schema.
|
|
11598
|
+
* @throws {RangeError} When the source kind, module or operation is not a static identifier.
|
|
11599
|
+
* @example
|
|
11600
|
+
* ```ts
|
|
11601
|
+
* telemetry.trackEvent({
|
|
11602
|
+
* name: 'Navigation::navigated',
|
|
11603
|
+
* level: TelemetryLevel.Information,
|
|
11604
|
+
* diagnostic: createDiagnosticContext({
|
|
11605
|
+
* source: telemetry.source,
|
|
11606
|
+
* module: 'navigation',
|
|
11607
|
+
* operation: 'notification',
|
|
11608
|
+
* outcome: 'success',
|
|
11609
|
+
* }),
|
|
11610
|
+
* });
|
|
11611
|
+
* ```
|
|
11612
|
+
*/
|
|
11613
|
+
function createDiagnosticContext(args) {
|
|
11614
|
+
const { source, module, operation, outcome } = args;
|
|
11615
|
+
// Host-defined labels are open-ended but must stay static identifiers; the kind is optional.
|
|
11616
|
+
const invalid = [source.source, module, operation].some((label) => label !== undefined && !operationalIdentifier.safeParse(label).success);
|
|
11617
|
+
// Reject before capture, so a dynamic label can never reach an exported record.
|
|
11618
|
+
if (invalid) {
|
|
11619
|
+
throw new RangeError('Invalid operational telemetry identifier');
|
|
11620
|
+
}
|
|
11621
|
+
const span = trace.getSpanContext(context.active());
|
|
11622
|
+
// Host identity first; the fixed envelope fields cannot be overridden by it.
|
|
11623
|
+
return {
|
|
11624
|
+
...source,
|
|
11625
|
+
schemaVersion: 1,
|
|
11626
|
+
module,
|
|
11627
|
+
operation,
|
|
11628
|
+
outcome,
|
|
11629
|
+
occurredAt: Date.now(),
|
|
11630
|
+
unit: 'ms',
|
|
11631
|
+
// Correlate with the caller's active span only when one exists; never create spans.
|
|
11632
|
+
...(span ? { traceId: span.traceId, spanId: span.spanId, traceFlags: span.traceFlags } : {}),
|
|
11633
|
+
};
|
|
11634
|
+
}
|
|
11635
|
+
|
|
11636
|
+
/**
|
|
11637
|
+
* Creates a terminal duration and, on failure, a controlled exception without copying payloads.
|
|
11638
|
+
* @param args - Static operation identity, host identity, outcome, and elapsed milliseconds.
|
|
11639
|
+
* @returns One duration metric and at most one sanitized exception.
|
|
11640
|
+
* @throws {RangeError} When duration or static operation identifiers are invalid.
|
|
11641
|
+
* @example
|
|
11642
|
+
* ```ts
|
|
11643
|
+
* const records = createOperationalRecords({
|
|
11644
|
+
* source: { source: 'app', hostId: crypto.randomUUID() },
|
|
11645
|
+
* module: 'host', operation: 'initialize', outcome: 'success', duration: 0,
|
|
11646
|
+
* });
|
|
11647
|
+
* ```
|
|
11648
|
+
*/
|
|
11649
|
+
function createOperationalRecords(args) {
|
|
11650
|
+
// A finite, non-negative measurement keeps duration metrics meaningful; zero is valid.
|
|
11651
|
+
if (!Number.isFinite(args.duration) || args.duration < 0) {
|
|
11652
|
+
throw new RangeError('Invalid operational telemetry duration');
|
|
11653
|
+
}
|
|
11654
|
+
// Capture origin and existing correlation before asynchronous enrichment or relaying.
|
|
11655
|
+
const diagnostic = createDiagnosticContext(args);
|
|
11656
|
+
const name = `fusion.${args.module}.${args.operation}`;
|
|
11657
|
+
// The measurement is not itself the error: its outcome marks a failure, and the exception
|
|
11658
|
+
// alone carries Error severity, so each failure counts once in error views.
|
|
11659
|
+
const metric = {
|
|
11660
|
+
name: `${name}.duration`,
|
|
11661
|
+
type: TelemetryType.Metric,
|
|
11662
|
+
level: TelemetryLevel.Information,
|
|
11663
|
+
value: args.duration,
|
|
11664
|
+
scope: operationalScope(args.source),
|
|
11665
|
+
diagnostic,
|
|
11666
|
+
...(args.properties ? { properties: { ...args.properties } } : {}),
|
|
11667
|
+
};
|
|
11668
|
+
// Success and cancellation do not fabricate exception records.
|
|
11669
|
+
if (args.outcome !== 'failure') {
|
|
11670
|
+
return [metric];
|
|
11671
|
+
}
|
|
11672
|
+
// The record name is built from validated static identifiers, so it is safe to name the
|
|
11673
|
+
// failed operation; the original error, message and stack are never copied.
|
|
11674
|
+
const exception = new Error(`${name} failed`);
|
|
11675
|
+
exception.name = 'OperationalError';
|
|
11676
|
+
exception.stack = undefined;
|
|
11677
|
+
const failure = {
|
|
11678
|
+
name: `${name}.failure`,
|
|
11679
|
+
type: TelemetryType.Exception,
|
|
11680
|
+
level: TelemetryLevel.Error,
|
|
11681
|
+
exception: Object.freeze(exception),
|
|
11682
|
+
scope: metric.scope,
|
|
11683
|
+
diagnostic,
|
|
11684
|
+
...(args.properties ? { properties: { ...args.properties } } : {}),
|
|
11685
|
+
};
|
|
11686
|
+
return [metric, failure];
|
|
11687
|
+
}
|
|
11688
|
+
|
|
11689
|
+
/** Named levels keep optional integrations independent of runtime enum imports. */
|
|
11690
|
+
const notificationLevels = {
|
|
11691
|
+
debug: TelemetryLevel.Debug,
|
|
11692
|
+
information: TelemetryLevel.Information,
|
|
11693
|
+
warning: TelemetryLevel.Warning,
|
|
11694
|
+
error: TelemetryLevel.Error,
|
|
11695
|
+
critical: TelemetryLevel.Critical,
|
|
11696
|
+
};
|
|
11697
|
+
/**
|
|
11698
|
+
* Creates a reporter for a module's built-in operational outcomes. Internal building block of
|
|
11699
|
+
* `createOperationalTelemetry` and the shared HTTP and query integrations.
|
|
11700
|
+
*
|
|
11701
|
+
* Each measured report becomes one `fusion.<module>.<operation>.duration` metric, plus one
|
|
11702
|
+
* sanitized `.failure` exception on failure; each notification becomes one
|
|
11703
|
+
* `fusion.<module>.<operation>` event. Records carry only the safe `diagnostic` envelope and
|
|
11704
|
+
* the provider's host identity, never arguments, payloads or original errors.
|
|
11705
|
+
*
|
|
11706
|
+
* The provider is resolved on every report, so a module can connect telemetry after
|
|
11707
|
+
* initialization and disconnect it on teardown by returning `undefined`. Telemetry is
|
|
11708
|
+
* optional: without a provider nothing is recorded. Delivery failures, including a custom
|
|
11709
|
+
* provider without host `source` identity, never reach the business operation and produce
|
|
11710
|
+
* one sanitized console warning per reporter.
|
|
11711
|
+
*
|
|
11712
|
+
* @param provider - Lazy provider resolution avoids startup dependency cycles.
|
|
11713
|
+
* @returns A reporter accepting only allowlisted outcome inputs.
|
|
11714
|
+
* @throws No errors escape; invalid providers are reported once outside the export pipeline.
|
|
11715
|
+
*/
|
|
11716
|
+
function createOperationalReporter(provider) {
|
|
11717
|
+
let reported = false;
|
|
11718
|
+
return (report) => {
|
|
11719
|
+
try {
|
|
11720
|
+
const target = provider();
|
|
11721
|
+
// Optional telemetry must not impose a dependency on business operations.
|
|
11722
|
+
if (!target) {
|
|
11723
|
+
return;
|
|
11724
|
+
}
|
|
11725
|
+
// Refuse ambiguous ownership rather than inventing a source for a custom provider.
|
|
11726
|
+
if (!target.source) {
|
|
11727
|
+
throw new Error('Operational telemetry requires host source identity');
|
|
11728
|
+
}
|
|
11729
|
+
const source = target.source;
|
|
11730
|
+
// Notifications have no measured duration, so they are events with the same envelope.
|
|
11731
|
+
if ('notification' in report) {
|
|
11732
|
+
target.trackEvent({
|
|
11733
|
+
name: `fusion.${report.module}.${report.operation}`,
|
|
11734
|
+
level: (typeof report.level === 'string' ? notificationLevels[report.level] : report.level) ??
|
|
11735
|
+
(report.outcome === 'failure' ? TelemetryLevel.Error : TelemetryLevel.Information),
|
|
11736
|
+
scope: operationalScope(source),
|
|
11737
|
+
diagnostic: createDiagnosticContext({ ...report, source }),
|
|
11738
|
+
...(report.properties ? { properties: { ...report.properties } } : {}),
|
|
11739
|
+
});
|
|
11740
|
+
return;
|
|
11741
|
+
}
|
|
11742
|
+
// Failure records pair the terminal measurement with one controlled exception.
|
|
11743
|
+
for (const record of createOperationalRecords({ ...report, source })) {
|
|
11744
|
+
target.track(record);
|
|
11745
|
+
}
|
|
11746
|
+
}
|
|
11747
|
+
catch {
|
|
11748
|
+
// Delivery failures are diagnostic health, never recursive exported exceptions.
|
|
11749
|
+
if (!reported) {
|
|
11750
|
+
reported = true;
|
|
11751
|
+
console.warn('Operational telemetry delivery failed');
|
|
11752
|
+
}
|
|
11753
|
+
}
|
|
11754
|
+
};
|
|
11755
|
+
}
|
|
11756
|
+
|
|
11757
|
+
/** Weak classifications shared across scopes without retaining or mutating business errors. */
|
|
11758
|
+
const operationalErrorState = {
|
|
11759
|
+
cancellations: new WeakSet(),
|
|
11760
|
+
reasons: new WeakMap(),
|
|
11761
|
+
};
|
|
11762
|
+
|
|
11763
|
+
/**
|
|
11764
|
+
* Classifies failure or cancellation through at most five wrapped causes.
|
|
11765
|
+
* @param error - Original operation error.
|
|
11766
|
+
* @returns Terminal outcome and an optional controlled reason.
|
|
11767
|
+
*/
|
|
11768
|
+
function classifyOperationalError(error) {
|
|
11769
|
+
let current = error;
|
|
11770
|
+
let reason;
|
|
11771
|
+
// Bound traversal even for cyclic causes.
|
|
11772
|
+
for (let depth = 0; depth < 5 && current && typeof current === 'object'; depth++) {
|
|
11773
|
+
reason ??= operationalErrorState.reasons.get(current);
|
|
11774
|
+
// A marked nested cancellation wins over a wrapping failure.
|
|
11775
|
+
if (operationalErrorState.cancellations.has(current)) {
|
|
11776
|
+
return { outcome: 'cancelled', reason };
|
|
11777
|
+
}
|
|
11778
|
+
current = 'cause' in current ? current.cause : undefined;
|
|
11779
|
+
}
|
|
11780
|
+
return { outcome: 'failure', reason };
|
|
11781
|
+
}
|
|
11782
|
+
|
|
11783
|
+
/**
|
|
11784
|
+
* Marks a deliberate cancellation without mutating the caller's error.
|
|
11785
|
+
* @template T - Error object type.
|
|
11786
|
+
* @param error - Original error.
|
|
11787
|
+
* @param reason - Optional controlled reason code.
|
|
11788
|
+
* @returns The original error.
|
|
11789
|
+
*/
|
|
11790
|
+
function markOperationalCancellation(error, reason) {
|
|
11791
|
+
operationalErrorState.cancellations.add(error);
|
|
11792
|
+
// Reason codes are optional; an existing classification must survive an unqualified mark.
|
|
11793
|
+
if (reason) {
|
|
11794
|
+
operationalErrorState.reasons.set(error, reason);
|
|
11795
|
+
}
|
|
11796
|
+
return error;
|
|
11797
|
+
}
|
|
11798
|
+
|
|
11799
|
+
/**
|
|
11800
|
+
* Associates a controlled reason code with an error without changing it.
|
|
11801
|
+
* @template T - Error object type.
|
|
11802
|
+
* @param error - Original error.
|
|
11803
|
+
* @param reason - Static reason code, never error text.
|
|
11804
|
+
* @returns The original error.
|
|
11805
|
+
*/
|
|
11806
|
+
function markOperationalReason(error, reason) {
|
|
11807
|
+
operationalErrorState.reasons.set(error, reason);
|
|
11808
|
+
return error;
|
|
11809
|
+
}
|
|
11810
|
+
|
|
11811
|
+
const safeKey = /^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/;
|
|
11812
|
+
const safeVersion = /^[0-9A-Za-z][0-9A-Za-z.+-]{0,63}$/;
|
|
11813
|
+
/**
|
|
11814
|
+
* Omits identity containing paths, URLs, whitespace or unbounded dynamic fragments.
|
|
11815
|
+
* @param value - Candidate static identity.
|
|
11816
|
+
* @param kind - Identifier or semantic-version-like identity.
|
|
11817
|
+
* @returns Validated identity, or undefined when unsafe.
|
|
11818
|
+
*/
|
|
11819
|
+
function safeOperationalIdentity(value, kind = 'key') {
|
|
11820
|
+
return typeof value === 'string' && (kind === 'key' ? safeKey : safeVersion).test(value)
|
|
11821
|
+
? value
|
|
11822
|
+
: undefined;
|
|
11823
|
+
}
|
|
11824
|
+
|
|
11825
|
+
const noop = () => undefined;
|
|
11826
|
+
/** Shared bounded operation lifecycle behind the public telemetry factory. */
|
|
11827
|
+
class OperationalTelemetryHandle {
|
|
11828
|
+
module;
|
|
11829
|
+
options;
|
|
11830
|
+
parent;
|
|
11831
|
+
/** {@inheritDoc OperationalTelemetry.classifyError} */
|
|
11832
|
+
classifyError = classifyOperationalError;
|
|
11833
|
+
/** {@inheritDoc OperationalTelemetry.markCancellation} */
|
|
11834
|
+
markCancellation = markOperationalCancellation;
|
|
11835
|
+
/** {@inheritDoc OperationalTelemetry.markReason} */
|
|
11836
|
+
markReason = markOperationalReason;
|
|
11837
|
+
/** {@inheritDoc OperationalTelemetry.safeIdentity} */
|
|
11838
|
+
safeIdentity = safeOperationalIdentity;
|
|
11839
|
+
#pending = new Set();
|
|
11840
|
+
#busyChildren = new Set();
|
|
11841
|
+
#teardowns = [];
|
|
11842
|
+
#target;
|
|
11843
|
+
#closed = false;
|
|
11844
|
+
#warned = false;
|
|
11845
|
+
#reporter;
|
|
11846
|
+
/**
|
|
11847
|
+
* Creates one scope; children resolve their target through the parent.
|
|
11848
|
+
* @param module - Validated static module label.
|
|
11849
|
+
* @param options - End-time identity.
|
|
11850
|
+
* @param parent - Owning scope, when this is a child.
|
|
11851
|
+
*/
|
|
11852
|
+
constructor(module, options, parent) {
|
|
11853
|
+
this.module = module;
|
|
11854
|
+
this.options = options;
|
|
11855
|
+
this.parent = parent;
|
|
11856
|
+
this.#reporter = createOperationalReporter(() => this.#resolve());
|
|
11857
|
+
}
|
|
11858
|
+
/** {@inheritDoc OperationalTelemetry.connected} */
|
|
11859
|
+
get connected() {
|
|
11860
|
+
return this.active;
|
|
11861
|
+
}
|
|
11862
|
+
/** {@inheritDoc OperationalTelemetry.active} */
|
|
11863
|
+
get active() {
|
|
11864
|
+
return this.#resolve() !== undefined;
|
|
11865
|
+
}
|
|
11866
|
+
/** {@inheritDoc OperationalTelemetry.pending} */
|
|
11867
|
+
get pending() {
|
|
11868
|
+
return this.#pending.size;
|
|
11869
|
+
}
|
|
11870
|
+
/** {@inheritDoc OperationalTelemetry.connect} */
|
|
11871
|
+
connect = (target) => {
|
|
11872
|
+
// Scope disposal is final, even if a host tries to reconnect it.
|
|
11873
|
+
if (!this.#closed) {
|
|
11874
|
+
this.#target = target;
|
|
11875
|
+
}
|
|
11876
|
+
};
|
|
11877
|
+
/** {@inheritDoc OperationalTelemetry.disconnect} */
|
|
11878
|
+
disconnect = () => {
|
|
11879
|
+
this.close();
|
|
11880
|
+
};
|
|
11881
|
+
/** {@inheritDoc OperationalTelemetry.report} */
|
|
11882
|
+
report = (report) => {
|
|
11883
|
+
this.#reporter({ ...report, module: this.module });
|
|
11884
|
+
};
|
|
11885
|
+
/** {@inheritDoc OperationalTelemetry.createScope} */
|
|
11886
|
+
createScope(options) {
|
|
11887
|
+
const child = new OperationalTelemetryHandle(this.module, options, this);
|
|
11888
|
+
// Children cannot revive closed ownership.
|
|
11889
|
+
if (this.#closed) {
|
|
11890
|
+
child.close();
|
|
11891
|
+
}
|
|
11892
|
+
return child;
|
|
11893
|
+
}
|
|
11894
|
+
/** {@inheritDoc OperationalTelemetry.start} */
|
|
11895
|
+
start(operation, properties) {
|
|
11896
|
+
return this.reserve(operation, properties) ?? noop;
|
|
11897
|
+
}
|
|
11898
|
+
/** {@inheritDoc OperationalTelemetry.reserve} */
|
|
11899
|
+
reserve(operation, properties) {
|
|
11900
|
+
// Absent or disposed telemetry retains no timers or observation work.
|
|
11901
|
+
if (!this.active) {
|
|
11902
|
+
return undefined;
|
|
11903
|
+
}
|
|
11904
|
+
// Hung operations must not grow an unbounded set of retained callbacks.
|
|
11905
|
+
if (this.#pending.size >= 256) {
|
|
11906
|
+
this.#warn('pending-operation capacity exceeded');
|
|
11907
|
+
return undefined;
|
|
11908
|
+
}
|
|
11909
|
+
const started = performance.now();
|
|
11910
|
+
const end = (outcome, extra) => {
|
|
11911
|
+
// Only the first terminal path records, even when teardown races with completion.
|
|
11912
|
+
if (!this.#pending.delete(end)) {
|
|
11913
|
+
return;
|
|
11914
|
+
}
|
|
11915
|
+
this.#releaseParentIfIdle();
|
|
11916
|
+
try {
|
|
11917
|
+
// Terminal fields override late-resolved identity, which extends the initial summaries.
|
|
11918
|
+
const fields = { ...properties, ...this.options?.identity?.(), ...extra };
|
|
11919
|
+
this.report({
|
|
11920
|
+
operation,
|
|
11921
|
+
outcome,
|
|
11922
|
+
duration: Math.max(0, performance.now() - started),
|
|
11923
|
+
...(Object.keys(fields).length ? { properties: fields } : {}),
|
|
11924
|
+
});
|
|
11925
|
+
}
|
|
11926
|
+
catch {
|
|
11927
|
+
this.#warn('identity resolution failed');
|
|
11928
|
+
}
|
|
11929
|
+
};
|
|
11930
|
+
this.#pending.add(end);
|
|
11931
|
+
this.#retainParent();
|
|
11932
|
+
return end;
|
|
11933
|
+
}
|
|
11934
|
+
/** {@inheritDoc OperationalTelemetry.measure} */
|
|
11935
|
+
measure(operation, properties) {
|
|
11936
|
+
return (source) => defer(() => {
|
|
11937
|
+
const end = this.reserve(operation, properties);
|
|
11938
|
+
// With no retained timer, do not add observers to the business stream.
|
|
11939
|
+
if (!end) {
|
|
11940
|
+
return source;
|
|
11941
|
+
}
|
|
11942
|
+
let emitted = false;
|
|
11943
|
+
// Linked operators preserve synchronous downstream unsubscription and original errors.
|
|
11944
|
+
return source.pipe(tap({
|
|
11945
|
+
next: () => {
|
|
11946
|
+
emitted = true;
|
|
11947
|
+
},
|
|
11948
|
+
error: (error) => {
|
|
11949
|
+
const { outcome, reason } = classifyOperationalError(error);
|
|
11950
|
+
end(outcome, reason ? { reason } : undefined);
|
|
11951
|
+
},
|
|
11952
|
+
complete: () => end('success'),
|
|
11953
|
+
}), finalize$1(() => end(emitted ? 'success' : 'cancelled')));
|
|
11954
|
+
});
|
|
11955
|
+
}
|
|
11956
|
+
/** {@inheritDoc OperationalTelemetry.notify} */
|
|
11957
|
+
notify(operation, outcome, properties) {
|
|
11958
|
+
this.report({
|
|
11959
|
+
operation,
|
|
11960
|
+
outcome,
|
|
11961
|
+
properties,
|
|
11962
|
+
notification: true,
|
|
11963
|
+
level: outcome === 'failure' ? TelemetryLevel.Warning : TelemetryLevel.Information,
|
|
11964
|
+
});
|
|
11965
|
+
}
|
|
11966
|
+
/** {@inheritDoc OperationalTelemetry.own} */
|
|
11967
|
+
own(teardown) {
|
|
11968
|
+
// Idle children can outlive an ancestor without being retained by it.
|
|
11969
|
+
if (this.#isClosed()) {
|
|
11970
|
+
this.#release(teardown);
|
|
11971
|
+
return;
|
|
11972
|
+
}
|
|
11973
|
+
this.#teardowns.push(teardown);
|
|
11974
|
+
this.#retainParent();
|
|
11975
|
+
}
|
|
11976
|
+
/** {@inheritDoc OperationalTelemetry.cancelPending} */
|
|
11977
|
+
cancelPending(properties) {
|
|
11978
|
+
// Each end removes itself, so iterate a stable snapshot.
|
|
11979
|
+
for (const end of [...this.#pending]) {
|
|
11980
|
+
end('cancelled', properties);
|
|
11981
|
+
}
|
|
11982
|
+
}
|
|
11983
|
+
/** {@inheritDoc OperationalTelemetry.close} */
|
|
11984
|
+
close(properties) {
|
|
11985
|
+
// Repeated disposal must neither emit nor release resources twice.
|
|
11986
|
+
if (this.#closed) {
|
|
11987
|
+
return;
|
|
11988
|
+
}
|
|
11989
|
+
// Children need the live parent target to record their cancellations.
|
|
11990
|
+
for (const child of [...this.#busyChildren]) {
|
|
11991
|
+
child.close(properties);
|
|
11992
|
+
}
|
|
11993
|
+
this.cancelPending(properties);
|
|
11994
|
+
this.#closed = true;
|
|
11995
|
+
this.#target = undefined;
|
|
11996
|
+
// Idle descendants resolve closure through their ancestor rather than being retained.
|
|
11997
|
+
if (this.parent) {
|
|
11998
|
+
this.parent.#busyChildren.delete(this);
|
|
11999
|
+
this.parent.#releaseParentIfIdle();
|
|
12000
|
+
}
|
|
12001
|
+
const teardowns = this.#teardowns;
|
|
12002
|
+
this.#teardowns = [];
|
|
12003
|
+
// One failing observer must not prevent other observers from being released.
|
|
12004
|
+
for (const teardown of teardowns) {
|
|
12005
|
+
this.#release(teardown);
|
|
12006
|
+
}
|
|
12007
|
+
}
|
|
12008
|
+
/**
|
|
12009
|
+
* Resolves live ownership without retaining idle children.
|
|
12010
|
+
* @returns The live ancestor's telemetry target, or undefined after closure.
|
|
12011
|
+
*/
|
|
12012
|
+
#resolve() {
|
|
12013
|
+
// Cleared targets alone cannot prevent a child from reconnecting after final disposal.
|
|
12014
|
+
if (this.#closed) {
|
|
12015
|
+
return undefined;
|
|
12016
|
+
}
|
|
12017
|
+
return this.parent ? this.parent.#resolve() : this.#target;
|
|
12018
|
+
}
|
|
12019
|
+
/**
|
|
12020
|
+
* Includes closed idle ancestors, which are deliberately not retained in child sets.
|
|
12021
|
+
* @returns Whether this scope or any ancestor has closed.
|
|
12022
|
+
*/
|
|
12023
|
+
#isClosed() {
|
|
12024
|
+
return this.#closed || (this.parent ? this.parent.#isClosed() : false);
|
|
12025
|
+
}
|
|
12026
|
+
/** Keeps every ancestor aware of owned work, including nested scopes. */
|
|
12027
|
+
#retainParent() {
|
|
12028
|
+
// Propagate busy ownership through all ancestors, not only the immediate parent.
|
|
12029
|
+
if (this.parent) {
|
|
12030
|
+
this.parent.#busyChildren.add(this);
|
|
12031
|
+
this.parent.#retainParent();
|
|
12032
|
+
}
|
|
12033
|
+
}
|
|
12034
|
+
/** Drops settled children so abandoned idle owners are not retained. */
|
|
12035
|
+
#releaseParentIfIdle() {
|
|
12036
|
+
// Retain only work or resources, never abandoned idle child handles.
|
|
12037
|
+
if (!this.#pending.size && !this.#busyChildren.size && !this.#teardowns.length) {
|
|
12038
|
+
// Settling the last descendant can also make its ancestors idle.
|
|
12039
|
+
if (this.parent) {
|
|
12040
|
+
this.parent.#busyChildren.delete(this);
|
|
12041
|
+
this.parent.#releaseParentIfIdle();
|
|
12042
|
+
}
|
|
12043
|
+
}
|
|
12044
|
+
}
|
|
12045
|
+
/**
|
|
12046
|
+
* Isolates resource failures so all owned observers are released.
|
|
12047
|
+
* @param teardown - Owned diagnostic resource.
|
|
12048
|
+
*/
|
|
12049
|
+
#release(teardown) {
|
|
12050
|
+
try {
|
|
12051
|
+
// Accept RxJS subscriptions without making plain teardowns allocate subscriptions.
|
|
12052
|
+
if (typeof teardown === 'function') {
|
|
12053
|
+
teardown();
|
|
12054
|
+
}
|
|
12055
|
+
else {
|
|
12056
|
+
teardown.unsubscribe();
|
|
12057
|
+
}
|
|
12058
|
+
}
|
|
12059
|
+
catch {
|
|
12060
|
+
this.#warn('diagnostic teardown failed');
|
|
12061
|
+
}
|
|
12062
|
+
}
|
|
12063
|
+
/**
|
|
12064
|
+
* Bounds sanitized local diagnostics independently of exported operational records.
|
|
12065
|
+
* @param reason - Static local diagnostic.
|
|
12066
|
+
*/
|
|
12067
|
+
#warn(reason) {
|
|
12068
|
+
// Local diagnostic failures cannot amplify into repeated warnings or exported records.
|
|
12069
|
+
if (!this.#warned) {
|
|
12070
|
+
this.#warned = true;
|
|
12071
|
+
console.warn(`Operational telemetry for ${this.module}: ${reason}`);
|
|
12072
|
+
}
|
|
12073
|
+
}
|
|
12074
|
+
}
|
|
12075
|
+
|
|
12076
|
+
/**
|
|
12077
|
+
* Creates the operational telemetry handle a module uses to report safe outcomes.
|
|
12078
|
+
*
|
|
12079
|
+
* This is the common wiring pattern for framework modules: the provider owns the handle,
|
|
12080
|
+
* the module connects it after initialization, and teardown disconnects it. A measured report
|
|
12081
|
+
* becomes one `fusion.<module>.<operation>.duration` metric, plus one sanitized `.failure`
|
|
12082
|
+
* exception on failure; a notification becomes one `fusion.<module>.<operation>` event.
|
|
12083
|
+
* Telemetry stays optional: until connected, nothing is recorded. Delivery failures never
|
|
12084
|
+
* reach the business operation and produce one sanitized console warning per handle.
|
|
12085
|
+
*
|
|
12086
|
+
* @param module - Static kebab-case module label, such as `signalr`.
|
|
12087
|
+
* @param options - Optional static identity resolved when measured operations end.
|
|
12088
|
+
* @returns A disconnected handle.
|
|
12089
|
+
* @throws {RangeError} When `module` is not a static kebab-case identifier.
|
|
12090
|
+
* @example
|
|
12091
|
+
* ```ts
|
|
12092
|
+
* class SignalRProvider extends BaseModuleProvider<Config> implements TelemetryConnectable {
|
|
12093
|
+
* #telemetry = createOperationalTelemetry('signalr');
|
|
12094
|
+
*
|
|
12095
|
+
* constructor(config: Config) {
|
|
12096
|
+
* super({ version, config });
|
|
12097
|
+
* this._addTeardown(() => this.#telemetry.disconnect());
|
|
12098
|
+
* }
|
|
12099
|
+
*
|
|
12100
|
+
* connectTelemetry(telemetry: ITelemetryProvider | undefined): void {
|
|
12101
|
+
* this.#telemetry.connect(telemetry);
|
|
12102
|
+
* }
|
|
12103
|
+
*
|
|
12104
|
+
* async connect(): Promise<void> {
|
|
12105
|
+
* const started = performance.now();
|
|
12106
|
+
* await this.#start();
|
|
12107
|
+
* this.#telemetry.report({ operation: 'connect', outcome: 'success', duration: performance.now() - started });
|
|
12108
|
+
* }
|
|
12109
|
+
* }
|
|
12110
|
+
*
|
|
12111
|
+
* // Module descriptor: connect after initialization, so startup never waits for telemetry.
|
|
12112
|
+
* postInitialize: async ({ instance, modules }) => instance.connectTelemetry?.(modules.telemetry),
|
|
12113
|
+
* ```
|
|
12114
|
+
*/
|
|
12115
|
+
function createOperationalTelemetry(module, options) {
|
|
12116
|
+
// A dynamic label would leak into every record name, so reject it when the handle is created.
|
|
12117
|
+
if (!operationalIdentifier.safeParse(module).success) {
|
|
12118
|
+
throw new RangeError('Invalid operational telemetry module');
|
|
12119
|
+
}
|
|
12120
|
+
return new OperationalTelemetryHandle(module, options);
|
|
12121
|
+
}
|
|
12122
|
+
|
|
12123
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
11338
12124
|
/*
|
|
11339
12125
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
11340
12126
|
* Licensed under the MIT License.
|
|
@@ -11388,7 +12174,7 @@ const RESOURCE = "resource";
|
|
|
11388
12174
|
const CLI_DATA = "clidata";
|
|
11389
12175
|
const ATTRIBUTE_TOKENS = "attribute_tokens";
|
|
11390
12176
|
|
|
11391
|
-
/*! @azure/msal-common v16.14.
|
|
12177
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
11392
12178
|
/*
|
|
11393
12179
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
11394
12180
|
* Licensed under the MIT License.
|
|
@@ -11622,7 +12408,7 @@ const JsonWebTokenTypes = {
|
|
|
11622
12408
|
// Token renewal offset default in seconds
|
|
11623
12409
|
const DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;
|
|
11624
12410
|
|
|
11625
|
-
/*! @azure/msal-common v16.14.
|
|
12411
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
11626
12412
|
/*
|
|
11627
12413
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
11628
12414
|
* Licensed under the MIT License.
|
|
@@ -11651,7 +12437,7 @@ function createAuthError(code, correlationId, additionalMessage) {
|
|
|
11651
12437
|
return new AuthError(code, correlationId, additionalMessage || getDefaultErrorMessage$1(code));
|
|
11652
12438
|
}
|
|
11653
12439
|
|
|
11654
|
-
/*! @azure/msal-common v16.14.
|
|
12440
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
11655
12441
|
|
|
11656
12442
|
/*
|
|
11657
12443
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -11674,7 +12460,7 @@ function createClientAuthError(errorCode, correlationId, additionalMessage) {
|
|
|
11674
12460
|
return new ClientAuthError(errorCode, correlationId, additionalMessage);
|
|
11675
12461
|
}
|
|
11676
12462
|
|
|
11677
|
-
/*! @azure/msal-common v16.14.
|
|
12463
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
11678
12464
|
/*
|
|
11679
12465
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
11680
12466
|
* Licensed under the MIT License.
|
|
@@ -11712,7 +12498,7 @@ const methodNotImplemented = "method_not_implemented";
|
|
|
11712
12498
|
const resourceParameterRequired = "resource_parameter_required";
|
|
11713
12499
|
const misplacedResourceParam = "misplaced_resource_parameter";
|
|
11714
12500
|
|
|
11715
|
-
/*! @azure/msal-common v16.14.
|
|
12501
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
11716
12502
|
|
|
11717
12503
|
/*
|
|
11718
12504
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -11750,7 +12536,7 @@ function buildClientInfoFromHomeAccountId(homeAccountId) {
|
|
|
11750
12536
|
};
|
|
11751
12537
|
}
|
|
11752
12538
|
|
|
11753
|
-
/*! @azure/msal-common v16.14.
|
|
12539
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
11754
12540
|
|
|
11755
12541
|
/*
|
|
11756
12542
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -11816,7 +12602,7 @@ function getJWSPayload(authToken, correlationId) {
|
|
|
11816
12602
|
return matches[2];
|
|
11817
12603
|
}
|
|
11818
12604
|
|
|
11819
|
-
/*! @azure/msal-common v16.14.
|
|
12605
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
11820
12606
|
|
|
11821
12607
|
/*
|
|
11822
12608
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -11904,7 +12690,7 @@ function updateAccountTenantProfileData(baseAccountInfo, tenantProfile, idTokenC
|
|
|
11904
12690
|
return updatedAccountInfo;
|
|
11905
12691
|
}
|
|
11906
12692
|
|
|
11907
|
-
/*! @azure/msal-common v16.14.
|
|
12693
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
11908
12694
|
/*
|
|
11909
12695
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
11910
12696
|
* Licensed under the MIT License.
|
|
@@ -11918,7 +12704,7 @@ const AuthorityType = {
|
|
|
11918
12704
|
Ciam: 3,
|
|
11919
12705
|
};
|
|
11920
12706
|
|
|
11921
|
-
/*! @azure/msal-common v16.14.
|
|
12707
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
11922
12708
|
/*
|
|
11923
12709
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
11924
12710
|
* Licensed under the MIT License.
|
|
@@ -11940,7 +12726,7 @@ function getTenantIdFromIdTokenClaims(idTokenClaims) {
|
|
|
11940
12726
|
return null;
|
|
11941
12727
|
}
|
|
11942
12728
|
|
|
11943
|
-
/*! @azure/msal-common v16.14.
|
|
12729
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
11944
12730
|
/*
|
|
11945
12731
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
11946
12732
|
* Licensed under the MIT License.
|
|
@@ -11964,7 +12750,7 @@ const ProtocolMode = {
|
|
|
11964
12750
|
EAR: "EAR",
|
|
11965
12751
|
};
|
|
11966
12752
|
|
|
11967
|
-
/*! @azure/msal-common v16.14.
|
|
12753
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
11968
12754
|
/**
|
|
11969
12755
|
* Returns the AccountInfo interface for this account.
|
|
11970
12756
|
* @internal
|
|
@@ -12153,7 +12939,7 @@ function isAccountEntity(entity) {
|
|
|
12153
12939
|
entity.hasOwnProperty("authorityType"));
|
|
12154
12940
|
}
|
|
12155
12941
|
|
|
12156
|
-
/*! @azure/msal-common v16.14.
|
|
12942
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
12157
12943
|
/*
|
|
12158
12944
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
12159
12945
|
* Licensed under the MIT License.
|
|
@@ -12163,7 +12949,7 @@ function isAccountEntity(entity) {
|
|
|
12163
12949
|
*/
|
|
12164
12950
|
const unexpectedError = "unexpected_error";
|
|
12165
12951
|
|
|
12166
|
-
/*! @azure/msal-common v16.14.
|
|
12952
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
12167
12953
|
|
|
12168
12954
|
/*
|
|
12169
12955
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -12183,7 +12969,7 @@ function createClientConfigurationError(errorCode, correlationId) {
|
|
|
12183
12969
|
return new ClientConfigurationError(errorCode, correlationId);
|
|
12184
12970
|
}
|
|
12185
12971
|
|
|
12186
|
-
/*! @azure/msal-common v16.14.
|
|
12972
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
12187
12973
|
/*
|
|
12188
12974
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
12189
12975
|
* Licensed under the MIT License.
|
|
@@ -12214,7 +13000,7 @@ const invalidDpopHtu = "invalid_dpop_htu";
|
|
|
12214
13000
|
const invalidDpopNonce = "invalid_dpop_nonce";
|
|
12215
13001
|
const dpopMissingResourceContext = "dpop_missing_resource_context";
|
|
12216
13002
|
|
|
12217
|
-
/*! @azure/msal-common v16.14.
|
|
13003
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
12218
13004
|
/*
|
|
12219
13005
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
12220
13006
|
* Licensed under the MIT License.
|
|
@@ -12226,7 +13012,7 @@ function isOpenIdConfigResponse(response) {
|
|
|
12226
13012
|
response.hasOwnProperty("jwks_uri"));
|
|
12227
13013
|
}
|
|
12228
13014
|
|
|
12229
|
-
/*! @azure/msal-common v16.14.
|
|
13015
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
12230
13016
|
/*
|
|
12231
13017
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
12232
13018
|
* Licensed under the MIT License.
|
|
@@ -12306,7 +13092,7 @@ class StringUtils {
|
|
|
12306
13092
|
}
|
|
12307
13093
|
}
|
|
12308
13094
|
|
|
12309
|
-
/*! @azure/msal-common v16.14.
|
|
13095
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
12310
13096
|
|
|
12311
13097
|
/*
|
|
12312
13098
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -12464,7 +13250,7 @@ class UrlString {
|
|
|
12464
13250
|
}
|
|
12465
13251
|
}
|
|
12466
13252
|
|
|
12467
|
-
/*! @azure/msal-common v16.14.
|
|
13253
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
12468
13254
|
|
|
12469
13255
|
/*
|
|
12470
13256
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -12618,7 +13404,7 @@ function getCloudDiscoveryMetadataFromNetworkResponse(response, authorityHost) {
|
|
|
12618
13404
|
return null;
|
|
12619
13405
|
}
|
|
12620
13406
|
|
|
12621
|
-
/*! @azure/msal-common v16.14.
|
|
13407
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
12622
13408
|
/*
|
|
12623
13409
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
12624
13410
|
* Licensed under the MIT License.
|
|
@@ -12627,7 +13413,7 @@ const AzureCloudInstance = {
|
|
|
12627
13413
|
// AzureCloudInstance is not specified.
|
|
12628
13414
|
None: "none"};
|
|
12629
13415
|
|
|
12630
|
-
/*! @azure/msal-common v16.14.
|
|
13416
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
12631
13417
|
/*
|
|
12632
13418
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
12633
13419
|
* Licensed under the MIT License.
|
|
@@ -12637,7 +13423,7 @@ function isCloudInstanceDiscoveryResponse(response) {
|
|
|
12637
13423
|
response.hasOwnProperty("metadata"));
|
|
12638
13424
|
}
|
|
12639
13425
|
|
|
12640
|
-
/*! @azure/msal-common v16.14.
|
|
13426
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
12641
13427
|
/*
|
|
12642
13428
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
12643
13429
|
* Licensed under the MIT License.
|
|
@@ -12647,7 +13433,7 @@ function isCloudInstanceDiscoveryErrorResponse(response) {
|
|
|
12647
13433
|
response.hasOwnProperty("error_description"));
|
|
12648
13434
|
}
|
|
12649
13435
|
|
|
12650
|
-
/*! @azure/msal-common v16.14.
|
|
13436
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
12651
13437
|
/*
|
|
12652
13438
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
12653
13439
|
* Licensed under the MIT License.
|
|
@@ -12718,7 +13504,7 @@ const RegionDiscoveryGetCurrentVersion = "regionDiscoveryGetCurrentVersion";
|
|
|
12718
13504
|
const CacheManagerGetRefreshToken = "cacheManagerGetRefreshToken";
|
|
12719
13505
|
const SetUserData = "setUserData";
|
|
12720
13506
|
|
|
12721
|
-
/*! @azure/msal-common v16.14.
|
|
13507
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
12722
13508
|
/*
|
|
12723
13509
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
12724
13510
|
* Licensed under the MIT License.
|
|
@@ -12811,7 +13597,7 @@ const invokeAsync = (callback, eventName, logger, telemetryClient, correlationId
|
|
|
12811
13597
|
};
|
|
12812
13598
|
};
|
|
12813
13599
|
|
|
12814
|
-
/*! @azure/msal-common v16.14.
|
|
13600
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
12815
13601
|
|
|
12816
13602
|
/*
|
|
12817
13603
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -12922,7 +13708,7 @@ RegionDiscovery.IMDS_OPTIONS = {
|
|
|
12922
13708
|
},
|
|
12923
13709
|
};
|
|
12924
13710
|
|
|
12925
|
-
/*! @azure/msal-common v16.14.
|
|
13711
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
12926
13712
|
/*
|
|
12927
13713
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
12928
13714
|
* Licensed under the MIT License.
|
|
@@ -12987,7 +13773,7 @@ function wasClockTurnedBack(cachedAt) {
|
|
|
12987
13773
|
return cachedAtSec > nowSeconds();
|
|
12988
13774
|
}
|
|
12989
13775
|
|
|
12990
|
-
/*! @azure/msal-common v16.14.
|
|
13776
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
12991
13777
|
|
|
12992
13778
|
/*
|
|
12993
13779
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -13274,7 +14060,7 @@ function serializeAttributeTokens(attributeTokens) {
|
|
|
13274
14060
|
return [...attributeTokens].sort().join(" ");
|
|
13275
14061
|
}
|
|
13276
14062
|
|
|
13277
|
-
/*! @azure/msal-common v16.14.
|
|
14063
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
13278
14064
|
|
|
13279
14065
|
/*
|
|
13280
14066
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -14242,7 +15028,7 @@ function buildStaticAuthorityOptions(authOptions) {
|
|
|
14242
15028
|
};
|
|
14243
15029
|
}
|
|
14244
15030
|
|
|
14245
|
-
/*! @azure/msal-common v16.14.
|
|
15031
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
14246
15032
|
|
|
14247
15033
|
/*
|
|
14248
15034
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -14276,7 +15062,7 @@ async function createDiscoveredInstance(authorityUri, networkClient, cacheManage
|
|
|
14276
15062
|
}
|
|
14277
15063
|
}
|
|
14278
15064
|
|
|
14279
|
-
/*! @azure/msal-common v16.14.
|
|
15065
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
14280
15066
|
|
|
14281
15067
|
/*
|
|
14282
15068
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -14472,7 +15258,7 @@ class ScopeSet {
|
|
|
14472
15258
|
}
|
|
14473
15259
|
}
|
|
14474
15260
|
|
|
14475
|
-
/*! @azure/msal-common v16.14.
|
|
15261
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
14476
15262
|
|
|
14477
15263
|
/*
|
|
14478
15264
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -14958,7 +15744,7 @@ function addAttributeTokens(parameters, attributeTokens) {
|
|
|
14958
15744
|
}
|
|
14959
15745
|
}
|
|
14960
15746
|
|
|
14961
|
-
/*! @azure/msal-common v16.14.
|
|
15747
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
14962
15748
|
|
|
14963
15749
|
/*
|
|
14964
15750
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -15080,7 +15866,7 @@ function validateUrl(url, logger, correlationId) {
|
|
|
15080
15866
|
}
|
|
15081
15867
|
}
|
|
15082
15868
|
|
|
15083
|
-
/*! @azure/msal-common v16.14.
|
|
15869
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
15084
15870
|
|
|
15085
15871
|
/*
|
|
15086
15872
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -15128,7 +15914,7 @@ const DEFAULT_CRYPTO_IMPLEMENTATION = {
|
|
|
15128
15914
|
},
|
|
15129
15915
|
};
|
|
15130
15916
|
|
|
15131
|
-
/*! @azure/msal-common v16.14.
|
|
15917
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
15132
15918
|
|
|
15133
15919
|
/*
|
|
15134
15920
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -15151,7 +15937,7 @@ const DEFAULT_TOKEN_BINDING_KEY_MANAGER = {
|
|
|
15151
15937
|
},
|
|
15152
15938
|
};
|
|
15153
15939
|
|
|
15154
|
-
/*! @azure/msal-common v16.14.
|
|
15940
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
15155
15941
|
/*
|
|
15156
15942
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
15157
15943
|
* Licensed under the MIT License.
|
|
@@ -15426,12 +16212,12 @@ class Logger {
|
|
|
15426
16212
|
}
|
|
15427
16213
|
}
|
|
15428
16214
|
|
|
15429
|
-
/*! @azure/msal-common v16.14.
|
|
16215
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
15430
16216
|
/* eslint-disable header/header */
|
|
15431
16217
|
const name$1 = "@azure/msal-common";
|
|
15432
|
-
const version$2 = "16.14.
|
|
16218
|
+
const version$2 = "16.14.3";
|
|
15433
16219
|
|
|
15434
|
-
/*! @azure/msal-common v16.14.
|
|
16220
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
15435
16221
|
/*
|
|
15436
16222
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
15437
16223
|
* Licensed under the MIT License.
|
|
@@ -15439,7 +16225,7 @@ const version$2 = "16.14.2";
|
|
|
15439
16225
|
const cacheQuotaExceeded = "cache_quota_exceeded";
|
|
15440
16226
|
const cacheErrorUnknown = "cache_error_unknown";
|
|
15441
16227
|
|
|
15442
|
-
/*! @azure/msal-common v16.14.
|
|
16228
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
15443
16229
|
|
|
15444
16230
|
/*
|
|
15445
16231
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -15477,7 +16263,7 @@ function createCacheError(e) {
|
|
|
15477
16263
|
}
|
|
15478
16264
|
}
|
|
15479
16265
|
|
|
15480
|
-
/*! @azure/msal-common v16.14.
|
|
16266
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
15481
16267
|
|
|
15482
16268
|
/*
|
|
15483
16269
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -16664,7 +17450,7 @@ class DefaultStorageClass extends CacheManager {
|
|
|
16664
17450
|
}
|
|
16665
17451
|
}
|
|
16666
17452
|
|
|
16667
|
-
/*! @azure/msal-common v16.14.
|
|
17453
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
16668
17454
|
/*
|
|
16669
17455
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
16670
17456
|
* Licensed under the MIT License.
|
|
@@ -16678,7 +17464,7 @@ class DefaultStorageClass extends CacheManager {
|
|
|
16678
17464
|
const PerformanceEventStatus = {
|
|
16679
17465
|
InProgress: 1};
|
|
16680
17466
|
|
|
16681
|
-
/*! @azure/msal-common v16.14.
|
|
17467
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
16682
17468
|
|
|
16683
17469
|
/*
|
|
16684
17470
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -16736,7 +17522,7 @@ class StubPerformanceClient {
|
|
|
16736
17522
|
}
|
|
16737
17523
|
}
|
|
16738
17524
|
|
|
16739
|
-
/*! @azure/msal-common v16.14.
|
|
17525
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
16740
17526
|
|
|
16741
17527
|
/*
|
|
16742
17528
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -16834,7 +17620,7 @@ function isOidcProtocolMode(config) {
|
|
|
16834
17620
|
return (config.authOptions.authority.options.protocolMode === ProtocolMode.OIDC);
|
|
16835
17621
|
}
|
|
16836
17622
|
|
|
16837
|
-
/*! @azure/msal-common v16.14.
|
|
17623
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
16838
17624
|
/*
|
|
16839
17625
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
16840
17626
|
* Licensed under the MIT License.
|
|
@@ -16861,7 +17647,7 @@ function isOidcProtocolMode(config) {
|
|
|
16861
17647
|
}
|
|
16862
17648
|
}
|
|
16863
17649
|
|
|
16864
|
-
/*! @azure/msal-common v16.14.
|
|
17650
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
16865
17651
|
|
|
16866
17652
|
/*
|
|
16867
17653
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -16882,7 +17668,7 @@ function createJoseHeaderError(code, correlationId) {
|
|
|
16882
17668
|
return new JoseHeaderError(code, correlationId);
|
|
16883
17669
|
}
|
|
16884
17670
|
|
|
16885
|
-
/*! @azure/msal-common v16.14.
|
|
17671
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
16886
17672
|
/*
|
|
16887
17673
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
16888
17674
|
* Licensed under the MIT License.
|
|
@@ -16907,7 +17693,7 @@ function isPlainObject(value) {
|
|
|
16907
17693
|
return Object.getPrototypeOf(value) === proto;
|
|
16908
17694
|
}
|
|
16909
17695
|
|
|
16910
|
-
/*! @azure/msal-common v16.14.
|
|
17696
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
16911
17697
|
/*
|
|
16912
17698
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
16913
17699
|
* Licensed under the MIT License.
|
|
@@ -16917,7 +17703,7 @@ const missingAlgError = "missing_alg_error";
|
|
|
16917
17703
|
const missingJwkError = "missing_jwk_error";
|
|
16918
17704
|
const invalidJwkError = "invalid_jwk_error";
|
|
16919
17705
|
|
|
16920
|
-
/*! @azure/msal-common v16.14.
|
|
17706
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
16921
17707
|
|
|
16922
17708
|
/*
|
|
16923
17709
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -16983,7 +17769,7 @@ class JoseHeader {
|
|
|
16983
17769
|
}
|
|
16984
17770
|
}
|
|
16985
17771
|
|
|
16986
|
-
/*! @azure/msal-common v16.14.
|
|
17772
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
16987
17773
|
|
|
16988
17774
|
/*
|
|
16989
17775
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -17084,7 +17870,7 @@ class PopTokenGenerator {
|
|
|
17084
17870
|
}
|
|
17085
17871
|
}
|
|
17086
17872
|
|
|
17087
|
-
/*! @azure/msal-common v16.14.
|
|
17873
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
17088
17874
|
|
|
17089
17875
|
/*
|
|
17090
17876
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -17229,7 +18015,7 @@ class DpopProofGenerator {
|
|
|
17229
18015
|
}
|
|
17230
18016
|
}
|
|
17231
18017
|
|
|
17232
|
-
/*! @azure/msal-common v16.14.
|
|
18018
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
17233
18019
|
/*
|
|
17234
18020
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
17235
18021
|
* Licensed under the MIT License.
|
|
@@ -17280,7 +18066,7 @@ const badToken = "bad_token";
|
|
|
17280
18066
|
*/
|
|
17281
18067
|
const interruptedUser = "interrupted_user";
|
|
17282
18068
|
|
|
17283
|
-
/*! @azure/msal-common v16.14.
|
|
18069
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
17284
18070
|
|
|
17285
18071
|
/*
|
|
17286
18072
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -17347,7 +18133,7 @@ function createInteractionRequiredAuthError(errorCode, correlationId, errorMessa
|
|
|
17347
18133
|
return new InteractionRequiredAuthError(errorCode, correlationId, errorMessage);
|
|
17348
18134
|
}
|
|
17349
18135
|
|
|
17350
|
-
/*! @azure/msal-common v16.14.
|
|
18136
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
17351
18137
|
|
|
17352
18138
|
/*
|
|
17353
18139
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -17366,7 +18152,7 @@ class ServerError extends AuthError {
|
|
|
17366
18152
|
}
|
|
17367
18153
|
}
|
|
17368
18154
|
|
|
17369
|
-
/*! @azure/msal-common v16.14.
|
|
18155
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
17370
18156
|
|
|
17371
18157
|
/*
|
|
17372
18158
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -17437,7 +18223,7 @@ function parseRequestState(base64Decode, state, correlationId) {
|
|
|
17437
18223
|
}
|
|
17438
18224
|
}
|
|
17439
18225
|
|
|
17440
|
-
/*! @azure/msal-common v16.14.
|
|
18226
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
17441
18227
|
|
|
17442
18228
|
/*
|
|
17443
18229
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -17865,7 +18651,7 @@ function buildAccountToCache(cacheStorage, authority, homeAccountId, base64Decod
|
|
|
17865
18651
|
return baseAccount;
|
|
17866
18652
|
}
|
|
17867
18653
|
|
|
17868
|
-
/*! @azure/msal-common v16.14.
|
|
18654
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
17869
18655
|
/*
|
|
17870
18656
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
17871
18657
|
* Licensed under the MIT License.
|
|
@@ -17875,7 +18661,7 @@ const CcsCredentialType = {
|
|
|
17875
18661
|
UPN: "UPN",
|
|
17876
18662
|
};
|
|
17877
18663
|
|
|
17878
|
-
/*! @azure/msal-common v16.14.
|
|
18664
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
17879
18665
|
/*
|
|
17880
18666
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
17881
18667
|
* Licensed under the MIT License.
|
|
@@ -17894,7 +18680,7 @@ async function getClientAssertion(clientAssertion, clientId, tokenEndpoint, fmiP
|
|
|
17894
18680
|
}
|
|
17895
18681
|
}
|
|
17896
18682
|
|
|
17897
|
-
/*! @azure/msal-common v16.14.
|
|
18683
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
17898
18684
|
|
|
17899
18685
|
/*
|
|
17900
18686
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -17918,7 +18704,7 @@ function getRequestThumbprint(clientId, request, homeAccountId) {
|
|
|
17918
18704
|
};
|
|
17919
18705
|
}
|
|
17920
18706
|
|
|
17921
|
-
/*! @azure/msal-common v16.14.
|
|
18707
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
17922
18708
|
|
|
17923
18709
|
/*
|
|
17924
18710
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -18004,7 +18790,7 @@ class ThrottlingUtils {
|
|
|
18004
18790
|
}
|
|
18005
18791
|
}
|
|
18006
18792
|
|
|
18007
|
-
/*! @azure/msal-common v16.14.
|
|
18793
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
18008
18794
|
|
|
18009
18795
|
/*
|
|
18010
18796
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -18035,7 +18821,7 @@ function createNetworkError(error, httpStatus, responseHeaders, additionalError)
|
|
|
18035
18821
|
return new NetworkError(error, httpStatus, responseHeaders);
|
|
18036
18822
|
}
|
|
18037
18823
|
|
|
18038
|
-
/*! @azure/msal-common v16.14.
|
|
18824
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
18039
18825
|
|
|
18040
18826
|
/*
|
|
18041
18827
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -18168,7 +18954,7 @@ async function sendPostRequest(thumbprint, tokenEndpoint, options, correlationId
|
|
|
18168
18954
|
return response;
|
|
18169
18955
|
}
|
|
18170
18956
|
|
|
18171
|
-
/*! @azure/msal-common v16.14.
|
|
18957
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
18172
18958
|
|
|
18173
18959
|
/*
|
|
18174
18960
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -18432,7 +19218,7 @@ class AuthorizationCodeClient {
|
|
|
18432
19218
|
}
|
|
18433
19219
|
}
|
|
18434
19220
|
|
|
18435
|
-
/*! @azure/msal-common v16.14.
|
|
19221
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
18436
19222
|
|
|
18437
19223
|
/*
|
|
18438
19224
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -18659,7 +19445,7 @@ function extractLoginHint(account) {
|
|
|
18659
19445
|
return account.loginHint || account.idTokenClaims?.login_hint || null;
|
|
18660
19446
|
}
|
|
18661
19447
|
|
|
18662
|
-
/*! @azure/msal-common v16.14.
|
|
19448
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
18663
19449
|
|
|
18664
19450
|
/*
|
|
18665
19451
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -18894,7 +19680,7 @@ class RefreshTokenClient {
|
|
|
18894
19680
|
}
|
|
18895
19681
|
}
|
|
18896
19682
|
|
|
18897
|
-
/*! @azure/msal-common v16.14.
|
|
19683
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
18898
19684
|
|
|
18899
19685
|
/*
|
|
18900
19686
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -19187,7 +19973,7 @@ class StubServerTelemetryManager extends ServerTelemetryManager {
|
|
|
19187
19973
|
clearNativeBrokerErrorCode() { }
|
|
19188
19974
|
}
|
|
19189
19975
|
|
|
19190
|
-
/*! @azure/msal-common v16.14.
|
|
19976
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
19191
19977
|
|
|
19192
19978
|
/*
|
|
19193
19979
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -19314,7 +20100,7 @@ class SilentFlowClient {
|
|
|
19314
20100
|
}
|
|
19315
20101
|
}
|
|
19316
20102
|
|
|
19317
|
-
/*! @azure/msal-common v16.14.
|
|
20103
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
19318
20104
|
|
|
19319
20105
|
/*
|
|
19320
20106
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -19330,7 +20116,7 @@ const StubbedNetworkModule = {
|
|
|
19330
20116
|
},
|
|
19331
20117
|
};
|
|
19332
20118
|
|
|
19333
|
-
/*! @azure/msal-common v16.14.
|
|
20119
|
+
/*! @azure/msal-common v16.14.3 2026-10-21 */
|
|
19334
20120
|
|
|
19335
20121
|
/*
|
|
19336
20122
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -19363,7 +20149,7 @@ function containsResourceParam(params) {
|
|
|
19363
20149
|
return Object.prototype.hasOwnProperty.call(params, "resource");
|
|
19364
20150
|
}
|
|
19365
20151
|
|
|
19366
|
-
/*! @azure/msal-browser v5.
|
|
20152
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
19367
20153
|
/*
|
|
19368
20154
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
19369
20155
|
* Licensed under the MIT License.
|
|
@@ -19504,7 +20290,7 @@ const DecryptEarResponse = "decryptEarResponse";
|
|
|
19504
20290
|
*/
|
|
19505
20291
|
const WaitForBridgeLateResponse = "waitForBridgeLateResponse";
|
|
19506
20292
|
|
|
19507
|
-
/*! @azure/msal-browser v5.
|
|
20293
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
19508
20294
|
|
|
19509
20295
|
/*
|
|
19510
20296
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -19527,7 +20313,7 @@ function createBrowserAuthError(errorCode, correlationId, subError) {
|
|
|
19527
20313
|
return new BrowserAuthError(errorCode, correlationId, subError);
|
|
19528
20314
|
}
|
|
19529
20315
|
|
|
19530
|
-
/*! @azure/msal-browser v5.
|
|
20316
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
19531
20317
|
/*
|
|
19532
20318
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
19533
20319
|
* Licensed under the MIT License.
|
|
@@ -19585,7 +20371,7 @@ const failedToDecryptEarResponse = "failed_to_decrypt_ear_response";
|
|
|
19585
20371
|
const timedOut = "timed_out";
|
|
19586
20372
|
const emptyResponse = "empty_response";
|
|
19587
20373
|
|
|
19588
|
-
/*! @azure/msal-browser v5.
|
|
20374
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
19589
20375
|
|
|
19590
20376
|
/*
|
|
19591
20377
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -19624,7 +20410,7 @@ function base64DecToArr(base64String) {
|
|
|
19624
20410
|
return Uint8Array.from(binString, (m) => m.codePointAt(0) || 0);
|
|
19625
20411
|
}
|
|
19626
20412
|
|
|
19627
|
-
/*! @azure/msal-browser v5.
|
|
20413
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
19628
20414
|
|
|
19629
20415
|
/*
|
|
19630
20416
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -19810,7 +20596,7 @@ const iFrameRenewalPolicies = [
|
|
|
19810
20596
|
CacheLookupPolicy.RefreshTokenAndNetwork,
|
|
19811
20597
|
];
|
|
19812
20598
|
|
|
19813
|
-
/*! @azure/msal-browser v5.
|
|
20599
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
19814
20600
|
/*
|
|
19815
20601
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
19816
20602
|
* Licensed under the MIT License.
|
|
@@ -19855,7 +20641,7 @@ function base64EncArr(aBytes) {
|
|
|
19855
20641
|
return btoa(binString);
|
|
19856
20642
|
}
|
|
19857
20643
|
|
|
19858
|
-
/*! @azure/msal-browser v5.
|
|
20644
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
19859
20645
|
|
|
19860
20646
|
/*
|
|
19861
20647
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -20202,7 +20988,7 @@ async function computeJwkThumbprint(publicJwk, correlationId) {
|
|
|
20202
20988
|
return hashString(thumbprintJson);
|
|
20203
20989
|
}
|
|
20204
20990
|
|
|
20205
|
-
/*! @azure/msal-browser v5.
|
|
20991
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
20206
20992
|
|
|
20207
20993
|
/*
|
|
20208
20994
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -20222,7 +21008,7 @@ function createBrowserConfigurationAuthError(errorCode, correlationId) {
|
|
|
20222
21008
|
return new BrowserConfigurationAuthError(errorCode, correlationId, getDefaultErrorMessage(errorCode));
|
|
20223
21009
|
}
|
|
20224
21010
|
|
|
20225
|
-
/*! @azure/msal-browser v5.
|
|
21011
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
20226
21012
|
/*
|
|
20227
21013
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
20228
21014
|
* Licensed under the MIT License.
|
|
@@ -20230,7 +21016,7 @@ function createBrowserConfigurationAuthError(errorCode, correlationId) {
|
|
|
20230
21016
|
const storageNotSupported = "storage_not_supported";
|
|
20231
21017
|
const inMemRedirectUnavailable = "in_mem_redirect_unavailable";
|
|
20232
21018
|
|
|
20233
|
-
/*! @azure/msal-browser v5.
|
|
21019
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
20234
21020
|
|
|
20235
21021
|
/*
|
|
20236
21022
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -20571,7 +21357,7 @@ function createGuid() {
|
|
|
20571
21357
|
return createNewGuid();
|
|
20572
21358
|
}
|
|
20573
21359
|
|
|
20574
|
-
/*! @azure/msal-browser v5.
|
|
21360
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
20575
21361
|
|
|
20576
21362
|
/*
|
|
20577
21363
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -20774,7 +21560,7 @@ class DatabaseStorage {
|
|
|
20774
21560
|
}
|
|
20775
21561
|
}
|
|
20776
21562
|
|
|
20777
|
-
/*! @azure/msal-browser v5.
|
|
21563
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
20778
21564
|
/*
|
|
20779
21565
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
20780
21566
|
* Licensed under the MIT License.
|
|
@@ -20820,7 +21606,7 @@ class MemoryStorage {
|
|
|
20820
21606
|
}
|
|
20821
21607
|
}
|
|
20822
21608
|
|
|
20823
|
-
/*! @azure/msal-browser v5.
|
|
21609
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
20824
21610
|
|
|
20825
21611
|
/*
|
|
20826
21612
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -20958,7 +21744,7 @@ class AsyncMemoryStorage {
|
|
|
20958
21744
|
}
|
|
20959
21745
|
}
|
|
20960
21746
|
|
|
20961
|
-
/*! @azure/msal-browser v5.
|
|
21747
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
20962
21748
|
|
|
20963
21749
|
/*
|
|
20964
21750
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -21106,7 +21892,7 @@ TokenBindingKeyManager.TOKEN_BINDING_KEY_USAGES = [
|
|
|
21106
21892
|
"verify",
|
|
21107
21893
|
];
|
|
21108
21894
|
|
|
21109
|
-
/*! @azure/msal-browser v5.
|
|
21895
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
21110
21896
|
|
|
21111
21897
|
/*
|
|
21112
21898
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -21242,7 +22028,7 @@ class CryptoOps {
|
|
|
21242
22028
|
}
|
|
21243
22029
|
}
|
|
21244
22030
|
|
|
21245
|
-
/*! @azure/msal-browser v5.
|
|
22031
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
21246
22032
|
/*
|
|
21247
22033
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
21248
22034
|
* Licensed under the MIT License.
|
|
@@ -21289,7 +22075,7 @@ const LocalStorageUpdated = "localStorageUpdated";
|
|
|
21289
22075
|
*/
|
|
21290
22076
|
const SsoCapable = "ssoCapable";
|
|
21291
22077
|
|
|
21292
|
-
/*! @azure/msal-browser v5.
|
|
22078
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
21293
22079
|
/*
|
|
21294
22080
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
21295
22081
|
* Licensed under the MIT License.
|
|
@@ -21318,7 +22104,7 @@ function getTokenKeysCacheKey(clientId, schema = CREDENTIAL_SCHEMA_VERSION) {
|
|
|
21318
22104
|
return `${PREFIX}.${schema}.${TOKEN_KEYS}.${clientId}`;
|
|
21319
22105
|
}
|
|
21320
22106
|
|
|
21321
|
-
/*! @azure/msal-browser v5.
|
|
22107
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
21322
22108
|
|
|
21323
22109
|
/*
|
|
21324
22110
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -21409,7 +22195,7 @@ function getCookieExpirationTime(cookieLifeDays) {
|
|
|
21409
22195
|
return expr.toUTCString();
|
|
21410
22196
|
}
|
|
21411
22197
|
|
|
21412
|
-
/*! @azure/msal-browser v5.
|
|
22198
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
21413
22199
|
|
|
21414
22200
|
/*
|
|
21415
22201
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -21451,7 +22237,7 @@ function getTokenKeys(clientId, storage, schemaVersion) {
|
|
|
21451
22237
|
};
|
|
21452
22238
|
}
|
|
21453
22239
|
|
|
21454
|
-
/*! @azure/msal-browser v5.
|
|
22240
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
21455
22241
|
/*
|
|
21456
22242
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
21457
22243
|
* Licensed under the MIT License.
|
|
@@ -21462,7 +22248,7 @@ function isEncrypted(data) {
|
|
|
21462
22248
|
data.hasOwnProperty("data"));
|
|
21463
22249
|
}
|
|
21464
22250
|
|
|
21465
|
-
/*! @azure/msal-browser v5.
|
|
22251
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
21466
22252
|
|
|
21467
22253
|
/*
|
|
21468
22254
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -21832,7 +22618,7 @@ class LocalStorage {
|
|
|
21832
22618
|
}
|
|
21833
22619
|
}
|
|
21834
22620
|
|
|
21835
|
-
/*! @azure/msal-browser v5.
|
|
22621
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
21836
22622
|
|
|
21837
22623
|
/*
|
|
21838
22624
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -21874,7 +22660,7 @@ class SessionStorage {
|
|
|
21874
22660
|
}
|
|
21875
22661
|
}
|
|
21876
22662
|
|
|
21877
|
-
/*! @azure/msal-browser v5.
|
|
22663
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
21878
22664
|
/*
|
|
21879
22665
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
21880
22666
|
* Licensed under the MIT License.
|
|
@@ -21902,12 +22688,12 @@ const EventType = {
|
|
|
21902
22688
|
BROKER_CONNECTION_ESTABLISHED: "msal:brokerConnectionEstablished",
|
|
21903
22689
|
};
|
|
21904
22690
|
|
|
21905
|
-
/*! @azure/msal-browser v5.
|
|
22691
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
21906
22692
|
/* eslint-disable header/header */
|
|
21907
22693
|
const name = "@azure/msal-browser";
|
|
21908
|
-
const version$1 = "5.
|
|
22694
|
+
const version$1 = "5.26.0";
|
|
21909
22695
|
|
|
21910
|
-
/*! @azure/msal-browser v5.
|
|
22696
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
21911
22697
|
/*
|
|
21912
22698
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
21913
22699
|
* Licensed under the MIT License.
|
|
@@ -21924,7 +22710,7 @@ function removeElementFromArray(array, element) {
|
|
|
21924
22710
|
}
|
|
21925
22711
|
}
|
|
21926
22712
|
|
|
21927
|
-
/*! @azure/msal-browser v5.
|
|
22713
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
21928
22714
|
|
|
21929
22715
|
/*
|
|
21930
22716
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -23370,7 +24156,7 @@ const DEFAULT_BROWSER_CACHE_MANAGER = (clientId, logger, performanceClient, even
|
|
|
23370
24156
|
return new BrowserCacheManager(clientId, cacheOptions, DEFAULT_CRYPTO_IMPLEMENTATION, logger, performanceClient, eventHandler, staticAuthorityOptions, tokenBindingKeyManager);
|
|
23371
24157
|
};
|
|
23372
24158
|
|
|
23373
|
-
/*! @azure/msal-browser v5.
|
|
24159
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
23374
24160
|
/*
|
|
23375
24161
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
23376
24162
|
* Licensed under the MIT License.
|
|
@@ -23417,7 +24203,7 @@ function getActiveAccount(browserStorage, correlationId) {
|
|
|
23417
24203
|
return browserStorage.getActiveAccount(correlationId);
|
|
23418
24204
|
}
|
|
23419
24205
|
|
|
23420
|
-
/*! @azure/msal-browser v5.
|
|
24206
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
23421
24207
|
|
|
23422
24208
|
/*
|
|
23423
24209
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -23521,7 +24307,7 @@ class EventHandler {
|
|
|
23521
24307
|
}
|
|
23522
24308
|
}
|
|
23523
24309
|
|
|
23524
|
-
/*! @azure/msal-browser v5.
|
|
24310
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
23525
24311
|
|
|
23526
24312
|
/*
|
|
23527
24313
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -23664,7 +24450,7 @@ async function clearCacheOnLogout(browserStorage, browserCrypto, logger, correla
|
|
|
23664
24450
|
}
|
|
23665
24451
|
}
|
|
23666
24452
|
|
|
23667
|
-
/*! @azure/msal-browser v5.
|
|
24453
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
23668
24454
|
|
|
23669
24455
|
/*
|
|
23670
24456
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -23802,7 +24588,7 @@ function validateRequestMethod(interactionRequest, protocolMode) {
|
|
|
23802
24588
|
return httpMethod;
|
|
23803
24589
|
}
|
|
23804
24590
|
|
|
23805
|
-
/*! @azure/msal-browser v5.
|
|
24591
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
23806
24592
|
|
|
23807
24593
|
/*
|
|
23808
24594
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -24009,7 +24795,56 @@ async function initializeAuthorizationRequest(request, interactionType, config,
|
|
|
24009
24795
|
return validatedRequest;
|
|
24010
24796
|
}
|
|
24011
24797
|
|
|
24012
|
-
/*! @azure/msal-browser v5.
|
|
24798
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
24799
|
+
|
|
24800
|
+
/*
|
|
24801
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
24802
|
+
* Licensed under the MIT License.
|
|
24803
|
+
*/
|
|
24804
|
+
/**
|
|
24805
|
+
* Returns true when the supplied user agent is using Safari
|
|
24806
|
+
*
|
|
24807
|
+
* @internal
|
|
24808
|
+
*/
|
|
24809
|
+
function isSafari(userAgent = typeof navigator !== "undefined"
|
|
24810
|
+
? navigator.userAgent
|
|
24811
|
+
: "") {
|
|
24812
|
+
if (/OPR\/|OPiOS|PhantomJS|SamsungBrowser|Edge|EdgiOS|EdgA/.test(userAgent)) {
|
|
24813
|
+
return false;
|
|
24814
|
+
}
|
|
24815
|
+
const browserNavigator = typeof navigator !== "undefined"
|
|
24816
|
+
? navigator
|
|
24817
|
+
: undefined;
|
|
24818
|
+
if (/Edg/.test(userAgent) ||
|
|
24819
|
+
browserNavigator?.userAgentData?.brands?.some((brand) => brand?.brand === "Microsoft Edge")) {
|
|
24820
|
+
return false;
|
|
24821
|
+
}
|
|
24822
|
+
if (/Electron|CriOS|Chrome|Trident|FxiOS|Firefox/.test(userAgent)) {
|
|
24823
|
+
return false;
|
|
24824
|
+
}
|
|
24825
|
+
return /Safari/.test(userAgent) || /AppleWebKit/.test(userAgent);
|
|
24826
|
+
}
|
|
24827
|
+
/**
|
|
24828
|
+
* Returns true when EAR should be used for the current request.
|
|
24829
|
+
*
|
|
24830
|
+
* Safari cannot complete EAR's cross-origin form POST, so requests configured
|
|
24831
|
+
* for EAR transparently use authorization code flow instead.
|
|
24832
|
+
*
|
|
24833
|
+
* @internal
|
|
24834
|
+
*/
|
|
24835
|
+
function shouldUseEar(protocolMode, logger, performanceClient, correlationId, userAgent) {
|
|
24836
|
+
if (protocolMode !== ProtocolMode.EAR) {
|
|
24837
|
+
return false;
|
|
24838
|
+
}
|
|
24839
|
+
if (!isSafari(userAgent)) {
|
|
24840
|
+
return true;
|
|
24841
|
+
}
|
|
24842
|
+
logger.verbose("0wirye", correlationId);
|
|
24843
|
+
performanceClient.addFields({ "ext.earFallbackReason": "safari" }, correlationId);
|
|
24844
|
+
return false;
|
|
24845
|
+
}
|
|
24846
|
+
|
|
24847
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
24013
24848
|
/*
|
|
24014
24849
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
24015
24850
|
* Licensed under the MIT License.
|
|
@@ -24027,7 +24862,7 @@ async function initializeAuthorizationRequest(request, interactionType, config,
|
|
|
24027
24862
|
*/
|
|
24028
24863
|
const POPUP_RELAY_RESPONSE_TYPE = "msal:popup-relay-response:v1";
|
|
24029
24864
|
|
|
24030
|
-
/*! @azure/msal-browser v5.
|
|
24865
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
24031
24866
|
|
|
24032
24867
|
/*
|
|
24033
24868
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -24133,7 +24968,7 @@ async function waitForPopupRelayResponse(timeoutMs, logger, request, popupWindow
|
|
|
24133
24968
|
});
|
|
24134
24969
|
}
|
|
24135
24970
|
|
|
24136
|
-
/*! @azure/msal-browser v5.
|
|
24971
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
24137
24972
|
|
|
24138
24973
|
/*
|
|
24139
24974
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -24157,7 +24992,7 @@ function extractBrowserRequestState(browserCrypto, state, correlationId) {
|
|
|
24157
24992
|
}
|
|
24158
24993
|
}
|
|
24159
24994
|
|
|
24160
|
-
/*! @azure/msal-browser v5.
|
|
24995
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
24161
24996
|
|
|
24162
24997
|
/*
|
|
24163
24998
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -24196,7 +25031,7 @@ function validateInteractionType(response, browserCrypto, interactionType, corre
|
|
|
24196
25031
|
}
|
|
24197
25032
|
}
|
|
24198
25033
|
|
|
24199
|
-
/*! @azure/msal-browser v5.
|
|
25034
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
24200
25035
|
|
|
24201
25036
|
/*
|
|
24202
25037
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -24285,7 +25120,7 @@ class InteractionHandler {
|
|
|
24285
25120
|
}
|
|
24286
25121
|
}
|
|
24287
25122
|
|
|
24288
|
-
/*! @azure/msal-browser v5.
|
|
25123
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
24289
25124
|
|
|
24290
25125
|
/*
|
|
24291
25126
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -24330,7 +25165,7 @@ function createPlatformAuthExtraParametersNoCache(extraParametersNoCache, isProo
|
|
|
24330
25165
|
};
|
|
24331
25166
|
}
|
|
24332
25167
|
|
|
24333
|
-
/*! @azure/msal-browser v5.
|
|
25168
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
24334
25169
|
/*
|
|
24335
25170
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
24336
25171
|
* Licensed under the MIT License.
|
|
@@ -24339,7 +25174,7 @@ const contentError = "ContentError";
|
|
|
24339
25174
|
const pageException = "PageException";
|
|
24340
25175
|
const userSwitch = "user_switch";
|
|
24341
25176
|
|
|
24342
|
-
/*! @azure/msal-browser v5.
|
|
25177
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
24343
25178
|
/*
|
|
24344
25179
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
24345
25180
|
* Licensed under the MIT License.
|
|
@@ -24352,7 +25187,7 @@ const DISABLED = "DISABLED";
|
|
|
24352
25187
|
const ACCOUNT_UNAVAILABLE = "ACCOUNT_UNAVAILABLE";
|
|
24353
25188
|
const UI_NOT_ALLOWED = "UI_NOT_ALLOWED";
|
|
24354
25189
|
|
|
24355
|
-
/*! @azure/msal-browser v5.
|
|
25190
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
24356
25191
|
|
|
24357
25192
|
/*
|
|
24358
25193
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -24424,7 +25259,7 @@ function createNativeAuthError(code, correlationId, description, ext) {
|
|
|
24424
25259
|
return error;
|
|
24425
25260
|
}
|
|
24426
25261
|
|
|
24427
|
-
/*! @azure/msal-browser v5.
|
|
25262
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
24428
25263
|
|
|
24429
25264
|
/*
|
|
24430
25265
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -24473,7 +25308,7 @@ class SilentCacheClient extends StandardInteractionClient {
|
|
|
24473
25308
|
}
|
|
24474
25309
|
}
|
|
24475
25310
|
|
|
24476
|
-
/*! @azure/msal-browser v5.
|
|
25311
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
24477
25312
|
|
|
24478
25313
|
/*
|
|
24479
25314
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -25199,7 +26034,7 @@ class PlatformAuthInteractionClient extends BaseInteractionClient {
|
|
|
25199
26034
|
}
|
|
25200
26035
|
}
|
|
25201
26036
|
|
|
25202
|
-
/*! @azure/msal-browser v5.
|
|
26037
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
25203
26038
|
|
|
25204
26039
|
/*
|
|
25205
26040
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -25512,7 +26347,7 @@ async function handleResponseEAR(request, response, apiId, config, authority, br
|
|
|
25512
26347
|
return (await invokeAsync(responseHandler.handleServerTokenResponse.bind(responseHandler), HandleServerTokenResponse, logger, performanceClient, request.correlationId)(decryptedData, authority, nowSeconds(), request, apiId, additionalData, undefined, undefined, undefined, undefined));
|
|
25513
26348
|
}
|
|
25514
26349
|
|
|
25515
|
-
/*! @azure/msal-browser v5.
|
|
26350
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
25516
26351
|
|
|
25517
26352
|
/*
|
|
25518
26353
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -25567,7 +26402,7 @@ async function generateCodeChallengeFromVerifier(pkceCodeVerifier, performanceCl
|
|
|
25567
26402
|
}
|
|
25568
26403
|
}
|
|
25569
26404
|
|
|
25570
|
-
/*! @azure/msal-browser v5.
|
|
26405
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
25571
26406
|
|
|
25572
26407
|
/*
|
|
25573
26408
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -25610,7 +26445,7 @@ class NavigationClient {
|
|
|
25610
26445
|
}
|
|
25611
26446
|
}
|
|
25612
26447
|
|
|
25613
|
-
/*! @azure/msal-browser v5.
|
|
26448
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
25614
26449
|
|
|
25615
26450
|
/*
|
|
25616
26451
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -25757,7 +26592,7 @@ function getHeaderDict(headers) {
|
|
|
25757
26592
|
}
|
|
25758
26593
|
}
|
|
25759
26594
|
|
|
25760
|
-
/*! @azure/msal-browser v5.
|
|
26595
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
25761
26596
|
|
|
25762
26597
|
/*
|
|
25763
26598
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -25888,7 +26723,7 @@ function buildConfiguration({ auth: userInputAuth, cache: userInputCache, system
|
|
|
25888
26723
|
return overlayedConfig;
|
|
25889
26724
|
}
|
|
25890
26725
|
|
|
25891
|
-
/*! @azure/msal-browser v5.
|
|
26726
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
25892
26727
|
|
|
25893
26728
|
/*
|
|
25894
26729
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -26263,7 +27098,7 @@ class PlatformAuthExtensionHandler {
|
|
|
26263
27098
|
}
|
|
26264
27099
|
}
|
|
26265
27100
|
|
|
26266
|
-
/*! @azure/msal-browser v5.
|
|
27101
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
26267
27102
|
|
|
26268
27103
|
/*
|
|
26269
27104
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -26514,7 +27349,7 @@ class PlatformAuthDOMHandler {
|
|
|
26514
27349
|
}
|
|
26515
27350
|
}
|
|
26516
27351
|
|
|
26517
|
-
/*! @azure/msal-browser v5.
|
|
27352
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
26518
27353
|
async function getPlatformAuthProvider(logger, performanceClient, correlationId, nativeBrokerHandshakeTimeout, enablePlatformBrokerDOMSupport) {
|
|
26519
27354
|
logger.trace("134j0v", correlationId);
|
|
26520
27355
|
const discoveryMeasurement = performanceClient.startMeasurement(PlatformAuthProviderDiscovery, correlationId);
|
|
@@ -26616,7 +27451,7 @@ function isPlatformAuthAllowed(config, logger, correlationId, platformAuthProvid
|
|
|
26616
27451
|
return true;
|
|
26617
27452
|
}
|
|
26618
27453
|
|
|
26619
|
-
/*! @azure/msal-browser v5.
|
|
27454
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
26620
27455
|
|
|
26621
27456
|
/*
|
|
26622
27457
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -26719,7 +27554,7 @@ class PopupClient extends StandardInteractionClient {
|
|
|
26719
27554
|
}
|
|
26720
27555
|
const isPlatformBroker = isPlatformAuthAllowed(this.config, this.logger, this.correlationId, this.platformAuthProvider, request.authenticationScheme);
|
|
26721
27556
|
validRequest.platformBroker = isPlatformBroker;
|
|
26722
|
-
if (this.config.system.protocolMode
|
|
27557
|
+
if (shouldUseEar(this.config.system.protocolMode, this.logger, this.performanceClient, this.correlationId)) {
|
|
26723
27558
|
return this.executeEarFlow(validRequest, popupParams, pkceCodes);
|
|
26724
27559
|
}
|
|
26725
27560
|
else {
|
|
@@ -27125,7 +27960,7 @@ class PopupClient extends StandardInteractionClient {
|
|
|
27125
27960
|
}
|
|
27126
27961
|
}
|
|
27127
27962
|
|
|
27128
|
-
/*! @azure/msal-browser v5.
|
|
27963
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
27129
27964
|
|
|
27130
27965
|
/*
|
|
27131
27966
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -27175,7 +28010,7 @@ class RedirectClient extends StandardInteractionClient {
|
|
|
27175
28010
|
// Clear temporary cache if the back button is clicked during the redirect flow.
|
|
27176
28011
|
window.addEventListener("pageshow", handleBackButton);
|
|
27177
28012
|
try {
|
|
27178
|
-
const redirectOperation = this.config.system.protocolMode
|
|
28013
|
+
const redirectOperation = shouldUseEar(this.config.system.protocolMode, this.logger, this.performanceClient, this.correlationId)
|
|
27179
28014
|
? this.executeEarFlow(validRequest)
|
|
27180
28015
|
: this.executeCodeFlow(validRequest);
|
|
27181
28016
|
await Promise.race([redirectOperation, backButtonCancellation]);
|
|
@@ -27575,7 +28410,7 @@ class RedirectClient extends StandardInteractionClient {
|
|
|
27575
28410
|
}
|
|
27576
28411
|
}
|
|
27577
28412
|
|
|
27578
|
-
/*! @azure/msal-browser v5.
|
|
28413
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
27579
28414
|
|
|
27580
28415
|
/*
|
|
27581
28416
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -27641,7 +28476,7 @@ function removeHiddenIframe(iframe) {
|
|
|
27641
28476
|
}
|
|
27642
28477
|
}
|
|
27643
28478
|
|
|
27644
|
-
/*! @azure/msal-browser v5.
|
|
28479
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
27645
28480
|
|
|
27646
28481
|
/*
|
|
27647
28482
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -27681,7 +28516,7 @@ class SilentIframeClient extends StandardInteractionClient {
|
|
|
27681
28516
|
const silentRequest = await invokeAsync(initializeAuthorizationRequest, StandardInteractionClientInitializeAuthorizationRequest, this.logger, this.performanceClient, this.correlationId)(inputRequest, InteractionType.Silent, this.config, this.browserCrypto, this.browserStorage, this.logger, this.performanceClient, this.correlationId);
|
|
27682
28517
|
silentRequest.platformBroker = isPlatformAuthAllowed(this.config, this.logger, this.correlationId, this.platformAuthProvider, silentRequest.authenticationScheme);
|
|
27683
28518
|
preconnect(silentRequest.authority);
|
|
27684
|
-
if (this.config.system.protocolMode
|
|
28519
|
+
if (shouldUseEar(this.config.system.protocolMode, this.logger, this.performanceClient, this.correlationId)) {
|
|
27685
28520
|
return this.executeEarFlow(silentRequest);
|
|
27686
28521
|
}
|
|
27687
28522
|
else {
|
|
@@ -27879,7 +28714,7 @@ class SilentIframeClient extends StandardInteractionClient {
|
|
|
27879
28714
|
}
|
|
27880
28715
|
}
|
|
27881
28716
|
|
|
27882
|
-
/*! @azure/msal-browser v5.
|
|
28717
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
27883
28718
|
|
|
27884
28719
|
/*
|
|
27885
28720
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -27946,7 +28781,7 @@ class SilentRefreshClient extends StandardInteractionClient {
|
|
|
27946
28781
|
}
|
|
27947
28782
|
}
|
|
27948
28783
|
|
|
27949
|
-
/*! @azure/msal-browser v5.
|
|
28784
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
27950
28785
|
|
|
27951
28786
|
/*
|
|
27952
28787
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -27959,7 +28794,7 @@ class HybridSpaAuthorizationCodeClient extends AuthorizationCodeClient {
|
|
|
27959
28794
|
}
|
|
27960
28795
|
}
|
|
27961
28796
|
|
|
27962
|
-
/*! @azure/msal-browser v5.
|
|
28797
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
27963
28798
|
|
|
27964
28799
|
/*
|
|
27965
28800
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -28032,7 +28867,7 @@ class SilentAuthCodeClient extends StandardInteractionClient {
|
|
|
28032
28867
|
}
|
|
28033
28868
|
}
|
|
28034
28869
|
|
|
28035
|
-
/*! @azure/msal-browser v5.
|
|
28870
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
28036
28871
|
function collectInstanceStats(currentClientId, performanceEvent, logger, correlationId) {
|
|
28037
28872
|
const frameInstances =
|
|
28038
28873
|
// @ts-ignore
|
|
@@ -28048,7 +28883,7 @@ function collectInstanceStats(currentClientId, performanceEvent, logger, correla
|
|
|
28048
28883
|
});
|
|
28049
28884
|
}
|
|
28050
28885
|
|
|
28051
|
-
/*! @azure/msal-browser v5.
|
|
28886
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
28052
28887
|
|
|
28053
28888
|
/*
|
|
28054
28889
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -28066,14 +28901,20 @@ function resolveSilentRequestPreparation(input, platformAuthProvider, logger, pe
|
|
|
28066
28901
|
return prepareRequest(input);
|
|
28067
28902
|
}
|
|
28068
28903
|
/**
|
|
28069
|
-
*
|
|
28904
|
+
* Extends the web thumbprint with silent-flow options while preserving caller-owned references.
|
|
28070
28905
|
*/
|
|
28071
28906
|
function prepareWebSilentRequest({ request, account, correlationId, config, }) {
|
|
28072
28907
|
const thumbprint = getRequestThumbprint(config.auth.clientId, {
|
|
28073
28908
|
...request,
|
|
28074
28909
|
authority: request.authority || config.auth.authority}, account.homeAccountId);
|
|
28075
28910
|
return {
|
|
28076
|
-
key: JSON.stringify(
|
|
28911
|
+
key: JSON.stringify({
|
|
28912
|
+
...thumbprint,
|
|
28913
|
+
forceRefresh: !!request.forceRefresh,
|
|
28914
|
+
cacheLookupPolicy: request.cacheLookupPolicy ?? CacheLookupPolicy.Default,
|
|
28915
|
+
extraParameters: canonicalizeStringDict(request.extraParameters),
|
|
28916
|
+
extraQueryParameters: canonicalizeStringDict(request.extraQueryParameters),
|
|
28917
|
+
}),
|
|
28077
28918
|
request,
|
|
28078
28919
|
account,
|
|
28079
28920
|
};
|
|
@@ -28167,7 +29008,7 @@ function canonicalizeStringDict(values = {}) {
|
|
|
28167
29008
|
.map((key) => [key, values[key]]);
|
|
28168
29009
|
}
|
|
28169
29010
|
|
|
28170
|
-
/*! @azure/msal-browser v5.
|
|
29011
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
28171
29012
|
|
|
28172
29013
|
/*
|
|
28173
29014
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -29669,7 +30510,7 @@ function checkIfRefreshTokenErrorCanBeResolvedSilently(refreshTokenError, cacheL
|
|
|
29669
30510
|
return isSilentlyResolvable && tryIframeRenewal;
|
|
29670
30511
|
}
|
|
29671
30512
|
|
|
29672
|
-
/*! @azure/msal-browser v5.
|
|
30513
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
29673
30514
|
|
|
29674
30515
|
/*
|
|
29675
30516
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -29774,7 +30615,7 @@ class BaseOperatingContext {
|
|
|
29774
30615
|
}
|
|
29775
30616
|
}
|
|
29776
30617
|
|
|
29777
|
-
/*! @azure/msal-browser v5.
|
|
30618
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
29778
30619
|
|
|
29779
30620
|
/*
|
|
29780
30621
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -29821,7 +30662,7 @@ StandardOperatingContext.MODULE_NAME = "";
|
|
|
29821
30662
|
*/
|
|
29822
30663
|
StandardOperatingContext.ID = "StandardOperatingContext";
|
|
29823
30664
|
|
|
29824
|
-
/*! @azure/msal-browser v5.
|
|
30665
|
+
/*! @azure/msal-browser v5.26.0 2026-10-21 */
|
|
29825
30666
|
|
|
29826
30667
|
/*
|
|
29827
30668
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -30453,7 +31294,7 @@ const createClientLogCallback = (provider, metadata, scope) => {
|
|
|
30453
31294
|
};
|
|
30454
31295
|
|
|
30455
31296
|
// Generated by genversion.
|
|
30456
|
-
const version = '12.0.
|
|
31297
|
+
const version = '12.1.0-next.0';
|
|
30457
31298
|
|
|
30458
31299
|
/**
|
|
30459
31300
|
* Zod schema for telemetry configuration validation.
|
|
@@ -31696,6 +32537,8 @@ class MsalProvider extends BaseModuleProvider {
|
|
|
31696
32537
|
#client;
|
|
31697
32538
|
#telemetry;
|
|
31698
32539
|
#requiresAuth;
|
|
32540
|
+
/** Safe operational outcomes; never carries accounts, scopes, codes, tokens or raw errors. */
|
|
32541
|
+
#operational = createOperationalTelemetry('msal');
|
|
31699
32542
|
#authCode;
|
|
31700
32543
|
#loginHint;
|
|
31701
32544
|
/**
|
|
@@ -31770,6 +32613,9 @@ class MsalProvider extends BaseModuleProvider {
|
|
|
31770
32613
|
});
|
|
31771
32614
|
this.#requiresAuth = config.requiresAuth;
|
|
31772
32615
|
this.#telemetry = config.telemetry;
|
|
32616
|
+
this.#operational.connect(config.telemetry?.provider);
|
|
32617
|
+
// In-flight flows must not report into a torn-down telemetry host.
|
|
32618
|
+
this._addTeardown(() => this.#operational.disconnect());
|
|
31773
32619
|
this.#loginHint = config.loginHint;
|
|
31774
32620
|
// Extract auth code from config if present
|
|
31775
32621
|
// This will be used during initialize to exchange for tokens
|
|
@@ -31825,6 +32671,7 @@ class MsalProvider extends BaseModuleProvider {
|
|
|
31825
32671
|
// Priority 0: Exchange auth code if provided by backend
|
|
31826
32672
|
// This must happen before the requiresAuth check so tokens are cached
|
|
31827
32673
|
if (this.#authCode) {
|
|
32674
|
+
const exchangeStarted = performance.now();
|
|
31828
32675
|
try {
|
|
31829
32676
|
this._trackEvent('initialize.exchanging-auth-code', TelemetryLevel.Information);
|
|
31830
32677
|
// Use MSAL's acquireTokenByCode to exchange backend auth code for tokens
|
|
@@ -31846,21 +32693,22 @@ class MsalProvider extends BaseModuleProvider {
|
|
|
31846
32693
|
// Successfully exchanged auth code - set active account
|
|
31847
32694
|
if (result.account) {
|
|
31848
32695
|
this.#client.setActiveAccount(result.account);
|
|
31849
|
-
|
|
31850
|
-
|
|
31851
|
-
username: result.account.username,
|
|
31852
|
-
},
|
|
31853
|
-
});
|
|
32696
|
+
// Account identifiers are never recorded; the event only marks the transition.
|
|
32697
|
+
this._trackEvent('initialize.auth-code-exchanged-account', TelemetryLevel.Information);
|
|
31854
32698
|
}
|
|
32699
|
+
this.#operational.report({
|
|
32700
|
+
operation: 'exchange-auth-code',
|
|
32701
|
+
outcome: 'success',
|
|
32702
|
+
duration: performance.now() - exchangeStarted,
|
|
32703
|
+
});
|
|
31855
32704
|
}
|
|
31856
|
-
catch
|
|
31857
|
-
// Auth code exchange failed -
|
|
31858
|
-
|
|
31859
|
-
|
|
31860
|
-
|
|
31861
|
-
|
|
31862
|
-
|
|
31863
|
-
},
|
|
32705
|
+
catch {
|
|
32706
|
+
// Auth code exchange failed - record a sanitized outcome and fall back to standard flows.
|
|
32707
|
+
// The original error may describe the code or account, so it is never recorded.
|
|
32708
|
+
this.#operational.report({
|
|
32709
|
+
operation: 'exchange-auth-code',
|
|
32710
|
+
outcome: 'failure',
|
|
32711
|
+
duration: performance.now() - exchangeStarted,
|
|
31864
32712
|
});
|
|
31865
32713
|
// Continue to requiresAuth check - will trigger standard login if needed
|
|
31866
32714
|
}
|
|
@@ -31879,11 +32727,7 @@ class MsalProvider extends BaseModuleProvider {
|
|
|
31879
32727
|
// Successfully authenticated via redirect - set as active account
|
|
31880
32728
|
// This means the user was redirected to Microsoft and came back authenticated
|
|
31881
32729
|
this.#client.setActiveAccount(handleRedirectResult.account);
|
|
31882
|
-
this._trackEvent('initialize.active-account-set-by-callback', TelemetryLevel.Information
|
|
31883
|
-
properties: {
|
|
31884
|
-
username: handleRedirectResult.account.username,
|
|
31885
|
-
},
|
|
31886
|
-
});
|
|
32730
|
+
this._trackEvent('initialize.active-account-set-by-callback', TelemetryLevel.Information);
|
|
31887
32731
|
}
|
|
31888
32732
|
else if (!this.#client.hasValidClaims) {
|
|
31889
32733
|
// Priority 2: No valid session found - attempt automatic login
|
|
@@ -31895,11 +32739,7 @@ class MsalProvider extends BaseModuleProvider {
|
|
|
31895
32739
|
if (loginResult?.account) {
|
|
31896
32740
|
// Automatic login successful - set as active account
|
|
31897
32741
|
this.#client.setActiveAccount(loginResult.account);
|
|
31898
|
-
this._trackEvent('initialize.active-account-set-by-login', TelemetryLevel.Information
|
|
31899
|
-
properties: {
|
|
31900
|
-
username: loginResult.account.username,
|
|
31901
|
-
},
|
|
31902
|
-
});
|
|
32742
|
+
this._trackEvent('initialize.active-account-set-by-login', TelemetryLevel.Information);
|
|
31903
32743
|
}
|
|
31904
32744
|
}
|
|
31905
32745
|
// Priority 3: If hasValidClaims is true, user is already authenticated - no action needed
|
|
@@ -31974,8 +32814,8 @@ class MsalProvider extends BaseModuleProvider {
|
|
|
31974
32814
|
// Extract caller-provided scopes from either new format (request.scopes) or legacy format (scopes)
|
|
31975
32815
|
const candidateScopes = inputRequest?.scopes ?? options?.scopes ?? [];
|
|
31976
32816
|
const scopes = candidateScopes.length > 0 ? candidateScopes : defaultScopes.length > 0 ? defaultScopes : [];
|
|
31977
|
-
//
|
|
31978
|
-
const telemetryProperties = { behavior, silent
|
|
32817
|
+
// Flow flags only; scopes identify the requested resources and are never recorded.
|
|
32818
|
+
const telemetryProperties = { behavior, silent };
|
|
31979
32819
|
// Track usage of deprecated legacy scopes format for migration monitoring
|
|
31980
32820
|
if (options?.scopes) {
|
|
31981
32821
|
this._trackEvent('acquireToken.legacy-scopes-provided', TelemetryLevel.Warning, {
|
|
@@ -31987,7 +32827,7 @@ class MsalProvider extends BaseModuleProvider {
|
|
|
31987
32827
|
// Fall back to the client-id-derived default scope when one is available
|
|
31988
32828
|
if (defaultScopes.length > 0) {
|
|
31989
32829
|
this._trackEvent('acquireToken.missing-scope.defaulted', TelemetryLevel.Warning, {
|
|
31990
|
-
properties:
|
|
32830
|
+
properties: telemetryProperties,
|
|
31991
32831
|
});
|
|
31992
32832
|
}
|
|
31993
32833
|
else {
|
|
@@ -32000,10 +32840,11 @@ class MsalProvider extends BaseModuleProvider {
|
|
|
32000
32840
|
// This allows us to monitor how often empty scopes are provided before enforcing validation
|
|
32001
32841
|
}
|
|
32002
32842
|
}
|
|
32843
|
+
// Token acquisition for telemetry delivery belongs to the export and is never recorded,
|
|
32844
|
+
// otherwise each export would produce a record to export in turn.
|
|
32845
|
+
const operational = options && telemetryExportRequest in options ? undefined : this.#operational;
|
|
32846
|
+
const started = performance.now();
|
|
32003
32847
|
try {
|
|
32004
|
-
const measurement = this._trackMeasurement('acquireToken', TelemetryLevel.Information, {
|
|
32005
|
-
properties: telemetryProperties,
|
|
32006
|
-
});
|
|
32007
32848
|
// Merge account, original request options, and resolved scopes.
|
|
32008
32849
|
// Account ensures context awareness, request preserves custom options, scopes uses resolved value.
|
|
32009
32850
|
const result = await this.#client.acquireToken({
|
|
@@ -32011,23 +32852,29 @@ class MsalProvider extends BaseModuleProvider {
|
|
|
32011
32852
|
silent,
|
|
32012
32853
|
request: { ...inputRequest, account, scopes },
|
|
32013
32854
|
});
|
|
32014
|
-
|
|
32855
|
+
operational?.report({
|
|
32856
|
+
operation: 'acquire-token',
|
|
32857
|
+
outcome: 'success',
|
|
32858
|
+
duration: performance.now() - started,
|
|
32859
|
+
});
|
|
32015
32860
|
return result;
|
|
32016
32861
|
}
|
|
32017
32862
|
catch (error) {
|
|
32018
32863
|
// Inside MSAL's hidden iframe, silent acquisition may fail and the client
|
|
32019
32864
|
// would fall back to acquireTokenRedirect which throws "block_iframe_reload".
|
|
32020
|
-
// Suppress this — the parent frame handles interactive auth.
|
|
32865
|
+
// Suppress this — the parent frame handles interactive auth, so it is not a failure.
|
|
32866
|
+
operational?.report({
|
|
32867
|
+
operation: 'acquire-token',
|
|
32868
|
+
outcome: inIframe || isUserCancellation(error) ? 'cancelled' : 'failure',
|
|
32869
|
+
duration: performance.now() - started,
|
|
32870
|
+
});
|
|
32871
|
+
// The hidden iframe defers to the parent frame instead of rethrowing.
|
|
32021
32872
|
if (inIframe) {
|
|
32022
32873
|
this._trackEvent('acquireToken.suppressed-in-iframe', TelemetryLevel.Debug, {
|
|
32023
32874
|
properties: telemetryProperties,
|
|
32024
32875
|
});
|
|
32025
32876
|
return undefined;
|
|
32026
32877
|
}
|
|
32027
|
-
this._trackException('acquireToken-failed', TelemetryLevel.Error, {
|
|
32028
|
-
exception: error,
|
|
32029
|
-
properties: telemetryProperties,
|
|
32030
|
-
});
|
|
32031
32878
|
throw error;
|
|
32032
32879
|
}
|
|
32033
32880
|
}
|
|
@@ -32094,7 +32941,8 @@ class MsalProvider extends BaseModuleProvider {
|
|
|
32094
32941
|
// Determine if silent login is possible based on available account/hint information
|
|
32095
32942
|
// Silent login requires either an account object or a loginHint to work
|
|
32096
32943
|
const canLoginSilently = silent && (request.account || request.loginHint);
|
|
32097
|
-
|
|
32944
|
+
// Flow flags only; scopes identify the requested resources and are never recorded.
|
|
32945
|
+
const telemetryProperties = { behavior, silent, canLoginSilently: Boolean(canLoginSilently) };
|
|
32098
32946
|
// Default to active account if no account/hint provided in request
|
|
32099
32947
|
// This allows silent login to work automatically with existing authentication state
|
|
32100
32948
|
request.account ??= this.account ?? undefined;
|
|
@@ -32108,19 +32956,49 @@ class MsalProvider extends BaseModuleProvider {
|
|
|
32108
32956
|
this._trackEvent('login', TelemetryLevel.Information, {
|
|
32109
32957
|
properties: telemetryProperties,
|
|
32110
32958
|
});
|
|
32959
|
+
const started = performance.now();
|
|
32960
|
+
try {
|
|
32961
|
+
const result = await this.#login(request, behavior, Boolean(canLoginSilently));
|
|
32962
|
+
this.#operational.report({
|
|
32963
|
+
operation: 'login',
|
|
32964
|
+
outcome: 'success',
|
|
32965
|
+
duration: performance.now() - started,
|
|
32966
|
+
});
|
|
32967
|
+
return result;
|
|
32968
|
+
}
|
|
32969
|
+
catch (error) {
|
|
32970
|
+
this.#operational.report({
|
|
32971
|
+
operation: 'login',
|
|
32972
|
+
outcome: isUserCancellation(error) ? 'cancelled' : 'failure',
|
|
32973
|
+
duration: performance.now() - started,
|
|
32974
|
+
});
|
|
32975
|
+
throw error;
|
|
32976
|
+
}
|
|
32977
|
+
}
|
|
32978
|
+
/**
|
|
32979
|
+
* Runs the silent-then-interactive login flow measured by {@link login}.
|
|
32980
|
+
* @param request - Resolved login request.
|
|
32981
|
+
* @param behavior - Interactive fallback behavior.
|
|
32982
|
+
* @param canLoginSilently - Whether a silent attempt is possible.
|
|
32983
|
+
* @returns The login result, or `undefined` for a redirect that navigates away.
|
|
32984
|
+
* @throws The original MSAL error, or an error for an unsupported behavior.
|
|
32985
|
+
*/
|
|
32986
|
+
async #login(request, behavior, canLoginSilently) {
|
|
32111
32987
|
// Attempt silent authentication first if conditions are met
|
|
32112
32988
|
// This provides better UX by avoiding unnecessary popups/redirects
|
|
32113
32989
|
if (canLoginSilently) {
|
|
32114
32990
|
try {
|
|
32115
32991
|
return await this.#client.ssoSilent(request);
|
|
32116
32992
|
}
|
|
32117
|
-
catch
|
|
32118
|
-
// Silent login failed -
|
|
32119
|
-
|
|
32120
|
-
|
|
32121
|
-
|
|
32993
|
+
catch {
|
|
32994
|
+
// Silent login failed - a recoverable degradation, recorded without the original error,
|
|
32995
|
+
// which may contain account hints. Fall through to interactive authentication.
|
|
32996
|
+
this.#operational.report({
|
|
32997
|
+
notification: true,
|
|
32998
|
+
operation: 'silent-login-fallback',
|
|
32999
|
+
outcome: 'failure',
|
|
33000
|
+
level: TelemetryLevel.Warning,
|
|
32122
33001
|
});
|
|
32123
|
-
// Fall through to interactive authentication
|
|
32124
33002
|
}
|
|
32125
33003
|
}
|
|
32126
33004
|
// Perform interactive authentication based on specified behavior
|
|
@@ -32161,20 +33039,25 @@ class MsalProvider extends BaseModuleProvider {
|
|
|
32161
33039
|
* ```
|
|
32162
33040
|
*/
|
|
32163
33041
|
async logout(options) {
|
|
32164
|
-
|
|
32165
|
-
|
|
32166
|
-
|
|
32167
|
-
},
|
|
32168
|
-
});
|
|
33042
|
+
// Redirect URIs can carry paths and query data, so the event only marks the transition.
|
|
33043
|
+
this._trackEvent('logout', TelemetryLevel.Information);
|
|
33044
|
+
const started = performance.now();
|
|
32169
33045
|
try {
|
|
32170
33046
|
// Logout the specific account (or current account if none specified)
|
|
32171
33047
|
await this.#client.logout({ account: this.account ?? undefined, ...options });
|
|
33048
|
+
this.#operational.report({
|
|
33049
|
+
operation: 'logout',
|
|
33050
|
+
outcome: 'success',
|
|
33051
|
+
duration: performance.now() - started,
|
|
33052
|
+
});
|
|
32172
33053
|
return true; // Success
|
|
32173
33054
|
}
|
|
32174
|
-
catch
|
|
32175
|
-
// Logout failed -
|
|
32176
|
-
this.
|
|
32177
|
-
|
|
33055
|
+
catch {
|
|
33056
|
+
// Logout failed - record a sanitized outcome but don't throw to avoid breaking app flow
|
|
33057
|
+
this.#operational.report({
|
|
33058
|
+
operation: 'logout',
|
|
33059
|
+
outcome: 'failure',
|
|
33060
|
+
duration: performance.now() - started,
|
|
32178
33061
|
});
|
|
32179
33062
|
}
|
|
32180
33063
|
return false; // Failed
|
|
@@ -32203,27 +33086,29 @@ class MsalProvider extends BaseModuleProvider {
|
|
|
32203
33086
|
* ```
|
|
32204
33087
|
*/
|
|
32205
33088
|
async handleRedirect() {
|
|
33089
|
+
const started = performance.now();
|
|
32206
33090
|
try {
|
|
32207
33091
|
// Process any pending redirect from authentication flow
|
|
32208
33092
|
const result = await this.client.handleRedirectPromise();
|
|
32209
|
-
//
|
|
33093
|
+
// Processing ran even without a pending redirect, so success is measured either way;
|
|
33094
|
+
// otherwise failures would be over-represented in the outcome ratio.
|
|
33095
|
+
this.#operational.report({
|
|
33096
|
+
operation: 'handle-redirect',
|
|
33097
|
+
outcome: 'success',
|
|
33098
|
+
duration: performance.now() - started,
|
|
33099
|
+
});
|
|
33100
|
+
// The legacy event marks only a completed redirect flow, without account identifiers.
|
|
32210
33101
|
if (result) {
|
|
32211
|
-
|
|
32212
|
-
this._trackEvent('handleRedirect.success', TelemetryLevel.Information, {
|
|
32213
|
-
properties: {
|
|
32214
|
-
username: result.account?.username,
|
|
32215
|
-
},
|
|
32216
|
-
});
|
|
33102
|
+
this._trackEvent('handleRedirect.success', TelemetryLevel.Information);
|
|
32217
33103
|
}
|
|
32218
33104
|
return result;
|
|
32219
33105
|
}
|
|
32220
33106
|
catch (error) {
|
|
32221
|
-
|
|
32222
|
-
|
|
32223
|
-
|
|
32224
|
-
|
|
32225
|
-
|
|
32226
|
-
},
|
|
33107
|
+
// The response could not be processed; standard authentication continues.
|
|
33108
|
+
this.#operational.report({
|
|
33109
|
+
operation: 'handle-redirect',
|
|
33110
|
+
outcome: isUserCancellation(error) ? 'cancelled' : 'failure',
|
|
33111
|
+
duration: performance.now() - started,
|
|
32227
33112
|
});
|
|
32228
33113
|
return null;
|
|
32229
33114
|
}
|
|
@@ -32349,7 +33234,20 @@ class MsalProvider extends BaseModuleProvider {
|
|
|
32349
33234
|
});
|
|
32350
33235
|
}
|
|
32351
33236
|
}
|
|
33237
|
+
/**
|
|
33238
|
+
* Detects MSAL's user-cancellation error, an intended stop rather than a failure.
|
|
33239
|
+
* @param error - Error thrown by an MSAL flow.
|
|
33240
|
+
* @returns `true` when the user closed or cancelled the interaction.
|
|
33241
|
+
*/
|
|
33242
|
+
function isUserCancellation(error) {
|
|
33243
|
+
return error?.errorCode === 'user_cancelled';
|
|
33244
|
+
}
|
|
32352
33245
|
|
|
33246
|
+
/**
|
|
33247
|
+
* Providers this module created, so host disposal tears down only its own instances and
|
|
33248
|
+
* their telemetry, never a provider supplied or shared by another host.
|
|
33249
|
+
*/
|
|
33250
|
+
const ownedProviders = new WeakMap();
|
|
32353
33251
|
/**
|
|
32354
33252
|
* MSAL authentication module definition.
|
|
32355
33253
|
*
|
|
@@ -32394,10 +33292,15 @@ const module$1 = {
|
|
|
32394
33292
|
}
|
|
32395
33293
|
// Create new MSAL provider instance
|
|
32396
33294
|
const provider = new MsalProvider(config);
|
|
33295
|
+
ownedProviders.set(provider, provider);
|
|
32397
33296
|
// Initialize the provider (handles redirect callbacks, SSO, etc.)
|
|
32398
33297
|
await provider.initialize();
|
|
32399
33298
|
return provider;
|
|
32400
33299
|
},
|
|
33300
|
+
dispose: ({ instance }) => {
|
|
33301
|
+
ownedProviders.get(instance)?.dispose();
|
|
33302
|
+
ownedProviders.delete(instance);
|
|
33303
|
+
},
|
|
32401
33304
|
};
|
|
32402
33305
|
/**
|
|
32403
33306
|
* Enables MSAL authentication module in the framework.
|
|
@@ -32443,5 +33346,5 @@ const configureMsal = (configure) => ({
|
|
|
32443
33346
|
configure,
|
|
32444
33347
|
});
|
|
32445
33348
|
|
|
32446
|
-
export {
|
|
32447
|
-
//# sourceMappingURL=module-
|
|
33349
|
+
export { operationalIdentifier as $, popResultSelector as A, reduce as B, lastValueFrom as C, filter as D, EMPTY_SUBSCRIPTION as E, tap as F, BaseModuleProvider as G, catchError as H, of as I, object as J, _instanceof as K, _enum as L, ModuleEventLevel as M, string as N, Observable as O, boolean as P, record as Q, union as R, Subscription as S, finalize$1 as T, __rest as U, __assign as V, switchMap as W, observeOn as X, deepmerge as Y, BaseConfigBuilder as Z, __extends as _, __values as a, defer as a0, TelemetryExceptionSchema as a1, TelemetryItemNames as a2, TelemetryType as a3, telemetryProviderActions as a4, operationalScope as a5, createOperationalTelemetry as a6, TelemetryEventSchema as a7, TelemetryMetricSchema as a8, TelemetryCustomEventSchema as a9, createOperationalRecords as aa, TelemetryLevel as ab, createDiagnosticContext as ac, createAction as ad, createAsyncAction as ae, array as af, enableMSAL as ag, MsalConfigurator as ah, module$1 as ai, arrRemove as b, createErrorClass as c, __spreadArray as d, errorContext as e, __read as f, SafeSubscriber as g, EmptyError as h, isFunction as i, executeSchedule as j, innerFrom as k, createOperatorSubscriber as l, map as m, mergeMap as n, operate as o, identity as p, from as q, popScheduler as r, isArrayLike as s, telemetryExportRequest as t, isScheduler as u, popNumber as v, EMPTY as w, noop$1 as x, mergeInternals as y, scanInternals as z };
|
|
33350
|
+
//# sourceMappingURL=module-BnhyaZvt.js.map
|