@equinor/fusion-framework-module-msal 10.0.1 → 11.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/CHANGELOG.md +173 -0
  2. package/README.md +17 -368
  3. package/dist/esm/MsalClient.js +9 -0
  4. package/dist/esm/MsalClient.js.map +1 -1
  5. package/dist/esm/MsalConfigurator.js +178 -88
  6. package/dist/esm/MsalConfigurator.js.map +1 -1
  7. package/dist/esm/MsalProvider.js +20 -1
  8. package/dist/esm/MsalProvider.js.map +1 -1
  9. package/dist/esm/__tests__/MsalConfigurator.test.js +75 -0
  10. package/dist/esm/__tests__/MsalConfigurator.test.js.map +1 -1
  11. package/dist/esm/__tests__/create-proxy-provider.test.js +53 -0
  12. package/dist/esm/__tests__/create-proxy-provider.test.js.map +1 -0
  13. package/dist/esm/__tests__/mock/msal-mock.test.js +399 -0
  14. package/dist/esm/__tests__/mock/msal-mock.test.js.map +1 -0
  15. package/dist/esm/create-client-log-callback.js +1 -0
  16. package/dist/esm/create-client-log-callback.js.map +1 -1
  17. package/dist/esm/create-proxy-provider.js +5 -0
  18. package/dist/esm/create-proxy-provider.js.map +1 -1
  19. package/dist/esm/index.js +5 -0
  20. package/dist/esm/index.js.map +1 -1
  21. package/dist/esm/mock/MsalMockClient.js +467 -0
  22. package/dist/esm/mock/MsalMockClient.js.map +1 -0
  23. package/dist/esm/mock/MsalMockConfigurator.js +187 -0
  24. package/dist/esm/mock/MsalMockConfigurator.js.map +1 -0
  25. package/dist/esm/mock/create-mock-token.js +60 -0
  26. package/dist/esm/mock/create-mock-token.js.map +1 -0
  27. package/dist/esm/mock/create-msal-mock-client.js +20 -0
  28. package/dist/esm/mock/create-msal-mock-client.js.map +1 -0
  29. package/dist/esm/mock/decode-jwt-segment.js +22 -0
  30. package/dist/esm/mock/decode-jwt-segment.js.map +1 -0
  31. package/dist/esm/mock/index.js +30 -0
  32. package/dist/esm/mock/index.js.map +1 -0
  33. package/dist/esm/mock/module.js +38 -0
  34. package/dist/esm/mock/module.js.map +1 -0
  35. package/dist/esm/module.js +3 -2
  36. package/dist/esm/module.js.map +1 -1
  37. package/dist/esm/msal-config-schema.js +37 -0
  38. package/dist/esm/msal-config-schema.js.map +1 -0
  39. package/dist/esm/telemetry-config-schema.js +16 -0
  40. package/dist/esm/telemetry-config-schema.js.map +1 -0
  41. package/dist/esm/util/normalize-uri.js.map +1 -1
  42. package/dist/esm/v2/Logger.js +173 -0
  43. package/dist/esm/v2/Logger.js.map +1 -0
  44. package/dist/esm/v2/create-proxy-client.js +6 -0
  45. package/dist/esm/v2/create-proxy-client.js.map +1 -1
  46. package/dist/esm/v2/create-proxy-provider.js +4 -0
  47. package/dist/esm/v2/create-proxy-provider.js.map +1 -1
  48. package/dist/esm/v2/types.js +3 -124
  49. package/dist/esm/v2/types.js.map +1 -1
  50. package/dist/esm/v4/create-proxy-provider.js +1 -0
  51. package/dist/esm/v4/create-proxy-provider.js.map +1 -1
  52. package/dist/esm/v4/types.js.map +1 -1
  53. package/dist/esm/version.js +1 -1
  54. package/dist/esm/version.js.map +1 -1
  55. package/dist/esm/versioning/VersionError.js.map +1 -1
  56. package/dist/esm/versioning/resolve-version.js +4 -1
  57. package/dist/esm/versioning/resolve-version.js.map +1 -1
  58. package/dist/tsconfig.tsbuildinfo +1 -1
  59. package/dist/types/MsalClient.d.ts +4 -0
  60. package/dist/types/MsalConfigurator.d.ts +97 -20
  61. package/dist/types/MsalProvider.d.ts +13 -0
  62. package/dist/types/__tests__/create-proxy-provider.test.d.ts +1 -0
  63. package/dist/types/__tests__/mock/msal-mock.test.d.ts +1 -0
  64. package/dist/types/create-proxy-provider.d.ts +3 -0
  65. package/dist/types/index.d.ts +5 -0
  66. package/dist/types/mock/MsalMockClient.d.ts +270 -0
  67. package/dist/types/mock/MsalMockConfigurator.d.ts +156 -0
  68. package/dist/types/mock/create-mock-token.d.ts +54 -0
  69. package/dist/types/mock/create-msal-mock-client.d.ts +14 -0
  70. package/dist/types/mock/decode-jwt-segment.d.ts +13 -0
  71. package/dist/types/mock/index.d.ts +29 -0
  72. package/dist/types/mock/module.d.ts +35 -0
  73. package/dist/types/msal-config-schema.d.ts +64 -0
  74. package/dist/types/static.d.ts +1 -1
  75. package/dist/types/telemetry-config-schema.d.ts +8 -0
  76. package/dist/types/v2/IAuthClient.interface.d.ts +2 -2
  77. package/dist/types/v2/Logger.d.ts +92 -0
  78. package/dist/types/v2/MsalProvider.interface.d.ts +1 -1
  79. package/dist/types/v2/types.d.ts +3 -49
  80. package/dist/types/v4/types.d.ts +1 -3
  81. package/dist/types/version.d.ts +1 -1
  82. package/docs/api-reference.md +85 -0
  83. package/docs/auth-code-flow.md +86 -0
  84. package/docs/migration-v2-to-v4.md +115 -0
  85. package/docs/testing.md +167 -0
  86. package/docs/troubleshooting.md +17 -0
  87. package/docs/version-management.md +67 -0
  88. package/package.json +14 -7
  89. package/src/MsalClient.ts +9 -0
  90. package/src/MsalConfigurator.ts +204 -115
  91. package/src/MsalProvider.ts +20 -1
  92. package/src/__tests__/MsalConfigurator.test.ts +106 -0
  93. package/src/__tests__/create-proxy-provider.test.ts +77 -0
  94. package/src/__tests__/mock/msal-mock.test.ts +544 -0
  95. package/src/create-client-log-callback.ts +1 -0
  96. package/src/create-proxy-provider.ts +5 -0
  97. package/src/index.ts +6 -0
  98. package/src/mock/MsalMockClient.ts +599 -0
  99. package/src/mock/MsalMockConfigurator.ts +241 -0
  100. package/src/mock/create-mock-token.ts +92 -0
  101. package/src/mock/create-msal-mock-client.ts +25 -0
  102. package/src/mock/decode-jwt-segment.ts +22 -0
  103. package/src/mock/index.ts +29 -0
  104. package/src/mock/module.ts +54 -0
  105. package/src/module.ts +3 -2
  106. package/src/msal-config-schema.ts +81 -0
  107. package/src/telemetry-config-schema.ts +25 -0
  108. package/src/v2/IAuthClient.interface.ts +2 -2
  109. package/src/v2/Logger.ts +204 -0
  110. package/src/v2/MsalProvider.interface.ts +1 -1
  111. package/src/v2/create-proxy-client.ts +6 -0
  112. package/src/v2/create-proxy-provider.ts +4 -0
  113. package/src/v2/types.ts +8 -158
  114. package/src/v4/create-proxy-provider.ts +1 -0
  115. package/src/v4/types.ts +3 -3
  116. package/src/version.ts +1 -1
  117. package/src/versioning/resolve-version.ts +4 -1
  118. package/vitest.config.ts +1 -1
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Encodes a value as base64url without padding, as used in JWT segments.
3
+ *
4
+ * @param value - Raw string to encode.
5
+ * @returns The base64url representation.
6
+ */
7
+ const base64Url = (value) => {
8
+ // btoa operates on latin1; encodeURIComponent round-trip keeps non-ASCII names intact
9
+ const bytes = new TextEncoder().encode(value);
10
+ let binary = '';
11
+ // Iterate over encoded bytes so Unicode claims are preserved before base64url encoding.
12
+ for (const byte of bytes) {
13
+ binary += String.fromCharCode(byte);
14
+ }
15
+ return btoa(binary).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
16
+ };
17
+ /**
18
+ * Creates a structurally valid, unsigned JWT for use in tests.
19
+ *
20
+ * The token has three base64url segments and decodes to the supplied claims, so
21
+ * code that splits, decodes, or inspects token claims behaves exactly as it does
22
+ * in production. The signature segment is a fixed placeholder — the token is
23
+ * **not** cryptographically valid and will be rejected by any real service.
24
+ *
25
+ * @remarks
26
+ * Timestamps default to a fixed issue time and a one-hour lifetime so repeated
27
+ * runs produce byte-identical tokens. A test that needs an expired token can set
28
+ * `exp` in the past.
29
+ *
30
+ * @param claims - Claims to embed in the token payload.
31
+ * @returns An unsigned JWT string in `header.payload.signature` form.
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * const token = createMockToken({ name: 'Test User', scp: 'Files.Read' });
36
+ * const [, payload] = token.split('.');
37
+ * JSON.parse(decodeJwtSegment(payload)).name; // 'Test User'
38
+ * ```
39
+ */
40
+ export const createMockToken = (claims = {}) => {
41
+ const header = { alg: 'none', typ: 'JWT' };
42
+ // Fixed default clock keeps generated tokens byte-identical between runs
43
+ const issuedAt = claims.iat ?? 1_700_000_000;
44
+ const payload = {
45
+ iss: 'https://login.microsoftonline.com/fusion-test-tenant/v2.0',
46
+ aud: 'fusion-test-client',
47
+ tid: 'fusion-test-tenant',
48
+ oid: 'fusion-test-user',
49
+ iat: issuedAt,
50
+ nbf: issuedAt,
51
+ exp: issuedAt + 3600,
52
+ ...claims,
53
+ };
54
+ return [
55
+ base64Url(JSON.stringify(header)),
56
+ base64Url(JSON.stringify(payload)),
57
+ 'fusion-test-signature',
58
+ ].join('.');
59
+ };
60
+ //# sourceMappingURL=create-mock-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-mock-token.js","sourceRoot":"","sources":["../../../src/mock/create-mock-token.ts"],"names":[],"mappings":"AA+BA;;;;;GAKG;AACH,MAAM,SAAS,GAAG,CAAC,KAAa,EAAU,EAAE;IAC1C,sFAAsF;IACtF,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,wFAAwF;IACxF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACjF,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAM,GAAoB,EAAE,EAAU,EAAE;IACtE,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IAC3C,yEAAyE;IACzE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,IAAI,aAAa,CAAC;IAC7C,MAAM,OAAO,GAAoB;QAC/B,GAAG,EAAE,2DAA2D;QAChE,GAAG,EAAE,oBAAoB;QACzB,GAAG,EAAE,oBAAoB;QACzB,GAAG,EAAE,kBAAkB;QACvB,GAAG,EAAE,QAAQ;QACb,GAAG,EAAE,QAAQ;QACb,GAAG,EAAE,QAAQ,GAAG,IAAI;QACpB,GAAG,MAAM;KACV,CAAC;IAEF,OAAO;QACL,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAClC,uBAAuB;KACxB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { MsalMockClient } from './MsalMockClient';
2
+ /**
3
+ * Convenience helper that creates a mock client instance.
4
+ *
5
+ * @remarks
6
+ * The class form is preferred for a more familiar configuration pattern.
7
+ *
8
+ * @param config - The same client configuration the real client is built from.
9
+ * @param user - Optional user to sign in, applied after construction.
10
+ * @returns A client that resolves tokens in-process.
11
+ */
12
+ export const createMsalMockClient = (config, user) => {
13
+ const client = new MsalMockClient(config);
14
+ // Apply the optional identity after construction so the helper matches setUser semantics.
15
+ if (user) {
16
+ client.setUser(user);
17
+ }
18
+ return client;
19
+ };
20
+ //# sourceMappingURL=create-msal-mock-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-msal-mock-client.js","sourceRoot":"","sources":["../../../src/mock/create-msal-mock-client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAqB,MAAM,kBAAkB,CAAC;AAErE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,MAAwB,EACxB,IAAmB,EACN,EAAE;IACf,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,0FAA0F;IAC1F,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Decodes a base64url segment of a {@link createMockToken} JWT back to its JSON string.
3
+ *
4
+ * @remarks
5
+ * Plain `atob` alone mangles non-ASCII claims: it treats its output as latin1,
6
+ * while segments are UTF-8 encoded. This reverses that encoding and also
7
+ * restores the standard base64 alphabet/padding `atob` expects.
8
+ *
9
+ * @param segment - A base64url segment, e.g. from splitting a JWT on `.`.
10
+ * @returns The decoded UTF-8 string.
11
+ */
12
+ export function decodeJwtSegment(segment) {
13
+ const base64 = segment
14
+ .replace(/-/g, '+')
15
+ .replace(/_/g, '/')
16
+ .padEnd(segment.length + ((4 - (segment.length % 4)) % 4), '=');
17
+ const binary = atob(base64);
18
+ const bytes = Uint8Array.from(binary, (char) => char.charCodeAt(0));
19
+ return new TextDecoder().decode(bytes);
20
+ }
21
+ export default decodeJwtSegment;
22
+ //# sourceMappingURL=decode-jwt-segment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode-jwt-segment.js","sourceRoot":"","sources":["../../../src/mock/decode-jwt-segment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Mock MSAL for tests: real provider, real configurator, fake client.
3
+ *
4
+ * @remarks
5
+ * Substituting the client is the smallest change that removes Entra ID from a test.
6
+ * Everything above it — scope resolution, silent-first token acquisition, account
7
+ * handling, proxy providers, telemetry — is the production code path.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { enableMsalMock } from '@equinor/fusion-framework-module-msal/mock';
12
+ *
13
+ * // default mock user
14
+ * enableMsalMock(configurator);
15
+ *
16
+ * // or a specific one
17
+ * enableMsalMock(configurator, (builder) => {
18
+ * builder.setAccount({ name: 'Ada Lovelace', signedOut: true });
19
+ * });
20
+ * ```
21
+ *
22
+ * @packageDocumentation
23
+ */
24
+ export { MsalMockClient } from './MsalMockClient';
25
+ export { createMsalMockClient } from './create-msal-mock-client';
26
+ export { MsalMockConfigurator } from './MsalMockConfigurator';
27
+ export { enableMsalMock, msalMockModule } from './module';
28
+ export { createMockToken } from './create-mock-token';
29
+ export { decodeJwtSegment } from './decode-jwt-segment';
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mock/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,cAAc,EAAqB,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAyB,MAAM,UAAU,CAAC;AACjF,OAAO,EAAE,eAAe,EAAwB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { module } from '../module';
2
+ import { MsalMockConfigurator } from './MsalMockConfigurator';
3
+ /**
4
+ * The MSAL module with a mock client instead of a live connection to Entra ID.
5
+ *
6
+ * @remarks
7
+ * Only `configure` differs from the real module. `initialize` is the production
8
+ * one, untouched, so proxy providers, host-provider hoisting and provider
9
+ * initialization all behave exactly as they do in production — and a test
10
+ * observes the real start-up path rather than a rehearsal of it.
11
+ */
12
+ export const msalMockModule = {
13
+ ...module,
14
+ configure: () => new MsalMockConfigurator(),
15
+ };
16
+ /**
17
+ * Enables MSAL against a mock client, so a test needs no credentials and no network.
18
+ *
19
+ * @remarks
20
+ * Registered last, this replaces whichever auth module the configurator already
21
+ * carries, so it works on a `FrameworkConfigurator` that pre-registers the real one.
22
+ *
23
+ * @param configurator - The modules configurator to register on.
24
+ * @param configure - Optional callback to override the default mock client.
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * enableMsalMock(configurator, (builder) => {
29
+ * builder.setAccount({ name: 'Ada Lovelace' });
30
+ * });
31
+ * ```
32
+ */
33
+ export const enableMsalMock = (
34
+ // biome-ignore lint/suspicious/noExplicitAny: must be any to support all module types
35
+ configurator, configure) => {
36
+ configurator.addConfig({ module: msalMockModule, configure });
37
+ };
38
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/mock/module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAmB,MAAM,WAAW,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC,GAAG,MAAM;IACT,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,oBAAoB,EAAE;CAC5C,CAAC;AAUF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;AAC5B,sFAAsF;AACtF,YAA4C,EAC5C,SAA4B,EACtB,EAAE;IACR,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAEzD,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -27,6 +27,7 @@ export const module = {
27
27
  // Priority 2: Check if provider exists in parent module (proxy compatibility)
28
28
  // This allows child applications to reuse parent's authentication provider
29
29
  const hostProvider = init.ref?.auth;
30
+ // Reuse the parent's provider (via a version-compatible proxy) when available
30
31
  if (hostProvider) {
31
32
  try {
32
33
  const proxyProvider = hostProvider.createProxyProvider(config.version);
@@ -35,7 +36,7 @@ export const module = {
35
36
  catch (error) {
36
37
  console.error('MsalModule::Failed to create proxy provider', error);
37
38
  // Fallback to host provider to prevent app breakage during migration
38
- // TODO: Consider throwing error instead once all apps are migrated to v4
39
+ // TODO(#5114): Consider throwing error instead once all apps are migrated to v4
39
40
  return hostProvider;
40
41
  }
41
42
  }
@@ -70,7 +71,7 @@ export const module = {
70
71
  * ```
71
72
  */
72
73
  export const enableMSAL = (
73
- // @biome-ignore lint/suspicious/noExplicitAny: must be any to support all module types
74
+ // biome-ignore lint/suspicious/noExplicitAny: must be any to support all module types
74
75
  configurator, configure) => {
75
76
  const config = configure ? configureMsal(configure) : { module };
76
77
  configurator.addConfig(config);
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,eAAe,GAChB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAsB,MAAM,gBAAgB,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,MAAM,GAAe;IAChC,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,IAAI,eAAe,CAAC,OAAO,CAAC;IACrC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,gBAAgB,EAAE;IACvC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEzD,2DAA2D;QAC3D,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QAED,8EAA8E;QAC9E,2EAA2E;QAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;QACpC,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,YAAY,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACvE,OAAO,aAAa,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAC;gBACpE,qEAAqE;gBACrE,yEAAyE;gBACzE,OAAO,YAAY,CAAC;YACtB,CAAC;QACH,CAAC;QAED,wDAAwD;QACxD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAC;QACJ,CAAC;QAED,oCAAoC;QACpC,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAE1C,kEAAkE;QAClE,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;QAE5B,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC;AAaF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;AACxB,uFAAuF;AACvF,YAA4C,EAC5C,SAAwB,EAClB,EAAE;IACR,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IACjE,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAuB,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM;IACN,SAAS;CACV,CAAC,CAAC;AAQH,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,eAAe,GAChB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAsB,MAAM,gBAAgB,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,MAAM,GAAe;IAChC,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,IAAI,eAAe,CAAC,OAAO,CAAC;IACrC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,gBAAgB,EAAE;IACvC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEzD,2DAA2D;QAC3D,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QAED,8EAA8E;QAC9E,2EAA2E;QAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;QACpC,8EAA8E;QAC9E,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,YAAY,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACvE,OAAO,aAAa,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAC;gBACpE,qEAAqE;gBACrE,gFAAgF;gBAChF,OAAO,YAAY,CAAC;YACtB,CAAC;QACH,CAAC;QAED,wDAAwD;QACxD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAC;QACJ,CAAC;QAED,oCAAoC;QACpC,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAE1C,kEAAkE;QAClE,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;QAE5B,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC;AAaF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;AACxB,sFAAsF;AACtF,YAA4C,EAC5C,SAAwB,EAClB,EAAE;IACR,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IACjE,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAuB,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM;IACN,SAAS;CACV,CAAC,CAAC;AAQH,eAAe,MAAM,CAAC"}
@@ -0,0 +1,37 @@
1
+ import z from 'zod';
2
+ import semver from 'semver';
3
+ import { CacheLookupPolicy } from '@azure/msal-browser';
4
+ import { TelemetryConfigSchema } from './telemetry-config-schema';
5
+ /**
6
+ * Zod schema for MSAL module configuration validation.
7
+ *
8
+ * @remarks
9
+ * Kept in its own module so the configuration can be extended at its source.
10
+ * The schema itself describes what reaches `MsalProvider` and strips anything
11
+ * else; keys a variant of this module needs only while the configuration is
12
+ * being built are declared on {@link MsalConfigExtension} instead.
13
+ */
14
+ export const MsalConfigSchema = z.object({
15
+ client: z.custom().optional(),
16
+ provider: z.custom().optional(),
17
+ requiresAuth: z.boolean().optional(),
18
+ redirectUri: z.string().optional(),
19
+ loginHint: z.string().optional(),
20
+ authCode: z.string().optional(),
21
+ cacheLookupPolicy: z
22
+ .custom((val) => typeof val === 'number' &&
23
+ Object.values(CacheLookupPolicy).includes(val))
24
+ .optional(),
25
+ version: z.string().transform((value, ctx) => {
26
+ const coerced = semver.coerce(value);
27
+ // `semver.coerce` returns `null` for an unparseable version; without this guard it
28
+ // would silently become the literal string "null" instead of failing validation.
29
+ if (!coerced) {
30
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: 'Invalid MSAL module version' });
31
+ return z.NEVER;
32
+ }
33
+ return coerced.version;
34
+ }),
35
+ telemetry: TelemetryConfigSchema,
36
+ });
37
+ //# sourceMappingURL=msal-config-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msal-config-schema.js","sourceRoot":"","sources":["../../src/msal-config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGlE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAe,CAAC,QAAQ,EAAE;IAC1C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAiB,CAAC,QAAQ,EAAE;IAC9C,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,iBAAiB,EAAE,CAAC;SACjB,MAAM,CACL,CAAC,GAAG,EAAE,EAAE,CACN,OAAO,GAAG,KAAK,QAAQ;QACvB,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,GAAwB,CAAC,CACtE;SACA,QAAQ,EAAE;IACb,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,mFAAmF;QACnF,iFAAiF;QACjF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC,CAAC;YACtF,OAAO,CAAC,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC,CAAC;IACF,SAAS,EAAE,qBAAqB;CACjC,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import z from 'zod';
2
+ import { version } from './version';
3
+ /**
4
+ * Zod schema for telemetry configuration validation.
5
+ *
6
+ * @internal
7
+ */
8
+ export const TelemetryConfigSchema = z.object({
9
+ provider: z.custom().optional(),
10
+ metadata: z.record(z.string(), z.unknown()).optional().default({
11
+ module: 'msal',
12
+ version,
13
+ }),
14
+ scope: z.array(z.string()).optional().default(['framework', 'authentication']),
15
+ });
16
+ //# sourceMappingURL=telemetry-config-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-config-schema.js","sourceRoot":"","sources":["../../src/telemetry-config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAsB,CAAC,QAAQ,EAAE;IACnD,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;QAC7D,MAAM,EAAE,MAAM;QACd,OAAO;KACR,CAAC;IACF,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;CAC/E,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-uri.js","sourceRoot":"","sources":["../../../src/util/normalize-uri.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,OAAe,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAU,EAAE;IACzF,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;IAChD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC,CAAC"}
1
+ {"version":3,"file":"normalize-uri.js","sourceRoot":"","sources":["../../../src/util/normalize-uri.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,IAAI,GAAW,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAU,EAAE;IACzF,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;IAChD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC,CAAC"}
@@ -0,0 +1,173 @@
1
+ import { LogLevel } from './types.js';
2
+ /**
3
+ * Class which facilitates logging of messages to a specific place
4
+ */
5
+ export class Logger {
6
+ // Correlation ID for request, usually set by user.
7
+ correlationId;
8
+ // Current log level, defaults to info.
9
+ level = LogLevel.Info;
10
+ // Boolean describing whether PII logging is allowed.
11
+ piiLoggingEnabled;
12
+ // Callback to send messages to.
13
+ localCallback;
14
+ // Package name implementing this logger
15
+ packageName;
16
+ // Package version implementing this logger
17
+ packageVersion;
18
+ /**
19
+ * Creates a new `Logger`.
20
+ *
21
+ * @param loggerOptions - Logger configuration, including callback, PII, and log level settings.
22
+ * @param packageName - Name of the package implementing this logger.
23
+ * @param packageVersion - Version of the package implementing this logger.
24
+ */
25
+ constructor(loggerOptions, packageName, packageVersion) {
26
+ const defaultLoggerCallback = () => {
27
+ return;
28
+ };
29
+ const setLoggerOptions = loggerOptions || Logger.createDefaultLoggerOptions();
30
+ this.localCallback = setLoggerOptions.loggerCallback || defaultLoggerCallback;
31
+ this.piiLoggingEnabled = setLoggerOptions.piiLoggingEnabled || false;
32
+ this.level =
33
+ typeof setLoggerOptions.logLevel === 'number' ? setLoggerOptions.logLevel : LogLevel.Info;
34
+ this.correlationId = setLoggerOptions.correlationId || '';
35
+ this.packageName = packageName || '';
36
+ this.packageVersion = packageVersion || '';
37
+ }
38
+ /**
39
+ * Creates the default logger options used when none are provided.
40
+ *
41
+ * @returns Default logger options with a no-op callback, PII logging disabled, and Info level.
42
+ */
43
+ static createDefaultLoggerOptions() {
44
+ return {
45
+ loggerCallback: () => {
46
+ // allow users to not set loggerCallback
47
+ },
48
+ piiLoggingEnabled: false,
49
+ logLevel: LogLevel.Info,
50
+ };
51
+ }
52
+ /**
53
+ * Create new Logger with existing configurations.
54
+ *
55
+ * @param packageName - Name of the package implementing this logger.
56
+ * @param packageVersion - Version of the package implementing this logger.
57
+ * @param correlationId - Correlation ID to use, falling back to this logger's own if omitted.
58
+ * @returns A new `Logger` instance cloned from this one.
59
+ */
60
+ clone(packageName, packageVersion, correlationId) {
61
+ return new Logger({
62
+ loggerCallback: this.localCallback,
63
+ piiLoggingEnabled: this.piiLoggingEnabled,
64
+ logLevel: this.level,
65
+ correlationId: correlationId || this.correlationId,
66
+ }, packageName, packageVersion);
67
+ }
68
+ /**
69
+ * Logs error messages.
70
+ *
71
+ * @param message - The message to log.
72
+ * @param correlationId - Correlation ID to attach to the log entry, if any.
73
+ */
74
+ error(message, correlationId) {
75
+ this.logMessage(message, {
76
+ logLevel: LogLevel.Error,
77
+ containsPii: false,
78
+ correlationId: correlationId || '',
79
+ });
80
+ }
81
+ /**
82
+ * Logs warning messages.
83
+ *
84
+ * @param message - The message to log.
85
+ * @param correlationId - Correlation ID to attach to the log entry, if any.
86
+ */
87
+ warning(message, correlationId) {
88
+ this.logMessage(message, {
89
+ logLevel: LogLevel.Warning,
90
+ containsPii: false,
91
+ correlationId: correlationId || '',
92
+ });
93
+ }
94
+ /**
95
+ * Logs info messages.
96
+ *
97
+ * @param message - The message to log.
98
+ * @param correlationId - Correlation ID to attach to the log entry, if any.
99
+ */
100
+ info(message, correlationId) {
101
+ this.logMessage(message, {
102
+ logLevel: LogLevel.Info,
103
+ containsPii: false,
104
+ correlationId: correlationId || '',
105
+ });
106
+ }
107
+ /**
108
+ * Logs verbose messages.
109
+ *
110
+ * @param message - The message to log.
111
+ * @param correlationId - Correlation ID to attach to the log entry, if any.
112
+ */
113
+ verbose(message, correlationId) {
114
+ this.logMessage(message, {
115
+ logLevel: LogLevel.Verbose,
116
+ containsPii: false,
117
+ correlationId: correlationId || '',
118
+ });
119
+ }
120
+ /**
121
+ * Logs trace messages.
122
+ *
123
+ * @param message - The message to log.
124
+ * @param correlationId - Correlation ID to attach to the log entry, if any.
125
+ */
126
+ trace(message, correlationId) {
127
+ this.logMessage(message, {
128
+ logLevel: LogLevel.Trace,
129
+ containsPii: false,
130
+ correlationId: correlationId || '',
131
+ });
132
+ }
133
+ /**
134
+ * Returns whether PII Logging is enabled or not.
135
+ *
136
+ * @returns `true` when PII logging is enabled, otherwise `false`.
137
+ */
138
+ isPiiLoggingEnabled() {
139
+ return this.piiLoggingEnabled || false;
140
+ }
141
+ /**
142
+ * Formats and dispatches a log message to the configured callback, unless it
143
+ * is below the configured log level or contains PII while PII logging is disabled.
144
+ *
145
+ * @param logMessage - The raw message to log.
146
+ * @param options - Log level, PII flag, and correlation ID for this message.
147
+ */
148
+ logMessage(logMessage, options) {
149
+ // Skip messages below the configured level or containing PII when PII logging is disabled
150
+ if (options.logLevel > this.level || (!this.piiLoggingEnabled && options.containsPii)) {
151
+ return;
152
+ }
153
+ const timestamp = new Date().toUTCString();
154
+ // Add correlationId to logs if set, correlationId provided on log messages take precedence
155
+ const logHeader = `[${timestamp}] : [${options.correlationId || this.correlationId || ''}]`;
156
+ const log = `${logHeader} : ${this.packageName}@${this.packageVersion} : ${LogLevel[options.logLevel]} - ${logMessage}`;
157
+ this.executeCallback(options.logLevel, log, options.containsPii || false);
158
+ }
159
+ /**
160
+ * Execute callback with message.
161
+ *
162
+ * @param level - The log level of the message.
163
+ * @param message - The formatted message to send to the callback.
164
+ * @param containsPii - Whether the message contains personally identifiable information.
165
+ */
166
+ executeCallback(level, message, containsPii) {
167
+ // Only invoke the callback when one has been configured
168
+ if (this.localCallback) {
169
+ this.localCallback(level, message, containsPii);
170
+ }
171
+ }
172
+ }
173
+ //# sourceMappingURL=Logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../../src/v2/Logger.ts"],"names":[],"mappings":"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"}
@@ -24,9 +24,11 @@ import { mapAuthenticationResult } from './map-authentication-result';
24
24
  export function createProxyClient(client) {
25
25
  const proxy = new Proxy(client, {
26
26
  get: (target, prop) => {
27
+ // Adapt each v4 client member to the v2-compatible shape expected by callers
27
28
  switch (prop) {
28
29
  case 'getAllAccounts': {
29
30
  return () => {
31
+ // Map each v4 account shape to its v2-compatible equivalent
30
32
  return target.getAllAccounts().map(mapAccountInfo);
31
33
  };
32
34
  }
@@ -58,6 +60,7 @@ export function createProxyClient(client) {
58
60
  case 'handleRedirectPromise': {
59
61
  return async () => {
60
62
  const result = await target.handleRedirectPromise();
63
+ // No redirect result means there's nothing pending to map
61
64
  if (!result) {
62
65
  return null;
63
66
  }
@@ -67,6 +70,7 @@ export function createProxyClient(client) {
67
70
  case 'getActiveAccount': {
68
71
  return () => {
69
72
  const account = target.getActiveAccount();
73
+ // No active account means there's nothing to map
70
74
  if (!account) {
71
75
  return null;
72
76
  }
@@ -153,6 +157,8 @@ export function createProxyClient(client) {
153
157
  }
154
158
  },
155
159
  });
160
+ // The Proxy handler above implements every member of `IAuthClient` at runtime via its `get`
161
+ // trap, but TypeScript can't verify a `Proxy<T>` satisfies `T` structurally.
156
162
  return proxy;
157
163
  }
158
164
  //# sourceMappingURL=create-proxy-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-proxy-client.js","sourceRoot":"","sources":["../../../src/v2/create-proxy-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-proxy-client.js","sourceRoot":"","sources":["../../../src/v2/create-proxy-client.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import { MsalModuleVersion } from '../static';
8
8
  * @returns True if the request is in v4 format (has a `request` property with `scopes` and `account`)
9
9
  */
10
10
  function isRequestV4(req) {
11
+ // Non-object/null values can never match the v4 request shape
11
12
  if (typeof req !== 'object' || req === null) {
12
13
  return false;
13
14
  }
@@ -41,6 +42,7 @@ export function createProxyProvider(provider) {
41
42
  // Use Proxy to intercept property access and provide v2-compatible implementations
42
43
  const proxy = new Proxy(provider, {
43
44
  get: (target, prop) => {
45
+ // Adapt each v4 provider member to the v2-compatible shape expected by callers
44
46
  switch (prop) {
45
47
  case 'version': {
46
48
  return provider.version;
@@ -55,6 +57,7 @@ export function createProxyProvider(provider) {
55
57
  case 'defaultClient': {
56
58
  // Deprecated property - redirect to client with warning
57
59
  console.warn('defaultClient is deprecated, use client instead');
60
+ // Same v2-compatible client wrapper as the `client` case above.
58
61
  return v2Client;
59
62
  }
60
63
  case 'defaultAccount': {
@@ -138,6 +141,7 @@ export function createProxyProvider(provider) {
138
141
  };
139
142
  }
140
143
  default: {
144
+ // The proxy is awaited in some contexts, so `then` must resolve to undefined
141
145
  if (prop === 'then') {
142
146
  return undefined;
143
147
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create-proxy-provider.js","sourceRoot":"","sources":["../../../src/v2/create-proxy-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-proxy-provider.js","sourceRoot":"","sources":["../../../src/v2/create-proxy-provider.ts"],"names":[],"mappings":"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"}