@azure/msal-node-extensions 1.1.0 → 1.3.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 (120) hide show
  1. package/bin/arm64/dpapi.node +0 -0
  2. package/bin/ia32/dpapi.node +0 -0
  3. package/bin/x64/dpapi.node +0 -0
  4. package/dist/Dpapi.mjs +1 -1
  5. package/dist/broker/NativeBrokerPlugin.d.ts +2 -2
  6. package/dist/broker/NativeBrokerPlugin.mjs +35 -18
  7. package/dist/broker/NativeBrokerPlugin.mjs.map +1 -1
  8. package/dist/error/NativeAuthError.d.ts +1 -1
  9. package/dist/error/NativeAuthError.mjs +2 -2
  10. package/dist/error/PersistenceError.mjs +1 -1
  11. package/dist/index.d.ts +12 -12
  12. package/dist/index.mjs +1 -1
  13. package/dist/lib/msal-common/dist/constants/AADServerParamKeys.mjs +7 -0
  14. package/dist/lib/msal-common/dist/constants/AADServerParamKeys.mjs.map +1 -0
  15. package/dist/lib/msal-common/dist/error/AuthError.mjs +27 -0
  16. package/dist/lib/msal-common/dist/error/AuthError.mjs.map +1 -0
  17. package/dist/lib/msal-common/dist/error/ClientAuthError.mjs +81 -0
  18. package/dist/lib/msal-common/dist/error/ClientAuthError.mjs.map +1 -0
  19. package/dist/lib/msal-common/dist/error/ClientAuthErrorCodes.mjs +54 -0
  20. package/dist/lib/msal-common/dist/error/ClientAuthErrorCodes.mjs.map +1 -0
  21. package/dist/lib/msal-common/dist/error/ClientConfigurationError.mjs +51 -0
  22. package/dist/lib/msal-common/dist/error/ClientConfigurationError.mjs.map +1 -0
  23. package/dist/lib/msal-common/dist/error/ClientConfigurationErrorCodes.mjs +32 -0
  24. package/dist/lib/msal-common/dist/error/ClientConfigurationErrorCodes.mjs.map +1 -0
  25. package/dist/lib/msal-common/dist/error/InteractionRequiredAuthError.mjs +24 -0
  26. package/dist/lib/msal-common/dist/error/InteractionRequiredAuthError.mjs.map +1 -0
  27. package/dist/lib/msal-common/dist/error/ServerError.mjs +25 -0
  28. package/dist/lib/msal-common/dist/error/ServerError.mjs.map +1 -0
  29. package/dist/lib/msal-common/dist/logger/Logger.mjs +197 -0
  30. package/dist/lib/msal-common/dist/logger/Logger.mjs.map +1 -0
  31. package/dist/lib/msal-common/dist/telemetry/server/ServerTelemetryManager.mjs +270 -0
  32. package/dist/lib/msal-common/dist/telemetry/server/ServerTelemetryManager.mjs.map +1 -0
  33. package/dist/lib/msal-common/dist/utils/Constants.mjs +124 -0
  34. package/dist/lib/msal-common/dist/utils/Constants.mjs.map +1 -0
  35. package/dist/lock/CrossPlatformLock.d.ts +2 -2
  36. package/dist/lock/CrossPlatformLock.mjs +1 -1
  37. package/dist/packageMetadata.d.ts +1 -1
  38. package/dist/packageMetadata.mjs +2 -2
  39. package/dist/persistence/BasePersistence.d.ts +1 -1
  40. package/dist/persistence/BasePersistence.mjs +1 -1
  41. package/dist/persistence/DataProtectionScope.mjs +1 -1
  42. package/dist/persistence/FilePersistence.d.ts +3 -3
  43. package/dist/persistence/FilePersistence.mjs +2 -2
  44. package/dist/persistence/FilePersistenceWithDataProtection.d.ts +4 -4
  45. package/dist/persistence/FilePersistenceWithDataProtection.mjs +1 -1
  46. package/dist/persistence/IPersistence.d.ts +1 -1
  47. package/dist/persistence/IPersistenceConfiguration.d.ts +2 -2
  48. package/dist/persistence/KeychainPersistence.d.ts +3 -3
  49. package/dist/persistence/KeychainPersistence.mjs +1 -1
  50. package/dist/persistence/LibSecretPersistence.d.ts +3 -3
  51. package/dist/persistence/LibSecretPersistence.mjs +1 -1
  52. package/dist/persistence/PersistenceCachePlugin.d.ts +3 -3
  53. package/dist/persistence/PersistenceCachePlugin.mjs +1 -1
  54. package/dist/persistence/PersistenceCachePlugin.mjs.map +1 -1
  55. package/dist/persistence/PersistenceCreator.d.ts +2 -2
  56. package/dist/persistence/PersistenceCreator.mjs +1 -1
  57. package/dist/utils/Constants.mjs +1 -1
  58. package/dist/utils/Environment.mjs +1 -1
  59. package/dist/utils/TypeGuards.d.ts +1 -1
  60. package/dist/utils/TypeGuards.mjs +1 -1
  61. package/lib/msal-node-extensions.cjs +2238 -0
  62. package/lib/msal-node-extensions.cjs.map +1 -0
  63. package/lib/package.json +1 -0
  64. package/lib/types/Dpapi.d.ts +6 -0
  65. package/lib/types/broker/NativeBrokerPlugin.d.ts +20 -0
  66. package/lib/types/error/NativeAuthError.d.ts +6 -0
  67. package/lib/types/error/PersistenceError.d.ts +57 -0
  68. package/lib/types/index.d.ts +12 -0
  69. package/lib/types/lock/CrossPlatformLock.d.ts +24 -0
  70. package/lib/types/lock/CrossPlatformLockOptions.d.ts +10 -0
  71. package/lib/types/packageMetadata.d.ts +2 -0
  72. package/lib/types/persistence/BasePersistence.d.ts +5 -0
  73. package/{dist/persistence/DataProtectionScope.cjs → lib/types/persistence/DataProtectionScope.d.ts} +5 -15
  74. package/lib/types/persistence/FilePersistence.d.ts +29 -0
  75. package/lib/types/persistence/FilePersistenceWithDataProtection.d.ts +24 -0
  76. package/lib/types/persistence/IPersistence.d.ts +11 -0
  77. package/lib/types/persistence/IPersistenceConfiguration.d.ts +10 -0
  78. package/lib/types/persistence/KeychainPersistence.d.ts +23 -0
  79. package/lib/types/persistence/LibSecretPersistence.d.ts +24 -0
  80. package/lib/types/persistence/PersistenceCachePlugin.d.ts +38 -0
  81. package/lib/types/persistence/PersistenceCreator.d.ts +5 -0
  82. package/lib/types/utils/Constants.d.ts +54 -0
  83. package/lib/types/utils/Environment.d.ts +16 -0
  84. package/lib/types/utils/TypeGuards.d.ts +5 -0
  85. package/package.json +18 -11
  86. package/dist/Dpapi.cjs +0 -31
  87. package/dist/Dpapi.cjs.map +0 -1
  88. package/dist/broker/NativeBrokerPlugin.cjs +0 -426
  89. package/dist/broker/NativeBrokerPlugin.cjs.map +0 -1
  90. package/dist/error/NativeAuthError.cjs +0 -22
  91. package/dist/error/NativeAuthError.cjs.map +0 -1
  92. package/dist/error/PersistenceError.cjs +0 -93
  93. package/dist/error/PersistenceError.cjs.map +0 -1
  94. package/dist/index.cjs +0 -26
  95. package/dist/index.cjs.map +0 -1
  96. package/dist/lock/CrossPlatformLock.cjs +0 -97
  97. package/dist/lock/CrossPlatformLock.cjs.map +0 -1
  98. package/dist/packageMetadata.cjs +0 -11
  99. package/dist/packageMetadata.cjs.map +0 -1
  100. package/dist/persistence/BasePersistence.cjs +0 -38
  101. package/dist/persistence/BasePersistence.cjs.map +0 -1
  102. package/dist/persistence/DataProtectionScope.cjs.map +0 -1
  103. package/dist/persistence/FilePersistence.cjs +0 -175
  104. package/dist/persistence/FilePersistence.cjs.map +0 -1
  105. package/dist/persistence/FilePersistenceWithDataProtection.cjs +0 -92
  106. package/dist/persistence/FilePersistenceWithDataProtection.cjs.map +0 -1
  107. package/dist/persistence/KeychainPersistence.cjs +0 -92
  108. package/dist/persistence/KeychainPersistence.cjs.map +0 -1
  109. package/dist/persistence/LibSecretPersistence.cjs +0 -93
  110. package/dist/persistence/LibSecretPersistence.cjs.map +0 -1
  111. package/dist/persistence/PersistenceCachePlugin.cjs +0 -101
  112. package/dist/persistence/PersistenceCachePlugin.cjs.map +0 -1
  113. package/dist/persistence/PersistenceCreator.cjs +0 -70
  114. package/dist/persistence/PersistenceCreator.cjs.map +0 -1
  115. package/dist/utils/Constants.cjs +0 -66
  116. package/dist/utils/Constants.cjs.map +0 -1
  117. package/dist/utils/Environment.cjs +0 -96
  118. package/dist/utils/Environment.cjs.map +0 -1
  119. package/dist/utils/TypeGuards.cjs +0 -17
  120. package/dist/utils/TypeGuards.cjs.map +0 -1
@@ -0,0 +1,32 @@
1
+ /*! @azure/msal-node-extensions v1.3.0 2024-10-08 */
2
+ 'use strict';
3
+ /*! @azure/msal-common v14.15.0 2024-10-08 */
4
+ /*
5
+ * Copyright (c) Microsoft Corporation. All rights reserved.
6
+ * Licensed under the MIT License.
7
+ */
8
+ const redirectUriEmpty = "redirect_uri_empty";
9
+ const claimsRequestParsingError = "claims_request_parsing_error";
10
+ const authorityUriInsecure = "authority_uri_insecure";
11
+ const urlParseError = "url_parse_error";
12
+ const urlEmptyError = "empty_url_error";
13
+ const emptyInputScopesError = "empty_input_scopes_error";
14
+ const invalidPromptValue = "invalid_prompt_value";
15
+ const invalidClaims = "invalid_claims";
16
+ const tokenRequestEmpty = "token_request_empty";
17
+ const logoutRequestEmpty = "logout_request_empty";
18
+ const invalidCodeChallengeMethod = "invalid_code_challenge_method";
19
+ const pkceParamsMissing = "pkce_params_missing";
20
+ const invalidCloudDiscoveryMetadata = "invalid_cloud_discovery_metadata";
21
+ const invalidAuthorityMetadata = "invalid_authority_metadata";
22
+ const untrustedAuthority = "untrusted_authority";
23
+ const missingSshJwk = "missing_ssh_jwk";
24
+ const missingSshKid = "missing_ssh_kid";
25
+ const missingNonceAuthenticationHeader = "missing_nonce_authentication_header";
26
+ const invalidAuthenticationHeader = "invalid_authentication_header";
27
+ const cannotSetOIDCOptions = "cannot_set_OIDCOptions";
28
+ const cannotAllowNativeBroker = "cannot_allow_native_broker";
29
+ const authorityMismatch = "authority_mismatch";
30
+
31
+ export { authorityMismatch, authorityUriInsecure, cannotAllowNativeBroker, cannotSetOIDCOptions, claimsRequestParsingError, emptyInputScopesError, invalidAuthenticationHeader, invalidAuthorityMetadata, invalidClaims, invalidCloudDiscoveryMetadata, invalidCodeChallengeMethod, invalidPromptValue, logoutRequestEmpty, missingNonceAuthenticationHeader, missingSshJwk, missingSshKid, pkceParamsMissing, redirectUriEmpty, tokenRequestEmpty, untrustedAuthority, urlEmptyError, urlParseError };
32
+ //# sourceMappingURL=ClientConfigurationErrorCodes.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientConfigurationErrorCodes.mjs","sources":["../../../../../../../lib/msal-common/dist/error/ClientConfigurationErrorCodes.mjs"],"sourcesContent":["/*! @azure/msal-common v14.15.0 2024-10-08 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst redirectUriEmpty = \"redirect_uri_empty\";\r\nconst claimsRequestParsingError = \"claims_request_parsing_error\";\r\nconst authorityUriInsecure = \"authority_uri_insecure\";\r\nconst urlParseError = \"url_parse_error\";\r\nconst urlEmptyError = \"empty_url_error\";\r\nconst emptyInputScopesError = \"empty_input_scopes_error\";\r\nconst invalidPromptValue = \"invalid_prompt_value\";\r\nconst invalidClaims = \"invalid_claims\";\r\nconst tokenRequestEmpty = \"token_request_empty\";\r\nconst logoutRequestEmpty = \"logout_request_empty\";\r\nconst invalidCodeChallengeMethod = \"invalid_code_challenge_method\";\r\nconst pkceParamsMissing = \"pkce_params_missing\";\r\nconst invalidCloudDiscoveryMetadata = \"invalid_cloud_discovery_metadata\";\r\nconst invalidAuthorityMetadata = \"invalid_authority_metadata\";\r\nconst untrustedAuthority = \"untrusted_authority\";\r\nconst missingSshJwk = \"missing_ssh_jwk\";\r\nconst missingSshKid = \"missing_ssh_kid\";\r\nconst missingNonceAuthenticationHeader = \"missing_nonce_authentication_header\";\r\nconst invalidAuthenticationHeader = \"invalid_authentication_header\";\r\nconst cannotSetOIDCOptions = \"cannot_set_OIDCOptions\";\r\nconst cannotAllowNativeBroker = \"cannot_allow_native_broker\";\r\nconst authorityMismatch = \"authority_mismatch\";\n\nexport { authorityMismatch, authorityUriInsecure, cannotAllowNativeBroker, cannotSetOIDCOptions, claimsRequestParsingError, emptyInputScopesError, invalidAuthenticationHeader, invalidAuthorityMetadata, invalidClaims, invalidCloudDiscoveryMetadata, invalidCodeChallengeMethod, invalidPromptValue, logoutRequestEmpty, missingNonceAuthenticationHeader, missingSshJwk, missingSshKid, pkceParamsMissing, redirectUriEmpty, tokenRequestEmpty, untrustedAuthority, urlEmptyError, urlParseError };\n//# sourceMappingURL=ClientConfigurationErrorCodes.mjs.map\n"],"names":[],"mappings":";;AAAA;AAEA;AACA;AACA;AACA;AACK,MAAC,gBAAgB,GAAG,qBAAqB;AACzC,MAAC,yBAAyB,GAAG,+BAA+B;AAC5D,MAAC,oBAAoB,GAAG,yBAAyB;AACjD,MAAC,aAAa,GAAG,kBAAkB;AACnC,MAAC,aAAa,GAAG,kBAAkB;AACnC,MAAC,qBAAqB,GAAG,2BAA2B;AACpD,MAAC,kBAAkB,GAAG,uBAAuB;AAC7C,MAAC,aAAa,GAAG,iBAAiB;AAClC,MAAC,iBAAiB,GAAG,sBAAsB;AAC3C,MAAC,kBAAkB,GAAG,uBAAuB;AAC7C,MAAC,0BAA0B,GAAG,gCAAgC;AAC9D,MAAC,iBAAiB,GAAG,sBAAsB;AAC3C,MAAC,6BAA6B,GAAG,mCAAmC;AACpE,MAAC,wBAAwB,GAAG,6BAA6B;AACzD,MAAC,kBAAkB,GAAG,sBAAsB;AAC5C,MAAC,aAAa,GAAG,kBAAkB;AACnC,MAAC,aAAa,GAAG,kBAAkB;AACnC,MAAC,gCAAgC,GAAG,sCAAsC;AAC1E,MAAC,2BAA2B,GAAG,gCAAgC;AAC/D,MAAC,oBAAoB,GAAG,yBAAyB;AACjD,MAAC,uBAAuB,GAAG,6BAA6B;AACxD,MAAC,iBAAiB,GAAG;;;;"}
@@ -0,0 +1,24 @@
1
+ /*! @azure/msal-node-extensions v1.3.0 2024-10-08 */
2
+ 'use strict';
3
+ import { Constants } from '../utils/Constants.mjs';
4
+ import { AuthError } from './AuthError.mjs';
5
+
6
+ /*! @azure/msal-common v14.15.0 2024-10-08 */
7
+ /**
8
+ * Error thrown when user interaction is required.
9
+ */
10
+ class InteractionRequiredAuthError extends AuthError {
11
+ constructor(errorCode, errorMessage, subError, timestamp, traceId, correlationId, claims, errorNo) {
12
+ super(errorCode, errorMessage, subError);
13
+ Object.setPrototypeOf(this, InteractionRequiredAuthError.prototype);
14
+ this.timestamp = timestamp || Constants.EMPTY_STRING;
15
+ this.traceId = traceId || Constants.EMPTY_STRING;
16
+ this.correlationId = correlationId || Constants.EMPTY_STRING;
17
+ this.claims = claims || Constants.EMPTY_STRING;
18
+ this.name = "InteractionRequiredAuthError";
19
+ this.errorNo = errorNo;
20
+ }
21
+ }
22
+
23
+ export { InteractionRequiredAuthError };
24
+ //# sourceMappingURL=InteractionRequiredAuthError.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractionRequiredAuthError.mjs","sources":["../../../../../../../lib/msal-common/dist/error/InteractionRequiredAuthError.mjs"],"sourcesContent":["/*! @azure/msal-common v14.15.0 2024-10-08 */\n'use strict';\nimport { Constants } from '../utils/Constants.mjs';\nimport { AuthError } from './AuthError.mjs';\nimport { noTokensFound, nativeAccountUnavailable, badToken, refreshTokenExpired, interactionRequired, consentRequired, loginRequired } from './InteractionRequiredAuthErrorCodes.mjs';\nimport * as InteractionRequiredAuthErrorCodes from './InteractionRequiredAuthErrorCodes.mjs';\nexport { InteractionRequiredAuthErrorCodes };\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * InteractionRequiredServerErrorMessage contains string constants used by error codes and messages returned by the server indicating interaction is required\r\n */\r\nconst InteractionRequiredServerErrorMessage = [\r\n interactionRequired,\r\n consentRequired,\r\n loginRequired,\r\n badToken,\r\n];\r\nconst InteractionRequiredAuthSubErrorMessage = [\r\n \"message_only\",\r\n \"additional_action\",\r\n \"basic_action\",\r\n \"user_password_expired\",\r\n \"consent_required\",\r\n \"bad_token\",\r\n];\r\nconst InteractionRequiredAuthErrorMessages = {\r\n [noTokensFound]: \"No refresh token found in the cache. Please sign-in.\",\r\n [nativeAccountUnavailable]: \"The requested account is not available in the native broker. It may have been deleted or logged out. Please sign-in again using an interactive API.\",\r\n [refreshTokenExpired]: \"Refresh token has expired.\",\r\n [badToken]: \"Identity provider returned bad_token due to an expired or invalid refresh token. Please invoke an interactive API to resolve.\",\r\n};\r\n/**\r\n * Interaction required errors defined by the SDK\r\n * @deprecated Use InteractionRequiredAuthErrorCodes instead\r\n */\r\nconst InteractionRequiredAuthErrorMessage = {\r\n noTokensFoundError: {\r\n code: noTokensFound,\r\n desc: InteractionRequiredAuthErrorMessages[noTokensFound],\r\n },\r\n native_account_unavailable: {\r\n code: nativeAccountUnavailable,\r\n desc: InteractionRequiredAuthErrorMessages[nativeAccountUnavailable],\r\n },\r\n bad_token: {\r\n code: badToken,\r\n desc: InteractionRequiredAuthErrorMessages[badToken],\r\n },\r\n};\r\n/**\r\n * Error thrown when user interaction is required.\r\n */\r\nclass InteractionRequiredAuthError extends AuthError {\r\n constructor(errorCode, errorMessage, subError, timestamp, traceId, correlationId, claims, errorNo) {\r\n super(errorCode, errorMessage, subError);\r\n Object.setPrototypeOf(this, InteractionRequiredAuthError.prototype);\r\n this.timestamp = timestamp || Constants.EMPTY_STRING;\r\n this.traceId = traceId || Constants.EMPTY_STRING;\r\n this.correlationId = correlationId || Constants.EMPTY_STRING;\r\n this.claims = claims || Constants.EMPTY_STRING;\r\n this.name = \"InteractionRequiredAuthError\";\r\n this.errorNo = errorNo;\r\n }\r\n}\r\n/**\r\n * Helper function used to determine if an error thrown by the server requires interaction to resolve\r\n * @param errorCode\r\n * @param errorString\r\n * @param subError\r\n */\r\nfunction isInteractionRequiredError(errorCode, errorString, subError) {\r\n const isInteractionRequiredErrorCode = !!errorCode &&\r\n InteractionRequiredServerErrorMessage.indexOf(errorCode) > -1;\r\n const isInteractionRequiredSubError = !!subError &&\r\n InteractionRequiredAuthSubErrorMessage.indexOf(subError) > -1;\r\n const isInteractionRequiredErrorDesc = !!errorString &&\r\n InteractionRequiredServerErrorMessage.some((irErrorCode) => {\r\n return errorString.indexOf(irErrorCode) > -1;\r\n });\r\n return (isInteractionRequiredErrorCode ||\r\n isInteractionRequiredErrorDesc ||\r\n isInteractionRequiredSubError);\r\n}\r\n/**\r\n * Creates an InteractionRequiredAuthError\r\n */\r\nfunction createInteractionRequiredAuthError(errorCode) {\r\n return new InteractionRequiredAuthError(errorCode, InteractionRequiredAuthErrorMessages[errorCode]);\r\n}\n\nexport { InteractionRequiredAuthError, InteractionRequiredAuthErrorMessage, InteractionRequiredAuthSubErrorMessage, InteractionRequiredServerErrorMessage, createInteractionRequiredAuthError, isInteractionRequiredError };\n//# sourceMappingURL=InteractionRequiredAuthError.mjs.map\n"],"names":[],"mappings":";;;;;AAAA;AAqDA;AACA;AACA;AACA,MAAM,4BAA4B,SAAS,SAAS,CAAC;AACrD,IAAI,WAAW,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE;AACvG,QAAQ,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;AACjD,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,4BAA4B,CAAC,SAAS,CAAC,CAAC;AAC5E,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,SAAS,CAAC,YAAY,CAAC;AAC7D,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,SAAS,CAAC,YAAY,CAAC;AACzD,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,SAAS,CAAC,YAAY,CAAC;AACrE,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,SAAS,CAAC,YAAY,CAAC;AACvD,QAAQ,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;AACnD,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC/B,KAAK;AACL;;;;"}
@@ -0,0 +1,25 @@
1
+ /*! @azure/msal-node-extensions v1.3.0 2024-10-08 */
2
+ 'use strict';
3
+ import { AuthError } from './AuthError.mjs';
4
+
5
+ /*! @azure/msal-common v14.15.0 2024-10-08 */
6
+
7
+ /*
8
+ * Copyright (c) Microsoft Corporation. All rights reserved.
9
+ * Licensed under the MIT License.
10
+ */
11
+ /**
12
+ * Error thrown when there is an error with the server code, for example, unavailability.
13
+ */
14
+ class ServerError extends AuthError {
15
+ constructor(errorCode, errorMessage, subError, errorNo, status) {
16
+ super(errorCode, errorMessage, subError);
17
+ this.name = "ServerError";
18
+ this.errorNo = errorNo;
19
+ this.status = status;
20
+ Object.setPrototypeOf(this, ServerError.prototype);
21
+ }
22
+ }
23
+
24
+ export { ServerError };
25
+ //# sourceMappingURL=ServerError.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerError.mjs","sources":["../../../../../../../lib/msal-common/dist/error/ServerError.mjs"],"sourcesContent":["/*! @azure/msal-common v14.15.0 2024-10-08 */\n'use strict';\nimport { AuthError } from './AuthError.mjs';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Error thrown when there is an error with the server code, for example, unavailability.\r\n */\r\nclass ServerError extends AuthError {\r\n constructor(errorCode, errorMessage, subError, errorNo, status) {\r\n super(errorCode, errorMessage, subError);\r\n this.name = \"ServerError\";\r\n this.errorNo = errorNo;\r\n this.status = status;\r\n Object.setPrototypeOf(this, ServerError.prototype);\r\n }\r\n}\n\nexport { ServerError };\n//# sourceMappingURL=ServerError.mjs.map\n"],"names":[],"mappings":";;;;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW,SAAS,SAAS,CAAC;AACpC,IAAI,WAAW,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;AACpE,QAAQ,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;AACjD,QAAQ,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;AAClC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC/B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;AAC3D,KAAK;AACL;;;;"}
@@ -0,0 +1,197 @@
1
+ /*! @azure/msal-node-extensions v1.3.0 2024-10-08 */
2
+ 'use strict';
3
+ import { Constants } from '../utils/Constants.mjs';
4
+
5
+ /*! @azure/msal-common v14.15.0 2024-10-08 */
6
+
7
+ /*
8
+ * Copyright (c) Microsoft Corporation. All rights reserved.
9
+ * Licensed under the MIT License.
10
+ */
11
+ /**
12
+ * Log message level.
13
+ */
14
+ var LogLevel;
15
+ (function (LogLevel) {
16
+ LogLevel[LogLevel["Error"] = 0] = "Error";
17
+ LogLevel[LogLevel["Warning"] = 1] = "Warning";
18
+ LogLevel[LogLevel["Info"] = 2] = "Info";
19
+ LogLevel[LogLevel["Verbose"] = 3] = "Verbose";
20
+ LogLevel[LogLevel["Trace"] = 4] = "Trace";
21
+ })(LogLevel || (LogLevel = {}));
22
+ /**
23
+ * Class which facilitates logging of messages to a specific place.
24
+ */
25
+ class Logger {
26
+ constructor(loggerOptions, packageName, packageVersion) {
27
+ // Current log level, defaults to info.
28
+ this.level = LogLevel.Info;
29
+ const defaultLoggerCallback = () => {
30
+ return;
31
+ };
32
+ const setLoggerOptions = loggerOptions || Logger.createDefaultLoggerOptions();
33
+ this.localCallback =
34
+ setLoggerOptions.loggerCallback || defaultLoggerCallback;
35
+ this.piiLoggingEnabled = setLoggerOptions.piiLoggingEnabled || false;
36
+ this.level =
37
+ typeof setLoggerOptions.logLevel === "number"
38
+ ? setLoggerOptions.logLevel
39
+ : LogLevel.Info;
40
+ this.correlationId =
41
+ setLoggerOptions.correlationId || Constants.EMPTY_STRING;
42
+ this.packageName = packageName || Constants.EMPTY_STRING;
43
+ this.packageVersion = packageVersion || Constants.EMPTY_STRING;
44
+ }
45
+ static createDefaultLoggerOptions() {
46
+ return {
47
+ loggerCallback: () => {
48
+ // allow users to not set loggerCallback
49
+ },
50
+ piiLoggingEnabled: false,
51
+ logLevel: LogLevel.Info,
52
+ };
53
+ }
54
+ /**
55
+ * Create new Logger with existing configurations.
56
+ */
57
+ clone(packageName, packageVersion, correlationId) {
58
+ return new Logger({
59
+ loggerCallback: this.localCallback,
60
+ piiLoggingEnabled: this.piiLoggingEnabled,
61
+ logLevel: this.level,
62
+ correlationId: correlationId || this.correlationId,
63
+ }, packageName, packageVersion);
64
+ }
65
+ /**
66
+ * Log message with required options.
67
+ */
68
+ logMessage(logMessage, options) {
69
+ if (options.logLevel > this.level ||
70
+ (!this.piiLoggingEnabled && options.containsPii)) {
71
+ return;
72
+ }
73
+ const timestamp = new Date().toUTCString();
74
+ // Add correlationId to logs if set, correlationId provided on log messages take precedence
75
+ const logHeader = `[${timestamp}] : [${options.correlationId || this.correlationId || ""}]`;
76
+ const log = `${logHeader} : ${this.packageName}@${this.packageVersion} : ${LogLevel[options.logLevel]} - ${logMessage}`;
77
+ // debug(`msal:${LogLevel[options.logLevel]}${options.containsPii ? "-Pii": Constants.EMPTY_STRING}${options.context ? `:${options.context}` : Constants.EMPTY_STRING}`)(logMessage);
78
+ this.executeCallback(options.logLevel, log, options.containsPii || false);
79
+ }
80
+ /**
81
+ * Execute callback with message.
82
+ */
83
+ executeCallback(level, message, containsPii) {
84
+ if (this.localCallback) {
85
+ this.localCallback(level, message, containsPii);
86
+ }
87
+ }
88
+ /**
89
+ * Logs error messages.
90
+ */
91
+ error(message, correlationId) {
92
+ this.logMessage(message, {
93
+ logLevel: LogLevel.Error,
94
+ containsPii: false,
95
+ correlationId: correlationId || Constants.EMPTY_STRING,
96
+ });
97
+ }
98
+ /**
99
+ * Logs error messages with PII.
100
+ */
101
+ errorPii(message, correlationId) {
102
+ this.logMessage(message, {
103
+ logLevel: LogLevel.Error,
104
+ containsPii: true,
105
+ correlationId: correlationId || Constants.EMPTY_STRING,
106
+ });
107
+ }
108
+ /**
109
+ * Logs warning messages.
110
+ */
111
+ warning(message, correlationId) {
112
+ this.logMessage(message, {
113
+ logLevel: LogLevel.Warning,
114
+ containsPii: false,
115
+ correlationId: correlationId || Constants.EMPTY_STRING,
116
+ });
117
+ }
118
+ /**
119
+ * Logs warning messages with PII.
120
+ */
121
+ warningPii(message, correlationId) {
122
+ this.logMessage(message, {
123
+ logLevel: LogLevel.Warning,
124
+ containsPii: true,
125
+ correlationId: correlationId || Constants.EMPTY_STRING,
126
+ });
127
+ }
128
+ /**
129
+ * Logs info messages.
130
+ */
131
+ info(message, correlationId) {
132
+ this.logMessage(message, {
133
+ logLevel: LogLevel.Info,
134
+ containsPii: false,
135
+ correlationId: correlationId || Constants.EMPTY_STRING,
136
+ });
137
+ }
138
+ /**
139
+ * Logs info messages with PII.
140
+ */
141
+ infoPii(message, correlationId) {
142
+ this.logMessage(message, {
143
+ logLevel: LogLevel.Info,
144
+ containsPii: true,
145
+ correlationId: correlationId || Constants.EMPTY_STRING,
146
+ });
147
+ }
148
+ /**
149
+ * Logs verbose messages.
150
+ */
151
+ verbose(message, correlationId) {
152
+ this.logMessage(message, {
153
+ logLevel: LogLevel.Verbose,
154
+ containsPii: false,
155
+ correlationId: correlationId || Constants.EMPTY_STRING,
156
+ });
157
+ }
158
+ /**
159
+ * Logs verbose messages with PII.
160
+ */
161
+ verbosePii(message, correlationId) {
162
+ this.logMessage(message, {
163
+ logLevel: LogLevel.Verbose,
164
+ containsPii: true,
165
+ correlationId: correlationId || Constants.EMPTY_STRING,
166
+ });
167
+ }
168
+ /**
169
+ * Logs trace messages.
170
+ */
171
+ trace(message, correlationId) {
172
+ this.logMessage(message, {
173
+ logLevel: LogLevel.Trace,
174
+ containsPii: false,
175
+ correlationId: correlationId || Constants.EMPTY_STRING,
176
+ });
177
+ }
178
+ /**
179
+ * Logs trace messages with PII.
180
+ */
181
+ tracePii(message, correlationId) {
182
+ this.logMessage(message, {
183
+ logLevel: LogLevel.Trace,
184
+ containsPii: true,
185
+ correlationId: correlationId || Constants.EMPTY_STRING,
186
+ });
187
+ }
188
+ /**
189
+ * Returns whether PII Logging is enabled or not.
190
+ */
191
+ isPiiLoggingEnabled() {
192
+ return this.piiLoggingEnabled || false;
193
+ }
194
+ }
195
+
196
+ export { LogLevel, Logger };
197
+ //# sourceMappingURL=Logger.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.mjs","sources":["../../../../../../../lib/msal-common/dist/logger/Logger.mjs"],"sourcesContent":["/*! @azure/msal-common v14.15.0 2024-10-08 */\n'use strict';\nimport { Constants } from '../utils/Constants.mjs';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Log message level.\r\n */\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"Error\"] = 0] = \"Error\";\r\n LogLevel[LogLevel[\"Warning\"] = 1] = \"Warning\";\r\n LogLevel[LogLevel[\"Info\"] = 2] = \"Info\";\r\n LogLevel[LogLevel[\"Verbose\"] = 3] = \"Verbose\";\r\n LogLevel[LogLevel[\"Trace\"] = 4] = \"Trace\";\r\n})(LogLevel || (LogLevel = {}));\r\n/**\r\n * Class which facilitates logging of messages to a specific place.\r\n */\r\nclass Logger {\r\n constructor(loggerOptions, packageName, packageVersion) {\r\n // Current log level, defaults to info.\r\n this.level = LogLevel.Info;\r\n const defaultLoggerCallback = () => {\r\n return;\r\n };\r\n const setLoggerOptions = loggerOptions || Logger.createDefaultLoggerOptions();\r\n this.localCallback =\r\n setLoggerOptions.loggerCallback || defaultLoggerCallback;\r\n this.piiLoggingEnabled = setLoggerOptions.piiLoggingEnabled || false;\r\n this.level =\r\n typeof setLoggerOptions.logLevel === \"number\"\r\n ? setLoggerOptions.logLevel\r\n : LogLevel.Info;\r\n this.correlationId =\r\n setLoggerOptions.correlationId || Constants.EMPTY_STRING;\r\n this.packageName = packageName || Constants.EMPTY_STRING;\r\n this.packageVersion = packageVersion || Constants.EMPTY_STRING;\r\n }\r\n static createDefaultLoggerOptions() {\r\n return {\r\n loggerCallback: () => {\r\n // allow users to not set loggerCallback\r\n },\r\n piiLoggingEnabled: false,\r\n logLevel: LogLevel.Info,\r\n };\r\n }\r\n /**\r\n * Create new Logger with existing configurations.\r\n */\r\n clone(packageName, packageVersion, correlationId) {\r\n return new Logger({\r\n loggerCallback: this.localCallback,\r\n piiLoggingEnabled: this.piiLoggingEnabled,\r\n logLevel: this.level,\r\n correlationId: correlationId || this.correlationId,\r\n }, packageName, packageVersion);\r\n }\r\n /**\r\n * Log message with required options.\r\n */\r\n logMessage(logMessage, options) {\r\n if (options.logLevel > this.level ||\r\n (!this.piiLoggingEnabled && options.containsPii)) {\r\n return;\r\n }\r\n const timestamp = new Date().toUTCString();\r\n // Add correlationId to logs if set, correlationId provided on log messages take precedence\r\n const logHeader = `[${timestamp}] : [${options.correlationId || this.correlationId || \"\"}]`;\r\n const log = `${logHeader} : ${this.packageName}@${this.packageVersion} : ${LogLevel[options.logLevel]} - ${logMessage}`;\r\n // debug(`msal:${LogLevel[options.logLevel]}${options.containsPii ? \"-Pii\": Constants.EMPTY_STRING}${options.context ? `:${options.context}` : Constants.EMPTY_STRING}`)(logMessage);\r\n this.executeCallback(options.logLevel, log, options.containsPii || false);\r\n }\r\n /**\r\n * Execute callback with message.\r\n */\r\n executeCallback(level, message, containsPii) {\r\n if (this.localCallback) {\r\n this.localCallback(level, message, containsPii);\r\n }\r\n }\r\n /**\r\n * Logs error messages.\r\n */\r\n error(message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Error,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING,\r\n });\r\n }\r\n /**\r\n * Logs error messages with PII.\r\n */\r\n errorPii(message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Error,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING,\r\n });\r\n }\r\n /**\r\n * Logs warning messages.\r\n */\r\n warning(message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Warning,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING,\r\n });\r\n }\r\n /**\r\n * Logs warning messages with PII.\r\n */\r\n warningPii(message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Warning,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING,\r\n });\r\n }\r\n /**\r\n * Logs info messages.\r\n */\r\n info(message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Info,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING,\r\n });\r\n }\r\n /**\r\n * Logs info messages with PII.\r\n */\r\n infoPii(message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Info,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING,\r\n });\r\n }\r\n /**\r\n * Logs verbose messages.\r\n */\r\n verbose(message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Verbose,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING,\r\n });\r\n }\r\n /**\r\n * Logs verbose messages with PII.\r\n */\r\n verbosePii(message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Verbose,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING,\r\n });\r\n }\r\n /**\r\n * Logs trace messages.\r\n */\r\n trace(message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Trace,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING,\r\n });\r\n }\r\n /**\r\n * Logs trace messages with PII.\r\n */\r\n tracePii(message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Trace,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING,\r\n });\r\n }\r\n /**\r\n * Returns whether PII Logging is enabled or not.\r\n */\r\n isPiiLoggingEnabled() {\r\n return this.piiLoggingEnabled || false;\r\n }\r\n}\n\nexport { LogLevel, Logger };\n//# sourceMappingURL=Logger.mjs.map\n"],"names":[],"mappings":";;;;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,SAAS;AACb,CAAC,UAAU,QAAQ,EAAE;AACrB,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;AAC9C,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;AAClD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;AAC5C,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;AAClD,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;AAC9C,CAAC,EAAE,QAAQ,KAAK,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;AAChC;AACA;AACA;AACA,MAAM,MAAM,CAAC;AACb,IAAI,WAAW,CAAC,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE;AAC5D;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC;AACnC,QAAQ,MAAM,qBAAqB,GAAG,MAAM;AAC5C,YAAY,OAAO;AACnB,SAAS,CAAC;AACV,QAAQ,MAAM,gBAAgB,GAAG,aAAa,IAAI,MAAM,CAAC,0BAA0B,EAAE,CAAC;AACtF,QAAQ,IAAI,CAAC,aAAa;AAC1B,YAAY,gBAAgB,CAAC,cAAc,IAAI,qBAAqB,CAAC;AACrE,QAAQ,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,iBAAiB,IAAI,KAAK,CAAC;AAC7E,QAAQ,IAAI,CAAC,KAAK;AAClB,YAAY,OAAO,gBAAgB,CAAC,QAAQ,KAAK,QAAQ;AACzD,kBAAkB,gBAAgB,CAAC,QAAQ;AAC3C,kBAAkB,QAAQ,CAAC,IAAI,CAAC;AAChC,QAAQ,IAAI,CAAC,aAAa;AAC1B,YAAY,gBAAgB,CAAC,aAAa,IAAI,SAAS,CAAC,YAAY,CAAC;AACrE,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,SAAS,CAAC,YAAY,CAAC;AACjE,QAAQ,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,SAAS,CAAC,YAAY,CAAC;AACvE,KAAK;AACL,IAAI,OAAO,0BAA0B,GAAG;AACxC,QAAQ,OAAO;AACf,YAAY,cAAc,EAAE,MAAM;AAClC;AACA,aAAa;AACb,YAAY,iBAAiB,EAAE,KAAK;AACpC,YAAY,QAAQ,EAAE,QAAQ,CAAC,IAAI;AACnC,SAAS,CAAC;AACV,KAAK;AACL;AACA;AACA;AACA,IAAI,KAAK,CAAC,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE;AACtD,QAAQ,OAAO,IAAI,MAAM,CAAC;AAC1B,YAAY,cAAc,EAAE,IAAI,CAAC,aAAa;AAC9C,YAAY,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;AACrD,YAAY,QAAQ,EAAE,IAAI,CAAC,KAAK;AAChC,YAAY,aAAa,EAAE,aAAa,IAAI,IAAI,CAAC,aAAa;AAC9D,SAAS,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;AACxC,KAAK;AACL;AACA;AACA;AACA,IAAI,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,QAAQ,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK;AACzC,aAAa,CAAC,IAAI,CAAC,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;AAC9D,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACnD;AACA,QAAQ,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACpG,QAAQ,MAAM,GAAG,GAAG,CAAC,EAAE,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;AAChI;AACA,QAAQ,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC;AAClF,KAAK;AACL;AACA;AACA;AACA,IAAI,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE;AACjD,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;AAChC,YAAY,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AAC5D,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE;AAClC,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACjC,YAAY,QAAQ,EAAE,QAAQ,CAAC,KAAK;AACpC,YAAY,WAAW,EAAE,KAAK;AAC9B,YAAY,aAAa,EAAE,aAAa,IAAI,SAAS,CAAC,YAAY;AAClE,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE;AACrC,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACjC,YAAY,QAAQ,EAAE,QAAQ,CAAC,KAAK;AACpC,YAAY,WAAW,EAAE,IAAI;AAC7B,YAAY,aAAa,EAAE,aAAa,IAAI,SAAS,CAAC,YAAY;AAClE,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA,IAAI,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE;AACpC,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACjC,YAAY,QAAQ,EAAE,QAAQ,CAAC,OAAO;AACtC,YAAY,WAAW,EAAE,KAAK;AAC9B,YAAY,aAAa,EAAE,aAAa,IAAI,SAAS,CAAC,YAAY;AAClE,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA,IAAI,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE;AACvC,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACjC,YAAY,QAAQ,EAAE,QAAQ,CAAC,OAAO;AACtC,YAAY,WAAW,EAAE,IAAI;AAC7B,YAAY,aAAa,EAAE,aAAa,IAAI,SAAS,CAAC,YAAY;AAClE,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA,IAAI,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE;AACjC,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACjC,YAAY,QAAQ,EAAE,QAAQ,CAAC,IAAI;AACnC,YAAY,WAAW,EAAE,KAAK;AAC9B,YAAY,aAAa,EAAE,aAAa,IAAI,SAAS,CAAC,YAAY;AAClE,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA,IAAI,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE;AACpC,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACjC,YAAY,QAAQ,EAAE,QAAQ,CAAC,IAAI;AACnC,YAAY,WAAW,EAAE,IAAI;AAC7B,YAAY,aAAa,EAAE,aAAa,IAAI,SAAS,CAAC,YAAY;AAClE,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA,IAAI,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE;AACpC,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACjC,YAAY,QAAQ,EAAE,QAAQ,CAAC,OAAO;AACtC,YAAY,WAAW,EAAE,KAAK;AAC9B,YAAY,aAAa,EAAE,aAAa,IAAI,SAAS,CAAC,YAAY;AAClE,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA,IAAI,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE;AACvC,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACjC,YAAY,QAAQ,EAAE,QAAQ,CAAC,OAAO;AACtC,YAAY,WAAW,EAAE,IAAI;AAC7B,YAAY,aAAa,EAAE,aAAa,IAAI,SAAS,CAAC,YAAY;AAClE,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA,IAAI,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE;AAClC,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACjC,YAAY,QAAQ,EAAE,QAAQ,CAAC,KAAK;AACpC,YAAY,WAAW,EAAE,KAAK;AAC9B,YAAY,aAAa,EAAE,aAAa,IAAI,SAAS,CAAC,YAAY;AAClE,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE;AACrC,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACjC,YAAY,QAAQ,EAAE,QAAQ,CAAC,KAAK;AACpC,YAAY,WAAW,EAAE,IAAI;AAC7B,YAAY,aAAa,EAAE,aAAa,IAAI,SAAS,CAAC,YAAY;AAClE,SAAS,CAAC,CAAC;AACX,KAAK;AACL;AACA;AACA;AACA,IAAI,mBAAmB,GAAG;AAC1B,QAAQ,OAAO,IAAI,CAAC,iBAAiB,IAAI,KAAK,CAAC;AAC/C,KAAK;AACL;;;;"}
@@ -0,0 +1,270 @@
1
+ /*! @azure/msal-node-extensions v1.3.0 2024-10-08 */
2
+ 'use strict';
3
+ import { CacheOutcome, Constants, SERVER_TELEM_CONSTANTS, Separators } from '../../utils/Constants.mjs';
4
+ import { AuthError } from '../../error/AuthError.mjs';
5
+
6
+ /*! @azure/msal-common v14.15.0 2024-10-08 */
7
+
8
+ /*
9
+ * Copyright (c) Microsoft Corporation. All rights reserved.
10
+ * Licensed under the MIT License.
11
+ */
12
+ const skuGroupSeparator = ",";
13
+ const skuValueSeparator = "|";
14
+ function makeExtraSkuString(params) {
15
+ const { skus, libraryName, libraryVersion, extensionName, extensionVersion, } = params;
16
+ const skuMap = new Map([
17
+ [0, [libraryName, libraryVersion]],
18
+ [2, [extensionName, extensionVersion]],
19
+ ]);
20
+ let skuArr = [];
21
+ if (skus?.length) {
22
+ skuArr = skus.split(skuGroupSeparator);
23
+ // Ignore invalid input sku param
24
+ if (skuArr.length < 4) {
25
+ return skus;
26
+ }
27
+ }
28
+ else {
29
+ skuArr = Array.from({ length: 4 }, () => skuValueSeparator);
30
+ }
31
+ skuMap.forEach((value, key) => {
32
+ if (value.length === 2 && value[0]?.length && value[1]?.length) {
33
+ setSku({
34
+ skuArr,
35
+ index: key,
36
+ skuName: value[0],
37
+ skuVersion: value[1],
38
+ });
39
+ }
40
+ });
41
+ return skuArr.join(skuGroupSeparator);
42
+ }
43
+ function setSku(params) {
44
+ const { skuArr, index, skuName, skuVersion } = params;
45
+ if (index >= skuArr.length) {
46
+ return;
47
+ }
48
+ skuArr[index] = [skuName, skuVersion].join(skuValueSeparator);
49
+ }
50
+ /** @internal */
51
+ class ServerTelemetryManager {
52
+ constructor(telemetryRequest, cacheManager) {
53
+ this.cacheOutcome = CacheOutcome.NOT_APPLICABLE;
54
+ this.cacheManager = cacheManager;
55
+ this.apiId = telemetryRequest.apiId;
56
+ this.correlationId = telemetryRequest.correlationId;
57
+ this.wrapperSKU = telemetryRequest.wrapperSKU || Constants.EMPTY_STRING;
58
+ this.wrapperVer = telemetryRequest.wrapperVer || Constants.EMPTY_STRING;
59
+ this.telemetryCacheKey =
60
+ SERVER_TELEM_CONSTANTS.CACHE_KEY +
61
+ Separators.CACHE_KEY_SEPARATOR +
62
+ telemetryRequest.clientId;
63
+ }
64
+ /**
65
+ * API to add MSER Telemetry to request
66
+ */
67
+ generateCurrentRequestHeaderValue() {
68
+ const request = `${this.apiId}${SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR}${this.cacheOutcome}`;
69
+ const platformFieldsArr = [this.wrapperSKU, this.wrapperVer];
70
+ const nativeBrokerErrorCode = this.getNativeBrokerErrorCode();
71
+ if (nativeBrokerErrorCode?.length) {
72
+ platformFieldsArr.push(`broker_error=${nativeBrokerErrorCode}`);
73
+ }
74
+ const platformFields = platformFieldsArr.join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);
75
+ const regionDiscoveryFields = this.getRegionDiscoveryFields();
76
+ const requestWithRegionDiscoveryFields = [
77
+ request,
78
+ regionDiscoveryFields,
79
+ ].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);
80
+ return [
81
+ SERVER_TELEM_CONSTANTS.SCHEMA_VERSION,
82
+ requestWithRegionDiscoveryFields,
83
+ platformFields,
84
+ ].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);
85
+ }
86
+ /**
87
+ * API to add MSER Telemetry for the last failed request
88
+ */
89
+ generateLastRequestHeaderValue() {
90
+ const lastRequests = this.getLastRequests();
91
+ const maxErrors = ServerTelemetryManager.maxErrorsToSend(lastRequests);
92
+ const failedRequests = lastRequests.failedRequests
93
+ .slice(0, 2 * maxErrors)
94
+ .join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);
95
+ const errors = lastRequests.errors
96
+ .slice(0, maxErrors)
97
+ .join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);
98
+ const errorCount = lastRequests.errors.length;
99
+ // Indicate whether this header contains all data or partial data
100
+ const overflow = maxErrors < errorCount
101
+ ? SERVER_TELEM_CONSTANTS.OVERFLOW_TRUE
102
+ : SERVER_TELEM_CONSTANTS.OVERFLOW_FALSE;
103
+ const platformFields = [errorCount, overflow].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);
104
+ return [
105
+ SERVER_TELEM_CONSTANTS.SCHEMA_VERSION,
106
+ lastRequests.cacheHits,
107
+ failedRequests,
108
+ errors,
109
+ platformFields,
110
+ ].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);
111
+ }
112
+ /**
113
+ * API to cache token failures for MSER data capture
114
+ * @param error
115
+ */
116
+ cacheFailedRequest(error) {
117
+ const lastRequests = this.getLastRequests();
118
+ if (lastRequests.errors.length >=
119
+ SERVER_TELEM_CONSTANTS.MAX_CACHED_ERRORS) {
120
+ // Remove a cached error to make room, first in first out
121
+ lastRequests.failedRequests.shift(); // apiId
122
+ lastRequests.failedRequests.shift(); // correlationId
123
+ lastRequests.errors.shift();
124
+ }
125
+ lastRequests.failedRequests.push(this.apiId, this.correlationId);
126
+ if (error instanceof Error && !!error && error.toString()) {
127
+ if (error instanceof AuthError) {
128
+ if (error.subError) {
129
+ lastRequests.errors.push(error.subError);
130
+ }
131
+ else if (error.errorCode) {
132
+ lastRequests.errors.push(error.errorCode);
133
+ }
134
+ else {
135
+ lastRequests.errors.push(error.toString());
136
+ }
137
+ }
138
+ else {
139
+ lastRequests.errors.push(error.toString());
140
+ }
141
+ }
142
+ else {
143
+ lastRequests.errors.push(SERVER_TELEM_CONSTANTS.UNKNOWN_ERROR);
144
+ }
145
+ this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);
146
+ return;
147
+ }
148
+ /**
149
+ * Update server telemetry cache entry by incrementing cache hit counter
150
+ */
151
+ incrementCacheHits() {
152
+ const lastRequests = this.getLastRequests();
153
+ lastRequests.cacheHits += 1;
154
+ this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);
155
+ return lastRequests.cacheHits;
156
+ }
157
+ /**
158
+ * Get the server telemetry entity from cache or initialize a new one
159
+ */
160
+ getLastRequests() {
161
+ const initialValue = {
162
+ failedRequests: [],
163
+ errors: [],
164
+ cacheHits: 0,
165
+ };
166
+ const lastRequests = this.cacheManager.getServerTelemetry(this.telemetryCacheKey);
167
+ return lastRequests || initialValue;
168
+ }
169
+ /**
170
+ * Remove server telemetry cache entry
171
+ */
172
+ clearTelemetryCache() {
173
+ const lastRequests = this.getLastRequests();
174
+ const numErrorsFlushed = ServerTelemetryManager.maxErrorsToSend(lastRequests);
175
+ const errorCount = lastRequests.errors.length;
176
+ if (numErrorsFlushed === errorCount) {
177
+ // All errors were sent on last request, clear Telemetry cache
178
+ this.cacheManager.removeItem(this.telemetryCacheKey);
179
+ }
180
+ else {
181
+ // Partial data was flushed to server, construct a new telemetry cache item with errors that were not flushed
182
+ const serverTelemEntity = {
183
+ failedRequests: lastRequests.failedRequests.slice(numErrorsFlushed * 2),
184
+ errors: lastRequests.errors.slice(numErrorsFlushed),
185
+ cacheHits: 0,
186
+ };
187
+ this.cacheManager.setServerTelemetry(this.telemetryCacheKey, serverTelemEntity);
188
+ }
189
+ }
190
+ /**
191
+ * Returns the maximum number of errors that can be flushed to the server in the next network request
192
+ * @param serverTelemetryEntity
193
+ */
194
+ static maxErrorsToSend(serverTelemetryEntity) {
195
+ let i;
196
+ let maxErrors = 0;
197
+ let dataSize = 0;
198
+ const errorCount = serverTelemetryEntity.errors.length;
199
+ for (i = 0; i < errorCount; i++) {
200
+ // failedRequests parameter contains pairs of apiId and correlationId, multiply index by 2 to preserve pairs
201
+ const apiId = serverTelemetryEntity.failedRequests[2 * i] ||
202
+ Constants.EMPTY_STRING;
203
+ const correlationId = serverTelemetryEntity.failedRequests[2 * i + 1] ||
204
+ Constants.EMPTY_STRING;
205
+ const errorCode = serverTelemetryEntity.errors[i] || Constants.EMPTY_STRING;
206
+ // Count number of characters that would be added to header, each character is 1 byte. Add 3 at the end to account for separators
207
+ dataSize +=
208
+ apiId.toString().length +
209
+ correlationId.toString().length +
210
+ errorCode.length +
211
+ 3;
212
+ if (dataSize < SERVER_TELEM_CONSTANTS.MAX_LAST_HEADER_BYTES) {
213
+ // Adding this entry to the header would still keep header size below the limit
214
+ maxErrors += 1;
215
+ }
216
+ else {
217
+ break;
218
+ }
219
+ }
220
+ return maxErrors;
221
+ }
222
+ /**
223
+ * Get the region discovery fields
224
+ *
225
+ * @returns string
226
+ */
227
+ getRegionDiscoveryFields() {
228
+ const regionDiscoveryFields = [];
229
+ regionDiscoveryFields.push(this.regionUsed || Constants.EMPTY_STRING);
230
+ regionDiscoveryFields.push(this.regionSource || Constants.EMPTY_STRING);
231
+ regionDiscoveryFields.push(this.regionOutcome || Constants.EMPTY_STRING);
232
+ return regionDiscoveryFields.join(",");
233
+ }
234
+ /**
235
+ * Update the region discovery metadata
236
+ *
237
+ * @param regionDiscoveryMetadata
238
+ * @returns void
239
+ */
240
+ updateRegionDiscoveryMetadata(regionDiscoveryMetadata) {
241
+ this.regionUsed = regionDiscoveryMetadata.region_used;
242
+ this.regionSource = regionDiscoveryMetadata.region_source;
243
+ this.regionOutcome = regionDiscoveryMetadata.region_outcome;
244
+ }
245
+ /**
246
+ * Set cache outcome
247
+ */
248
+ setCacheOutcome(cacheOutcome) {
249
+ this.cacheOutcome = cacheOutcome;
250
+ }
251
+ setNativeBrokerErrorCode(errorCode) {
252
+ const lastRequests = this.getLastRequests();
253
+ lastRequests.nativeBrokerErrorCode = errorCode;
254
+ this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);
255
+ }
256
+ getNativeBrokerErrorCode() {
257
+ return this.getLastRequests().nativeBrokerErrorCode;
258
+ }
259
+ clearNativeBrokerErrorCode() {
260
+ const lastRequests = this.getLastRequests();
261
+ delete lastRequests.nativeBrokerErrorCode;
262
+ this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);
263
+ }
264
+ static makeExtraSkuString(params) {
265
+ return makeExtraSkuString(params);
266
+ }
267
+ }
268
+
269
+ export { ServerTelemetryManager };
270
+ //# sourceMappingURL=ServerTelemetryManager.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerTelemetryManager.mjs","sources":["../../../../../../../../lib/msal-common/dist/telemetry/server/ServerTelemetryManager.mjs"],"sourcesContent":["/*! @azure/msal-common v14.15.0 2024-10-08 */\n'use strict';\nimport { CacheOutcome, Constants, SERVER_TELEM_CONSTANTS, Separators } from '../../utils/Constants.mjs';\nimport { AuthError } from '../../error/AuthError.mjs';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst skuGroupSeparator = \",\";\r\nconst skuValueSeparator = \"|\";\r\nfunction makeExtraSkuString(params) {\r\n const { skus, libraryName, libraryVersion, extensionName, extensionVersion, } = params;\r\n const skuMap = new Map([\r\n [0, [libraryName, libraryVersion]],\r\n [2, [extensionName, extensionVersion]],\r\n ]);\r\n let skuArr = [];\r\n if (skus?.length) {\r\n skuArr = skus.split(skuGroupSeparator);\r\n // Ignore invalid input sku param\r\n if (skuArr.length < 4) {\r\n return skus;\r\n }\r\n }\r\n else {\r\n skuArr = Array.from({ length: 4 }, () => skuValueSeparator);\r\n }\r\n skuMap.forEach((value, key) => {\r\n if (value.length === 2 && value[0]?.length && value[1]?.length) {\r\n setSku({\r\n skuArr,\r\n index: key,\r\n skuName: value[0],\r\n skuVersion: value[1],\r\n });\r\n }\r\n });\r\n return skuArr.join(skuGroupSeparator);\r\n}\r\nfunction setSku(params) {\r\n const { skuArr, index, skuName, skuVersion } = params;\r\n if (index >= skuArr.length) {\r\n return;\r\n }\r\n skuArr[index] = [skuName, skuVersion].join(skuValueSeparator);\r\n}\r\n/** @internal */\r\nclass ServerTelemetryManager {\r\n constructor(telemetryRequest, cacheManager) {\r\n this.cacheOutcome = CacheOutcome.NOT_APPLICABLE;\r\n this.cacheManager = cacheManager;\r\n this.apiId = telemetryRequest.apiId;\r\n this.correlationId = telemetryRequest.correlationId;\r\n this.wrapperSKU = telemetryRequest.wrapperSKU || Constants.EMPTY_STRING;\r\n this.wrapperVer = telemetryRequest.wrapperVer || Constants.EMPTY_STRING;\r\n this.telemetryCacheKey =\r\n SERVER_TELEM_CONSTANTS.CACHE_KEY +\r\n Separators.CACHE_KEY_SEPARATOR +\r\n telemetryRequest.clientId;\r\n }\r\n /**\r\n * API to add MSER Telemetry to request\r\n */\r\n generateCurrentRequestHeaderValue() {\r\n const request = `${this.apiId}${SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR}${this.cacheOutcome}`;\r\n const platformFieldsArr = [this.wrapperSKU, this.wrapperVer];\r\n const nativeBrokerErrorCode = this.getNativeBrokerErrorCode();\r\n if (nativeBrokerErrorCode?.length) {\r\n platformFieldsArr.push(`broker_error=${nativeBrokerErrorCode}`);\r\n }\r\n const platformFields = platformFieldsArr.join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n const regionDiscoveryFields = this.getRegionDiscoveryFields();\r\n const requestWithRegionDiscoveryFields = [\r\n request,\r\n regionDiscoveryFields,\r\n ].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n return [\r\n SERVER_TELEM_CONSTANTS.SCHEMA_VERSION,\r\n requestWithRegionDiscoveryFields,\r\n platformFields,\r\n ].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n }\r\n /**\r\n * API to add MSER Telemetry for the last failed request\r\n */\r\n generateLastRequestHeaderValue() {\r\n const lastRequests = this.getLastRequests();\r\n const maxErrors = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n const failedRequests = lastRequests.failedRequests\r\n .slice(0, 2 * maxErrors)\r\n .join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n const errors = lastRequests.errors\r\n .slice(0, maxErrors)\r\n .join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n const errorCount = lastRequests.errors.length;\r\n // Indicate whether this header contains all data or partial data\r\n const overflow = maxErrors < errorCount\r\n ? SERVER_TELEM_CONSTANTS.OVERFLOW_TRUE\r\n : SERVER_TELEM_CONSTANTS.OVERFLOW_FALSE;\r\n const platformFields = [errorCount, overflow].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n return [\r\n SERVER_TELEM_CONSTANTS.SCHEMA_VERSION,\r\n lastRequests.cacheHits,\r\n failedRequests,\r\n errors,\r\n platformFields,\r\n ].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n }\r\n /**\r\n * API to cache token failures for MSER data capture\r\n * @param error\r\n */\r\n cacheFailedRequest(error) {\r\n const lastRequests = this.getLastRequests();\r\n if (lastRequests.errors.length >=\r\n SERVER_TELEM_CONSTANTS.MAX_CACHED_ERRORS) {\r\n // Remove a cached error to make room, first in first out\r\n lastRequests.failedRequests.shift(); // apiId\r\n lastRequests.failedRequests.shift(); // correlationId\r\n lastRequests.errors.shift();\r\n }\r\n lastRequests.failedRequests.push(this.apiId, this.correlationId);\r\n if (error instanceof Error && !!error && error.toString()) {\r\n if (error instanceof AuthError) {\r\n if (error.subError) {\r\n lastRequests.errors.push(error.subError);\r\n }\r\n else if (error.errorCode) {\r\n lastRequests.errors.push(error.errorCode);\r\n }\r\n else {\r\n lastRequests.errors.push(error.toString());\r\n }\r\n }\r\n else {\r\n lastRequests.errors.push(error.toString());\r\n }\r\n }\r\n else {\r\n lastRequests.errors.push(SERVER_TELEM_CONSTANTS.UNKNOWN_ERROR);\r\n }\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n return;\r\n }\r\n /**\r\n * Update server telemetry cache entry by incrementing cache hit counter\r\n */\r\n incrementCacheHits() {\r\n const lastRequests = this.getLastRequests();\r\n lastRequests.cacheHits += 1;\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n return lastRequests.cacheHits;\r\n }\r\n /**\r\n * Get the server telemetry entity from cache or initialize a new one\r\n */\r\n getLastRequests() {\r\n const initialValue = {\r\n failedRequests: [],\r\n errors: [],\r\n cacheHits: 0,\r\n };\r\n const lastRequests = this.cacheManager.getServerTelemetry(this.telemetryCacheKey);\r\n return lastRequests || initialValue;\r\n }\r\n /**\r\n * Remove server telemetry cache entry\r\n */\r\n clearTelemetryCache() {\r\n const lastRequests = this.getLastRequests();\r\n const numErrorsFlushed = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n const errorCount = lastRequests.errors.length;\r\n if (numErrorsFlushed === errorCount) {\r\n // All errors were sent on last request, clear Telemetry cache\r\n this.cacheManager.removeItem(this.telemetryCacheKey);\r\n }\r\n else {\r\n // Partial data was flushed to server, construct a new telemetry cache item with errors that were not flushed\r\n const serverTelemEntity = {\r\n failedRequests: lastRequests.failedRequests.slice(numErrorsFlushed * 2),\r\n errors: lastRequests.errors.slice(numErrorsFlushed),\r\n cacheHits: 0,\r\n };\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, serverTelemEntity);\r\n }\r\n }\r\n /**\r\n * Returns the maximum number of errors that can be flushed to the server in the next network request\r\n * @param serverTelemetryEntity\r\n */\r\n static maxErrorsToSend(serverTelemetryEntity) {\r\n let i;\r\n let maxErrors = 0;\r\n let dataSize = 0;\r\n const errorCount = serverTelemetryEntity.errors.length;\r\n for (i = 0; i < errorCount; i++) {\r\n // failedRequests parameter contains pairs of apiId and correlationId, multiply index by 2 to preserve pairs\r\n const apiId = serverTelemetryEntity.failedRequests[2 * i] ||\r\n Constants.EMPTY_STRING;\r\n const correlationId = serverTelemetryEntity.failedRequests[2 * i + 1] ||\r\n Constants.EMPTY_STRING;\r\n const errorCode = serverTelemetryEntity.errors[i] || Constants.EMPTY_STRING;\r\n // Count number of characters that would be added to header, each character is 1 byte. Add 3 at the end to account for separators\r\n dataSize +=\r\n apiId.toString().length +\r\n correlationId.toString().length +\r\n errorCode.length +\r\n 3;\r\n if (dataSize < SERVER_TELEM_CONSTANTS.MAX_LAST_HEADER_BYTES) {\r\n // Adding this entry to the header would still keep header size below the limit\r\n maxErrors += 1;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n return maxErrors;\r\n }\r\n /**\r\n * Get the region discovery fields\r\n *\r\n * @returns string\r\n */\r\n getRegionDiscoveryFields() {\r\n const regionDiscoveryFields = [];\r\n regionDiscoveryFields.push(this.regionUsed || Constants.EMPTY_STRING);\r\n regionDiscoveryFields.push(this.regionSource || Constants.EMPTY_STRING);\r\n regionDiscoveryFields.push(this.regionOutcome || Constants.EMPTY_STRING);\r\n return regionDiscoveryFields.join(\",\");\r\n }\r\n /**\r\n * Update the region discovery metadata\r\n *\r\n * @param regionDiscoveryMetadata\r\n * @returns void\r\n */\r\n updateRegionDiscoveryMetadata(regionDiscoveryMetadata) {\r\n this.regionUsed = regionDiscoveryMetadata.region_used;\r\n this.regionSource = regionDiscoveryMetadata.region_source;\r\n this.regionOutcome = regionDiscoveryMetadata.region_outcome;\r\n }\r\n /**\r\n * Set cache outcome\r\n */\r\n setCacheOutcome(cacheOutcome) {\r\n this.cacheOutcome = cacheOutcome;\r\n }\r\n setNativeBrokerErrorCode(errorCode) {\r\n const lastRequests = this.getLastRequests();\r\n lastRequests.nativeBrokerErrorCode = errorCode;\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n }\r\n getNativeBrokerErrorCode() {\r\n return this.getLastRequests().nativeBrokerErrorCode;\r\n }\r\n clearNativeBrokerErrorCode() {\r\n const lastRequests = this.getLastRequests();\r\n delete lastRequests.nativeBrokerErrorCode;\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n }\r\n static makeExtraSkuString(params) {\r\n return makeExtraSkuString(params);\r\n }\r\n}\n\nexport { ServerTelemetryManager };\n//# sourceMappingURL=ServerTelemetryManager.mjs.map\n"],"names":[],"mappings":"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"}