@microsoft/managed-apps-cli 0.6.1 → 0.8.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 (207) hide show
  1. package/README.md +56 -10
  2. package/dist/ArgumentProvider.d.ts +21 -2
  3. package/dist/ArgumentProvider.d.ts.map +1 -1
  4. package/dist/ArgumentProvider.js +47 -3
  5. package/dist/ArgumentProvider.js.map +1 -1
  6. package/dist/Authentication/ActiveAccountStore.d.ts +24 -0
  7. package/dist/Authentication/ActiveAccountStore.d.ts.map +1 -0
  8. package/dist/Authentication/ActiveAccountStore.js +54 -0
  9. package/dist/Authentication/ActiveAccountStore.js.map +1 -0
  10. package/dist/Authentication/NodeMsalAuthenticationProvider.d.ts +57 -3
  11. package/dist/Authentication/NodeMsalAuthenticationProvider.d.ts.map +1 -1
  12. package/dist/Authentication/NodeMsalAuthenticationProvider.js +187 -27
  13. package/dist/Authentication/NodeMsalAuthenticationProvider.js.map +1 -1
  14. package/dist/Cli.d.ts.map +1 -1
  15. package/dist/Cli.js +8 -2
  16. package/dist/Cli.js.map +1 -1
  17. package/dist/CliSettings.d.ts.map +1 -1
  18. package/dist/CliSettings.js +1 -2
  19. package/dist/CliSettings.js.map +1 -1
  20. package/dist/CliUtils.d.ts +2 -1
  21. package/dist/CliUtils.d.ts.map +1 -1
  22. package/dist/CliUtils.js +4 -0
  23. package/dist/CliUtils.js.map +1 -1
  24. package/dist/Constants/CommandRegistry.d.ts.map +1 -1
  25. package/dist/Constants/CommandRegistry.js +44 -6
  26. package/dist/Constants/CommandRegistry.js.map +1 -1
  27. package/dist/Constants/HelpStrings.d.ts +75 -3
  28. package/dist/Constants/HelpStrings.d.ts.map +1 -1
  29. package/dist/Constants/HelpStrings.js +143 -41
  30. package/dist/Constants/HelpStrings.js.map +1 -1
  31. package/dist/Errors/GitHubErrorMap.d.ts +3 -3
  32. package/dist/Errors/GitHubErrorMap.d.ts.map +1 -1
  33. package/dist/Errors/GitHubErrorMap.js +12 -7
  34. package/dist/Errors/GitHubErrorMap.js.map +1 -1
  35. package/dist/FS/CliFs.d.ts.map +1 -1
  36. package/dist/FS/CliFs.js.map +1 -1
  37. package/dist/HttpClient/CliHttpClient.d.ts +17 -0
  38. package/dist/HttpClient/CliHttpClient.d.ts.map +1 -1
  39. package/dist/HttpClient/CliHttpClient.js +112 -1
  40. package/dist/HttpClient/CliHttpClient.js.map +1 -1
  41. package/dist/Logger/CliLogger.d.ts.map +1 -1
  42. package/dist/Logger/CliLogger.js +1 -1
  43. package/dist/Logger/CliLogger.js.map +1 -1
  44. package/dist/Logger/ConsoleWriter.d.ts.map +1 -1
  45. package/dist/Logger/ConsoleWriter.js +7 -7
  46. package/dist/Logger/ConsoleWriter.js.map +1 -1
  47. package/dist/Middletier/FunctionsBundler.d.ts +17 -0
  48. package/dist/Middletier/FunctionsBundler.d.ts.map +1 -0
  49. package/dist/Middletier/FunctionsBundler.js +165 -0
  50. package/dist/Middletier/FunctionsBundler.js.map +1 -0
  51. package/dist/Middletier/PackFunctions.d.ts +52 -0
  52. package/dist/Middletier/PackFunctions.d.ts.map +1 -0
  53. package/dist/Middletier/PackFunctions.js +122 -0
  54. package/dist/Middletier/PackFunctions.js.map +1 -0
  55. package/dist/Types/Cli.types.d.ts +42 -1
  56. package/dist/Types/Cli.types.d.ts.map +1 -1
  57. package/dist/Types/Command.types.d.ts +14 -3
  58. package/dist/Types/Command.types.d.ts.map +1 -1
  59. package/dist/Types/Command.types.js +4 -0
  60. package/dist/Types/Command.types.js.map +1 -1
  61. package/dist/Utils/BuildPolling.d.ts +18 -0
  62. package/dist/Utils/BuildPolling.d.ts.map +1 -0
  63. package/dist/Utils/BuildPolling.js +63 -0
  64. package/dist/Utils/BuildPolling.js.map +1 -0
  65. package/dist/Utils/BuildVerbDescriptionTable.d.ts +11 -1
  66. package/dist/Utils/BuildVerbDescriptionTable.d.ts.map +1 -1
  67. package/dist/Utils/BuildVerbDescriptionTable.js +73 -17
  68. package/dist/Utils/BuildVerbDescriptionTable.js.map +1 -1
  69. package/dist/Utils/ConsoleOutput.d.ts.map +1 -1
  70. package/dist/Utils/ConsoleOutput.js +15 -12
  71. package/dist/Utils/ConsoleOutput.js.map +1 -1
  72. package/dist/Utils/DcfRecovery.d.ts +84 -0
  73. package/dist/Utils/DcfRecovery.d.ts.map +1 -0
  74. package/dist/Utils/DcfRecovery.js +258 -0
  75. package/dist/Utils/DcfRecovery.js.map +1 -0
  76. package/dist/Utils/EnhanceNetworkError.d.ts.map +1 -1
  77. package/dist/Utils/EnhanceNetworkError.js +2 -0
  78. package/dist/Utils/EnhanceNetworkError.js.map +1 -1
  79. package/dist/Utils/EnvVars.d.ts +1 -1
  80. package/dist/Utils/EnvVars.d.ts.map +1 -1
  81. package/dist/Utils/EnvVars.js.map +1 -1
  82. package/dist/Utils/EnvironmentRoutingUtils.d.ts +8 -0
  83. package/dist/Utils/EnvironmentRoutingUtils.d.ts.map +1 -0
  84. package/dist/Utils/EnvironmentRoutingUtils.js +45 -0
  85. package/dist/Utils/EnvironmentRoutingUtils.js.map +1 -0
  86. package/dist/Utils/GitHubDcfFlow.d.ts +4 -5
  87. package/dist/Utils/GitHubDcfFlow.d.ts.map +1 -1
  88. package/dist/Utils/GitHubDcfFlow.js +4 -5
  89. package/dist/Utils/GitHubDcfFlow.js.map +1 -1
  90. package/dist/Utils/GitUtils.d.ts +5 -0
  91. package/dist/Utils/GitUtils.d.ts.map +1 -1
  92. package/dist/Utils/GitUtils.js +15 -0
  93. package/dist/Utils/GitUtils.js.map +1 -1
  94. package/dist/Utils/Paging.d.ts.map +1 -1
  95. package/dist/Utils/Paging.js +4 -4
  96. package/dist/Utils/Paging.js.map +1 -1
  97. package/dist/Utils/ResolveCommand.d.ts +7 -1
  98. package/dist/Utils/ResolveCommand.d.ts.map +1 -1
  99. package/dist/Utils/ResolveCommand.js +38 -20
  100. package/dist/Utils/ResolveCommand.js.map +1 -1
  101. package/dist/Utils/Spinner.d.ts +9 -1
  102. package/dist/Utils/Spinner.d.ts.map +1 -1
  103. package/dist/Utils/Spinner.js +25 -5
  104. package/dist/Utils/Spinner.js.map +1 -1
  105. package/dist/Verbs/AddAction.d.ts.map +1 -1
  106. package/dist/Verbs/AddAction.js +12 -41
  107. package/dist/Verbs/AddAction.js.map +1 -1
  108. package/dist/Verbs/AddConnector.d.ts +24 -0
  109. package/dist/Verbs/AddConnector.d.ts.map +1 -0
  110. package/dist/Verbs/AddConnector.js +156 -0
  111. package/dist/Verbs/AddConnector.js.map +1 -0
  112. package/dist/Verbs/AddConnectorFlows.d.ts +72 -0
  113. package/dist/Verbs/AddConnectorFlows.d.ts.map +1 -0
  114. package/dist/Verbs/AddConnectorFlows.js +198 -0
  115. package/dist/Verbs/AddConnectorFlows.js.map +1 -0
  116. package/dist/Verbs/AddDataSource.js +1 -1
  117. package/dist/Verbs/AddDataSource.js.map +1 -1
  118. package/dist/Verbs/AddTable.d.ts.map +1 -1
  119. package/dist/Verbs/AddTable.js +15 -100
  120. package/dist/Verbs/AddTable.js.map +1 -1
  121. package/dist/Verbs/AuthStatus.d.ts.map +1 -1
  122. package/dist/Verbs/AuthStatus.js +34 -6
  123. package/dist/Verbs/AuthStatus.js.map +1 -1
  124. package/dist/Verbs/AuthSwitch.d.ts +6 -0
  125. package/dist/Verbs/AuthSwitch.d.ts.map +1 -0
  126. package/dist/Verbs/AuthSwitch.js +67 -0
  127. package/dist/Verbs/AuthSwitch.js.map +1 -0
  128. package/dist/Verbs/BuildMaafApp.d.ts.map +1 -1
  129. package/dist/Verbs/BuildMaafApp.js +98 -22
  130. package/dist/Verbs/BuildMaafApp.js.map +1 -1
  131. package/dist/Verbs/ConnectorHelpers.d.ts +54 -1
  132. package/dist/Verbs/ConnectorHelpers.d.ts.map +1 -1
  133. package/dist/Verbs/ConnectorHelpers.js +217 -16
  134. package/dist/Verbs/ConnectorHelpers.js.map +1 -1
  135. package/dist/Verbs/CreateMaafApp.d.ts +75 -0
  136. package/dist/Verbs/CreateMaafApp.d.ts.map +1 -1
  137. package/dist/Verbs/CreateMaafApp.js +273 -75
  138. package/dist/Verbs/CreateMaafApp.js.map +1 -1
  139. package/dist/Verbs/DeployMaafApp.d.ts.map +1 -1
  140. package/dist/Verbs/DeployMaafApp.js +52 -20
  141. package/dist/Verbs/DeployMaafApp.js.map +1 -1
  142. package/dist/Verbs/Dev.js +5 -5
  143. package/dist/Verbs/Dev.js.map +1 -1
  144. package/dist/Verbs/GetMaafBuildStatus.d.ts.map +1 -1
  145. package/dist/Verbs/GetMaafBuildStatus.js +66 -17
  146. package/dist/Verbs/GetMaafBuildStatus.js.map +1 -1
  147. package/dist/Verbs/Init.d.ts.map +1 -1
  148. package/dist/Verbs/Init.js +170 -60
  149. package/dist/Verbs/Init.js.map +1 -1
  150. package/dist/Verbs/ListConnectors.d.ts.map +1 -1
  151. package/dist/Verbs/ListConnectors.js +4 -2
  152. package/dist/Verbs/ListConnectors.js.map +1 -1
  153. package/dist/Verbs/ListDatasets.d.ts.map +1 -1
  154. package/dist/Verbs/ListDatasets.js +5 -0
  155. package/dist/Verbs/ListDatasets.js.map +1 -1
  156. package/dist/Verbs/ListFlows.d.ts.map +1 -1
  157. package/dist/Verbs/ListFlows.js +1 -2
  158. package/dist/Verbs/ListFlows.js.map +1 -1
  159. package/dist/Verbs/ListSqlStoredProcedures.d.ts.map +1 -1
  160. package/dist/Verbs/ListSqlStoredProcedures.js +5 -0
  161. package/dist/Verbs/ListSqlStoredProcedures.js.map +1 -1
  162. package/dist/Verbs/ListTables.d.ts.map +1 -1
  163. package/dist/Verbs/ListTables.js +5 -0
  164. package/dist/Verbs/ListTables.js.map +1 -1
  165. package/dist/Verbs/Login.d.ts.map +1 -1
  166. package/dist/Verbs/Login.js +16 -13
  167. package/dist/Verbs/Login.js.map +1 -1
  168. package/dist/Verbs/Logout.d.ts.map +1 -1
  169. package/dist/Verbs/Logout.js +19 -13
  170. package/dist/Verbs/Logout.js.map +1 -1
  171. package/dist/Verbs/MaafAppPermissions.d.ts.map +1 -1
  172. package/dist/Verbs/MaafAppPermissions.js +4 -0
  173. package/dist/Verbs/MaafAppPermissions.js.map +1 -1
  174. package/dist/Verbs/Pack.d.ts +6 -6
  175. package/dist/Verbs/Pack.d.ts.map +1 -1
  176. package/dist/Verbs/Pack.js +80 -12
  177. package/dist/Verbs/Pack.js.map +1 -1
  178. package/dist/Verbs/PlayMaafApp.d.ts +22 -0
  179. package/dist/Verbs/PlayMaafApp.d.ts.map +1 -0
  180. package/dist/Verbs/PlayMaafApp.js +147 -0
  181. package/dist/Verbs/PlayMaafApp.js.map +1 -0
  182. package/dist/Verbs/RefreshDataSource.d.ts.map +1 -1
  183. package/dist/Verbs/RefreshDataSource.js.map +1 -1
  184. package/dist/Verbs/RefreshGitAuth.d.ts.map +1 -1
  185. package/dist/Verbs/RefreshGitAuth.js +1 -1
  186. package/dist/Verbs/RefreshGitAuth.js.map +1 -1
  187. package/dist/Verbs/ShareLinkCreate.d.ts +23 -0
  188. package/dist/Verbs/ShareLinkCreate.d.ts.map +1 -0
  189. package/dist/Verbs/ShareLinkCreate.js +73 -0
  190. package/dist/Verbs/ShareLinkCreate.js.map +1 -0
  191. package/dist/Verbs/ShareLinkList.d.ts +16 -0
  192. package/dist/Verbs/ShareLinkList.d.ts.map +1 -0
  193. package/dist/Verbs/ShareLinkList.js +84 -0
  194. package/dist/Verbs/ShareLinkList.js.map +1 -0
  195. package/dist/Verbs/ShareLinkRevoke.d.ts +22 -0
  196. package/dist/Verbs/ShareLinkRevoke.d.ts.map +1 -0
  197. package/dist/Verbs/ShareLinkRevoke.js +137 -0
  198. package/dist/Verbs/ShareLinkRevoke.js.map +1 -0
  199. package/dist/Verbs/VerbConstants.d.ts +151 -21
  200. package/dist/Verbs/VerbConstants.d.ts.map +1 -1
  201. package/dist/Verbs/VerbConstants.js +127 -21
  202. package/dist/Verbs/VerbConstants.js.map +1 -1
  203. package/dist/Verbs/index.d.ts +6 -0
  204. package/dist/Verbs/index.d.ts.map +1 -1
  205. package/dist/Verbs/index.js +6 -0
  206. package/dist/Verbs/index.js.map +1 -1
  207. package/package.json +8 -8
@@ -21,6 +21,7 @@ export function enhanceNetworkError(error, method, url) {
21
21
  const cause = error.cause;
22
22
  if (cause) {
23
23
  const errorCode = cause.code || cause.errno;
24
+ cause.code = errorCode; // Ensure code is on the cause for easier access
24
25
  if (errorCode === 'ENOTFOUND') {
25
26
  detailedMessage += ` DNS lookup failed - unable to resolve hostname.`;
26
27
  }
@@ -52,6 +53,7 @@ export function enhanceNetworkError(error, method, url) {
52
53
  `VPN/proxy configuration, firewall/certificate issues, or server not reachable.`;
53
54
  }
54
55
  const enhancedError = new Error(detailedMessage);
56
+ enhancedError.name = cause?.code;
55
57
  enhancedError.cause = error;
56
58
  return enhancedError;
57
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EnhanceNetworkError.js","sourceRoot":"","sources":["../../src/Utils/EnhanceNetworkError.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,uDAAuD;AACvD;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc,EAAE,MAAc,EAAE,GAAW;IAC7E,IAAI,CAAC,CAAC,KAAK,YAAY,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7E,6CAA6C;QAC7C,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,eAAe,GAAG,8BAA8B,MAAM,IAAI,GAAG,GAAG,CAAC;IAErE,kEAAkE;IAClE,MAAM,KAAK,GAAI,KAAa,CAAC,KAAK,CAAC;IACnC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC;QAE5C,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YAC9B,eAAe,IAAI,kDAAkD,CAAC;QACxE,CAAC;aAAM,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;YACxC,eAAe,IAAI,4DAA4D,CAAC;QAClF,CAAC;aAAM,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YACrC,eAAe,IAAI,yDAAyD,CAAC;QAC/E,CAAC;aAAM,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;YACtC,eAAe,IAAI,gEAAgE,CAAC;QACtF,CAAC;aAAM,IACL,SAAS,KAAK,iCAAiC;YAC/C,SAAS,KAAK,kBAAkB;YAChC,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EACrC,CAAC;YACD,eAAe,IAAI,mCAAmC,SAAS,IAAI,CAAC;QACtE,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,eAAe,IAAI,kBAAkB,SAAS,GAAG,CAAC;QACpD,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;YACrD,eAAe,IAAI,aAAa,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,eAAe;YACb,yEAAyE;gBACzE,gFAAgF,CAAC;IACrF,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IAChD,aAAqB,CAAC,KAAK,GAAG,KAAK,CAAC;IACrC,OAAO,aAAa,CAAC;AACvB,CAAC;AACD,sDAAsD"}
1
+ {"version":3,"file":"EnhanceNetworkError.js","sourceRoot":"","sources":["../../src/Utils/EnhanceNetworkError.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,uDAAuD;AACvD;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc,EAAE,MAAc,EAAE,GAAW;IAC7E,IAAI,CAAC,CAAC,KAAK,YAAY,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7E,6CAA6C;QAC7C,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,eAAe,GAAG,8BAA8B,MAAM,IAAI,GAAG,GAAG,CAAC;IAErE,kEAAkE;IAClE,MAAM,KAAK,GAAI,KAAa,CAAC,KAAK,CAAC;IACnC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC;QAC5C,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,gDAAgD;QAExE,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YAC9B,eAAe,IAAI,kDAAkD,CAAC;QACxE,CAAC;aAAM,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;YACxC,eAAe,IAAI,4DAA4D,CAAC;QAClF,CAAC;aAAM,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YACrC,eAAe,IAAI,yDAAyD,CAAC;QAC/E,CAAC;aAAM,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;YACtC,eAAe,IAAI,gEAAgE,CAAC;QACtF,CAAC;aAAM,IACL,SAAS,KAAK,iCAAiC;YAC/C,SAAS,KAAK,kBAAkB;YAChC,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EACrC,CAAC;YACD,eAAe,IAAI,mCAAmC,SAAS,IAAI,CAAC;QACtE,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,eAAe,IAAI,kBAAkB,SAAS,GAAG,CAAC;QACpD,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;YACrD,eAAe,IAAI,aAAa,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,eAAe;YACb,yEAAyE;gBACzE,gFAAgF,CAAC;IACrF,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACjD,aAAa,CAAC,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC;IAChC,aAAqB,CAAC,KAAK,GAAG,KAAK,CAAC;IACrC,OAAO,aAAa,CAAC;AACvB,CAAC;AACD,sDAAsD"}
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Copyright (C) Microsoft Corporation. All rights reserved.
3
3
  */
4
- export type CliEnvVarName = 'USE_SP_AUTH' | 'SP_CLIENT_ID' | 'SP_CLIENT_SECRET' | 'SP_TENANT_ID' | 'USE_HTTP_FORWARD' | 'HTTP_FORWARD_URL' | 'HTTP_FORWARD_AUTH_TOKEN' | 'HTTP_FORWARD_TENANT_ID' | 'REMOTE_TELEMETRY' | 'CONSOLE_TELEMETRY' | 'CONFIG_DIR' | 'WORKING_DIRECTORY' | 'MAAF_DEBUG_ENVIRONMENT_ID' | 'MAAF_GRS_ENDPOINT_OVERRIDE' | 'ENVIRONMENT_ID' | 'APP_DISPLAY_NAME' | 'APP_DESCRIPTION' | 'APP_ID' | 'APP_TEMPLATE' | 'APP_REPOSITORY_ID' | 'APP_REPO' | 'APP_URL' | 'LOCAL_APP_URL' | 'BUILD_PATH' | 'BUILD_COMMAND' | 'FILE_ENTRY_POINT' | 'LOGO_PATH' | 'CONFIG_ONLY' | 'PORT' | 'CLOUD_INSTANCE' | 'API_ID' | 'CONNECTION_ID' | 'CONNECTION_REF' | 'CONNECTOR_ID' | 'CONNECTOR_SEARCH' | 'CONNECTOR_ACTION_SEARCH' | 'DATASET' | 'TABLE' | 'TABLE_NAME' | 'DATA_SOURCE_NAME' | 'SEARCH_TERM' | 'DATAVERSE_API_SEARCH_TERM' | 'SQL_STORED_PROCEDURE' | 'ENV_URL' | 'SOLUTION_ID' | 'FLOW_ID' | 'FLOW_SEARCH' | 'FLOW_DATA_SOURCE_NAME' | 'REMOVE_FLOW_ID' | 'MAAF_APP_NAME' | 'MAAF_APP_ACCESS' | 'MAAF_COMMIT_SHA' | 'MAAF_OPERATION_ID' | 'MAAF_ENVIRONMENT_ID' | 'MAAF_DEPLOY_ARTIFACT' | 'MAAF_GITHUB_REPO' | 'LIST_ENVIRONMENT_ID' | 'LIST_PERMISSION' | 'SKIP_CODEGEN' | 'USE_V1_CODEGEN' | 'APP_SHOW_HEADER';
4
+ export type CliEnvVarName = 'USE_SP_AUTH' | 'SP_CLIENT_ID' | 'SP_CLIENT_SECRET' | 'SP_TENANT_ID' | 'USE_HTTP_FORWARD' | 'HTTP_FORWARD_URL' | 'HTTP_FORWARD_AUTH_TOKEN' | 'HTTP_FORWARD_TENANT_ID' | 'ENABLE_CONNECTOR_USER_CONSENT' | 'REMOTE_TELEMETRY' | 'CONSOLE_TELEMETRY' | 'CONFIG_DIR' | 'WORKING_DIRECTORY' | 'MAAF_DEBUG_ENVIRONMENT_ID' | 'MAAF_GRS_ENDPOINT_OVERRIDE' | 'ENVIRONMENT_ID' | 'APP_DISPLAY_NAME' | 'APP_DESCRIPTION' | 'APP_ID' | 'APP_TEMPLATE' | 'APP_REPOSITORY_ID' | 'APP_REPO' | 'LOCAL_APP_URL' | 'BUILD_PATH' | 'BUILD_COMMAND' | 'BUILD_ENTRY_POINT' | 'LOGO_PATH' | 'CONFIG_ONLY' | 'PORT' | 'CLOUD_INSTANCE' | 'API_ID' | 'CONNECTION_ID' | 'CONNECTION_REF' | 'CONNECTOR_ID' | 'CONNECTOR_SEARCH' | 'CONNECTOR_ACTION_SEARCH' | 'DATASET' | 'TABLE' | 'TABLE_NAME' | 'DATA_SOURCE_NAME' | 'SEARCH_TERM' | 'DATAVERSE_API_SEARCH_TERM' | 'SQL_STORED_PROCEDURE' | 'ENV_URL' | 'SOLUTION_ID' | 'ADD_CONNECTOR_AS' | 'FLOW_ID' | 'FLOW_SEARCH' | 'FLOW_DATA_SOURCE_NAME' | 'REMOVE_FLOW_ID' | 'MAAF_APP_NAME' | 'MAAF_APP_ACCESS' | 'MAAF_COMMIT_SHA' | 'MAAF_PLAY_MODE' | 'MAAF_ENVIRONMENT_ID' | 'MAAF_SHARE_LINK_ID' | 'MAAF_DEPLOY_ARTIFACT' | 'MAAF_GITHUB_REPO' | 'LIST_ENVIRONMENT_ID' | 'LIST_PERMISSION' | 'SKIP_CODEGEN' | 'USE_V1_CODEGEN' | 'APP_SHOW_HEADER';
5
5
  export declare function cliEnvVarFullName(name: CliEnvVarName): string;
6
6
  export declare function getCliEnvVar(name: CliEnvVarName): string | undefined;
7
7
  export declare function getCliEnvVarBool(name: CliEnvVarName): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"EnvVars.d.ts","sourceRoot":"","sources":["../../src/Utils/EnvVars.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,MAAM,MAAM,aAAa,GAErB,aAAa,GACb,cAAc,GACd,kBAAkB,GAClB,cAAc,GAEd,kBAAkB,GAClB,kBAAkB,GAClB,yBAAyB,GACzB,wBAAwB,GAExB,kBAAkB,GAClB,mBAAmB,GAEnB,YAAY,GACZ,mBAAmB,GACnB,2BAA2B,GAC3B,4BAA4B,GAE5B,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,QAAQ,GACR,cAAc,GACd,mBAAmB,GACnB,UAAU,GACV,SAAS,GACT,eAAe,GACf,YAAY,GACZ,eAAe,GACf,kBAAkB,GAClB,WAAW,GACX,aAAa,GACb,MAAM,GACN,gBAAgB,GAEhB,QAAQ,GACR,eAAe,GACf,gBAAgB,GAChB,cAAc,GACd,kBAAkB,GAClB,yBAAyB,GACzB,SAAS,GACT,OAAO,GACP,YAAY,GACZ,kBAAkB,GAClB,aAAa,GACb,2BAA2B,GAC3B,sBAAsB,GACtB,SAAS,GACT,aAAa,GAEb,SAAS,GACT,aAAa,GACb,uBAAuB,GACvB,gBAAgB,GAEhB,eAAe,GACf,iBAAiB,GACjB,iBAAiB,GACjB,mBAAmB,GACnB,qBAAqB,GACrB,sBAAsB,GAEtB,kBAAkB,GAElB,qBAAqB,GACrB,iBAAiB,GAEjB,cAAc,GACd,gBAAgB,GAEhB,iBAAiB,CAAC;AAEtB,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAE7D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAEpE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAE7D;AAED,sGAAsG;AACtG,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEhE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAErE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAEzD;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEjE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAErD;AAED,wBAAgB,WAAW,IAAI,OAAO,OAAO,CAAC,GAAG,CAEhD;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,OAAO,OAAO,CAAC,GAAG,GAAG,IAAI,CAE7D"}
1
+ {"version":3,"file":"EnvVars.d.ts","sourceRoot":"","sources":["../../src/Utils/EnvVars.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,MAAM,MAAM,aAAa,GAErB,aAAa,GACb,cAAc,GACd,kBAAkB,GAClB,cAAc,GAEd,kBAAkB,GAClB,kBAAkB,GAClB,yBAAyB,GACzB,wBAAwB,GAExB,+BAA+B,GAE/B,kBAAkB,GAClB,mBAAmB,GAEnB,YAAY,GACZ,mBAAmB,GACnB,2BAA2B,GAC3B,4BAA4B,GAE5B,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,QAAQ,GACR,cAAc,GACd,mBAAmB,GACnB,UAAU,GACV,eAAe,GACf,YAAY,GACZ,eAAe,GACf,mBAAmB,GACnB,WAAW,GACX,aAAa,GACb,MAAM,GACN,gBAAgB,GAEhB,QAAQ,GACR,eAAe,GACf,gBAAgB,GAChB,cAAc,GACd,kBAAkB,GAClB,yBAAyB,GACzB,SAAS,GACT,OAAO,GACP,YAAY,GACZ,kBAAkB,GAClB,aAAa,GACb,2BAA2B,GAC3B,sBAAsB,GACtB,SAAS,GACT,aAAa,GACb,kBAAkB,GAElB,SAAS,GACT,aAAa,GACb,uBAAuB,GACvB,gBAAgB,GAEhB,eAAe,GACf,iBAAiB,GACjB,iBAAiB,GACjB,gBAAgB,GAChB,qBAAqB,GACrB,oBAAoB,GACpB,sBAAsB,GAEtB,kBAAkB,GAElB,qBAAqB,GACrB,iBAAiB,GAEjB,cAAc,GACd,gBAAgB,GAEhB,iBAAiB,CAAC;AAEtB,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAE7D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAEpE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAE7D;AAED,sGAAsG;AACtG,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEhE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAErE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAEzD;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEjE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAErD;AAED,wBAAgB,WAAW,IAAI,OAAO,OAAO,CAAC,GAAG,CAEhD;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,OAAO,OAAO,CAAC,GAAG,GAAG,IAAI,CAE7D"}
@@ -1 +1 @@
1
- {"version":3,"file":"EnvVars.js","sourceRoot":"","sources":["../../src/Utils/EnvVars.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,MAAM,MAAM,GAAG,GAAG,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC;AA+EvD,MAAM,UAAU,iBAAiB,CAAC,IAAmB;IACnD,OAAO,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAmB;IAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAmB;IAClD,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;AACvC,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAmB,EAAE,KAAa;IAC7D,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAmB;IACjD,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,KAAa;IACzD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAA4B;IACrD,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"EnvVars.js","sourceRoot":"","sources":["../../src/Utils/EnvVars.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,MAAM,MAAM,GAAG,GAAG,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC;AAkFvD,MAAM,UAAU,iBAAiB,CAAC,IAAmB;IACnD,OAAO,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAmB;IAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAmB;IAClD,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;AACvC,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAmB,EAAE,KAAa;IAC7D,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAmB;IACjD,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,KAAa;IACzD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAA4B;IACrD,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;AAChC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import type { IHttpClient } from '@microsoft/managed-apps-actions';
5
+ import type { GetUserRoutingEnvironmentResult } from '@microsoft/managed-apps-common/services';
6
+ import type { ILogger } from '@microsoft/managed-apps-common/telemetry';
7
+ export declare function resolveRoutingEnvironmentIdAsync(resultPromise: Promise<GetUserRoutingEnvironmentResult>, httpClient: IHttpClient, logger: ILogger): Promise<string>;
8
+ //# sourceMappingURL=EnvironmentRoutingUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnvironmentRoutingUtils.d.ts","sourceRoot":"","sources":["../../src/Utils/EnvironmentRoutingUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAM/F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0CAA0C,CAAC;AAExE,wBAAsB,gCAAgC,CACpD,aAAa,EAAE,OAAO,CAAC,+BAA+B,CAAC,EACvD,UAAU,EAAE,WAAW,EACvB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,MAAM,CAAC,CAiCjB"}
@@ -0,0 +1,45 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import { NotFoundError, UsageError } from '@microsoft/managed-apps-common/errors';
5
+ import { ManagedGovernanceError, ManagedGovernanceTimeoutError, pollRoutingEnvironmentAsync, } from '@microsoft/managed-apps-common/services';
6
+ export async function resolveRoutingEnvironmentIdAsync(resultPromise, httpClient, logger) {
7
+ // Translate routing-service errors into a UsageError so the user sees an actionable message
8
+ // rather than the raw "ManagedGovernance request failed with status 403" implementation detail.
9
+ // NotFoundError throws inside the try also flow through `toRoutingUsageError`, which leaves
10
+ // non-ManagedGovernance errors unchanged.
11
+ try {
12
+ const result = await resultPromise;
13
+ if (result.status === 200) {
14
+ const name = result.data.environment?.name;
15
+ if (!name) {
16
+ throw new NotFoundError('Routing service returned 200 with no environment name.');
17
+ }
18
+ return name;
19
+ }
20
+ // 202: provisioning is in progress — poll until it completes.
21
+ // Non-2xx responses are already thrown as ManagedGovernanceError inside
22
+ // getUserRoutingEnvironmentAsync, so only 200/202 reach this code path.
23
+ const routingResponse = await pollRoutingEnvironmentAsync(httpClient, result.pollingUrl, result.authResource, logger);
24
+ if (!routingResponse.environment?.name) {
25
+ throw new NotFoundError('Routing service finished provisioning but returned no environment name.');
26
+ }
27
+ return routingResponse.environment.name;
28
+ }
29
+ catch (err) {
30
+ throw toRoutingUsageError(err);
31
+ }
32
+ }
33
+ function toRoutingUsageError(err) {
34
+ if (err instanceof ManagedGovernanceError) {
35
+ const detail = err.apiMessage
36
+ ? ` ${err.apiMessage}`
37
+ : ' Ensure your account has the required permissions to create a Developer environment.';
38
+ return new UsageError(`Could not provision a Developer environment for your tenant (status ${err.status}).${detail}`);
39
+ }
40
+ if (err instanceof ManagedGovernanceTimeoutError) {
41
+ return new UsageError('Timed out waiting for a Developer environment to provision. Try again.');
42
+ }
43
+ return err instanceof Error ? err : new Error(String(err));
44
+ }
45
+ //# sourceMappingURL=EnvironmentRoutingUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnvironmentRoutingUtils.js","sourceRoot":"","sources":["../../src/Utils/EnvironmentRoutingUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAElF,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,yCAAyC,CAAC;AAGjD,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,aAAuD,EACvD,UAAuB,EACvB,MAAe;IAEf,4FAA4F;IAC5F,gGAAgG;IAChG,4FAA4F;IAC5F,0CAA0C;IAC1C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;QAEnC,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC;YAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,aAAa,CAAC,wDAAwD,CAAC,CAAC;YACpF,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,8DAA8D;QAC9D,wEAAwE;QACxE,wEAAwE;QACxE,MAAM,eAAe,GAAG,MAAM,2BAA2B,CACvD,UAAU,EACV,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,YAAY,EACnB,MAAM,CACP,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;YACvC,MAAM,IAAI,aAAa,CACrB,yEAAyE,CAC1E,CAAC;QACJ,CAAC;QACD,OAAO,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAY;IACvC,IAAI,GAAG,YAAY,sBAAsB,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU;YAC3B,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE;YACtB,CAAC,CAAC,sFAAsF,CAAC;QAC3F,OAAO,IAAI,UAAU,CACnB,uEAAuE,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAC/F,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,YAAY,6BAA6B,EAAE,CAAC;QACjD,OAAO,IAAI,UAAU,CAAC,wEAAwE,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,CAAC"}
@@ -4,14 +4,13 @@
4
4
  import type { GitHubDcfDisplay } from '@microsoft/managed-apps-actions';
5
5
  /**
6
6
  * Console implementation of {@link GitHubDcfDisplay}. Uses the standard CLI
7
- * print helpers; matches the layout in design §9.1 (the user code lives in
8
- * its own paragraph for visibility, and the success message uses the soft
9
- * "expires around" wording — see design §9.1 / D16).
7
+ * print helpers: the user code lives in its own paragraph for visibility,
8
+ * and the success message uses the soft "expires around" wording.
10
9
  */
11
10
  export declare const ConsoleGitHubDcfDisplay: GitHubDcfDisplay;
12
11
  /**
13
- * NDJSON implementation of {@link GitHubDcfDisplay} for `--json` mode. Matches
14
- * the event vocabulary in design §9.4. Emits one line per call to stdout.
12
+ * NDJSON implementation of {@link GitHubDcfDisplay} for `--json` mode.
13
+ * Emits one line per call to stdout.
15
14
  *
16
15
  * Browser launching is intentionally a no-op in JSON mode — automated callers
17
16
  * are not expected to have a desktop session.
@@ -1 +1 @@
1
- {"version":3,"file":"GitHubDcfFlow.d.ts","sourceRoot":"","sources":["../../src/Utils/GitHubDcfFlow.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAKxE;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,gBAsBrC,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IAC3D,YAAY,CAAC,IAAI,EAAE;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,GAAG,IAAI;IAWR,WAAW,IAAI,IAAI;IAKnB,iBAAiB,IAAI,IAAI;IAIzB,YAAY,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAU3E,OAAO,CAAC,KAAK;CAId;AAED,MAAM,WAAW,0BAA0B;IACzC,4DAA4D;IAC5D,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAoCT"}
1
+ {"version":3,"file":"GitHubDcfFlow.d.ts","sourceRoot":"","sources":["../../src/Utils/GitHubDcfFlow.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAKxE;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,gBAsBrC,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IAC3D,YAAY,CAAC,IAAI,EAAE;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,GAAG,IAAI;IAWR,WAAW,IAAI,IAAI;IAKnB,iBAAiB,IAAI,IAAI;IAIzB,YAAY,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAU3E,OAAO,CAAC,KAAK;CAId;AAED,MAAM,WAAW,0BAA0B;IACzC,4DAA4D;IAC5D,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAoCT"}
@@ -17,9 +17,8 @@ import { printInfo, printJsonLine } from './ConsoleOutput.js';
17
17
  import { getSystemEnvVar } from './EnvVars.js';
18
18
  /**
19
19
  * Console implementation of {@link GitHubDcfDisplay}. Uses the standard CLI
20
- * print helpers; matches the layout in design §9.1 (the user code lives in
21
- * its own paragraph for visibility, and the success message uses the soft
22
- * "expires around" wording — see design §9.1 / D16).
20
+ * print helpers: the user code lives in its own paragraph for visibility,
21
+ * and the success message uses the soft "expires around" wording.
23
22
  */
24
23
  export const ConsoleGitHubDcfDisplay = {
25
24
  showUserCode({ userCode, verificationUri, expiresIn }) {
@@ -45,8 +44,8 @@ export const ConsoleGitHubDcfDisplay = {
45
44
  },
46
45
  };
47
46
  /**
48
- * NDJSON implementation of {@link GitHubDcfDisplay} for `--json` mode. Matches
49
- * the event vocabulary in design §9.4. Emits one line per call to stdout.
47
+ * NDJSON implementation of {@link GitHubDcfDisplay} for `--json` mode.
48
+ * Emits one line per call to stdout.
50
49
  *
51
50
  * Browser launching is intentionally a no-op in JSON mode — automated callers
52
51
  * are not expected to have a desktop session.
@@ -1 +1 @@
1
- {"version":3,"file":"GitHubDcfFlow.js","sourceRoot":"","sources":["../../src/Utils/GitHubDcfFlow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GitHubDcfFlow.js","sourceRoot":"","sources":["../../src/Utils/GitHubDcfFlow.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,11 @@ export interface GitDefaults {
13
13
  * literal string 'HEAD' and callers should not treat it as a branch name.
14
14
  */
15
15
  export declare function resolveGitDefaults(): GitDefaults | null;
16
+ /**
17
+ * Reads the current git remote origin URL from the working directory's git repo.
18
+ * Returns null when git is unavailable or the directory is not a git repo
19
+ */
20
+ export declare function getCurrentGitRemoteUrl(): string | undefined;
16
21
  /**
17
22
  * Returns true when the working tree has uncommitted changes (staged, unstaged, or untracked).
18
23
  * Returns null when git is unavailable or the directory is not a git repo, so callers can skip
@@ -1 +1 @@
1
- {"version":3,"file":"GitUtils.d.ts","sourceRoot":"","sources":["../../src/Utils/GitUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,GAAG,IAAI,CAQvD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,GAAG,IAAI,CAOtD"}
1
+ {"version":3,"file":"GitUtils.d.ts","sourceRoot":"","sources":["../../src/Utils/GitUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,WAAW,GAAG,IAAI,CAQvD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,SAAS,CAS3D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,GAAG,IAAI,CAOtD"}
@@ -18,6 +18,21 @@ export function resolveGitDefaults() {
18
18
  return null;
19
19
  }
20
20
  }
21
+ /**
22
+ * Reads the current git remote origin URL from the working directory's git repo.
23
+ * Returns null when git is unavailable or the directory is not a git repo
24
+ */
25
+ export function getCurrentGitRemoteUrl() {
26
+ try {
27
+ const remoteUrl = execSync('git config --get remote.origin.url', { stdio: 'pipe' })
28
+ .toString()
29
+ .trim();
30
+ return remoteUrl || undefined;
31
+ }
32
+ catch {
33
+ return undefined;
34
+ }
35
+ }
21
36
  /**
22
37
  * Returns true when the working tree has uncommitted changes (staged, unstaged, or untracked).
23
38
  * Returns null when git is unavailable or the directory is not a git repo, so callers can skip
@@ -1 +1 @@
1
- {"version":3,"file":"GitUtils.js","sourceRoot":"","sources":["../../src/Utils/GitUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAQzC;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB;IAChC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,QAAQ,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACtF,MAAM,MAAM,GAAG,QAAQ,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAChG,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACvF,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"GitUtils.js","sourceRoot":"","sources":["../../src/Utils/GitUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAQzC;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB;IAChC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,QAAQ,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACtF,MAAM,MAAM,GAAG,QAAQ,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAChG,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IACpC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,QAAQ,CAAC,oCAAoC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;aAChF,QAAQ,EAAE;aACV,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,IAAI,SAAS,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACvF,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Paging.d.ts","sourceRoot":"","sources":["../../src/Utils/Paging.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,CA2BnE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BhB"}
1
+ {"version":3,"file":"Paging.d.ts","sourceRoot":"","sources":["../../src/Utils/Paging.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,CA2BnE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BhB"}
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Copyright (C) Microsoft Corporation. All rights reserved.
3
3
  */
4
- import chalk from 'chalk';
4
+ import { styleText } from 'node:util';
5
5
  import * as readline from 'readline';
6
6
  import { printTable } from './ConsoleOutput.js';
7
7
  export const PAGE_SIZE = 20;
@@ -44,7 +44,7 @@ export async function printPagedTable(options) {
44
44
  const total = rows.length;
45
45
  if (!process.stdout.isTTY) {
46
46
  printTable({ title, metadata, columns, rows, emptyMessage });
47
- console.log(chalk.dim(` Showing ${total} of ${total} ${totalLabel}`));
47
+ console.log(styleText('dim', ` Showing ${total} of ${total} ${totalLabel}`));
48
48
  return;
49
49
  }
50
50
  const totalPages = Math.max(1, Math.ceil(total / PAGE_SIZE));
@@ -53,9 +53,9 @@ export async function printPagedTable(options) {
53
53
  const pageRows = rows.slice(start, start + PAGE_SIZE);
54
54
  const isLastPage = page === totalPages - 1;
55
55
  printTable({ title, metadata, columns, rows: pageRows, emptyMessage });
56
- console.log(chalk.dim(` Showing ${start + pageRows.length} of ${total} ${totalLabel}`));
56
+ console.log(styleText('dim', ` Showing ${start + pageRows.length} of ${total} ${totalLabel}`));
57
57
  if (!isLastPage) {
58
- console.log(chalk.dim(' Press Enter for more, Esc or q to exit'));
58
+ console.log(styleText('dim', ' Press Enter for more, Esc or q to exit'));
59
59
  }
60
60
  if (isLastPage)
61
61
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"Paging.js","sourceRoot":"","sources":["../../src/Utils/Paging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Paging.js","sourceRoot":"","sources":["../../src/Utils/Paging.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,13 @@ import type { CommandTree, NounKey, ResolvedCommand } from '../Types/Command.typ
6
6
  * Resolves command-line tokens against the command tree.
7
7
  *
8
8
  * Every command lives under a noun, so the minimum match is 2 tokens (noun + verb).
9
- * Typed subcommands match 3 tokens (noun + verb + type).
9
+ * Typed verbs may nest arbitrarily, so a command path can be any depth (e.g.
10
+ * `app add table` is 3 tokens, `app share link create` is 4). The walker
11
+ * descends as deep as it can; when a typed verb has its own handler ("hybrid"
12
+ * verb, like `app share`) and the next token does not name a known subcommand,
13
+ * it falls back to the parent handler so the remaining tokens become
14
+ * positional arguments — letting `ms app share alice@contoso.com` route to
15
+ * the `share` handler.
10
16
  *
11
17
  * @param argv - The full process.argv array (argv[0] = node, argv[1] = script)
12
18
  * @param tree - The command tree to resolve against
@@ -1 +1 @@
1
- {"version":3,"file":"ResolveCommand.d.ts","sourceRoot":"","sources":["../../src/Utils/ResolveCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGpF;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,GAAG,eAAe,GAAG,IAAI,CAgCjG;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,KAAK,IAAI,OAAO,CAE9E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAK1F"}
1
+ {"version":3,"file":"ResolveCommand.d.ts","sourceRoot":"","sources":["../../src/Utils/ResolveCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAEV,WAAW,EAEX,OAAO,EACP,eAAe,EAEhB,MAAM,wBAAwB,CAAC;AAGhC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,GAAG,eAAe,GAAG,IAAI,CAWjG;AAyCD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,KAAK,IAAI,OAAO,CAE9E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAK1F"}
@@ -1,12 +1,18 @@
1
1
  /*!
2
2
  * Copyright (C) Microsoft Corporation. All rights reserved.
3
3
  */
4
- import { isTypedVerbDef } from '../Types/Command.types.js';
4
+ import { hasParentHandler, isTypedVerbDef } from '../Types/Command.types.js';
5
5
  /**
6
6
  * Resolves command-line tokens against the command tree.
7
7
  *
8
8
  * Every command lives under a noun, so the minimum match is 2 tokens (noun + verb).
9
- * Typed subcommands match 3 tokens (noun + verb + type).
9
+ * Typed verbs may nest arbitrarily, so a command path can be any depth (e.g.
10
+ * `app add table` is 3 tokens, `app share link create` is 4). The walker
11
+ * descends as deep as it can; when a typed verb has its own handler ("hybrid"
12
+ * verb, like `app share`) and the next token does not name a known subcommand,
13
+ * it falls back to the parent handler so the remaining tokens become
14
+ * positional arguments — letting `ms app share alice@contoso.com` route to
15
+ * the `share` handler.
10
16
  *
11
17
  * @param argv - The full process.argv array (argv[0] = node, argv[1] = script)
12
18
  * @param tree - The command tree to resolve against
@@ -14,30 +20,42 @@ import { isTypedVerbDef } from '../Types/Command.types.js';
14
20
  */
15
21
  export function resolveCommand(argv, tree) {
16
22
  const tokens = argv.slice(2);
17
- // Skip if no tokens or first token looks like a flag
18
23
  if (tokens.length === 0 || tokens[0].startsWith('-')) {
19
24
  return null;
20
25
  }
21
- const [t0, t1, t2] = tokens;
26
+ const [t0] = tokens;
22
27
  if (!isKnownNoun(t0, tree))
23
28
  return null;
24
- const nounDef = tree[t0];
25
- // Try 3-token match: noun verb type (e.g., 'app add table')
26
- if (t1 && !t1.startsWith('-') && t2 && !t2.startsWith('-')) {
27
- const verbEntry = nounDef.commands[t1];
28
- if (isTypedVerbDef(verbEntry)) {
29
- const leafDef = verbEntry.commands[t2];
30
- if (leafDef) {
31
- return { path: [t0, t1, t2], handler: leafDef.handler, tokensConsumed: 3 };
32
- }
33
- }
29
+ return walkCommands(tree[t0].commands, tokens, 1, [t0]);
30
+ }
31
+ /**
32
+ * Recursively walks the command tree, consuming one token per level. Returns
33
+ * the deepest match. If a typed verb's next token doesn't match any sub but
34
+ * the typed verb itself has a handler, returns that handler (hybrid fallback).
35
+ */
36
+ function walkCommands(commands, tokens, index, path) {
37
+ if (index >= tokens.length)
38
+ return null;
39
+ const token = tokens[index];
40
+ if (token.startsWith('-'))
41
+ return null;
42
+ const entry = commands[token];
43
+ if (!entry)
44
+ return null;
45
+ const nextPath = [...path, token];
46
+ if (!isTypedVerbDef(entry)) {
47
+ return { path: nextPath, handler: entry.handler, tokensConsumed: index + 1 };
48
+ }
49
+ // Typed verb — try to descend first.
50
+ const next = tokens[index + 1];
51
+ if (next && !next.startsWith('-')) {
52
+ const deeper = walkCommands(entry.commands, tokens, index + 1, nextPath);
53
+ if (deeper)
54
+ return deeper;
34
55
  }
35
- // Try 2-token match: noun verb (e.g., 'app init')
36
- if (t1 && !t1.startsWith('-')) {
37
- const verbEntry = nounDef.commands[t1];
38
- if (verbEntry && !isTypedVerbDef(verbEntry)) {
39
- return { path: [t0, t1], handler: verbEntry.handler, tokensConsumed: 2 };
40
- }
56
+ // No deeper match fall back to the parent handler if this is a hybrid verb.
57
+ if (hasParentHandler(entry)) {
58
+ return { path: nextPath, handler: entry.handler, tokensConsumed: index + 1 };
41
59
  }
42
60
  return null;
43
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ResolveCommand.js","sourceRoot":"","sources":["../../src/Utils/ResolveCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,IAAuB,EAAE,IAAiB;IACvE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE7B,qDAAqD;IACrD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC;IAC5B,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IAEzB,4DAA4D;IAC5D,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;YAC7E,CAAC;QACH,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,SAAS,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5C,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,IAAiB;IAC1D,OAAO,KAAK,IAAI,IAAI,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,IAAY,EAAE,IAAiB;IAC/E,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,SAAS,KAAK,SAAS,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"ResolveCommand.js","sourceRoot":"","sources":["../../src/Utils/ResolveCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE1E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,cAAc,CAAC,IAAuB,EAAE,IAAiB;IACvE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;IACpB,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAExC,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CACnB,QAAuD,EACvD,MAAyB,EACzB,KAAa,EACb,IAAuB;IAEvB,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,QAAQ,GAAgB,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;IAE/C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;IAC/E,CAAC;IAED,qCAAqC;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC/B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;QACzE,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IAED,8EAA8E;IAC9E,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;IAC/E,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,IAAiB;IAC1D,OAAO,KAAK,IAAI,IAAI,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,IAAY,EAAE,IAAiB;IAC/E,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,SAAS,KAAK,SAAS,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC;AAC9D,CAAC"}
@@ -4,12 +4,20 @@
4
4
  export declare class CliSpinner {
5
5
  private _timer;
6
6
  private _frameIndex;
7
+ private _label;
8
+ private _render;
7
9
  private _restoreCursor;
8
10
  private _handleSIGINT;
9
11
  private _handleSIGTERM;
10
12
  private _handleUncaughtException;
11
13
  private _handleUnhandledRejection;
12
- start(): void;
14
+ start(label?: string): void;
15
+ /**
16
+ * Replaces the status text shown beside the spinner frame. Safe to call
17
+ * before `start()` (the next start uses the new label) or while spinning
18
+ * (the line is redrawn immediately so the change feels instant).
19
+ */
20
+ update(text: string): void;
13
21
  stop(): void;
14
22
  }
15
23
  //# sourceMappingURL=Spinner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/Utils/Spinner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA+C;IAC7D,OAAO,CAAC,WAAW,CAAK;IAGxB,OAAO,CAAC,cAAc,CAGpB;IAEF,OAAO,CAAC,aAAa,CAKnB;IAEF,OAAO,CAAC,cAAc,CAIpB;IAEF,OAAO,CAAC,wBAAwB,CAK9B;IAEF,OAAO,CAAC,yBAAyB,CAI/B;IAEF,KAAK,IAAI,IAAI;IAeb,IAAI,IAAI,IAAI;CAcb"}
1
+ {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/Utils/Spinner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA+C;IAC7D,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,MAAM,CAAM;IAEpB,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,cAAc,CAGpB;IAEF,OAAO,CAAC,aAAa,CAKnB;IAEF,OAAO,CAAC,cAAc,CAIpB;IAEF,OAAO,CAAC,wBAAwB,CAK9B;IAEF,OAAO,CAAC,yBAAyB,CAI/B;IAEF,KAAK,CAAC,KAAK,SAAK,GAAG,IAAI;IAqBvB;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK1B,IAAI,IAAI,IAAI;CAcb"}
@@ -1,12 +1,17 @@
1
1
  /*!
2
2
  * Copyright (C) Microsoft Corporation. All rights reserved.
3
3
  */
4
- // SYNC: this file is duplicated in packages/power-apps-cli/src/Utils/Spinner.ts.
5
- // Changes here must be mirrored there until a shared CLI utilities package exists.
6
4
  const SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
7
5
  export class CliSpinner {
8
6
  _timer = null;
9
7
  _frameIndex = 0;
8
+ _label = '';
9
+ _render() {
10
+ const suffix = this._label.length > 0 ? ` ${this._label}` : '';
11
+ // `\x1B[K` clears from the cursor to end of line so a shorter label
12
+ // never leaves behind trailing characters from a previous longer one.
13
+ process.stdout.write(`\r${SPINNER_FRAMES[this._frameIndex]}${suffix}\x1B[K`);
14
+ }
10
15
  // Arrow functions so `this` is stable when passed to process.on/off.
11
16
  _restoreCursor = () => {
12
17
  process.stdout.write('\r\x1B[K'); // erase spinner line
@@ -38,9 +43,14 @@ export class CliSpinner {
38
43
  this._restoreCursor();
39
44
  throw reason;
40
45
  };
41
- start() {
42
- if (this._timer !== null)
46
+ start(label = '') {
47
+ this._label = label;
48
+ if (this._timer !== null) {
49
+ // Already spinning — just refresh the line so the new label appears
50
+ // immediately rather than waiting for the next tick.
51
+ this._render();
43
52
  return;
53
+ }
44
54
  process.stdout.write('\x1B[?25l'); // hide cursor
45
55
  // Restore cursor if the process exits before stop() is called normally.
46
56
  process.once('exit', this._restoreCursor);
@@ -49,10 +59,20 @@ export class CliSpinner {
49
59
  process.once('uncaughtException', this._handleUncaughtException);
50
60
  process.once('unhandledRejection', this._handleUnhandledRejection);
51
61
  this._timer = setInterval(() => {
52
- process.stdout.write(`\r${SPINNER_FRAMES[this._frameIndex]}`);
62
+ this._render();
53
63
  this._frameIndex = (this._frameIndex + 1) % SPINNER_FRAMES.length;
54
64
  }, 80);
55
65
  }
66
+ /**
67
+ * Replaces the status text shown beside the spinner frame. Safe to call
68
+ * before `start()` (the next start uses the new label) or while spinning
69
+ * (the line is redrawn immediately so the change feels instant).
70
+ */
71
+ update(text) {
72
+ this._label = text;
73
+ if (this._timer !== null)
74
+ this._render();
75
+ }
56
76
  stop() {
57
77
  if (this._timer !== null) {
58
78
  clearInterval(this._timer);
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../src/Utils/Spinner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../src/Utils/Spinner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AddAction.d.ts","sourceRoot":"","sources":["../../src/Verbs/AddAction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAY5D,wBAAsB,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyDtF"}
1
+ {"version":3,"file":"AddAction.d.ts","sourceRoot":"","sources":["../../src/Verbs/AddAction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAO5D,wBAAsB,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBtF"}
@@ -1,59 +1,30 @@
1
1
  /*!
2
2
  * Copyright (C) Microsoft Corporation. All rights reserved.
3
3
  */
4
- import { addConnectorActionAsync, getPlayerServiceConfig } from '@microsoft/managed-apps-actions';
5
- import { getCliLogger, getSettings } from '../CliSettings.js';
6
4
  import { createDefaultStringOption } from '../CliUtils.js';
7
- import { CLI_BINARY_NAME } from '../Constants/CliConstants.js';
8
5
  import { HelpStrings } from '../Constants/HelpStrings.js';
9
- import { printInfo, printSuccess } from '../Utils/ConsoleOutput.js';
10
- import { resolveConnectionInteractivelyAsync, runConnectorDlpPreflightAsync, } from './ConnectorHelpers.js';
6
+ import { runAddActionFlowAsync } from './AddConnectorFlows.js';
7
+ import { runConnectorDlpPreflightAsync } from './ConnectorHelpers.js';
11
8
  import { AddActionArguments, SharedArguments } from './VerbConstants.js';
12
9
  export async function addActionAsync(argumentProvider) {
13
- const settings = getSettings();
14
- const { fileConfig, cliFs } = settings;
15
10
  createOptionSchema(argumentProvider);
16
11
  await argumentProvider.runVerb();
17
- const playerServiceConfig = getPlayerServiceConfig();
18
- const authProvider = argumentProvider.getAuthenticationProvider();
19
- const logger = getCliLogger();
20
12
  // Commander converts kebab-case flags to camelCase attribute names — use camelCase here.
21
13
  const apiId = await argumentProvider.getOption('apiId');
22
14
  const connectionIdFlag = await argumentProvider.getOption('connectionId', true);
23
15
  const skipCodegen = !!(await argumentProvider.getOption('skipCodegen', true));
24
16
  const useV1Codegen = !!(await argumentProvider.getOption('useV1Codegen', true));
25
17
  // ── Preflight: connector + DLP policy (throws on not-found or blocked) ────
26
- const { connector } = await runConnectorDlpPreflightAsync(argumentProvider, apiId);
27
- // ── Step 1: Does this connector require a connection? ─────────────────────
28
- const needsConnection = (connector.properties.connectionParameterSets?.values?.length ?? 0) > 0 ||
29
- connector.properties.metadata?.allowSharing === true;
30
- // ── Step 2: Connection resolution ─────────────────────────────────────────
31
- let connectionId = connectionIdFlag;
32
- if (needsConnection && !connectionId) {
33
- connectionId = await resolveConnectionInteractivelyAsync({
34
- argumentProvider,
35
- apiId,
36
- connector,
37
- });
38
- }
39
- // ── Step 3: Add the connector action ──────────────────────────────────────
40
- const context = {
41
- vfs: cliFs,
42
- authProvider,
43
- httpClient: argumentProvider.getHttpClient(),
44
- region: playerServiceConfig.region,
45
- environmentName: playerServiceConfig.environmentName,
46
- actionsParams: { apiId, connectionId, skipCodegen, useV1Codegen },
47
- localFilePaths: {
48
- appConfigPath: fileConfig.appConfigPath,
49
- schemaPath: fileConfig.schemaPath,
50
- codeGenPath: fileConfig.codeGenPath,
51
- },
52
- logger,
53
- };
54
- await addConnectorActionAsync(context);
55
- printSuccess(`Connector '${connector.properties.displayName ?? apiId}' added successfully.`);
56
- printInfo(`Hint: Run 'npx ${CLI_BINARY_NAME} dev' to test locally, or 'npx ${CLI_BINARY_NAME} push' to deploy.`);
18
+ const { connector, policy } = await runConnectorDlpPreflightAsync(argumentProvider, apiId);
19
+ await runAddActionFlowAsync({
20
+ argumentProvider,
21
+ connector,
22
+ apiId,
23
+ connectionIdFlag,
24
+ skipCodegen,
25
+ useV1Codegen,
26
+ policy,
27
+ });
57
28
  }
58
29
  function createOptionSchema(argumentProvider) {
59
30
  argumentProvider.setDescription(HelpStrings.app.add.action.description);