@microsoft/apps-cli 0.0.1 → 0.4.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 (334) hide show
  1. package/README.md +281 -1
  2. package/dist/ArgumentProvider.d.ts +102 -0
  3. package/dist/ArgumentProvider.d.ts.map +1 -0
  4. package/dist/ArgumentProvider.js +376 -0
  5. package/dist/ArgumentProvider.js.map +1 -0
  6. package/dist/Authentication/NodeMsalAuthenticationProvider.d.ts +18 -0
  7. package/dist/Authentication/NodeMsalAuthenticationProvider.d.ts.map +1 -0
  8. package/dist/Authentication/NodeMsalAuthenticationProvider.js +99 -0
  9. package/dist/Authentication/NodeMsalAuthenticationProvider.js.map +1 -0
  10. package/dist/Authentication/OrchardAuthenticationProvider.d.ts +13 -0
  11. package/dist/Authentication/OrchardAuthenticationProvider.d.ts.map +1 -0
  12. package/dist/Authentication/OrchardAuthenticationProvider.js +30 -0
  13. package/dist/Authentication/OrchardAuthenticationProvider.js.map +1 -0
  14. package/dist/Authentication/ServicePrincipalAuthenticationProvider.d.ts +23 -0
  15. package/dist/Authentication/ServicePrincipalAuthenticationProvider.d.ts.map +1 -0
  16. package/dist/Authentication/ServicePrincipalAuthenticationProvider.js +60 -0
  17. package/dist/Authentication/ServicePrincipalAuthenticationProvider.js.map +1 -0
  18. package/dist/Bin.d.ts +6 -0
  19. package/dist/Bin.d.ts.map +1 -0
  20. package/dist/Bin.js +7 -0
  21. package/dist/Bin.js.map +1 -0
  22. package/dist/Cli.d.ts +2 -0
  23. package/dist/Cli.d.ts.map +1 -0
  24. package/dist/Cli.js +95 -0
  25. package/dist/Cli.js.map +1 -0
  26. package/dist/CliSettings.d.ts +14 -0
  27. package/dist/CliSettings.d.ts.map +1 -0
  28. package/dist/CliSettings.js +76 -0
  29. package/dist/CliSettings.js.map +1 -0
  30. package/dist/CliUtils.d.ts +92 -0
  31. package/dist/CliUtils.d.ts.map +1 -0
  32. package/dist/CliUtils.js +218 -0
  33. package/dist/CliUtils.js.map +1 -0
  34. package/dist/Constants/CliConstants.d.ts +6 -0
  35. package/dist/Constants/CliConstants.d.ts.map +1 -0
  36. package/dist/Constants/CliConstants.js +6 -0
  37. package/dist/Constants/CliConstants.js.map +1 -0
  38. package/dist/Constants/CommandRegistry.d.ts +23 -0
  39. package/dist/Constants/CommandRegistry.d.ts.map +1 -0
  40. package/dist/Constants/CommandRegistry.js +197 -0
  41. package/dist/Constants/CommandRegistry.js.map +1 -0
  42. package/dist/Constants/HelpStrings.d.ts +329 -0
  43. package/dist/Constants/HelpStrings.d.ts.map +1 -0
  44. package/dist/Constants/HelpStrings.js +451 -0
  45. package/dist/Constants/HelpStrings.js.map +1 -0
  46. package/dist/Constants.d.ts +10 -0
  47. package/dist/Constants.d.ts.map +1 -0
  48. package/dist/Constants.js +18 -0
  49. package/dist/Constants.js.map +1 -0
  50. package/dist/Errors/CliError.d.ts +5 -0
  51. package/dist/Errors/CliError.d.ts.map +1 -0
  52. package/dist/Errors/CliError.js +7 -0
  53. package/dist/Errors/CliError.js.map +1 -0
  54. package/dist/FS/CliFs.d.ts +41 -0
  55. package/dist/FS/CliFs.d.ts.map +1 -0
  56. package/dist/FS/CliFs.js +136 -0
  57. package/dist/FS/CliFs.js.map +1 -0
  58. package/dist/HttpClient/CliHttpClient.d.ts +24 -0
  59. package/dist/HttpClient/CliHttpClient.d.ts.map +1 -0
  60. package/dist/HttpClient/CliHttpClient.js +122 -0
  61. package/dist/HttpClient/CliHttpClient.js.map +1 -0
  62. package/dist/HttpClient/OrchardProxy.d.ts +11 -0
  63. package/dist/HttpClient/OrchardProxy.d.ts.map +1 -0
  64. package/dist/HttpClient/OrchardProxy.js +25 -0
  65. package/dist/HttpClient/OrchardProxy.js.map +1 -0
  66. package/dist/HttpClient/Proxy.d.ts +7 -0
  67. package/dist/HttpClient/Proxy.d.ts.map +1 -0
  68. package/dist/HttpClient/Proxy.js +5 -0
  69. package/dist/HttpClient/Proxy.js.map +1 -0
  70. package/dist/Logger/CliLogger.d.ts +35 -0
  71. package/dist/Logger/CliLogger.d.ts.map +1 -0
  72. package/dist/Logger/CliLogger.js +237 -0
  73. package/dist/Logger/CliLogger.js.map +1 -0
  74. package/dist/Logger/ConsoleWriter.d.ts +15 -0
  75. package/dist/Logger/ConsoleWriter.d.ts.map +1 -0
  76. package/dist/Logger/ConsoleWriter.js +45 -0
  77. package/dist/Logger/ConsoleWriter.js.map +1 -0
  78. package/dist/Logger/Constants.d.ts +6 -0
  79. package/dist/Logger/Constants.d.ts.map +1 -0
  80. package/dist/Logger/Constants.js +15 -0
  81. package/dist/Logger/Constants.js.map +1 -0
  82. package/dist/Logger/LoggerSettings.d.ts +19 -0
  83. package/dist/Logger/LoggerSettings.d.ts.map +1 -0
  84. package/dist/Logger/LoggerSettings.js +114 -0
  85. package/dist/Logger/LoggerSettings.js.map +1 -0
  86. package/dist/Logger/OneDSWriter.d.ts +22 -0
  87. package/dist/Logger/OneDSWriter.d.ts.map +1 -0
  88. package/dist/Logger/OneDSWriter.js +129 -0
  89. package/dist/Logger/OneDSWriter.js.map +1 -0
  90. package/dist/Logger/Scrubber/ScrubCustomDimensions.d.ts +5 -0
  91. package/dist/Logger/Scrubber/ScrubCustomDimensions.d.ts.map +1 -0
  92. package/dist/Logger/Scrubber/ScrubCustomDimensions.js +46 -0
  93. package/dist/Logger/Scrubber/ScrubCustomDimensions.js.map +1 -0
  94. package/dist/Logger/Scrubber/ScrubCustomDimensionsConfig.d.ts +27 -0
  95. package/dist/Logger/Scrubber/ScrubCustomDimensionsConfig.d.ts.map +1 -0
  96. package/dist/Logger/Scrubber/ScrubCustomDimensionsConfig.js +168 -0
  97. package/dist/Logger/Scrubber/ScrubCustomDimensionsConfig.js.map +1 -0
  98. package/dist/Logger/Scrubber/ScrubUtils.d.ts +8 -0
  99. package/dist/Logger/Scrubber/ScrubUtils.d.ts.map +1 -0
  100. package/dist/Logger/Scrubber/ScrubUtils.js +34 -0
  101. package/dist/Logger/Scrubber/ScrubUtils.js.map +1 -0
  102. package/dist/Types/Argument.types.d.ts +27 -0
  103. package/dist/Types/Argument.types.d.ts.map +1 -0
  104. package/dist/Types/Argument.types.js +5 -0
  105. package/dist/Types/Argument.types.js.map +1 -0
  106. package/dist/Types/Cli.types.d.ts +32 -0
  107. package/dist/Types/Cli.types.d.ts.map +1 -0
  108. package/dist/Types/Cli.types.js +5 -0
  109. package/dist/Types/Cli.types.js.map +1 -0
  110. package/dist/Types/Command.types.d.ts +52 -0
  111. package/dist/Types/Command.types.d.ts.map +1 -0
  112. package/dist/Types/Command.types.js +8 -0
  113. package/dist/Types/Command.types.js.map +1 -0
  114. package/dist/Types/Datasource.types.d.ts +43 -0
  115. package/dist/Types/Datasource.types.d.ts.map +1 -0
  116. package/dist/Types/Datasource.types.js +5 -0
  117. package/dist/Types/Datasource.types.js.map +1 -0
  118. package/dist/Types/LoggerTypes.types.d.ts +17 -0
  119. package/dist/Types/LoggerTypes.types.d.ts.map +1 -0
  120. package/dist/Types/LoggerTypes.types.js +5 -0
  121. package/dist/Types/LoggerTypes.types.js.map +1 -0
  122. package/dist/Utils/BuildVerbDescriptionTable.d.ts +19 -0
  123. package/dist/Utils/BuildVerbDescriptionTable.d.ts.map +1 -0
  124. package/dist/Utils/BuildVerbDescriptionTable.js +87 -0
  125. package/dist/Utils/BuildVerbDescriptionTable.js.map +1 -0
  126. package/dist/Utils/ConsoleOutput.d.ts +80 -0
  127. package/dist/Utils/ConsoleOutput.d.ts.map +1 -0
  128. package/dist/Utils/ConsoleOutput.js +151 -0
  129. package/dist/Utils/ConsoleOutput.js.map +1 -0
  130. package/dist/Utils/DetectPackageManager.d.ts +9 -0
  131. package/dist/Utils/DetectPackageManager.d.ts.map +1 -0
  132. package/dist/Utils/DetectPackageManager.js +24 -0
  133. package/dist/Utils/DetectPackageManager.js.map +1 -0
  134. package/dist/Utils/EnhanceNetworkError.d.ts +14 -0
  135. package/dist/Utils/EnhanceNetworkError.d.ts.map +1 -0
  136. package/dist/Utils/EnhanceNetworkError.js +59 -0
  137. package/dist/Utils/EnhanceNetworkError.js.map +1 -0
  138. package/dist/Utils/EnvVars.d.ts +17 -0
  139. package/dist/Utils/EnvVars.d.ts.map +1 -0
  140. package/dist/Utils/EnvVars.js +38 -0
  141. package/dist/Utils/EnvVars.js.map +1 -0
  142. package/dist/Utils/GitCredentialConfig.d.ts +12 -0
  143. package/dist/Utils/GitCredentialConfig.d.ts.map +1 -0
  144. package/dist/Utils/GitCredentialConfig.js +32 -0
  145. package/dist/Utils/GitCredentialConfig.js.map +1 -0
  146. package/dist/Utils/GitUtils.d.ts +22 -0
  147. package/dist/Utils/GitUtils.d.ts.map +1 -0
  148. package/dist/Utils/GitUtils.js +35 -0
  149. package/dist/Utils/GitUtils.js.map +1 -0
  150. package/dist/Utils/Paging.d.ts +23 -0
  151. package/dist/Utils/Paging.d.ts.map +1 -0
  152. package/dist/Utils/Paging.js +67 -0
  153. package/dist/Utils/Paging.js.map +1 -0
  154. package/dist/Utils/ReadPackageJson.d.ts +9 -0
  155. package/dist/Utils/ReadPackageJson.d.ts.map +1 -0
  156. package/dist/Utils/ReadPackageJson.js +13 -0
  157. package/dist/Utils/ReadPackageJson.js.map +1 -0
  158. package/dist/Utils/ResolveCommand.d.ts +26 -0
  159. package/dist/Utils/ResolveCommand.d.ts.map +1 -0
  160. package/dist/Utils/ResolveCommand.js +62 -0
  161. package/dist/Utils/ResolveCommand.js.map +1 -0
  162. package/dist/Utils/RunCommand.d.ts +13 -0
  163. package/dist/Utils/RunCommand.d.ts.map +1 -0
  164. package/dist/Utils/RunCommand.js +35 -0
  165. package/dist/Utils/RunCommand.js.map +1 -0
  166. package/dist/Utils/Spinner.d.ts +15 -0
  167. package/dist/Utils/Spinner.d.ts.map +1 -0
  168. package/dist/Utils/Spinner.js +71 -0
  169. package/dist/Utils/Spinner.js.map +1 -0
  170. package/dist/Utils/zipBuildArtifact.d.ts +35 -0
  171. package/dist/Utils/zipBuildArtifact.d.ts.map +1 -0
  172. package/dist/Utils/zipBuildArtifact.js +100 -0
  173. package/dist/Utils/zipBuildArtifact.js.map +1 -0
  174. package/dist/Verbs/AddAction.d.ts +6 -0
  175. package/dist/Verbs/AddAction.d.ts.map +1 -0
  176. package/dist/Verbs/AddAction.js +87 -0
  177. package/dist/Verbs/AddAction.js.map +1 -0
  178. package/dist/Verbs/AddDataSource.d.ts +19 -0
  179. package/dist/Verbs/AddDataSource.d.ts.map +1 -0
  180. package/dist/Verbs/AddDataSource.js +174 -0
  181. package/dist/Verbs/AddDataSource.js.map +1 -0
  182. package/dist/Verbs/AddFlow.d.ts +12 -0
  183. package/dist/Verbs/AddFlow.d.ts.map +1 -0
  184. package/dist/Verbs/AddFlow.js +67 -0
  185. package/dist/Verbs/AddFlow.js.map +1 -0
  186. package/dist/Verbs/AddTable.d.ts +6 -0
  187. package/dist/Verbs/AddTable.d.ts.map +1 -0
  188. package/dist/Verbs/AddTable.js +163 -0
  189. package/dist/Verbs/AddTable.js.map +1 -0
  190. package/dist/Verbs/AuthStatus.d.ts +6 -0
  191. package/dist/Verbs/AuthStatus.d.ts.map +1 -0
  192. package/dist/Verbs/AuthStatus.js +18 -0
  193. package/dist/Verbs/AuthStatus.js.map +1 -0
  194. package/dist/Verbs/BuildMaafApp.d.ts +6 -0
  195. package/dist/Verbs/BuildMaafApp.d.ts.map +1 -0
  196. package/dist/Verbs/BuildMaafApp.js +97 -0
  197. package/dist/Verbs/BuildMaafApp.js.map +1 -0
  198. package/dist/Verbs/ConnectorHelpers.d.ts +37 -0
  199. package/dist/Verbs/ConnectorHelpers.d.ts.map +1 -0
  200. package/dist/Verbs/ConnectorHelpers.js +116 -0
  201. package/dist/Verbs/ConnectorHelpers.js.map +1 -0
  202. package/dist/Verbs/CreateMaafApp.d.ts +25 -0
  203. package/dist/Verbs/CreateMaafApp.d.ts.map +1 -0
  204. package/dist/Verbs/CreateMaafApp.js +565 -0
  205. package/dist/Verbs/CreateMaafApp.js.map +1 -0
  206. package/dist/Verbs/DeleteDataSource.d.ts +6 -0
  207. package/dist/Verbs/DeleteDataSource.d.ts.map +1 -0
  208. package/dist/Verbs/DeleteDataSource.js +106 -0
  209. package/dist/Verbs/DeleteDataSource.js.map +1 -0
  210. package/dist/Verbs/DeleteMaafApp.d.ts +23 -0
  211. package/dist/Verbs/DeleteMaafApp.d.ts.map +1 -0
  212. package/dist/Verbs/DeleteMaafApp.js +99 -0
  213. package/dist/Verbs/DeleteMaafApp.js.map +1 -0
  214. package/dist/Verbs/DeployMaafApp.d.ts +6 -0
  215. package/dist/Verbs/DeployMaafApp.d.ts.map +1 -0
  216. package/dist/Verbs/DeployMaafApp.js +96 -0
  217. package/dist/Verbs/DeployMaafApp.js.map +1 -0
  218. package/dist/Verbs/Dev.d.ts +6 -0
  219. package/dist/Verbs/Dev.d.ts.map +1 -0
  220. package/dist/Verbs/Dev.js +214 -0
  221. package/dist/Verbs/Dev.js.map +1 -0
  222. package/dist/Verbs/FindDataverseApi.d.ts +12 -0
  223. package/dist/Verbs/FindDataverseApi.d.ts.map +1 -0
  224. package/dist/Verbs/FindDataverseApi.js +101 -0
  225. package/dist/Verbs/FindDataverseApi.js.map +1 -0
  226. package/dist/Verbs/GetMaafApp.d.ts +6 -0
  227. package/dist/Verbs/GetMaafApp.d.ts.map +1 -0
  228. package/dist/Verbs/GetMaafApp.js +60 -0
  229. package/dist/Verbs/GetMaafApp.js.map +1 -0
  230. package/dist/Verbs/GetMaafBuildStatus.d.ts +6 -0
  231. package/dist/Verbs/GetMaafBuildStatus.d.ts.map +1 -0
  232. package/dist/Verbs/GetMaafBuildStatus.js +68 -0
  233. package/dist/Verbs/GetMaafBuildStatus.js.map +1 -0
  234. package/dist/Verbs/GetSettings.d.ts +12 -0
  235. package/dist/Verbs/GetSettings.d.ts.map +1 -0
  236. package/dist/Verbs/GetSettings.js +48 -0
  237. package/dist/Verbs/GetSettings.js.map +1 -0
  238. package/dist/Verbs/Init.d.ts +6 -0
  239. package/dist/Verbs/Init.d.ts.map +1 -0
  240. package/dist/Verbs/Init.js +172 -0
  241. package/dist/Verbs/Init.js.map +1 -0
  242. package/dist/Verbs/ListConnectionReferences.d.ts +6 -0
  243. package/dist/Verbs/ListConnectionReferences.d.ts.map +1 -0
  244. package/dist/Verbs/ListConnectionReferences.js +70 -0
  245. package/dist/Verbs/ListConnectionReferences.js.map +1 -0
  246. package/dist/Verbs/ListConnectorActions.d.ts +6 -0
  247. package/dist/Verbs/ListConnectorActions.d.ts.map +1 -0
  248. package/dist/Verbs/ListConnectorActions.js +79 -0
  249. package/dist/Verbs/ListConnectorActions.js.map +1 -0
  250. package/dist/Verbs/ListConnectors.d.ts +6 -0
  251. package/dist/Verbs/ListConnectors.d.ts.map +1 -0
  252. package/dist/Verbs/ListConnectors.js +66 -0
  253. package/dist/Verbs/ListConnectors.js.map +1 -0
  254. package/dist/Verbs/ListDatasets.d.ts +6 -0
  255. package/dist/Verbs/ListDatasets.d.ts.map +1 -0
  256. package/dist/Verbs/ListDatasets.js +83 -0
  257. package/dist/Verbs/ListDatasets.js.map +1 -0
  258. package/dist/Verbs/ListEnvironmentVariables.d.ts +14 -0
  259. package/dist/Verbs/ListEnvironmentVariables.d.ts.map +1 -0
  260. package/dist/Verbs/ListEnvironmentVariables.js +66 -0
  261. package/dist/Verbs/ListEnvironmentVariables.js.map +1 -0
  262. package/dist/Verbs/ListFlows.d.ts +13 -0
  263. package/dist/Verbs/ListFlows.d.ts.map +1 -0
  264. package/dist/Verbs/ListFlows.js +88 -0
  265. package/dist/Verbs/ListFlows.js.map +1 -0
  266. package/dist/Verbs/ListMaafApps.d.ts +71 -0
  267. package/dist/Verbs/ListMaafApps.d.ts.map +1 -0
  268. package/dist/Verbs/ListMaafApps.js +168 -0
  269. package/dist/Verbs/ListMaafApps.js.map +1 -0
  270. package/dist/Verbs/ListSqlStoredProcedures.d.ts +6 -0
  271. package/dist/Verbs/ListSqlStoredProcedures.d.ts.map +1 -0
  272. package/dist/Verbs/ListSqlStoredProcedures.js +84 -0
  273. package/dist/Verbs/ListSqlStoredProcedures.js.map +1 -0
  274. package/dist/Verbs/ListTables.d.ts +6 -0
  275. package/dist/Verbs/ListTables.d.ts.map +1 -0
  276. package/dist/Verbs/ListTables.js +95 -0
  277. package/dist/Verbs/ListTables.js.map +1 -0
  278. package/dist/Verbs/Login.d.ts +6 -0
  279. package/dist/Verbs/Login.d.ts.map +1 -0
  280. package/dist/Verbs/Login.js +28 -0
  281. package/dist/Verbs/Login.js.map +1 -0
  282. package/dist/Verbs/Logout.d.ts +6 -0
  283. package/dist/Verbs/Logout.d.ts.map +1 -0
  284. package/dist/Verbs/Logout.js +28 -0
  285. package/dist/Verbs/Logout.js.map +1 -0
  286. package/dist/Verbs/MaafAppPermissions.d.ts +23 -0
  287. package/dist/Verbs/MaafAppPermissions.d.ts.map +1 -0
  288. package/dist/Verbs/MaafAppPermissions.js +278 -0
  289. package/dist/Verbs/MaafAppPermissions.js.map +1 -0
  290. package/dist/Verbs/Pack.d.ts +38 -0
  291. package/dist/Verbs/Pack.d.ts.map +1 -0
  292. package/dist/Verbs/Pack.js +106 -0
  293. package/dist/Verbs/Pack.js.map +1 -0
  294. package/dist/Verbs/PushMaafApp.d.ts +6 -0
  295. package/dist/Verbs/PushMaafApp.d.ts.map +1 -0
  296. package/dist/Verbs/PushMaafApp.js +145 -0
  297. package/dist/Verbs/PushMaafApp.js.map +1 -0
  298. package/dist/Verbs/RefreshDataSource.d.ts +6 -0
  299. package/dist/Verbs/RefreshDataSource.d.ts.map +1 -0
  300. package/dist/Verbs/RefreshDataSource.js +72 -0
  301. package/dist/Verbs/RefreshDataSource.js.map +1 -0
  302. package/dist/Verbs/RemoveFlow.d.ts +12 -0
  303. package/dist/Verbs/RemoveFlow.d.ts.map +1 -0
  304. package/dist/Verbs/RemoveFlow.js +99 -0
  305. package/dist/Verbs/RemoveFlow.js.map +1 -0
  306. package/dist/Verbs/SetSetting.d.ts +12 -0
  307. package/dist/Verbs/SetSetting.d.ts.map +1 -0
  308. package/dist/Verbs/SetSetting.js +142 -0
  309. package/dist/Verbs/SetSetting.js.map +1 -0
  310. package/dist/Verbs/ShareMaafApp.d.ts +12 -0
  311. package/dist/Verbs/ShareMaafApp.d.ts.map +1 -0
  312. package/dist/Verbs/ShareMaafApp.js +14 -0
  313. package/dist/Verbs/ShareMaafApp.js.map +1 -0
  314. package/dist/Verbs/ShowMaafApp.d.ts +94 -0
  315. package/dist/Verbs/ShowMaafApp.d.ts.map +1 -0
  316. package/dist/Verbs/ShowMaafApp.js +216 -0
  317. package/dist/Verbs/ShowMaafApp.js.map +1 -0
  318. package/dist/Verbs/TelemetrySettings.d.ts +8 -0
  319. package/dist/Verbs/TelemetrySettings.d.ts.map +1 -0
  320. package/dist/Verbs/TelemetrySettings.js +104 -0
  321. package/dist/Verbs/TelemetrySettings.js.map +1 -0
  322. package/dist/Verbs/UnshareMaafApp.d.ts +12 -0
  323. package/dist/Verbs/UnshareMaafApp.d.ts.map +1 -0
  324. package/dist/Verbs/UnshareMaafApp.js +14 -0
  325. package/dist/Verbs/UnshareMaafApp.js.map +1 -0
  326. package/dist/Verbs/VerbConstants.d.ts +433 -0
  327. package/dist/Verbs/VerbConstants.d.ts.map +1 -0
  328. package/dist/Verbs/VerbConstants.js +403 -0
  329. package/dist/Verbs/VerbConstants.js.map +1 -0
  330. package/dist/Verbs/index.d.ts +40 -0
  331. package/dist/Verbs/index.d.ts.map +1 -0
  332. package/dist/Verbs/index.js +40 -0
  333. package/dist/Verbs/index.js.map +1 -0
  334. package/package.json +43 -3
@@ -0,0 +1,72 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import { getPlayerServiceConfig, refreshDataSourceAsync as refreshDataSourceActionsAsync, } from '@microsoft/apps-actions';
5
+ import { getCliLogger, getSettings } from '../CliSettings.js';
6
+ import { promptConfirm, promptText } from '../CliUtils.js';
7
+ import { CLI_BINARY_NAME } from '../Constants/CliConstants.js';
8
+ import { HelpStrings } from '../Constants/HelpStrings.js';
9
+ import { RefreshDataSourceArguments } from './VerbConstants.js';
10
+ export async function refreshDataSourceAsync(argumentProvider) {
11
+ const settings = getSettings();
12
+ const { fileConfig, cliFs } = settings;
13
+ createOptionSchema(argumentProvider);
14
+ await argumentProvider.runVerb();
15
+ const playerServiceConfig = getPlayerServiceConfig();
16
+ const authenticationProvider = argumentProvider.getAuthenticationProvider();
17
+ const rawDataSourceName = await argumentProvider.getOption('dataSourceName');
18
+ const dataSourceName = rawDataSourceName || undefined;
19
+ const config = {
20
+ vfs: cliFs,
21
+ authProvider: authenticationProvider,
22
+ httpClient: argumentProvider.getHttpClient(),
23
+ region: playerServiceConfig.region,
24
+ environmentName: playerServiceConfig.environmentName,
25
+ localFilePaths: {
26
+ appConfigPath: fileConfig.appConfigPath,
27
+ schemaPath: fileConfig.schemaPath,
28
+ codeGenPath: fileConfig.codeGenPath,
29
+ },
30
+ logger: getCliLogger(),
31
+ actionsParams: {
32
+ dataSourceName,
33
+ },
34
+ };
35
+ const result = await refreshDataSourceActionsAsync(config);
36
+ for (const dsName of result.succeeded) {
37
+ console.log(`'${dsName}' refreshed successfully.`);
38
+ }
39
+ for (const failure of result.failed) {
40
+ console.error(`Failed to refresh '${failure.dataSourceName}': ${failure.error}`);
41
+ }
42
+ if (result.succeeded.length > 0 && result.failed.length === 0) {
43
+ console.log(`Hint: Run 'npx ${CLI_BINARY_NAME} run' to test locally, or 'npx ${CLI_BINARY_NAME} push' to deploy.`);
44
+ }
45
+ }
46
+ function createOptionSchema(argumentProvider) {
47
+ argumentProvider.setDescription(HelpStrings.app.refresh.description);
48
+ argumentProvider.addExamples(HelpStrings.app.refresh.examples);
49
+ argumentProvider.addOptions([
50
+ {
51
+ flags: {
52
+ key: RefreshDataSourceArguments.DataSourceName.name,
53
+ alias: RefreshDataSourceArguments.DataSourceName.alias,
54
+ },
55
+ env: RefreshDataSourceArguments.DataSourceName.envVar,
56
+ description: HelpStrings.app.refresh.options.dataSourceName,
57
+ optionalInNonInteractive: true,
58
+ customPrompt: async () => {
59
+ const hasSpecificDs = await promptConfirm({
60
+ message: 'Do you want to refresh a specific data source? (No to refresh all)',
61
+ });
62
+ if (hasSpecificDs) {
63
+ return await promptText({
64
+ message: RefreshDataSourceArguments.DataSourceName.promptMessage,
65
+ });
66
+ }
67
+ return '';
68
+ },
69
+ },
70
+ ]);
71
+ }
72
+ //# sourceMappingURL=RefreshDataSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefreshDataSource.js","sourceRoot":"","sources":["../../src/Verbs/RefreshDataSource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import type { ArgumentProvider } from '../ArgumentProvider.js';
5
+ /**
6
+ * Remove a cloud flow from the current app.
7
+ *
8
+ * @param {ArgumentProvider} argumentProvider
9
+ * @returns {Promise<void>}
10
+ */
11
+ export declare function removeFlowAsync(argumentProvider: ArgumentProvider): Promise<void>;
12
+ //# sourceMappingURL=RemoveFlow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoveFlow.d.ts","sourceRoot":"","sources":["../../src/Verbs/RemoveFlow.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAO5D;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8CvF"}
@@ -0,0 +1,99 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import { getPlayerServiceConfig, removeFlowAsync as removeFlowActionAsync, } from '@microsoft/apps-actions';
5
+ import { getCliLogger, getSettings } from '../CliSettings.js';
6
+ import { promptConfirm, promptText } from '../CliUtils.js';
7
+ import { HelpStrings } from '../Constants/HelpStrings.js';
8
+ import { CliFS } from '../FS/CliFs.js';
9
+ import { RemoveFlowArguments } from './VerbConstants.js';
10
+ /**
11
+ * Remove a cloud flow from the current app.
12
+ *
13
+ * @param {ArgumentProvider} argumentProvider
14
+ * @returns {Promise<void>}
15
+ */
16
+ export async function removeFlowAsync(argumentProvider) {
17
+ const settings = getSettings();
18
+ const { fileConfig } = settings;
19
+ createOptionSchema(argumentProvider);
20
+ await argumentProvider.runVerb();
21
+ const cliFs = new CliFS({
22
+ cwd: process.cwd(),
23
+ allowCwdRead: true,
24
+ allowCwdWrite: true,
25
+ });
26
+ const playerServiceConfig = getPlayerServiceConfig();
27
+ const authenticationProvider = argumentProvider.getAuthenticationProvider();
28
+ const flowDataSourceName = await argumentProvider.getOption('flowName');
29
+ const flowId = await argumentProvider.getOption('flowId');
30
+ const context = {
31
+ vfs: cliFs,
32
+ authProvider: authenticationProvider,
33
+ httpClient: argumentProvider.getHttpClient(),
34
+ region: playerServiceConfig.region,
35
+ environmentName: playerServiceConfig.environmentName,
36
+ actionsParams: {
37
+ flowDataSourceName,
38
+ flowId,
39
+ },
40
+ localFilePaths: {
41
+ appConfigPath: fileConfig.appConfigPath,
42
+ schemaPath: fileConfig.schemaPath,
43
+ codeGenPath: fileConfig.codeGenPath,
44
+ },
45
+ logger: getCliLogger(),
46
+ };
47
+ const result = await removeFlowActionAsync(context);
48
+ const flowIdentifier = flowDataSourceName ?? flowId ?? '';
49
+ if (!result.found) {
50
+ console.log(`\nFlow "${flowIdentifier}" was not found in ms.config.`);
51
+ }
52
+ else if (result.success) {
53
+ console.log(`\nFlow "${flowIdentifier}" removed successfully.`);
54
+ }
55
+ else {
56
+ console.error(`\nFailed to remove flow: ${result.error}`);
57
+ }
58
+ }
59
+ function createOptionSchema(argumentProvider) {
60
+ argumentProvider.setDescription(HelpStrings.deprecated.Verbs['Remove-flow'].Description);
61
+ argumentProvider.addOptions([
62
+ {
63
+ flags: {
64
+ key: RemoveFlowArguments.FlowDataSourceName.name,
65
+ alias: RemoveFlowArguments.FlowDataSourceName.alias,
66
+ },
67
+ env: RemoveFlowArguments.FlowDataSourceName.envVar,
68
+ description: HelpStrings.deprecated.Verbs['Remove-flow'].Options.FlowDataSourceName,
69
+ optionalInNonInteractive: true,
70
+ customPrompt: async () => {
71
+ const useFlowName = await promptConfirm({
72
+ message: 'Do you want to remove a flow by name?',
73
+ });
74
+ if (useFlowName) {
75
+ return await promptText({
76
+ message: RemoveFlowArguments.FlowDataSourceName.promptMessage,
77
+ });
78
+ }
79
+ return undefined;
80
+ },
81
+ },
82
+ {
83
+ flags: {
84
+ key: RemoveFlowArguments.FlowId.name,
85
+ alias: RemoveFlowArguments.FlowId.alias,
86
+ },
87
+ env: RemoveFlowArguments.FlowId.envVar,
88
+ description: HelpStrings.deprecated.Verbs['Remove-flow'].Options.FlowId,
89
+ optionalInNonInteractive: true,
90
+ customPrompt: async () => {
91
+ const existingName = await argumentProvider.getOption('flowName', true);
92
+ if (existingName)
93
+ return undefined;
94
+ return await promptText({ message: RemoveFlowArguments.FlowId.promptMessage });
95
+ },
96
+ },
97
+ ]);
98
+ }
99
+ //# sourceMappingURL=RemoveFlow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoveFlow.js","sourceRoot":"","sources":["../../src/Verbs/RemoveFlow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import type { ArgumentProvider } from '../ArgumentProvider.js';
5
+ /**
6
+ * Update one or more app settings in ms.config.json for the current Power Apps code app.
7
+ *
8
+ * @param {ArgumentProvider} argumentProvider
9
+ * @returns {Promise<void>}
10
+ */
11
+ export declare function setSettingAsync(argumentProvider: ArgumentProvider): Promise<void>;
12
+ //# sourceMappingURL=SetSetting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetSetting.d.ts","sourceRoot":"","sources":["../../src/Verbs/SetSetting.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAgD5D;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqFvF"}
@@ -0,0 +1,142 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import { APP_SETTINGS_DEFINITIONS, readRepoConfig, settingNameToOptionKey, writeRepoConfig, } from '@microsoft/apps-actions';
5
+ import { AppConfigFileName } from '@microsoft/apps-common/config';
6
+ import { getCliLogger, getSettings } from '../CliSettings.js';
7
+ import { CLI_BINARY_NAME } from '../Constants/CliConstants.js';
8
+ import { HelpStrings } from '../Constants/HelpStrings.js';
9
+ import { UsageError } from '../Errors/CliError.js';
10
+ import { printInfo, printJsonSuccess } from '../Utils/ConsoleOutput.js';
11
+ /**
12
+ * Returns the first long flag in process.argv that is neither a known app
13
+ * setting nor a flag already registered with the argument provider, or null
14
+ * if all flags are recognised.
15
+ * Must be called before runVerb() so Commander hasn't had a chance to error
16
+ * first with its own generic message.
17
+ */
18
+ function findUnknownSettingFlag(argumentProvider) {
19
+ const knownSettingFlags = new Set(APP_SETTINGS_DEFINITIONS.map((d) => `--${d.name}`));
20
+ const globalFlags = argumentProvider.getRegisteredFlags();
21
+ for (const token of process.argv.slice(2)) {
22
+ if (!token.startsWith('--'))
23
+ continue;
24
+ if (knownSettingFlags.has(token))
25
+ continue;
26
+ if (globalFlags.has(token))
27
+ continue;
28
+ return token;
29
+ }
30
+ return null;
31
+ }
32
+ /**
33
+ * Returns the name of the first known setting flag that appears more than once
34
+ * in process.argv, or null if no duplicates exist.
35
+ */
36
+ function findDuplicateSettingFlag() {
37
+ for (const def of APP_SETTINGS_DEFINITIONS) {
38
+ const flag = `--${def.name}`;
39
+ const count = process.argv.filter((arg) => arg === flag).length;
40
+ if (count > 1) {
41
+ return def.name;
42
+ }
43
+ }
44
+ return null;
45
+ }
46
+ // Error messages as specified
47
+ const ERR_INVALID = 'The setting value or name you have input is invalid. Check your input, and try again.';
48
+ const ERR_DUPLICATE = 'You have input duplicate setting flags. Try again with one value per setting.';
49
+ /**
50
+ * Update one or more app settings in ms.config.json for the current Power Apps code app.
51
+ *
52
+ * @param {ArgumentProvider} argumentProvider
53
+ * @returns {Promise<void>}
54
+ */
55
+ export async function setSettingAsync(argumentProvider) {
56
+ const cliSettings = getSettings();
57
+ if (!cliSettings.appConfig) {
58
+ throw new UsageError(`No ${AppConfigFileName} found in the current directory. Run "npx ${CLI_BINARY_NAME} app init" first.`);
59
+ }
60
+ // Validate flags before Commander parses — it would otherwise emit its own generic error.
61
+ const unknownFlag = findUnknownSettingFlag(argumentProvider);
62
+ if (unknownFlag) {
63
+ throw new UsageError(ERR_INVALID);
64
+ }
65
+ const duplicateFlag = findDuplicateSettingFlag();
66
+ if (duplicateFlag) {
67
+ throw new UsageError(ERR_DUPLICATE);
68
+ }
69
+ createOptionSchema(argumentProvider);
70
+ await argumentProvider.runVerb();
71
+ const logger = getCliLogger();
72
+ const scenario = logger.trackScenario('SetSetting');
73
+ try {
74
+ // Collect and validate all provided settings before writing anything (atomic).
75
+ const updates = {};
76
+ const invalidSettings = [];
77
+ for (const def of APP_SETTINGS_DEFINITIONS) {
78
+ const optionKey = settingNameToOptionKey(def.name);
79
+ // ignorePrompt = true: settings are never prompted for interactively
80
+ const rawValue = await argumentProvider.getOption(optionKey, true);
81
+ if (rawValue === undefined) {
82
+ continue;
83
+ }
84
+ if (def.type === 'boolean') {
85
+ if (rawValue !== 'true' && rawValue !== 'false') {
86
+ invalidSettings.push(def.name);
87
+ }
88
+ else {
89
+ updates[def.configKey] = rawValue === 'true';
90
+ }
91
+ }
92
+ }
93
+ if (invalidSettings.length > 0) {
94
+ throw new UsageError(ERR_INVALID);
95
+ }
96
+ if (Object.keys(updates).length === 0) {
97
+ printInfo(`No settings provided. Use --<setting> <value> to update a setting, e.g. --show-header false.`);
98
+ printInfo(`Run "npx ${CLI_BINARY_NAME} app get-settings" to see available settings.`);
99
+ scenario.complete();
100
+ return;
101
+ }
102
+ // Read config fresh, merge updates, write back atomically.
103
+ const config = await readRepoConfig(cliSettings.fileConfig.appConfigPath);
104
+ config.appSettings = { ...(config.appSettings ?? {}), ...updates };
105
+ await writeRepoConfig(cliSettings.fileConfig.appConfigPath, config);
106
+ scenario.complete();
107
+ // Print confirmation summary.
108
+ const jsonMode = argumentProvider.isJsonMode();
109
+ if (jsonMode) {
110
+ printJsonSuccess({ settings: updates });
111
+ }
112
+ else {
113
+ for (const def of APP_SETTINGS_DEFINITIONS) {
114
+ const value = updates[def.configKey];
115
+ if (value !== undefined) {
116
+ printInfo(`${def.name} = ${value}`);
117
+ }
118
+ }
119
+ }
120
+ }
121
+ catch (error) {
122
+ scenario.failure({ error: error instanceof Error ? error.message : String(error) });
123
+ throw error;
124
+ }
125
+ }
126
+ // Values must be valid CliEnvVarName members — TypeScript enforces this at compile time.
127
+ // When a new entry is added to APP_SETTINGS_DEFINITIONS, add a corresponding entry here.
128
+ const SETTING_ENV_VARS = {
129
+ 'show-header': 'APP_SHOW_HEADER',
130
+ 'enable-catalyst': 'APP_ENABLE_CATALYST',
131
+ };
132
+ function createOptionSchema(argumentProvider) {
133
+ argumentProvider.setDescription(HelpStrings.app['set-setting'].description);
134
+ argumentProvider.addExamples(HelpStrings.app['set-setting'].examples ?? []);
135
+ const optionDescriptions = HelpStrings.app['set-setting'].options;
136
+ argumentProvider.addOptions(APP_SETTINGS_DEFINITIONS.map((def) => ({
137
+ flags: { key: def.name },
138
+ env: SETTING_ENV_VARS[def.name],
139
+ description: optionDescriptions?.[def.name] ?? def.description,
140
+ })));
141
+ }
142
+ //# sourceMappingURL=SetSetting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetSetting.js","sourceRoot":"","sources":["../../src/Verbs/SetSetting.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import type { ArgumentProvider } from '../ArgumentProvider.js';
5
+ /**
6
+ * Implements `ms app share` — grants the `Microsoft App Reader` role to the
7
+ * comma-separated list of AAD principals (users or groups) supplied as the
8
+ * positional argument. See `MaafAppPermissions.ts` for the shared resolution
9
+ * and execution pipeline.
10
+ */
11
+ export declare function shareMaafAppAsync(argumentProvider: ArgumentProvider): Promise<void>;
12
+ //# sourceMappingURL=ShareMaafApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShareMaafApp.d.ts","sourceRoot":"","sources":["../../src/Verbs/ShareMaafApp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5D;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzF"}
@@ -0,0 +1,14 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import { executeMaafAppPermissionsAsync } from './MaafAppPermissions.js';
5
+ /**
6
+ * Implements `ms app share` — grants the `Microsoft App Reader` role to the
7
+ * comma-separated list of AAD principals (users or groups) supplied as the
8
+ * positional argument. See `MaafAppPermissions.ts` for the shared resolution
9
+ * and execution pipeline.
10
+ */
11
+ export async function shareMaafAppAsync(argumentProvider) {
12
+ await executeMaafAppPermissionsAsync(argumentProvider, 'share');
13
+ }
14
+ //# sourceMappingURL=ShareMaafApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShareMaafApp.js","sourceRoot":"","sources":["../../src/Verbs/ShareMaafApp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,gBAAkC;IACxE,MAAM,8BAA8B,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC"}
@@ -0,0 +1,94 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import type { MaafAppDefinition } from '@microsoft/apps-actions';
5
+ import type { AppConfig } from '@microsoft/apps-common/config';
6
+ import type { ArgumentProvider } from '../ArgumentProvider.js';
7
+ export interface TableEntry {
8
+ /** Dataset (e.g. `server.db.windows.net,mydb`); omitted for dataverse-style refs that have no dataset. */
9
+ dataset?: string;
10
+ table: string;
11
+ }
12
+ export interface ProcedureEntry {
13
+ dataset: string;
14
+ procedure: string;
15
+ }
16
+ /**
17
+ * Per-connector slice rendered by `app show`. Optional fields are omitted from JSON
18
+ * output when empty so the document stays compact.
19
+ */
20
+ export interface ConnectorView {
21
+ /** Logical key from `connectionReferences` (e.g. `shared_office365users`). */
22
+ connector: string;
23
+ /** Friendly name from the connector ref (e.g. `Office 365 Users`). */
24
+ displayName?: string;
25
+ /** Bound action operation names (e.g. `GetUser`, `ListUsers`). */
26
+ actions?: string[];
27
+ /** Tables bound to the app — both tabular-connector tables and dataverse logical names. */
28
+ tables?: TableEntry[];
29
+ /** Stored procedures bound to the app (currently only SQL). */
30
+ procedures?: ProcedureEntry[];
31
+ }
32
+ /**
33
+ * Discriminated union: `build` is omitted when neither side is configured;
34
+ * otherwise we emit only the keys that are actually set so the type matches
35
+ * what JSON consumers see (JSON.stringify drops `undefined` values silently).
36
+ */
37
+ export type BuildView = {
38
+ path: string;
39
+ entryPoint: string;
40
+ } | {
41
+ path: string;
42
+ } | {
43
+ entryPoint: string;
44
+ };
45
+ /**
46
+ * The complete output document for `app show` — used as both the JSON payload and
47
+ * the input to the human formatter so the two views can never disagree.
48
+ */
49
+ export interface AppShowView {
50
+ /** App display name from the server (`MaafAppDefinition.displayName`). */
51
+ name: string;
52
+ /** Bare environment ID. */
53
+ environmentId: string;
54
+ /** Server-side app identifier — bare GUID (`MaafAppDefinition.id`). */
55
+ appId: string;
56
+ /** Short SHA of the deployed commit; omitted when `commitHash` is absent. */
57
+ commit?: string;
58
+ /**
59
+ * Local build output, sourced from `ms.config.json`. Omitted when neither
60
+ * `buildPath` nor `buildEntryPoint` is configured — `app show` never invents
61
+ * defaults so the displayed values always match the config file verbatim.
62
+ */
63
+ build?: BuildView;
64
+ /** Connectors bound to the app, in declaration order from the server response. */
65
+ connectors: ConnectorView[];
66
+ }
67
+ /**
68
+ * Implements `ms app show` — prints the current app's configuration and bound
69
+ * resources for the project rooted at the cwd.
70
+ *
71
+ * Pipeline:
72
+ * 1. Register description/examples and run the verb (so `--help` works even
73
+ * outside an initialised project).
74
+ * 2. Require a loaded `ms.config.json` with an `appId`.
75
+ * 3. Resolve `environmentId` (`--environment-id` flag wins; otherwise from config) and tenantId.
76
+ * 4. Fetch the live `MaafAppDefinition` payload via `infoAsync` (server is the
77
+ * source of truth for displayName, commitHash, and connection references).
78
+ * 5. Fold local config (build path) + server response into an `AppShowView`.
79
+ * 6. Emit JSON when `--json` is set, otherwise the human view.
80
+ */
81
+ export declare function showMaafAppAsync(argumentProvider: ArgumentProvider): Promise<void>;
82
+ /**
83
+ * Folds the live `App` payload and the local `ms.config.json` into a single
84
+ * `AppShowView`. Pure function — no I/O, no console — so unit tests can exercise
85
+ * shape decisions without mocking the API client or stdout.
86
+ *
87
+ * @param app - The server-side app payload from `infoAsync`.
88
+ * @param appConfig - The parsed `ms.config.json` contents (build paths only here).
89
+ * @param fallbackEnvironmentId - Used when the server response omits `environmentId`
90
+ * (defensive — the new MAAF wire contract makes this required, but we keep the
91
+ * fallback so this function stays robust to sparse payloads).
92
+ */
93
+ export declare function buildAppShowView(app: MaafAppDefinition, appConfig: AppConfig, fallbackEnvironmentId: string): AppShowView;
94
+ //# sourceMappingURL=ShowMaafApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShowMaafApp.d.ts","sourceRoot":"","sources":["../../src/Verbs/ShowMaafApp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAA0B,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEzF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAG/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAwB5D,MAAM,WAAW,UAAU;IACzB,0GAA0G;IAC1G,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,2FAA2F;IAC3F,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3B;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,kFAAkF;IAClF,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCxF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,iBAAiB,EACtB,SAAS,EAAE,SAAS,EACpB,qBAAqB,EAAE,MAAM,GAC5B,WAAW,CAab"}