@microsoft/managed-apps-cli 0.9.2 → 0.11.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 (188) hide show
  1. package/README.md +18 -342
  2. package/dist/ArgumentProvider.d.ts.map +1 -1
  3. package/dist/ArgumentProvider.js +8 -1
  4. package/dist/ArgumentProvider.js.map +1 -1
  5. package/dist/Authentication/NodeMsalAuthenticationProvider.js +20 -1
  6. package/dist/Authentication/NodeMsalAuthenticationProvider.js.map +1 -1
  7. package/dist/Cli.d.ts.map +1 -1
  8. package/dist/Cli.js +15 -3
  9. package/dist/Cli.js.map +1 -1
  10. package/dist/Constants/CommandRegistry.d.ts +1 -2
  11. package/dist/Constants/CommandRegistry.d.ts.map +1 -1
  12. package/dist/Constants/CommandRegistry.js +26 -45
  13. package/dist/Constants/CommandRegistry.js.map +1 -1
  14. package/dist/Constants/HelpStrings.d.ts +12 -8
  15. package/dist/Constants/HelpStrings.d.ts.map +1 -1
  16. package/dist/Constants/HelpStrings.js +98 -80
  17. package/dist/Constants/HelpStrings.js.map +1 -1
  18. package/dist/Errors/GitHubErrorMap.d.ts +43 -14
  19. package/dist/Errors/GitHubErrorMap.d.ts.map +1 -1
  20. package/dist/Errors/GitHubErrorMap.js +189 -147
  21. package/dist/Errors/GitHubErrorMap.js.map +1 -1
  22. package/dist/Logger/CliLogger.d.ts +2 -0
  23. package/dist/Logger/CliLogger.d.ts.map +1 -1
  24. package/dist/Logger/CliLogger.js +12 -3
  25. package/dist/Logger/CliLogger.js.map +1 -1
  26. package/dist/Logger/ConsoleWriter.d.ts +2 -0
  27. package/dist/Logger/ConsoleWriter.d.ts.map +1 -1
  28. package/dist/Logger/ConsoleWriter.js +17 -7
  29. package/dist/Logger/ConsoleWriter.js.map +1 -1
  30. package/dist/Types/Argument.types.d.ts +1 -0
  31. package/dist/Types/Argument.types.d.ts.map +1 -1
  32. package/dist/Types/Command.types.d.ts +6 -0
  33. package/dist/Types/Command.types.d.ts.map +1 -1
  34. package/dist/Types/Command.types.js +8 -0
  35. package/dist/Types/Command.types.js.map +1 -1
  36. package/dist/Utils/BuildVerbDescriptionTable.d.ts.map +1 -1
  37. package/dist/Utils/BuildVerbDescriptionTable.js +6 -2
  38. package/dist/Utils/BuildVerbDescriptionTable.js.map +1 -1
  39. package/dist/Utils/ConnectorIds.d.ts +12 -0
  40. package/dist/Utils/ConnectorIds.d.ts.map +1 -0
  41. package/dist/Utils/ConnectorIds.js +20 -0
  42. package/dist/Utils/ConnectorIds.js.map +1 -0
  43. package/dist/Utils/DcfRecovery.d.ts +7 -7
  44. package/dist/Utils/DcfRecovery.d.ts.map +1 -1
  45. package/dist/Utils/DcfRecovery.js +17 -37
  46. package/dist/Utils/DcfRecovery.js.map +1 -1
  47. package/dist/Utils/DownloadTemplate.d.ts +45 -0
  48. package/dist/Utils/DownloadTemplate.d.ts.map +1 -0
  49. package/dist/Utils/DownloadTemplate.js +161 -0
  50. package/dist/Utils/DownloadTemplate.js.map +1 -0
  51. package/dist/Utils/EnvVars.d.ts +1 -1
  52. package/dist/Utils/EnvVars.d.ts.map +1 -1
  53. package/dist/Utils/EnvVars.js.map +1 -1
  54. package/dist/Utils/EnvironmentRoutingUtils.d.ts +20 -1
  55. package/dist/Utils/EnvironmentRoutingUtils.d.ts.map +1 -1
  56. package/dist/Utils/EnvironmentRoutingUtils.js +78 -3
  57. package/dist/Utils/EnvironmentRoutingUtils.js.map +1 -1
  58. package/dist/Utils/GitErrorClassifier.d.ts +40 -0
  59. package/dist/Utils/GitErrorClassifier.d.ts.map +1 -0
  60. package/dist/Utils/GitErrorClassifier.js +120 -0
  61. package/dist/Utils/GitErrorClassifier.js.map +1 -0
  62. package/dist/Utils/GitRunner.d.ts +107 -0
  63. package/dist/Utils/GitRunner.d.ts.map +1 -0
  64. package/dist/Utils/GitRunner.js +89 -0
  65. package/dist/Utils/GitRunner.js.map +1 -0
  66. package/dist/Utils/GitUtils.d.ts +12 -0
  67. package/dist/Utils/GitUtils.d.ts.map +1 -1
  68. package/dist/Utils/GitUtils.js +83 -20
  69. package/dist/Utils/GitUtils.js.map +1 -1
  70. package/dist/Utils/GitVersionChecker.d.ts +38 -0
  71. package/dist/Utils/GitVersionChecker.d.ts.map +1 -0
  72. package/dist/Utils/GitVersionChecker.js +64 -0
  73. package/dist/Utils/GitVersionChecker.js.map +1 -0
  74. package/dist/Utils/MaafAppConfig.d.ts +22 -0
  75. package/dist/Utils/MaafAppConfig.d.ts.map +1 -0
  76. package/dist/Utils/MaafAppConfig.js +32 -0
  77. package/dist/Utils/MaafAppConfig.js.map +1 -0
  78. package/dist/Utils/NodeVersionChecker.d.ts +3 -6
  79. package/dist/Utils/NodeVersionChecker.d.ts.map +1 -1
  80. package/dist/Utils/NodeVersionChecker.js +9 -26
  81. package/dist/Utils/NodeVersionChecker.js.map +1 -1
  82. package/dist/Utils/Paging.d.ts +6 -0
  83. package/dist/Utils/Paging.d.ts.map +1 -1
  84. package/dist/Utils/Paging.js +36 -1
  85. package/dist/Utils/Paging.js.map +1 -1
  86. package/dist/Utils/PinCli.d.ts +28 -0
  87. package/dist/Utils/PinCli.d.ts.map +1 -0
  88. package/dist/Utils/PinCli.js +58 -0
  89. package/dist/Utils/PinCli.js.map +1 -0
  90. package/dist/Utils/RepoDetails.d.ts +29 -0
  91. package/dist/Utils/RepoDetails.d.ts.map +1 -0
  92. package/dist/Utils/RepoDetails.js +37 -0
  93. package/dist/Utils/RepoDetails.js.map +1 -0
  94. package/dist/Utils/RepoOption.d.ts +35 -0
  95. package/dist/Utils/RepoOption.d.ts.map +1 -0
  96. package/dist/Utils/RepoOption.js +36 -0
  97. package/dist/Utils/RepoOption.js.map +1 -0
  98. package/dist/Utils/ResolveCommand.d.ts.map +1 -1
  99. package/dist/Utils/ResolveCommand.js +6 -4
  100. package/dist/Utils/ResolveCommand.js.map +1 -1
  101. package/dist/Utils/Spinner.d.ts.map +1 -1
  102. package/dist/Utils/Spinner.js +3 -0
  103. package/dist/Utils/Spinner.js.map +1 -1
  104. package/dist/Verbs/AddAction.js +6 -6
  105. package/dist/Verbs/AddAction.js.map +1 -1
  106. package/dist/Verbs/AddConnector.d.ts +6 -4
  107. package/dist/Verbs/AddConnector.d.ts.map +1 -1
  108. package/dist/Verbs/AddConnector.js +54 -14
  109. package/dist/Verbs/AddConnector.js.map +1 -1
  110. package/dist/Verbs/AddConnectorFlows.d.ts +29 -16
  111. package/dist/Verbs/AddConnectorFlows.d.ts.map +1 -1
  112. package/dist/Verbs/AddConnectorFlows.js +73 -25
  113. package/dist/Verbs/AddConnectorFlows.js.map +1 -1
  114. package/dist/Verbs/AddDataSource.d.ts +3 -4
  115. package/dist/Verbs/AddDataSource.d.ts.map +1 -1
  116. package/dist/Verbs/AddDataSource.js +9 -20
  117. package/dist/Verbs/AddDataSource.js.map +1 -1
  118. package/dist/Verbs/AddTable.js +7 -7
  119. package/dist/Verbs/AddTable.js.map +1 -1
  120. package/dist/Verbs/AuthStatus.d.ts.map +1 -1
  121. package/dist/Verbs/AuthStatus.js +7 -4
  122. package/dist/Verbs/AuthStatus.js.map +1 -1
  123. package/dist/Verbs/BuildMaafApp.js +1 -1
  124. package/dist/Verbs/BuildMaafApp.js.map +1 -1
  125. package/dist/Verbs/ConnectorHelpers.d.ts +5 -4
  126. package/dist/Verbs/ConnectorHelpers.d.ts.map +1 -1
  127. package/dist/Verbs/ConnectorHelpers.js +14 -9
  128. package/dist/Verbs/ConnectorHelpers.js.map +1 -1
  129. package/dist/Verbs/CreateMaafApp.d.ts +25 -42
  130. package/dist/Verbs/CreateMaafApp.d.ts.map +1 -1
  131. package/dist/Verbs/CreateMaafApp.js +346 -268
  132. package/dist/Verbs/CreateMaafApp.js.map +1 -1
  133. package/dist/Verbs/DeployMaafApp.d.ts.map +1 -1
  134. package/dist/Verbs/DeployMaafApp.js +4 -4
  135. package/dist/Verbs/DeployMaafApp.js.map +1 -1
  136. package/dist/Verbs/Dev.js +1 -1
  137. package/dist/Verbs/Dev.js.map +1 -1
  138. package/dist/Verbs/GetMaafApp.d.ts.map +1 -1
  139. package/dist/Verbs/GetMaafApp.js +10 -0
  140. package/dist/Verbs/GetMaafApp.js.map +1 -1
  141. package/dist/Verbs/GetMaafBuildStatus.d.ts.map +1 -1
  142. package/dist/Verbs/GetMaafBuildStatus.js +52 -3
  143. package/dist/Verbs/GetMaafBuildStatus.js.map +1 -1
  144. package/dist/Verbs/GetSettings.js +1 -1
  145. package/dist/Verbs/GetSettings.js.map +1 -1
  146. package/dist/Verbs/Init.d.ts.map +1 -1
  147. package/dist/Verbs/Init.js +183 -60
  148. package/dist/Verbs/Init.js.map +1 -1
  149. package/dist/Verbs/ListConnectorActions.js +12 -9
  150. package/dist/Verbs/ListConnectorActions.js.map +1 -1
  151. package/dist/Verbs/ListConnectors.d.ts.map +1 -1
  152. package/dist/Verbs/ListConnectors.js +3 -2
  153. package/dist/Verbs/ListConnectors.js.map +1 -1
  154. package/dist/Verbs/ListMaafApps.js +3 -3
  155. package/dist/Verbs/ListMaafApps.js.map +1 -1
  156. package/dist/Verbs/MaafAppPermissions.d.ts.map +1 -1
  157. package/dist/Verbs/MaafAppPermissions.js +89 -17
  158. package/dist/Verbs/MaafAppPermissions.js.map +1 -1
  159. package/dist/Verbs/Pack.d.ts +1 -1
  160. package/dist/Verbs/RefreshDataSource.js +1 -1
  161. package/dist/Verbs/RefreshDataSource.js.map +1 -1
  162. package/dist/Verbs/RefreshGitAuth.d.ts.map +1 -1
  163. package/dist/Verbs/RefreshGitAuth.js +3 -15
  164. package/dist/Verbs/RefreshGitAuth.js.map +1 -1
  165. package/dist/Verbs/{DeleteDataSource.d.ts → RemoveDataSource.d.ts} +2 -2
  166. package/dist/Verbs/RemoveDataSource.d.ts.map +1 -0
  167. package/dist/Verbs/RemoveDataSource.js +158 -0
  168. package/dist/Verbs/RemoveDataSource.js.map +1 -0
  169. package/dist/Verbs/SetSetting.js +2 -2
  170. package/dist/Verbs/SetSetting.js.map +1 -1
  171. package/dist/Verbs/ShareLinkList.js +1 -1
  172. package/dist/Verbs/ShareLinkList.js.map +1 -1
  173. package/dist/Verbs/ShowMaafApp.d.ts +6 -0
  174. package/dist/Verbs/ShowMaafApp.d.ts.map +1 -1
  175. package/dist/Verbs/ShowMaafApp.js +10 -2
  176. package/dist/Verbs/ShowMaafApp.js.map +1 -1
  177. package/dist/Verbs/VerbConstants.d.ts +20 -23
  178. package/dist/Verbs/VerbConstants.d.ts.map +1 -1
  179. package/dist/Verbs/VerbConstants.js +20 -23
  180. package/dist/Verbs/VerbConstants.js.map +1 -1
  181. package/dist/Verbs/index.d.ts +1 -1
  182. package/dist/Verbs/index.d.ts.map +1 -1
  183. package/dist/Verbs/index.js +1 -1
  184. package/dist/Verbs/index.js.map +1 -1
  185. package/package.json +11 -9
  186. package/dist/Verbs/DeleteDataSource.d.ts.map +0 -1
  187. package/dist/Verbs/DeleteDataSource.js +0 -105
  188. package/dist/Verbs/DeleteDataSource.js.map +0 -1
@@ -2,193 +2,235 @@
2
2
  * Copyright (C) Microsoft Corporation. All rights reserved.
3
3
  */
4
4
  /**
5
- * Maps structured server error codes from GRS into CLI-facing {@link AppError}
6
- * subclasses with user-actionable wording. The mapping table mirrors the
7
- * server error catalog; keep this file in lock-step with the GRS service contract.
5
+ * Maps structured GRS server error codes onto CLI-facing {@link AppError}
6
+ * subclasses. The server is the source of truth for human-readable text:
7
+ * we pass `payload.message` through verbatim for the 13 codes in
8
+ * {@link mapGitHubServerErrorToCliError}'s switch and the 5 codes recognized
9
+ * by {@link matchGitHubAuthError} (3 of which overlap with the switch). The
10
+ * AppError subclass we choose only determines the CLI exit code — wording
11
+ * is owned by GRS so it can be updated server-side without a CLI release.
8
12
  *
9
- * Two entry points:
10
- * - {@link mapGitHubServerErrorToCliError} call from a verb's catch block
11
- * after a {@link GrsServerError}; returns `null` for unrecognized codes
12
- * so the caller can fall back to its default error path.
13
- * - {@link matchGitHubAuthError} used by catch-and-retry callers (e.g.
14
- * `app build` re-running DCF on a 401) to detect the recoverable
15
- * mapping-error codes (`GitHubMappingMissing`, `GitHubMappingExpired`,
16
- * `GitHubMappingStale`) regardless of whether the error came back as a
17
- * {@link GrsServerError} or a legacy plain {@link Error}.
13
+ * One intentional exception to the passthrough contract: if a recognized
14
+ * code arrives with an empty / whitespace-only / missing `message`,
15
+ * {@link mapGitHubServerErrorToCliError} returns `null` rather than
16
+ * constructing an AppError with an empty body. Callers (e.g. the top-level
17
+ * CLI catch) use `?? rawErr` so the original error bubbles up untouched —
18
+ * preferable to swallowing it behind a blank typed error.
19
+ *
20
+ * Three entry points:
21
+ * - {@link mapGitHubServerErrorToCliError} given a parsed payload, return
22
+ * the mapped AppError (or null for unrecognized codes / empty messages).
23
+ * - {@link formatServerError} — given an arbitrary thrown value, detect a
24
+ * recognized GRS envelope inside (GrsServerError, HttpClientError body, or
25
+ * a plain Error whose message embeds the JSON envelope) and return the
26
+ * mapped AppError. Wired into the global Cli.boot catch. Values that are
27
+ * already an {@link AppError} (e.g. errors thrown directly by a verb) are
28
+ * passed through untouched — we return `null` so the caller's `?? rawErr`
29
+ * keeps the original typed error rather than risking the greedy
30
+ * `\{[\s\S]*\}` regex matching braces inside an existing message.
31
+ * - {@link matchGitHubAuthError} — used by the DCF auto-recovery path to
32
+ * detect the recoverable mapping-error codes
33
+ * ({@link RECOVERABLE_MAPPING_CODES}).
18
34
  */
19
35
  import { GrsServerError } from '@microsoft/managed-apps-actions';
20
- import { parseRemoteUrl } from '../Utils/RepoUrl.js';
21
- import { AuthenticationError, ConfigurationError, NetworkError, UsageError, } from './CliError.js';
36
+ import { HttpClientError } from '@microsoft/managed-apps-common/services';
37
+ import { AppError, AuthenticationError, ConfigurationError, NetworkError, UsageError, } from './CliError.js';
22
38
  /**
23
- * Map a structured server error code to a CLI-facing {@link AppError}.
39
+ * Server error codes that signal a recoverable GitHub mapping problem the
40
+ * CLI can resolve in-process via the Device Code Flow (DCF) auto-recovery
41
+ * path. {@link matchGitHubAuthError} uses this tuple to gate dispatch into
42
+ * the verb's catch-and-retry flow.
43
+ */
44
+ const RECOVERABLE_MAPPING_CODES = [
45
+ 'GitHubMappingMissing',
46
+ 'GitHubMappingExpired',
47
+ 'GitHubMappingStale',
48
+ ];
49
+ function isRecoverableMappingCode(code) {
50
+ return (typeof code === 'string' && RECOVERABLE_MAPPING_CODES.includes(code));
51
+ }
52
+ /**
53
+ * Map a structured server error payload to a CLI-facing {@link AppError}.
54
+ * The AppError subclass selects the CLI exit code; the message is the
55
+ * server-supplied `payload.message` passed through verbatim (server is the
56
+ * source of truth for user-facing wording on these codes).
57
+ *
24
58
  * Returns `null` for codes the CLI doesn't recognize so callers can fall back
25
59
  * to generic error handling.
26
60
  */
27
- export function mapGitHubServerErrorToCliError(payload, context) {
61
+ export function mapGitHubServerErrorToCliError(payload) {
28
62
  const code = payload.code;
29
63
  if (!code)
30
64
  return null;
31
- const { host, ownerRepo } = parseRepoContext(context.repoUrl);
32
- const details = payload.details ?? {};
65
+ // The server message is the source of truth. If it's missing or
66
+ // whitespace-only, return null so the caller's `?? rawErr` keeps the
67
+ // original (informative) error rather than replacing it with an AppError
68
+ // that has an empty message.
69
+ const message = payload.message;
70
+ if (!message || !message.trim())
71
+ return null;
33
72
  switch (code) {
73
+ // --- Authentication (exit 3) ----------------------------------------
34
74
  case 'GitHubMappingMissing':
35
- return new AuthenticationError(`Your GitHub identity isn't established for ${ownerRepo}. ` +
36
- `Run \`ms git auth refresh --repo ${host}/${ownerRepo}\` and retry.`);
37
75
  case 'GitHubMappingExpired':
38
- return new AuthenticationError(`Your GitHub authentication for ${ownerRepo} has expired. ` +
39
- `Run \`ms git auth refresh --repo ${host}/${ownerRepo}\` to refresh.`);
40
76
  case 'GitHubMappingStale':
41
- return new AuthenticationError(`Your stored GitHub identity for ${ownerRepo} no longer matches your GitHub account ` +
42
- `(it may have been renamed or reassigned). Run \`ms git auth refresh --repo ${host}/${ownerRepo}\` to refresh.`);
43
- case 'GitHubAppNotInstalled': {
44
- const appName = stringDetail(details, 'appName') ?? '<app-name>';
45
- return new ConfigurationError(`The Managed Apps GitHub App isn't installed on the org owning ${ownerRepo}. ` +
46
- `Ask an admin to install it: https://${host}/apps/${appName}/installations/new`);
47
- }
48
77
  case 'GitHubUserLacksAccess':
49
- return new AuthenticationError(`Your GitHub account doesn't have access to ${ownerRepo}. ` +
50
- `Ask the repository admin to grant you access.`);
51
- case 'GitHubUserLacksRequiredLevel': {
52
- const minLevel = stringDetail(details, 'minLevel') ?? 'a higher level of';
53
- const actualLevel = stringDetail(details, 'actualLevel') ?? 'lower';
54
- return new AuthenticationError(`Operation requires ${minLevel} access on ${ownerRepo}; you have ${actualLevel}.`);
55
- }
56
- case 'GitHubRepoArchived':
57
- return new UsageError(`${ownerRepo} is archived. Unarchive it before continuing.`);
58
- case 'GitHubInstallationSuspended':
59
- return new ConfigurationError(`The Managed Apps GitHub App installation for the org owning ${ownerRepo} is suspended. ` +
60
- `Ask an admin to unsuspend it.`);
61
- case 'GitHubAuthSessionExpired': {
62
- const expiresIn = numericDetail(details, 'expiresIn');
63
- const window = expiresIn !== undefined ? `${expiresIn} seconds` : 'the displayed time window';
64
- return new AuthenticationError(`Authentication session expired before completion. Re-run the command and complete ` +
65
- `the GitHub sign-in within ${window}.`);
66
- }
78
+ case 'GitHubUserLacksRequiredLevel':
79
+ case 'GitHubAuthSessionExpired':
67
80
  case 'GitHubAuthSessionNotFound':
68
- return new AuthenticationError('Authentication session was not found (the server may have restarted). Re-run the command.');
69
81
  case 'GitHubAuthDenied':
70
- return new AuthenticationError("You declined to authorize the Managed Apps GitHub App. The repository binding can't proceed without authorization.");
71
82
  case 'GitHubAuthCancelled':
72
- // Surfaced when the user hits Ctrl+C / SIGINT during the polling loop.
73
- // Routed to AuthenticationError for consistent exitCode (3) with the
74
- // other auth-flow terminations.
75
- return new AuthenticationError('Authentication cancelled.');
76
- case 'GitHubRateLimited': {
77
- const retryAfter = numericDetail(details, 'retryAfterSeconds');
78
- const window = retryAfter !== undefined ? `${retryAfter} seconds` : 'a few minutes';
79
- return new NetworkError(`GitHub rate limit reached. Try again in ${window}.`);
80
- }
81
- case 'GitHubInvalidRepoUrl': {
82
- // Sanitized rendering: never interpolate the raw user-supplied URL —
83
- // it may carry userinfo credentials (e.g. https://user:token@host/...).
84
- // parseRepoContext already extracts a credential-free `host` + `ownerRepo`;
85
- // when parsing didn't yield clean components, fall back to a neutral
86
- // placeholder rather than echoing the raw input.
87
- const safeUrl = host !== '<tenant>.ghe.com' && ownerRepo !== '<owner>/<repo>'
88
- ? `https://${host}/${ownerRepo}`
89
- : 'The supplied repository URL';
90
- return new UsageError(`${safeUrl} is not a valid GitHub repository URL. The server expects an https:// ` +
91
- `URL on a *.ghe.com tenant (e.g. 'https://contoso.ghe.com/<owner>/<repo>') or ` +
92
- `'https://github.com/<owner>/<repo>'.`);
93
- }
94
- case 'GitHubUpstreamError': {
95
- // Upstream errors carry server diagnostics (e.g. Key Vault failures, GitHub
96
- // API responses) that are the only useful diagnostic for the user. Surface
97
- // the underlying message verbatim rather than swallowing it.
98
- const detail = payload.message?.trim();
99
- return new NetworkError(detail
100
- ? `GitHub returned an unexpected error: ${detail}`
101
- : 'GitHub returned an unexpected error. Try again.');
102
- }
83
+ return new AuthenticationError(message);
84
+ // --- Configuration (exit 4) -----------------------------------------
85
+ case 'GitHubAppNotInstalled':
86
+ case 'GitHubInstallationSuspended':
87
+ return new ConfigurationError(message);
88
+ // --- Network (exit 5) -----------------------------------------------
89
+ case 'GitHubRateLimited':
90
+ case 'GitHubEvaluationError':
91
+ case 'GitHubUpstreamError':
92
+ return new NetworkError(message);
93
+ // --- Usage (exit 2) -------------------------------------------------
94
+ case 'GitHubRepoArchived':
95
+ case 'GitHubRepoNotEnterprise':
96
+ case 'GitHubRepoNotFound':
97
+ return new UsageError(message);
103
98
  default:
104
99
  return null;
105
100
  }
106
101
  }
102
+ /**
103
+ * Inspect an arbitrary thrown value and, if it carries a recognized GRS
104
+ * envelope, return the mapped {@link AppError}. Returns `null` otherwise.
105
+ *
106
+ * Accepts:
107
+ * - {@link GrsServerError} — direct field access.
108
+ * - {@link HttpClientError} — parse `body` as JSON for `error.code|message`.
109
+ * - Plain {@link Error} whose `.message` embeds `{"error":{...}}` (legacy
110
+ * pre-`allowErrorResponse` path).
111
+ *
112
+ * Intended for the top-level CLI catch so all verbs get envelope handling for
113
+ * free without each having to special-case GrsServerError.
114
+ */
115
+ export function formatServerError(error) {
116
+ // If the thrown value is already a CLI-typed AppError (e.g. a verb threw
117
+ // UsageError directly, or this function was previously invoked and the
118
+ // mapped error was re-thrown), don't try to re-parse it. The plain-Error
119
+ // branch's greedy `\{[\s\S]*\}` regex would otherwise risk matching
120
+ // unintended braces inside an existing message. Returning null here lets
121
+ // the top-level catch's `?? rawErr` fall through to the original AppError
122
+ // unchanged.
123
+ if (error instanceof AppError)
124
+ return null;
125
+ const payload = extractServerErrorPayload(error);
126
+ if (!payload)
127
+ return null;
128
+ return mapGitHubServerErrorToCliError(payload);
129
+ }
107
130
  /**
108
131
  * Inspect an unknown error and decide whether the CLI should run the DCF
109
132
  * recovery flow (i.e. the verb's catch-and-retry path). Returns the parsed
110
133
  * payload + matched code, or `null` if the error is unrelated.
111
134
  *
112
135
  * Matches:
113
- * - `GrsServerError` with `code === 'GitHubMappingMissing' | 'GitHubMappingExpired' | 'GitHubMappingStale'`
114
- * - A plain `Error` with `.status === 401` whose message is JSON containing
115
- * `error.code` of one of the above values (legacy path before catch-and-retry
116
- * wires `allowErrorResponse` everywhere).
136
+ * - `GrsServerError` with `code` in {@link RECOVERABLE_MAPPING_CODES}
137
+ * (status accepted as-is from the typed envelope).
138
+ * - Any other shape recognized by {@link extractServerErrorPayload}
139
+ * (`HttpClientError`, or a plain `Error` whose message embeds the JSON
140
+ * envelope) with a recoverable code AND HTTP status 401.
141
+ *
142
+ * Intentionally narrower than {@link extractServerErrorPayload}: that helper
143
+ * recovers any recognized envelope for generic error formatting, whereas this
144
+ * function exists solely to dispatch DCF auto-recovery and therefore gates on
145
+ * (a) the specific recoverable codes and (b) for legacy / untyped shapes,
146
+ * HTTP 401 only. A 401 with a non-recoverable code, or a recoverable code at
147
+ * a different status, must not trigger the recovery flow.
117
148
  */
118
149
  export function matchGitHubAuthError(error) {
119
- if (error instanceof GrsServerError) {
120
- if (error.code === 'GitHubMappingMissing' ||
121
- error.code === 'GitHubMappingExpired' ||
122
- error.code === 'GitHubMappingStale') {
123
- return {
124
- code: error.code,
125
- payload: {
126
- code: error.code,
127
- message: error.message,
128
- status: error.status,
129
- details: error.details,
130
- },
131
- };
132
- }
150
+ const payload = extractServerErrorPayload(error);
151
+ if (!payload)
133
152
  return null;
153
+ const code = payload.code;
154
+ if (!isRecoverableMappingCode(code))
155
+ return null;
156
+ // Status gating: GrsServerError carries an authoritative status from a
157
+ // typed envelope, so we trust whatever it reports. Every other wire shape
158
+ // (HttpClientError body, plain Error with embedded JSON) is the legacy
159
+ // fallback path and must additionally be HTTP 401 — a recoverable code at
160
+ // any other status indicates a different failure mode (e.g. a 500 echoing
161
+ // a mapping code in its body) that DCF recovery cannot fix.
162
+ if (!(error instanceof GrsServerError) && payload.status !== 401)
163
+ return null;
164
+ return { code, payload };
165
+ }
166
+ // === Helpers ==================================================================
167
+ /**
168
+ * Extract a {@link ServerErrorPayload} from any of the supported wire-error
169
+ * shapes. Returns `null` if no envelope can be recovered.
170
+ */
171
+ function extractServerErrorPayload(error) {
172
+ if (error instanceof GrsServerError) {
173
+ return {
174
+ code: error.code,
175
+ message: error.message,
176
+ status: error.status,
177
+ details: error.details,
178
+ };
134
179
  }
135
- // Legacy fallback: a plain Error whose message embeds the JSON envelope.
136
- if (error instanceof Error) {
137
- const statusMatch = error.message.match(/status:\s*(\d+)/i);
138
- if (!statusMatch || statusMatch[1] !== '401')
180
+ if (error instanceof HttpClientError) {
181
+ const parsed = parseEnvelope(error.body);
182
+ if (!parsed)
139
183
  return null;
184
+ // Intentionally do NOT fall back to `error.message`: on HttpClientError
185
+ // that's the verbose HTTP blob ("HTTP error status: 403 for POST ...:
186
+ // {...}") which we must never surface to the user. An empty string here
187
+ // makes the mapper's empty-message guard fire, so the caller's `?? rawErr`
188
+ // path preserves the original error instead.
189
+ return {
190
+ code: parsed.code,
191
+ message: parsed.message ?? '',
192
+ status: error.status,
193
+ details: parsed.details,
194
+ };
195
+ }
196
+ if (error instanceof Error) {
140
197
  const jsonMatch = error.message.match(/\{[\s\S]*\}/);
141
198
  if (!jsonMatch)
142
199
  return null;
143
- try {
144
- const parsed = JSON.parse(jsonMatch[0]);
145
- const code = parsed?.error?.code;
146
- if (code === 'GitHubMappingMissing' ||
147
- code === 'GitHubMappingExpired' ||
148
- code === 'GitHubMappingStale') {
149
- return {
150
- code,
151
- payload: {
152
- code,
153
- message: parsed.error.message ?? error.message,
154
- status: 401,
155
- details: parsed.error.details,
156
- },
157
- };
158
- }
159
- }
160
- catch {
161
- // Not JSON — not a match.
162
- }
200
+ const parsed = parseEnvelope(jsonMatch[0]);
201
+ if (!parsed?.code)
202
+ return null;
203
+ const statusMatch = error.message.match(/status:\s*(\d+)/i);
204
+ // See HttpClientError branch above: `error.message` here is the same
205
+ // verbose blob (the envelope JSON was extracted *from* it), so falling
206
+ // back to it would defeat the mapper's empty-message guard.
207
+ return {
208
+ code: parsed.code,
209
+ message: parsed.message ?? '',
210
+ status: statusMatch ? Number(statusMatch[1]) : 0,
211
+ details: parsed.details,
212
+ };
163
213
  }
164
214
  return null;
165
215
  }
166
- // === Helpers ==================================================================
167
- function parseRepoContext(repoUrl) {
168
- if (!repoUrl)
169
- return { host: '<tenant>.ghe.com', ownerRepo: '<owner>/<repo>' };
170
- const { host, owner, repo } = parseRemoteUrl(repoUrl);
171
- if (!host || !owner || !repo) {
172
- return { host: '<tenant>.ghe.com', ownerRepo: '<owner>/<repo>' };
216
+ function parseEnvelope(body) {
217
+ if (!body)
218
+ return null;
219
+ try {
220
+ const data = JSON.parse(body);
221
+ const error = data?.error;
222
+ if (!error || typeof error !== 'object')
223
+ return null;
224
+ return {
225
+ code: typeof error.code === 'string' ? error.code : undefined,
226
+ message: typeof error.message === 'string' ? error.message : undefined,
227
+ details: error.details && typeof error.details === 'object'
228
+ ? error.details
229
+ : undefined,
230
+ };
173
231
  }
174
- return { host, ownerRepo: `${owner}/${repo}` };
175
- }
176
- function stringDetail(details, key) {
177
- const v = details[key];
178
- return typeof v === 'string' ? v : undefined;
179
- }
180
- function numericDetail(details, key) {
181
- const v = details[key];
182
- if (typeof v === 'number' && Number.isFinite(v))
183
- return v;
184
- // Servers sometimes encode integer details as strings (e.g. JSON producers
185
- // that stringify all `number | bigint` fields). Coerce on a best-effort basis
186
- // so the user-facing message keeps the seconds/retry value instead of
187
- // silently dropping it.
188
- if (typeof v === 'string') {
189
- const n = Number(v);
190
- return Number.isFinite(n) ? n : undefined;
232
+ catch {
233
+ return null;
191
234
  }
192
- return undefined;
193
235
  }
194
236
  //# sourceMappingURL=GitHubErrorMap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GitHubErrorMap.js","sourceRoot":"","sources":["../../src/Errors/GitHubErrorMap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GitHubErrorMap.js","sourceRoot":"","sources":["../../src/Errors/GitHubErrorMap.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,9 @@ import type { CliSettings, IAuthenticationProvider } from '../Types/Cli.types.js
29
29
  export declare class CliLogger implements ILogger {
30
30
  private _telemetryWriters;
31
31
  private _unauthWriter?;
32
+ private readonly _customDimensions;
32
33
  private _upgradeFired;
34
+ private readonly _sessionId;
33
35
  private _upgradeConfig?;
34
36
  private constructor();
35
37
  static create(cliSettings: CliSettings, httpClient: CliHttpClient, authenticationProvider: IAuthenticationProvider): Promise<CliLogger>;
@@ -1 +1 @@
1
- {"version":3,"file":"CliLogger.d.ts","sourceRoot":"","sources":["../../src/Logger/CliLogger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAIzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EACV,WAAW,EACX,uBAAuB,EAExB,MAAM,oBAAoB,CAAC;AA0F5B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,SAAU,YAAW,OAAO;IACvC,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,aAAa,CAAC,CAAc;IACpC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAC,CAMrB;IAEF,OAAO;WAIa,MAAM,CACxB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,aAAa,EACzB,sBAAsB,EAAE,uBAAuB,GAC9C,OAAO,CAAC,SAAS,CAAC;IA0CrB;;;;;;;;;;;;;;OAcG;IACU,oBAAoB,CAC/B,sBAAsB,EAAE,uBAAuB,GAC9C,OAAO,CAAC,IAAI,CAAC;IAShB;;;;;;;;;OASG;YACW,2BAA2B;IAkDlC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAatD,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAW/D,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAW5D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe;IAqBrE,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAI5D,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAIvD,YAAY,CAAC,SAAS,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAI5E,IAAW,SAAS,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED,IAAW,SAAS,CAAC,MAAM,EAAE,MAAM,EAElC;IAEM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,OAAO;CAMjF"}
1
+ {"version":3,"file":"CliLogger.d.ts","sourceRoot":"","sources":["../../src/Logger/CliLogger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAIzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EACV,WAAW,EACX,uBAAuB,EAExB,MAAM,oBAAoB,CAAC;AA0F5B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,SAAU,YAAW,OAAO;IACvC,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,aAAa,CAAC,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA8B;IAChE,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,cAAc,CAAC,CAMrB;IAEF,OAAO;WAKa,MAAM,CACxB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,aAAa,EACzB,sBAAsB,EAAE,uBAAuB,GAC9C,OAAO,CAAC,SAAS,CAAC;IA0CrB;;;;;;;;;;;;;;OAcG;IACU,oBAAoB,CAC/B,sBAAsB,EAAE,uBAAuB,GAC9C,OAAO,CAAC,IAAI,CAAC;IAShB;;;;;;;;;OASG;YACW,2BAA2B;IAuDlC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAetD,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAW/D,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAW5D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe;IAqBrE,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAI5D,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAIvD,YAAY,CAAC,SAAS,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAI5E,IAAW,SAAS,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED,IAAW,SAAS,CAAC,MAAM,EAAE,MAAM,EAElC;IAEM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,OAAO;CAMjF"}
@@ -108,10 +108,13 @@ function createScenarioLogger(telemetryWriters, name, data) {
108
108
  export class CliLogger {
109
109
  _telemetryWriters = [];
110
110
  _unauthWriter;
111
+ _customDimensions = {};
111
112
  _upgradeFired = false;
113
+ _sessionId;
112
114
  _upgradeConfig;
113
- constructor(telemetryWriters) {
115
+ constructor(telemetryWriters, sessionId) {
114
116
  this._telemetryWriters = telemetryWriters;
117
+ this._sessionId = sessionId;
115
118
  }
116
119
  static async create(cliSettings, httpClient, authenticationProvider) {
117
120
  const environmentId = cliSettings.appConfig?.environmentId;
@@ -123,7 +126,7 @@ export class CliLogger {
123
126
  if (userTelemetrySettings.console) {
124
127
  telemetryWriters.push(new ConsoleWriter(sessionId, cliSettings.origin));
125
128
  }
126
- const instance = new CliLogger(telemetryWriters);
129
+ const instance = new CliLogger(telemetryWriters, sessionId);
127
130
  if (userTelemetrySettings.remote && region && environmentId) {
128
131
  // Push the unauthenticated writer immediately. Defaults to the global 1DS endpoint
129
132
  // and omits `geoLocation`; if/when auth succeeds, the upgrade swaps in the EU-aware
@@ -195,6 +198,10 @@ export class CliLogger {
195
198
  this._telemetryWriters.push(authed);
196
199
  }
197
200
  this._unauthWriter = authed;
201
+ // Re-apply previously set dimensions to the replacement writer.
202
+ for (const [key, value] of Object.entries(this._customDimensions)) {
203
+ authed.setCustomDimension(key, value);
204
+ }
198
205
  // Set the tenantId dimension AFTER the swap so it lands on the authed writer
199
206
  // (and any ConsoleWriter that's still in the list), not the discarded unauth one.
200
207
  const tenantId = authenticationProvider.getUserTenantId();
@@ -211,6 +218,8 @@ export class CliLogger {
211
218
  if (!_key || !_value) {
212
219
  return;
213
220
  }
221
+ // not guarding on _upgradeFired to preserve dimensions set before the swap is complete
222
+ this._customDimensions[_key] = _value;
214
223
  this._telemetryWriters.forEach((writer) => {
215
224
  writer.setCustomDimension(_key, _value);
216
225
  });
@@ -272,7 +281,7 @@ export class CliLogger {
272
281
  // No-op — CLI identifies users via setCustomDimension
273
282
  }
274
283
  get sessionId() {
275
- return undefined;
284
+ return this._sessionId;
276
285
  }
277
286
  set sessionId(_value) {
278
287
  // No-op
@@ -1 +1 @@
1
- {"version":3,"file":"CliLogger.js","sourceRoot":"","sources":["../../src/Logger/CliLogger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CliLogger.js","sourceRoot":"","sources":["../../src/Logger/CliLogger.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export declare class ConsoleWriter implements ITelemetryWriter {
7
7
  private readonly _scenario;
8
8
  private readonly _error;
9
9
  private readonly _warn;
10
+ private readonly _customDimensions;
10
11
  constructor(sessionId: string, origin: string);
11
12
  trackActivityEvent(eventName: string, eventData?: object): void;
12
13
  trackErrorEvent(eventName: string, eventData?: object): void;
@@ -16,5 +17,6 @@ export declare class ConsoleWriter implements ITelemetryWriter {
16
17
  scenarioCompletedWithError(scenarioName: string, completeWithErrorData?: object): void;
17
18
  flush(): Promise<void>;
18
19
  setCustomDimension(_key: string, _value: string): void;
20
+ private _withCustomDimensions;
19
21
  }
20
22
  //# sourceMappingURL=ConsoleWriter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConsoleWriter.d.ts","sourceRoot":"","sources":["../../src/Logger/ConsoleWriter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAwBnE,qBAAa,aAAc,YAAW,gBAAgB;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;gBAEd,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAO7C,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAI/D,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAI5D,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAI7D,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAInE,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAIhE,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI;IAItF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAG9D"}
1
+ {"version":3,"file":"ConsoleWriter.d.ts","sourceRoot":"","sources":["../../src/Logger/ConsoleWriter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAwBnE,qBAAa,aAAc,YAAW,gBAAgB;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA8B;gBAE7C,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAO7C,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAI/D,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAI5D,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAI7D,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAInE,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAIhE,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI;IAOtF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAO7D,OAAO,CAAC,qBAAqB;CAM9B"}
@@ -18,6 +18,7 @@ export class ConsoleWriter {
18
18
  _scenario;
19
19
  _error;
20
20
  _warn;
21
+ _customDimensions = {};
21
22
  constructor(sessionId, origin) {
22
23
  this._activity = makeLoggerFn(sessionId, origin, ['white', 'bold']);
23
24
  this._scenario = makeLoggerFn(sessionId, origin, ['cyan', 'bold']);
@@ -25,28 +26,37 @@ export class ConsoleWriter {
25
26
  this._warn = makeLoggerFn(sessionId, origin, ['yellow', 'bold']);
26
27
  }
27
28
  trackActivityEvent(eventName, eventData) {
28
- this._activity(eventName, eventData || {});
29
+ this._activity(eventName, this._withCustomDimensions(eventData));
29
30
  }
30
31
  trackErrorEvent(eventName, eventData) {
31
- this._error(eventName, eventData || {});
32
+ this._error(eventName, this._withCustomDimensions(eventData));
32
33
  }
33
34
  startScenario(scenarioName, startData) {
34
- this._scenario(`[scenario:start] ${scenarioName}`, startData || {});
35
+ this._scenario(`[scenario:start] ${scenarioName}`, this._withCustomDimensions(startData));
35
36
  }
36
37
  completeScenario(scenarioName, completeData) {
37
- this._scenario(`[scenario:complete] ${scenarioName}`, completeData || {});
38
+ this._scenario(`[scenario:complete] ${scenarioName}`, this._withCustomDimensions(completeData));
38
39
  }
39
40
  scenarioFailed(scenarioName, failureData) {
40
- this._error(`[scenario:failure] ${scenarioName}`, failureData || {});
41
+ this._error(`[scenario:failure] ${scenarioName}`, this._withCustomDimensions(failureData));
41
42
  }
42
43
  scenarioCompletedWithError(scenarioName, completeWithErrorData) {
43
- this._warn(`[scenario:completeWithError] ${scenarioName}`, completeWithErrorData || {});
44
+ this._warn(`[scenario:completeWithError] ${scenarioName}`, this._withCustomDimensions(completeWithErrorData));
44
45
  }
45
46
  flush() {
46
47
  return Promise.resolve();
47
48
  }
48
49
  setCustomDimension(_key, _value) {
49
- // No-op for console writer
50
+ if (!_key || !_value) {
51
+ return;
52
+ }
53
+ this._customDimensions[_key] = _value;
54
+ }
55
+ _withCustomDimensions(eventData) {
56
+ return {
57
+ ...this._customDimensions,
58
+ ...(eventData ?? {}),
59
+ };
50
60
  }
51
61
  }
52
62
  /* eslint-enable @typescript-eslint/no-explicit-any */