@microsoft/teamsfx-core 2.0.0-alpha.2a6e2f57a.0 → 2.0.0-alpha.34e31d6eb.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 (159) hide show
  1. package/build/common/deps-checker/constant/helpLink.d.ts +6 -6
  2. package/build/common/deps-checker/constant/helpLink.d.ts.map +1 -1
  3. package/build/common/deps-checker/constant/helpLink.js +14 -8
  4. package/build/common/deps-checker/constant/helpLink.js.map +1 -1
  5. package/build/common/deps-checker/constant/message.d.ts +4 -2
  6. package/build/common/deps-checker/constant/message.d.ts.map +1 -1
  7. package/build/common/deps-checker/constant/message.js +11 -5
  8. package/build/common/deps-checker/constant/message.js.map +1 -1
  9. package/build/common/deps-checker/constant/telemetry.d.ts +12 -1
  10. package/build/common/deps-checker/constant/telemetry.d.ts.map +1 -1
  11. package/build/common/deps-checker/constant/telemetry.js +11 -0
  12. package/build/common/deps-checker/constant/telemetry.js.map +1 -1
  13. package/build/common/deps-checker/depsChecker.d.ts +3 -0
  14. package/build/common/deps-checker/depsChecker.d.ts.map +1 -1
  15. package/build/common/deps-checker/depsChecker.js.map +1 -1
  16. package/build/common/deps-checker/internal/funcToolChecker.d.ts +3 -4
  17. package/build/common/deps-checker/internal/funcToolChecker.d.ts.map +1 -1
  18. package/build/common/deps-checker/internal/funcToolChecker.js +108 -64
  19. package/build/common/deps-checker/internal/funcToolChecker.js.map +1 -1
  20. package/build/common/deps-checker/internal/nodeChecker.d.ts +3 -3
  21. package/build/common/deps-checker/internal/nodeChecker.d.ts.map +1 -1
  22. package/build/common/deps-checker/internal/nodeChecker.js +1 -1
  23. package/build/common/deps-checker/internal/nodeChecker.js.map +1 -1
  24. package/build/common/deps-checker/util/fileHelper.js +1 -1
  25. package/build/common/deps-checker/util/fileHelper.js.map +1 -1
  26. package/build/common/versionMetadata.d.ts +1 -0
  27. package/build/common/versionMetadata.d.ts.map +1 -1
  28. package/build/common/versionMetadata.js +1 -0
  29. package/build/common/versionMetadata.js.map +1 -1
  30. package/build/component/configManager/diagnostic.d.ts +9 -0
  31. package/build/component/configManager/diagnostic.d.ts.map +1 -0
  32. package/build/component/configManager/diagnostic.js +47 -0
  33. package/build/component/configManager/diagnostic.js.map +1 -0
  34. package/build/component/configManager/parser.d.ts.map +1 -1
  35. package/build/component/configManager/parser.js +10 -4
  36. package/build/component/configManager/parser.js.map +1 -1
  37. package/build/component/constants.d.ts +4 -0
  38. package/build/component/constants.d.ts.map +1 -1
  39. package/build/component/constants.js +49 -26
  40. package/build/component/constants.js.map +1 -1
  41. package/build/component/coordinator/index.d.ts +2 -2
  42. package/build/component/coordinator/index.d.ts.map +1 -1
  43. package/build/component/coordinator/index.js +50 -61
  44. package/build/component/coordinator/index.js.map +1 -1
  45. package/build/component/developerPortalScaffoldUtils.d.ts +4 -1
  46. package/build/component/developerPortalScaffoldUtils.d.ts.map +1 -1
  47. package/build/component/developerPortalScaffoldUtils.js +5 -5
  48. package/build/component/developerPortalScaffoldUtils.js.map +1 -1
  49. package/build/component/driver/arm/deployImpl.d.ts.map +1 -1
  50. package/build/component/driver/arm/deployImpl.js +4 -1
  51. package/build/component/driver/arm/deployImpl.js.map +1 -1
  52. package/build/component/driver/arm/validator.d.ts.map +1 -1
  53. package/build/component/driver/arm/validator.js +0 -15
  54. package/build/component/driver/arm/validator.js.map +1 -1
  55. package/build/component/driver/deploy/azure/impl/azureDeployImpl.js +3 -3
  56. package/build/component/driver/deploy/azure/impl/azureDeployImpl.js.map +1 -1
  57. package/build/component/driver/devTool/installDriver.d.ts.map +1 -1
  58. package/build/component/driver/devTool/installDriver.js +18 -7
  59. package/build/component/driver/devTool/installDriver.js.map +1 -1
  60. package/build/component/driver/teamsApp/interfaces/ValidateManifestArgs.d.ts +5 -0
  61. package/build/component/driver/teamsApp/interfaces/ValidateManifestArgs.d.ts.map +1 -1
  62. package/build/component/driver/teamsApp/validate.d.ts.map +1 -1
  63. package/build/component/driver/teamsApp/validate.js +29 -9
  64. package/build/component/driver/teamsApp/validate.js.map +1 -1
  65. package/build/component/feature/apiconnector/errors.d.ts +0 -4
  66. package/build/component/feature/apiconnector/errors.d.ts.map +1 -1
  67. package/build/component/feature/apiconnector/errors.js +12 -16
  68. package/build/component/feature/apiconnector/errors.js.map +1 -1
  69. package/build/component/feature/bot/bot.js +8 -8
  70. package/build/component/feature/bot/bot.js.map +1 -1
  71. package/build/component/feature/bot/question.d.ts +6 -6
  72. package/build/component/feature/bot/question.d.ts.map +1 -1
  73. package/build/component/feature/bot/question.js +69 -38
  74. package/build/component/feature/bot/question.js.map +1 -1
  75. package/build/component/generator/generator.d.ts +1 -1
  76. package/build/component/generator/generator.d.ts.map +1 -1
  77. package/build/component/generator/generator.js +2 -2
  78. package/build/component/generator/generator.js.map +1 -1
  79. package/build/component/generator/officeAddin/question.d.ts.map +1 -1
  80. package/build/component/generator/officeAddin/question.js +3 -3
  81. package/build/component/generator/officeAddin/question.js.map +1 -1
  82. package/build/component/resource/appManifest/utils/ManifestUtils.d.ts +1 -0
  83. package/build/component/resource/appManifest/utils/ManifestUtils.d.ts.map +1 -1
  84. package/build/component/resource/appManifest/utils/ManifestUtils.js +4 -1
  85. package/build/component/resource/appManifest/utils/ManifestUtils.js.map +1 -1
  86. package/build/component/resource/appManifest/utils/utils.d.ts.map +1 -1
  87. package/build/component/resource/appManifest/utils/utils.js +5 -1
  88. package/build/component/resource/appManifest/utils/utils.js.map +1 -1
  89. package/build/component/resource/azureSql/errors.js +28 -28
  90. package/build/component/resource/azureSql/errors.js.map +1 -1
  91. package/build/component/resource/azureStorage/configs.d.ts +1 -1
  92. package/build/component/utils/depsChecker/bicepChecker.d.ts.map +1 -1
  93. package/build/component/utils/depsChecker/bicepChecker.js +4 -7
  94. package/build/component/utils/depsChecker/bicepChecker.js.map +1 -1
  95. package/build/core/FxCoreImplementV3.d.ts +1 -0
  96. package/build/core/FxCoreImplementV3.d.ts.map +1 -1
  97. package/build/core/FxCoreImplementV3.js +20 -7
  98. package/build/core/FxCoreImplementV3.js.map +1 -1
  99. package/build/core/environment.d.ts.map +1 -1
  100. package/build/core/environment.js +2 -13
  101. package/build/core/environment.js.map +1 -1
  102. package/build/core/middleware/projectMigratorV3.d.ts +1 -1
  103. package/build/core/middleware/projectMigratorV3.d.ts.map +1 -1
  104. package/build/core/middleware/projectMigratorV3.js +36 -24
  105. package/build/core/middleware/projectMigratorV3.js.map +1 -1
  106. package/build/core/middleware/questionModel.d.ts.map +1 -1
  107. package/build/core/middleware/questionModel.js +100 -17
  108. package/build/core/middleware/questionModel.js.map +1 -1
  109. package/build/core/middleware/utils/MigrationUtils.d.ts.map +1 -1
  110. package/build/core/middleware/utils/MigrationUtils.js +1 -0
  111. package/build/core/middleware/utils/MigrationUtils.js.map +1 -1
  112. package/build/core/middleware/utils/debug/debugV3MigrationUtils.d.ts.map +1 -1
  113. package/build/core/middleware/utils/debug/debugV3MigrationUtils.js +3 -1
  114. package/build/core/middleware/utils/debug/debugV3MigrationUtils.js.map +1 -1
  115. package/build/core/middleware/utils/debug/taskMigrator.d.ts +1 -0
  116. package/build/core/middleware/utils/debug/taskMigrator.d.ts.map +1 -1
  117. package/build/core/middleware/utils/debug/taskMigrator.js +37 -1
  118. package/build/core/middleware/utils/debug/taskMigrator.js.map +1 -1
  119. package/build/core/middleware/utils/migrationContext.d.ts +1 -0
  120. package/build/core/middleware/utils/migrationContext.d.ts.map +1 -1
  121. package/build/core/middleware/utils/migrationContext.js +1 -0
  122. package/build/core/middleware/utils/migrationContext.js.map +1 -1
  123. package/build/core/middleware/utils/v3MigrationUtils.d.ts +8 -1
  124. package/build/core/middleware/utils/v3MigrationUtils.d.ts.map +1 -1
  125. package/build/core/middleware/utils/v3MigrationUtils.js +28 -3
  126. package/build/core/middleware/utils/v3MigrationUtils.js.map +1 -1
  127. package/build/core/question.d.ts +7 -1
  128. package/build/core/question.d.ts.map +1 -1
  129. package/build/core/question.js +178 -88
  130. package/build/core/question.js.map +1 -1
  131. package/build/error/arm.d.ts +6 -0
  132. package/build/error/arm.d.ts.map +1 -1
  133. package/build/error/arm.js +17 -1
  134. package/build/error/arm.js.map +1 -1
  135. package/build/error/common.d.ts +3 -0
  136. package/build/error/common.d.ts.map +1 -1
  137. package/build/error/common.js +14 -1
  138. package/build/error/common.js.map +1 -1
  139. package/build/error/deploy.d.ts +1 -1
  140. package/build/error/deploy.d.ts.map +1 -1
  141. package/build/error/deploy.js +5 -5
  142. package/build/error/deploy.js.map +1 -1
  143. package/build/error/upgrade.d.ts +5 -0
  144. package/build/error/upgrade.d.ts.map +1 -0
  145. package/build/error/upgrade.js +16 -0
  146. package/build/error/upgrade.js.map +1 -0
  147. package/package.json +11 -7
  148. package/resource/package.nls.json +52 -59
  149. package/templates/core/v3Migration/csharp.app.local.yml +3 -2
  150. package/templates/core/v3Migration/csharp.app.yml +16 -7
  151. package/templates/core/v3Migration/js.ts.app.local.yml +23 -12
  152. package/templates/core/v3Migration/js.ts.app.yml +30 -14
  153. package/templates/core/v3Migration/spfx.app.yml +1 -1
  154. package/templates/fallback/common.zip +0 -0
  155. package/templates/fallback/csharp.zip +0 -0
  156. package/templates/fallback/js.zip +0 -0
  157. package/templates/fallback/ts.zip +0 -0
  158. package/templates/plugins/resource/aad/auth/V3/Bot/SSO/SsoOperations.cs +23 -8
  159. package/templates/plugins/resource/aad/auth/V3/Tab/GetUserProfile.razor +2 -1
@@ -1,14 +1,14 @@
1
1
  export declare const defaultHelpLink = "https://aka.ms/teamsfx-envchecker-help";
2
+ export declare const v3DefaultHelpLink = "https://aka.ms/teamsfx-actions/devtool-install";
2
3
  export declare const validationSettingsHelpLink: string;
3
4
  export declare const functionDepsVersionsLink = "https://aka.ms/functions-node-versions";
4
- export declare const nodeNotFoundHelpLink: string;
5
- export declare const nodeNotSupportedForAzureHelpLink: string;
6
- export declare const nodeNotSupportedForFunctionsHelpLink: string;
5
+ export declare const nodeNotFoundHelpLink = "https://aka.ms/teamsfx-node";
6
+ export declare const nodeNotSupportedForAzureHelpLink = "https://aka.ms/teamsfx-node";
7
7
  export declare const nodeNotSupportedForSPFxHelpLink: string;
8
8
  export declare const nodeInstallationLink = "https://nodejs.org/about/releases/";
9
- export declare const dotnetExplanationHelpLink: string;
10
- export declare const dotnetFailToInstallHelpLink: string;
11
- export declare const dotnetManualInstallHelpLink: string;
9
+ export declare const dotnetDefaultHelpLink = "https://aka.ms/teamsfx-actions/devtool-install";
10
+ export declare const dotnetExplanationHelpLink = "https://aka.ms/teamsfx-actions/devtool-install";
11
+ export declare const dotnetFailToInstallHelpLink = "https://aka.ms/teamsfx-actions/devtool-install";
12
12
  export declare const dotnetNotSupportTargetVersionHelpLink: string;
13
13
  export declare const ngrokInstallHelpLink: string;
14
14
  export declare const vxTestAppInstallHelpLink: string;
@@ -1 +1 @@
1
- {"version":3,"file":"helpLink.d.ts","sourceRoot":"","sources":["../../../../src/common/deps-checker/constant/helpLink.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe,2CAA2C,CAAC;AACxE,eAAO,MAAM,0BAA0B,QAAyD,CAAC;AAEjG,eAAO,MAAM,wBAAwB,2CAA2C,CAAC;AAEjF,eAAO,MAAM,oBAAoB,QAAoC,CAAC;AACtE,eAAO,MAAM,gCAAgC,QAAsD,CAAC;AACpG,eAAO,MAAM,oCAAoC,QAAwD,CAAC;AAC1G,eAAO,MAAM,+BAA+B,QAAqD,CAAC;AAClG,eAAO,MAAM,oBAAoB,uCAAuC,CAAC;AAEzE,eAAO,MAAM,yBAAyB,QAA8C,CAAC;AACrF,eAAO,MAAM,2BAA2B,QAA2C,CAAC;AACpF,eAAO,MAAM,2BAA2B,QAAsC,CAAC;AAC/E,eAAO,MAAM,qCAAqC,QAAqD,CAAC;AAExG,eAAO,MAAM,oBAAoB,QAA0C,CAAC;AAC5E,eAAO,MAAM,wBAAwB,QAAmE,CAAC;AAEzG,eAAO,MAAM,sBAAsB,gCAAgC,CAAC;AACpE,eAAO,MAAM,0BAA0B,gCAAgC,CAAC;AACxE,eAAO,MAAM,oBAAoB,gCAAgC,CAAC"}
1
+ {"version":3,"file":"helpLink.d.ts","sourceRoot":"","sources":["../../../../src/common/deps-checker/constant/helpLink.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe,2CAA2C,CAAC;AACxE,eAAO,MAAM,iBAAiB,mDAAmD,CAAC;AAGlF,eAAO,MAAM,0BAA0B,QAAyD,CAAC;AAEjG,eAAO,MAAM,wBAAwB,2CAA2C,CAAC;AAGjF,eAAO,MAAM,oBAAoB,gCAAgC,CAAC;AAElE,eAAO,MAAM,gCAAgC,gCAAgC,CAAC;AAE9E,eAAO,MAAM,+BAA+B,QAAqD,CAAC;AAClG,eAAO,MAAM,oBAAoB,uCAAuC,CAAC;AAEzE,eAAO,MAAM,qBAAqB,mDAAmD,CAAC;AACtF,eAAO,MAAM,yBAAyB,mDAAwB,CAAC;AAC/D,eAAO,MAAM,2BAA2B,mDAAwB,CAAC;AAEjE,eAAO,MAAM,qCAAqC,QAAqD,CAAC;AAGxG,eAAO,MAAM,oBAAoB,QAA0C,CAAC;AAC5E,eAAO,MAAM,wBAAwB,QAAmE,CAAC;AAEzG,eAAO,MAAM,sBAAsB,gCAAgC,CAAC;AACpE,eAAO,MAAM,0BAA0B,gCAAgC,CAAC;AACxE,eAAO,MAAM,oBAAoB,gCAAgC,CAAC"}
@@ -2,20 +2,26 @@
2
2
  // Copyright (c) Microsoft Corporation.
3
3
  // Licensed under the MIT license.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.v3NodeNotLtsHelpLink = exports.v3NodeNotSupportedHelpLink = exports.v3NodeNotFoundHelpLink = exports.vxTestAppInstallHelpLink = exports.ngrokInstallHelpLink = exports.dotnetNotSupportTargetVersionHelpLink = exports.dotnetManualInstallHelpLink = exports.dotnetFailToInstallHelpLink = exports.dotnetExplanationHelpLink = exports.nodeInstallationLink = exports.nodeNotSupportedForSPFxHelpLink = exports.nodeNotSupportedForFunctionsHelpLink = exports.nodeNotSupportedForAzureHelpLink = exports.nodeNotFoundHelpLink = exports.functionDepsVersionsLink = exports.validationSettingsHelpLink = exports.defaultHelpLink = void 0;
6
- // TODO: update the help link
5
+ exports.v3NodeNotLtsHelpLink = exports.v3NodeNotSupportedHelpLink = exports.v3NodeNotFoundHelpLink = exports.vxTestAppInstallHelpLink = exports.ngrokInstallHelpLink = exports.dotnetNotSupportTargetVersionHelpLink = exports.dotnetFailToInstallHelpLink = exports.dotnetExplanationHelpLink = exports.dotnetDefaultHelpLink = exports.nodeInstallationLink = exports.nodeNotSupportedForSPFxHelpLink = exports.nodeNotSupportedForAzureHelpLink = exports.nodeNotFoundHelpLink = exports.functionDepsVersionsLink = exports.validationSettingsHelpLink = exports.v3DefaultHelpLink = exports.defaultHelpLink = void 0;
6
+ // TODO: remove this link after clean the useless code.
7
7
  exports.defaultHelpLink = "https://aka.ms/teamsfx-envchecker-help";
8
+ exports.v3DefaultHelpLink = "https://aka.ms/teamsfx-actions/devtool-install";
9
+ // TODO: remove this link after clean the useless code.
8
10
  exports.validationSettingsHelpLink = `${exports.defaultHelpLink}#teams-toolkit-validation-settings`;
9
11
  exports.functionDepsVersionsLink = "https://aka.ms/functions-node-versions";
10
- exports.nodeNotFoundHelpLink = `${exports.defaultHelpLink}#nodenotfound`;
11
- exports.nodeNotSupportedForAzureHelpLink = `${exports.defaultHelpLink}#nodenotsupported-azure-hosting`;
12
- exports.nodeNotSupportedForFunctionsHelpLink = `${exports.defaultHelpLink}#nodenotsupported-azure-functions`;
12
+ // TODO: remove this link after clean the useless code.
13
+ exports.nodeNotFoundHelpLink = `https://aka.ms/teamsfx-node`;
14
+ // TODO: remove this link after clean the useless code.
15
+ exports.nodeNotSupportedForAzureHelpLink = `https://aka.ms/teamsfx-node`;
16
+ // TODO: remove this link after clean the useless code.
13
17
  exports.nodeNotSupportedForSPFxHelpLink = `${exports.defaultHelpLink}#nodenotsupported-spfx-hosting`;
14
18
  exports.nodeInstallationLink = "https://nodejs.org/about/releases/";
15
- exports.dotnetExplanationHelpLink = `${exports.defaultHelpLink}#how-to-install-net-sdk`;
16
- exports.dotnetFailToInstallHelpLink = `${exports.defaultHelpLink}#failtoinstalldotnet`;
17
- exports.dotnetManualInstallHelpLink = `${exports.defaultHelpLink}#dotnetnotfound`;
19
+ exports.dotnetDefaultHelpLink = "https://aka.ms/teamsfx-actions/devtool-install";
20
+ exports.dotnetExplanationHelpLink = exports.dotnetDefaultHelpLink;
21
+ exports.dotnetFailToInstallHelpLink = exports.dotnetDefaultHelpLink;
22
+ // TODO: remove this link after clean the useless code.
18
23
  exports.dotnetNotSupportTargetVersionHelpLink = `${exports.defaultHelpLink}#dotnetnotsupporttargetversion`;
24
+ // TODO: remove this link after clean the useless code.
19
25
  exports.ngrokInstallHelpLink = `${exports.defaultHelpLink}#failtoinstallngrok`;
20
26
  exports.vxTestAppInstallHelpLink = `${exports.defaultHelpLink}#failtoinstallteamsvideoextensibilitytestapp`;
21
27
  exports.v3NodeNotFoundHelpLink = "https://aka.ms/teamsfx-node";
@@ -1 +1 @@
1
- {"version":3,"file":"helpLink.js","sourceRoot":"","sources":["../../../../src/common/deps-checker/constant/helpLink.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,6BAA6B;AAChB,QAAA,eAAe,GAAG,wCAAwC,CAAC;AAC3D,QAAA,0BAA0B,GAAG,GAAG,uBAAe,oCAAoC,CAAC;AAEpF,QAAA,wBAAwB,GAAG,wCAAwC,CAAC;AAEpE,QAAA,oBAAoB,GAAG,GAAG,uBAAe,eAAe,CAAC;AACzD,QAAA,gCAAgC,GAAG,GAAG,uBAAe,iCAAiC,CAAC;AACvF,QAAA,oCAAoC,GAAG,GAAG,uBAAe,mCAAmC,CAAC;AAC7F,QAAA,+BAA+B,GAAG,GAAG,uBAAe,gCAAgC,CAAC;AACrF,QAAA,oBAAoB,GAAG,oCAAoC,CAAC;AAE5D,QAAA,yBAAyB,GAAG,GAAG,uBAAe,yBAAyB,CAAC;AACxE,QAAA,2BAA2B,GAAG,GAAG,uBAAe,sBAAsB,CAAC;AACvE,QAAA,2BAA2B,GAAG,GAAG,uBAAe,iBAAiB,CAAC;AAClE,QAAA,qCAAqC,GAAG,GAAG,uBAAe,gCAAgC,CAAC;AAE3F,QAAA,oBAAoB,GAAG,GAAG,uBAAe,qBAAqB,CAAC;AAC/D,QAAA,wBAAwB,GAAG,GAAG,uBAAe,8CAA8C,CAAC;AAE5F,QAAA,sBAAsB,GAAG,6BAA6B,CAAC;AACvD,QAAA,0BAA0B,GAAG,6BAA6B,CAAC;AAC3D,QAAA,oBAAoB,GAAG,6BAA6B,CAAC"}
1
+ {"version":3,"file":"helpLink.js","sourceRoot":"","sources":["../../../../src/common/deps-checker/constant/helpLink.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,uDAAuD;AAC1C,QAAA,eAAe,GAAG,wCAAwC,CAAC;AAC3D,QAAA,iBAAiB,GAAG,gDAAgD,CAAC;AAElF,uDAAuD;AAC1C,QAAA,0BAA0B,GAAG,GAAG,uBAAe,oCAAoC,CAAC;AAEpF,QAAA,wBAAwB,GAAG,wCAAwC,CAAC;AAEjF,uDAAuD;AAC1C,QAAA,oBAAoB,GAAG,6BAA6B,CAAC;AAClE,uDAAuD;AAC1C,QAAA,gCAAgC,GAAG,6BAA6B,CAAC;AAC9E,uDAAuD;AAC1C,QAAA,+BAA+B,GAAG,GAAG,uBAAe,gCAAgC,CAAC;AACrF,QAAA,oBAAoB,GAAG,oCAAoC,CAAC;AAE5D,QAAA,qBAAqB,GAAG,gDAAgD,CAAC;AACzE,QAAA,yBAAyB,GAAG,6BAAqB,CAAC;AAClD,QAAA,2BAA2B,GAAG,6BAAqB,CAAC;AACjE,uDAAuD;AAC1C,QAAA,qCAAqC,GAAG,GAAG,uBAAe,gCAAgC,CAAC;AAExG,uDAAuD;AAC1C,QAAA,oBAAoB,GAAG,GAAG,uBAAe,qBAAqB,CAAC;AAC/D,QAAA,wBAAwB,GAAG,GAAG,uBAAe,8CAA8C,CAAC;AAE5F,QAAA,sBAAsB,GAAG,6BAA6B,CAAC;AACvD,QAAA,0BAA0B,GAAG,6BAA6B,CAAC;AAC3D,QAAA,oBAAoB,GAAG,6BAA6B,CAAC"}
@@ -2,9 +2,11 @@ export declare const Messages: {
2
2
  defaultErrorMessage: () => string[];
3
3
  needInstallNpm: () => string;
4
4
  failToValidateFuncCoreTool: () => string;
5
- globalFuncNodeNotMatched: () => string;
6
- portableFuncNodeNotMatched: () => string;
5
+ portableFuncNodeNotMatched: (nodeVersion: string, funcVersion: string) => string;
7
6
  symlinkDirAlreadyExist: () => string;
7
+ invalidFuncVersion: (version: string) => string;
8
+ noSentinelFile: () => string;
9
+ funcVersionNotMatch: (funcVersion: string, expectedFuncVersion: string) => string;
8
10
  startInstallNgrok: () => string;
9
11
  finishInstallNgrok: () => string;
10
12
  needInstallNgrok: () => string;
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../src/common/deps-checker/constant/message.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;yCA4BkB,MAAM,qBAAqB,MAAM;iCAEzC,MAAM,qBAAqB,MAAM;;;;;;CAiB/D,CAAC"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../src/common/deps-checker/constant/message.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,QAAQ;;;;8CAQuB,MAAM,eAAe,MAAM;;kCAKvC,MAAM;;uCAGD,MAAM,uBAAuB,MAAM;;;;;;;;;;;;yCAmBjC,MAAM,qBAAqB,MAAM;iCAOzC,MAAM,qBAAqB,MAAM;;;;;;CAsB/D,CAAC"}
@@ -4,6 +4,7 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.Messages = void 0;
6
6
  const localizeUtils_1 = require("../../localizeUtils");
7
+ const helpLink_1 = require("./helpLink");
7
8
  exports.Messages = {
8
9
  // learnMoreButtonText: getLocalizedString("depChecker.learnMoreButtonText"),
9
10
  defaultErrorMessage: () => [
@@ -12,9 +13,13 @@ exports.Messages = {
12
13
  ],
13
14
  needInstallNpm: () => localizeUtils_1.getLocalizedString("depChecker.needInstallNpm"),
14
15
  failToValidateFuncCoreTool: () => localizeUtils_1.getLocalizedString("depChecker.failToValidateFuncCoreTool"),
15
- globalFuncNodeNotMatched: () => localizeUtils_1.getLocalizedString("depChecker.globalFuncNodeNotMatched"),
16
- portableFuncNodeNotMatched: () => localizeUtils_1.getLocalizedString("depChecker.portableFuncNodeNotMatched"),
16
+ portableFuncNodeNotMatched: (nodeVersion, funcVersion) => localizeUtils_1.getLocalizedString("depChecker.portableFuncNodeNotMatched")
17
+ .replace("@NodeVersion", nodeVersion)
18
+ .replace("@FuncVersion", funcVersion),
17
19
  symlinkDirAlreadyExist: () => localizeUtils_1.getLocalizedString("depChecker.symlinkDirAlreadyExist"),
20
+ invalidFuncVersion: (version) => localizeUtils_1.getLocalizedString("depChecker.invalidFuncVersion", version),
21
+ noSentinelFile: () => localizeUtils_1.getLocalizedString("depChecker.noSentinelFile"),
22
+ funcVersionNotMatch: (funcVersion, expectedFuncVersion) => localizeUtils_1.getLocalizedString("depChecker.funcVersionNotMatch", funcVersion, expectedFuncVersion),
18
23
  startInstallNgrok: () => localizeUtils_1.getLocalizedString("depChecker.startInstallNgrok"),
19
24
  finishInstallNgrok: () => localizeUtils_1.getLocalizedString("depChecker.finishInstallNgrok"),
20
25
  needInstallNgrok: () => localizeUtils_1.getLocalizedString("depChecker.needInstallNgrok"),
@@ -24,12 +29,13 @@ exports.Messages = {
24
29
  useGlobalDotnet: () => localizeUtils_1.getLocalizedString("depChecker.useGlobalDotnet"),
25
30
  dotnetInstallStderr: () => localizeUtils_1.getLocalizedString("depChecker.dotnetInstallStderr"),
26
31
  dotnetInstallErrorCode: () => localizeUtils_1.getLocalizedString("depChecker.dotnetInstallErrorCode"),
27
- NodeNotFound: () => localizeUtils_1.getLocalizedString("depChecker.NodeNotFound"),
32
+ NodeNotFound: () => localizeUtils_1.getLocalizedString("depChecker.NodeNotFound", helpLink_1.nodeInstallationLink),
33
+ // TODO: remove this message after clean useless code
28
34
  NodeNotSupported: () => localizeUtils_1.getLocalizedString("depChecker.NodeNotSupported"),
29
35
  // In v3, the message will be displayed in the output.
30
36
  // TODO: add localized string to FxError.displayMessage
31
- V3NodeNotSupported: (currentVersion, supportedVersions) => localizeUtils_1.getDefaultString("depChecker.V3NodeNotSupported", currentVersion, supportedVersions),
32
- NodeNotLts: (currentVersion, supportedVersions) => localizeUtils_1.getDefaultString("depChecker.NodeNotLts", currentVersion, supportedVersions),
37
+ V3NodeNotSupported: (currentVersion, supportedVersions) => localizeUtils_1.getDefaultString("depChecker.V3NodeNotSupported", currentVersion, supportedVersions, helpLink_1.nodeInstallationLink),
38
+ NodeNotLts: (currentVersion, supportedVersions) => localizeUtils_1.getDefaultString("depChecker.NodeNotLts", currentVersion, supportedVersions, helpLink_1.nodeInstallationLink),
33
39
  dotnetNotFound: () => localizeUtils_1.getLocalizedString("depChecker.dotnetNotFound"),
34
40
  // depsNotFound: () => getLocalizedString("depChecker.depsNotFound"),
35
41
  failToValidateVxTestAppInstallOptions: () => localizeUtils_1.getLocalizedString("depChecker.failToValidateVxTestAppInstallOptions"),
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../../src/common/deps-checker/constant/message.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,uDAA2E;AAE9D,QAAA,QAAQ,GAAG;IACtB,6EAA6E;IAC7E,mBAAmB,EAAE,GAAG,EAAE,CAAC;QACzB,gCAAgB,CAAC,sCAAsC,CAAC;QACxD,kCAAkB,CAAC,sCAAsC,CAAC;KAC3D;IACD,cAAc,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,2BAA2B,CAAC;IACrE,0BAA0B,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,uCAAuC,CAAC;IAC7F,wBAAwB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,qCAAqC,CAAC;IACzF,0BAA0B,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,uCAAuC,CAAC;IAC7F,sBAAsB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,mCAAmC,CAAC;IAErF,iBAAiB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,8BAA8B,CAAC;IAC3E,kBAAkB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,+BAA+B,CAAC;IAC7E,gBAAgB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,6BAA6B,CAAC;IACzE,mBAAmB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,gCAAgC,CAAC;IAE/E,cAAc,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,2BAA2B,CAAC;IACrE,mBAAmB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,gCAAgC,CAAC;IAC/E,eAAe,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,4BAA4B,CAAC;IACvE,mBAAmB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,gCAAgC,CAAC;IAC/E,sBAAsB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,mCAAmC,CAAC;IAErF,YAAY,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,yBAAyB,CAAC;IACjE,gBAAgB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,6BAA6B,CAAC;IAEzE,sDAAsD;IACtD,uDAAuD;IACvD,kBAAkB,EAAE,CAAC,cAAsB,EAAE,iBAAyB,EAAE,EAAE,CACxE,gCAAgB,CAAC,+BAA+B,EAAE,cAAc,EAAE,iBAAiB,CAAC;IACtF,UAAU,EAAE,CAAC,cAAsB,EAAE,iBAAyB,EAAE,EAAE,CAChE,gCAAgB,CAAC,uBAAuB,EAAE,cAAc,EAAE,iBAAiB,CAAC;IAE9E,cAAc,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,2BAA2B,CAAC;IACrE,qEAAqE;IAErE,qCAAqC,EAAE,GAAG,EAAE,CAC1C,kCAAkB,CAAC,kDAAkD,CAAC;IACxE,uBAAuB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,oCAAoC,CAAC;IAEvF,qBAAqB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,kCAAkC,CAAC;IAEnF,iBAAiB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,8BAA8B,CAAC;IAE3E,8DAA8D;IAC9D,kDAAkD;IAClD,KAAK;CACN,CAAC"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../../src/common/deps-checker/constant/message.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,uDAA2E;AAC3E,yCAAkD;AAErC,QAAA,QAAQ,GAAG;IACtB,6EAA6E;IAC7E,mBAAmB,EAAE,GAAG,EAAE,CAAC;QACzB,gCAAgB,CAAC,sCAAsC,CAAC;QACxD,kCAAkB,CAAC,sCAAsC,CAAC;KAC3D;IACD,cAAc,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,2BAA2B,CAAC;IACrE,0BAA0B,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,uCAAuC,CAAC;IAC7F,0BAA0B,EAAE,CAAC,WAAmB,EAAE,WAAmB,EAAE,EAAE,CACvE,kCAAkB,CAAC,uCAAuC,CAAC;SACxD,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC;SACpC,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC;IACzC,sBAAsB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,mCAAmC,CAAC;IACrF,kBAAkB,EAAE,CAAC,OAAe,EAAE,EAAE,CACtC,kCAAkB,CAAC,+BAA+B,EAAE,OAAO,CAAC;IAC9D,cAAc,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,2BAA2B,CAAC;IACrE,mBAAmB,EAAE,CAAC,WAAmB,EAAE,mBAA2B,EAAE,EAAE,CACxE,kCAAkB,CAAC,gCAAgC,EAAE,WAAW,EAAE,mBAAmB,CAAC;IACxF,iBAAiB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,8BAA8B,CAAC;IAC3E,kBAAkB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,+BAA+B,CAAC;IAC7E,gBAAgB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,6BAA6B,CAAC;IACzE,mBAAmB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,gCAAgC,CAAC;IAE/E,cAAc,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,2BAA2B,CAAC;IACrE,mBAAmB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,gCAAgC,CAAC;IAC/E,eAAe,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,4BAA4B,CAAC;IACvE,mBAAmB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,gCAAgC,CAAC;IAC/E,sBAAsB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,mCAAmC,CAAC;IAErF,YAAY,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,yBAAyB,EAAE,+BAAoB,CAAC;IACvF,qDAAqD;IACrD,gBAAgB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,6BAA6B,CAAC;IAEzE,sDAAsD;IACtD,uDAAuD;IACvD,kBAAkB,EAAE,CAAC,cAAsB,EAAE,iBAAyB,EAAE,EAAE,CACxE,gCAAgB,CACd,+BAA+B,EAC/B,cAAc,EACd,iBAAiB,EACjB,+BAAoB,CACrB;IACH,UAAU,EAAE,CAAC,cAAsB,EAAE,iBAAyB,EAAE,EAAE,CAChE,gCAAgB,CACd,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EACjB,+BAAoB,CACrB;IAEH,cAAc,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,2BAA2B,CAAC;IACrE,qEAAqE;IAErE,qCAAqC,EAAE,GAAG,EAAE,CAC1C,kCAAkB,CAAC,kDAAkD,CAAC;IACxE,uBAAuB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,oCAAoC,CAAC;IAEvF,qBAAqB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,kCAAkC,CAAC;IAEnF,iBAAiB,EAAE,GAAG,EAAE,CAAC,kCAAkB,CAAC,8BAA8B,CAAC;IAE3E,8DAA8D;IAC9D,kDAAkD;IAClD,KAAK;CACN,CAAC"}
@@ -48,7 +48,18 @@ export declare enum TelemetryProperties {
48
48
  NgrokNpmInstallNodeVersion = "ngrok-npm-install-node-version",
49
49
  NgrokNpmInstallNpmVersion = "ngrok-npm-install-npm-version",
50
50
  NgrokNpmInstallExitCode = "ngrok-npm-install-exit-code",
51
- NgrokNpmInstallLog = "ngrok-npm-install-log"
51
+ NgrokNpmInstallLog = "ngrok-npm-install-log",
52
+ SymlinkFuncVersion = "symlink-func-version",
53
+ SelectedPortableFuncVersion = "selected-portable-func-version",
54
+ HistoryFuncVersion = "history-func-version",
55
+ VersioningFuncVersions = "versioning-func-versions",
56
+ GlobalFuncVersion = "global-func-version",
57
+ InstalledFuncVersion = "installed-func-version",
58
+ SymlinkFuncVersionError = "symlink-func-version-error",
59
+ HistoryFuncVersionError = "history-func-version-error",
60
+ VersioningFuncVersionError = "versioning-func-version-error",
61
+ GlobalFuncVersionError = "global-func-version-error",
62
+ InstallFuncError = "install-func-error"
52
63
  }
53
64
  export declare enum TelemetryMessurement {
54
65
  completionTime = "completion-time"
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../../../src/common/deps-checker/constant/telemetry.ts"],"names":[],"mappings":"AAGA,oBAAY,gBAAgB;IAC1B,cAAc,iCAAiC;IAC/C,WAAW,6BAA6B;IAExC,WAAW,iBAAiB;IAC5B,gBAAgB,uBAAuB;IACvC,YAAY,mBAAmB;IAC/B,wBAAwB,iCAAiC;IACzD,uBAAuB,gCAAgC;IACvD,0BAA0B,mCAAmC;IAC7D,UAAU,iBAAiB;IAE3B,WAAW,kBAAkB;IAC7B,mBAAmB,0BAA0B;IAE7C,gBAAgB,uBAAuB;IACvC,oBAAoB,2BAA2B;IAC/C,oBAAoB,2BAA2B;IAC/C,gBAAgB,uBAAuB;IACvC,0BAA0B,kCAAkC;IAC5D,sBAAsB,8BAA8B;IACpD,mBAAmB,0BAA0B;IAE7C,kBAAkB,yBAAyB;IAC3C,sBAAsB,6BAA6B;IACnD,sBAAsB,6BAA6B;IACnD,kBAAkB,yBAAyB;IAC3C,4BAA4B,oCAAoC;IAChE,wBAAwB,gCAAgC;IACxD,qBAAqB,4BAA4B;IACjD,sBAAsB,8BAA8B;IAEpD,iBAAiB,wBAAwB;IACzC,qBAAqB,4BAA4B;IACjD,iBAAiB,wBAAwB;IACzC,WAAW,kBAAkB;IAC7B,2BAA2B,mCAAmC;IAC9D,uBAAuB,+BAA+B;IACtD,oBAAoB,2BAA2B;IAE/C,gBAAgB,uBAAuB;CACxC;AAED,oBAAY,gBAAgB;IAC1B,mBAAmB,uCAAuC;IAC1D,oBAAoB,6BAA6B;IACjD,WAAW,sBAAsB;IACjC,wBAAwB,kCAAkC;IAC1D,sBAAsB,+BAA+B;IACrD,wBAAwB,kCAAkC;IAC1D,oBAAoB,6BAA6B;IACjD,qBAAqB,8BAA8B;CACpD;AAED,oBAAY,mBAAmB;IAC7B,0BAA0B,mCAAmC;IAC7D,yBAAyB,kCAAkC;IAC3D,uBAAuB,gCAAgC;IACvD,kBAAkB,0BAA0B;CAC7C;AAED,oBAAY,oBAAoB;IAC9B,cAAc,oBAAoB;CACnC"}
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../../../src/common/deps-checker/constant/telemetry.ts"],"names":[],"mappings":"AAGA,oBAAY,gBAAgB;IAC1B,cAAc,iCAAiC;IAC/C,WAAW,6BAA6B;IAExC,WAAW,iBAAiB;IAC5B,gBAAgB,uBAAuB;IACvC,YAAY,mBAAmB;IAC/B,wBAAwB,iCAAiC;IACzD,uBAAuB,gCAAgC;IACvD,0BAA0B,mCAAmC;IAC7D,UAAU,iBAAiB;IAE3B,WAAW,kBAAkB;IAC7B,mBAAmB,0BAA0B;IAE7C,gBAAgB,uBAAuB;IACvC,oBAAoB,2BAA2B;IAC/C,oBAAoB,2BAA2B;IAC/C,gBAAgB,uBAAuB;IACvC,0BAA0B,kCAAkC;IAC5D,sBAAsB,8BAA8B;IACpD,mBAAmB,0BAA0B;IAE7C,kBAAkB,yBAAyB;IAC3C,sBAAsB,6BAA6B;IACnD,sBAAsB,6BAA6B;IACnD,kBAAkB,yBAAyB;IAC3C,4BAA4B,oCAAoC;IAChE,wBAAwB,gCAAgC;IACxD,qBAAqB,4BAA4B;IACjD,sBAAsB,8BAA8B;IAEpD,iBAAiB,wBAAwB;IACzC,qBAAqB,4BAA4B;IACjD,iBAAiB,wBAAwB;IACzC,WAAW,kBAAkB;IAC7B,2BAA2B,mCAAmC;IAC9D,uBAAuB,+BAA+B;IACtD,oBAAoB,2BAA2B;IAE/C,gBAAgB,uBAAuB;CACxC;AAED,oBAAY,gBAAgB;IAC1B,mBAAmB,uCAAuC;IAC1D,oBAAoB,6BAA6B;IACjD,WAAW,sBAAsB;IACjC,wBAAwB,kCAAkC;IAC1D,sBAAsB,+BAA+B;IACrD,wBAAwB,kCAAkC;IAC1D,oBAAoB,6BAA6B;IACjD,qBAAqB,8BAA8B;CACpD;AAED,oBAAY,mBAAmB;IAC7B,0BAA0B,mCAAmC;IAC7D,yBAAyB,kCAAkC;IAC3D,uBAAuB,gCAAgC;IACvD,kBAAkB,0BAA0B;IAC5C,kBAAkB,yBAAyB;IAC3C,2BAA2B,mCAAmC;IAC9D,kBAAkB,yBAAyB;IAC3C,sBAAsB,6BAA6B;IACnD,iBAAiB,wBAAwB;IACzC,oBAAoB,2BAA2B;IAC/C,uBAAuB,+BAA+B;IACtD,uBAAuB,+BAA+B;IACtD,0BAA0B,kCAAkC;IAC5D,sBAAsB,8BAA8B;IACpD,gBAAgB,uBAAuB;CACxC;AAED,oBAAY,oBAAoB;IAC9B,cAAc,oBAAoB;CACnC"}
@@ -57,6 +57,17 @@ var TelemetryProperties;
57
57
  TelemetryProperties["NgrokNpmInstallNpmVersion"] = "ngrok-npm-install-npm-version";
58
58
  TelemetryProperties["NgrokNpmInstallExitCode"] = "ngrok-npm-install-exit-code";
59
59
  TelemetryProperties["NgrokNpmInstallLog"] = "ngrok-npm-install-log";
60
+ TelemetryProperties["SymlinkFuncVersion"] = "symlink-func-version";
61
+ TelemetryProperties["SelectedPortableFuncVersion"] = "selected-portable-func-version";
62
+ TelemetryProperties["HistoryFuncVersion"] = "history-func-version";
63
+ TelemetryProperties["VersioningFuncVersions"] = "versioning-func-versions";
64
+ TelemetryProperties["GlobalFuncVersion"] = "global-func-version";
65
+ TelemetryProperties["InstalledFuncVersion"] = "installed-func-version";
66
+ TelemetryProperties["SymlinkFuncVersionError"] = "symlink-func-version-error";
67
+ TelemetryProperties["HistoryFuncVersionError"] = "history-func-version-error";
68
+ TelemetryProperties["VersioningFuncVersionError"] = "versioning-func-version-error";
69
+ TelemetryProperties["GlobalFuncVersionError"] = "global-func-version-error";
70
+ TelemetryProperties["InstallFuncError"] = "install-func-error";
60
71
  })(TelemetryProperties = exports.TelemetryProperties || (exports.TelemetryProperties = {}));
61
72
  var TelemetryMessurement;
62
73
  (function (TelemetryMessurement) {
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../../src/common/deps-checker/constant/telemetry.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,IAAY,gBAyCX;AAzCD,WAAY,gBAAgB;IAC1B,mEAA+C,CAAA;IAC/C,4DAAwC,CAAA;IAExC,gDAA4B,CAAA;IAC5B,2DAAuC,CAAA;IACvC,mDAA+B,CAAA;IAC/B,6EAAyD,CAAA;IACzD,2EAAuD,CAAA;IACvD,iFAA6D,CAAA;IAC7D,+CAA2B,CAAA;IAE3B,iDAA6B,CAAA;IAC7B,iEAA6C,CAAA;IAE7C,2DAAuC,CAAA;IACvC,mEAA+C,CAAA;IAC/C,mEAA+C,CAAA;IAC/C,2DAAuC,CAAA;IACvC,gFAA4D,CAAA;IAC5D,wEAAoD,CAAA;IACpD,iEAA6C,CAAA;IAE7C,+DAA2C,CAAA;IAC3C,uEAAmD,CAAA;IACnD,uEAAmD,CAAA;IACnD,+DAA2C,CAAA;IAC3C,oFAAgE,CAAA;IAChE,4EAAwD,CAAA;IACxD,qEAAiD,CAAA;IACjD,wEAAoD,CAAA;IAEpD,6DAAyC,CAAA;IACzC,qEAAiD,CAAA;IACjD,6DAAyC,CAAA;IACzC,iDAA6B,CAAA;IAC7B,kFAA8D,CAAA;IAC9D,0EAAsD,CAAA;IACtD,mEAA+C,CAAA;IAE/C,2DAAuC,CAAA;AACzC,CAAC,EAzCW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAyC3B;AAED,IAAY,gBASX;AATD,WAAY,gBAAgB;IAC1B,8EAA0D,CAAA;IAC1D,qEAAiD,CAAA;IACjD,qDAAiC,CAAA;IACjC,8EAA0D,CAAA;IAC1D,yEAAqD,CAAA;IACrD,8EAA0D,CAAA;IAC1D,qEAAiD,CAAA;IACjD,uEAAmD,CAAA;AACrD,CAAC,EATW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAS3B;AAED,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC7B,oFAA6D,CAAA;IAC7D,kFAA2D,CAAA;IAC3D,8EAAuD,CAAA;IACvD,mEAA4C,CAAA;AAC9C,CAAC,EALW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAK9B;AAED,IAAY,oBAEX;AAFD,WAAY,oBAAoB;IAC9B,0DAAkC,CAAA;AACpC,CAAC,EAFW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAE/B"}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../../src/common/deps-checker/constant/telemetry.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,IAAY,gBAyCX;AAzCD,WAAY,gBAAgB;IAC1B,mEAA+C,CAAA;IAC/C,4DAAwC,CAAA;IAExC,gDAA4B,CAAA;IAC5B,2DAAuC,CAAA;IACvC,mDAA+B,CAAA;IAC/B,6EAAyD,CAAA;IACzD,2EAAuD,CAAA;IACvD,iFAA6D,CAAA;IAC7D,+CAA2B,CAAA;IAE3B,iDAA6B,CAAA;IAC7B,iEAA6C,CAAA;IAE7C,2DAAuC,CAAA;IACvC,mEAA+C,CAAA;IAC/C,mEAA+C,CAAA;IAC/C,2DAAuC,CAAA;IACvC,gFAA4D,CAAA;IAC5D,wEAAoD,CAAA;IACpD,iEAA6C,CAAA;IAE7C,+DAA2C,CAAA;IAC3C,uEAAmD,CAAA;IACnD,uEAAmD,CAAA;IACnD,+DAA2C,CAAA;IAC3C,oFAAgE,CAAA;IAChE,4EAAwD,CAAA;IACxD,qEAAiD,CAAA;IACjD,wEAAoD,CAAA;IAEpD,6DAAyC,CAAA;IACzC,qEAAiD,CAAA;IACjD,6DAAyC,CAAA;IACzC,iDAA6B,CAAA;IAC7B,kFAA8D,CAAA;IAC9D,0EAAsD,CAAA;IACtD,mEAA+C,CAAA;IAE/C,2DAAuC,CAAA;AACzC,CAAC,EAzCW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAyC3B;AAED,IAAY,gBASX;AATD,WAAY,gBAAgB;IAC1B,8EAA0D,CAAA;IAC1D,qEAAiD,CAAA;IACjD,qDAAiC,CAAA;IACjC,8EAA0D,CAAA;IAC1D,yEAAqD,CAAA;IACrD,8EAA0D,CAAA;IAC1D,qEAAiD,CAAA;IACjD,uEAAmD,CAAA;AACrD,CAAC,EATW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAS3B;AAED,IAAY,mBAgBX;AAhBD,WAAY,mBAAmB;IAC7B,oFAA6D,CAAA;IAC7D,kFAA2D,CAAA;IAC3D,8EAAuD,CAAA;IACvD,mEAA4C,CAAA;IAC5C,kEAA2C,CAAA;IAC3C,qFAA8D,CAAA;IAC9D,kEAA2C,CAAA;IAC3C,0EAAmD,CAAA;IACnD,gEAAyC,CAAA;IACzC,sEAA+C,CAAA;IAC/C,6EAAsD,CAAA;IACtD,6EAAsD,CAAA;IACtD,mFAA4D,CAAA;IAC5D,2EAAoD,CAAA;IACpD,8DAAuC,CAAA;AACzC,CAAC,EAhBW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAgB9B;AAED,IAAY,oBAEX;AAFD,WAAY,oBAAoB;IAC9B,0DAAkC,CAAA;AACpC,CAAC,EAFW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAE/B"}
@@ -14,6 +14,9 @@ export declare type DependencyStatus = {
14
14
  installVersion?: string;
15
15
  binFolders?: string[];
16
16
  };
17
+ telemetryProperties?: {
18
+ [key: string]: string;
19
+ };
17
20
  error?: DepsCheckerError;
18
21
  };
19
22
  export interface DepsInfo {
@@ -1 +1 @@
1
- {"version":3,"file":"depsChecker.d.ts","sourceRoot":"","sources":["../../../src/common/deps-checker/depsChecker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,WAAW;IAC1B,mBAAmB,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEhF,OAAO,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACrE;AAED,oBAAY,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,gBAAgB,EAAE,OAAO,CAAC;QAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;IACF,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,oBAAY,QAAQ;IAClB,SAAS,eAAe;IACxB,QAAQ,cAAc;IACtB,OAAO,aAAa;IACpB,WAAW,iBAAiB;IAC5B,MAAM,WAAW;IACjB,aAAa,oBAAoB;IACjC,KAAK,UAAU;IACf,SAAS,gBAAgB;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,oBAAY,cAAc,GAAG,kBAAkB,GAAG,kBAAkB,CAAC"}
1
+ {"version":3,"file":"depsChecker.d.ts","sourceRoot":"","sources":["../../../src/common/deps-checker/depsChecker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,WAAW;IAC1B,mBAAmB,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEhF,OAAO,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACrE;AAED,oBAAY,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,gBAAgB,EAAE,OAAO,CAAC;QAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;IACF,mBAAmB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAChD,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,oBAAY,QAAQ;IAClB,SAAS,eAAe;IACxB,QAAQ,cAAc;IACtB,OAAO,aAAa;IACpB,WAAW,iBAAiB;IAC5B,MAAM,WAAW;IACjB,aAAa,oBAAoB;IACjC,KAAK,UAAU;IACf,SAAS,gBAAgB;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,oBAAY,cAAc,GAAG,kBAAkB,GAAG,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"depsChecker.js","sourceRoot":"","sources":["../../../src/common/deps-checker/depsChecker.ts"],"names":[],"mappings":";;;AAiCA,IAAY,QASX;AATD,WAAY,QAAQ;IAClB,oCAAwB,CAAA;IACxB,kCAAsB,CAAA;IACtB,gCAAoB,CAAA;IACpB,wCAA4B,CAAA;IAC5B,6BAAiB,CAAA;IACjB,6CAAiC,CAAA;IACjC,2BAAe,CAAA;IACf,qCAAyB,CAAA;AAC3B,CAAC,EATW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QASnB"}
1
+ {"version":3,"file":"depsChecker.js","sourceRoot":"","sources":["../../../src/common/deps-checker/depsChecker.ts"],"names":[],"mappings":";;;AAkCA,IAAY,QASX;AATD,WAAY,QAAQ;IAClB,oCAAwB,CAAA;IACxB,kCAAsB,CAAA;IACtB,gCAAoB,CAAA;IACpB,wCAA4B,CAAA;IAC5B,6BAAiB,CAAA;IACjB,6CAAiC,CAAA;IACjC,2BAAe,CAAA;IACf,qCAAyB,CAAA;AAC3B,CAAC,EATW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QASnB"}
@@ -9,9 +9,9 @@ declare type FuncVersion = {
9
9
  versionStr: string;
10
10
  };
11
11
  export declare class FuncToolChecker implements DepsChecker {
12
- private log;
12
+ private telemetryProperties;
13
13
  constructor(logger?: DepsLogger, telemetry?: DepsTelemetry);
14
- getDepsInfo(funcVersion: FuncVersion | null, binFolder: string | undefined, error?: DepsCheckerError): Promise<DependencyStatus>;
14
+ getDepsInfo(funcVersion: FuncVersion | undefined, binFolder: string | undefined, error?: DepsCheckerError): Promise<DependencyStatus>;
15
15
  resolve(installOptions: FuncInstallOptions): Promise<DependencyStatus>;
16
16
  getInstallationInfo(installOptions: FuncInstallOptions): Promise<DependencyStatus>;
17
17
  private getNodeVersion;
@@ -30,9 +30,8 @@ export declare class FuncToolChecker implements DepsChecker {
30
30
  private cleanup;
31
31
  private installFunc;
32
32
  private getExecCommand;
33
- private appendLog;
34
33
  }
35
- export declare function mapToFuncToolsVersion(output: string): FuncVersion | null;
34
+ export declare function mapToFuncToolsVersion(output: string): FuncVersion;
36
35
  export declare function isFuncVersionSupport(actualFuncVersion: FuncVersion, expectedFuncVersion: string): boolean;
37
36
  export {};
38
37
  //# sourceMappingURL=funcToolChecker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"funcToolChecker.d.ts","sourceRoot":"","sources":["../../../../src/common/deps-checker/internal/funcToolChecker.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAY,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAA6C,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMjD,aAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAOF,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,GAAG,CAAS;gBACR,MAAM,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,aAAa;IAK7C,WAAW,CACtB,WAAW,EAAE,WAAW,GAAG,IAAI,EAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,KAAK,CAAC,EAAE,gBAAgB,GACvB,OAAO,CAAC,gBAAgB,CAAC;IAgBf,OAAO,CAAC,cAAc,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkCtE,mBAAmB,CAAC,cAAc,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YA+BjF,cAAc;YAQd,wBAAwB;YAQxB,wBAAwB;YA4BxB,gBAAgB;YAkBhB,yBAAyB;YAwCzB,OAAO;IA8BrB,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAIpC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAMjC,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAGxC,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAIrC,OAAO,CAAC,MAAM,CAAC,wBAAwB;YASzB,gBAAgB;YAoBhB,MAAM;YASN,OAAO;YAQP,WAAW;IA0BzB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,SAAS;CAGlB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAwBxE;AAED,wBAAgB,oBAAoB,CAClC,iBAAiB,EAAE,WAAW,EAC9B,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAET"}
1
+ {"version":3,"file":"funcToolChecker.d.ts","sourceRoot":"","sources":["../../../../src/common/deps-checker/internal/funcToolChecker.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAY,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAA6C,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOjD,aAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAcF,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,mBAAmB,CAA4B;gBAC3C,MAAM,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,aAAa;IAI7C,WAAW,CACtB,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,KAAK,CAAC,EAAE,gBAAgB,GACvB,OAAO,CAAC,gBAAgB,CAAC;IAiBf,OAAO,CAAC,cAAc,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuCtE,mBAAmB,CAAC,cAAc,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YA6CjF,cAAc;YAQd,wBAAwB;YAcxB,wBAAwB;YAsCxB,gBAAgB;YA2BhB,yBAAyB;YAmDzB,OAAO;IA8CrB,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAIpC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAMjC,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAGxC,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAIrC,OAAO,CAAC,MAAM,CAAC,wBAAwB;YASzB,gBAAgB;YAahB,MAAM;YASN,OAAO;YAMP,WAAW;IA2BzB,OAAO,CAAC,cAAc;CAGvB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAwBjE;AAED,wBAAgB,oBAAoB,CAClC,iBAAiB,EAAE,WAAW,EAC9B,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAET"}
@@ -22,13 +22,19 @@ const cpUtils_1 = require("../util/cpUtils");
22
22
  const fileHelper_1 = require("../util/fileHelper");
23
23
  const system_1 = require("../util/system");
24
24
  const nodeChecker_1 = require("./nodeChecker");
25
+ const telemetry_1 = require("../constant/telemetry");
26
+ const nodeFuncVersionRangeMapping = {
27
+ "12": "3",
28
+ "14": "3 || 4",
29
+ "16": ">=4",
30
+ "18": ">=4.0.4670",
31
+ };
25
32
  const funcPackageName = "azure-functions-core-tools";
26
33
  const funcToolName = "Azure Functions Core Tools";
27
34
  const timeout = 5 * 60 * 1000;
28
35
  class FuncToolChecker {
29
36
  constructor(logger, telemetry) {
30
- // TODO: add log and telemetry
31
- this.log = "";
37
+ this.telemetryProperties = {};
32
38
  }
33
39
  async getDepsInfo(funcVersion, binFolder, error) {
34
40
  var _a;
@@ -43,6 +49,7 @@ class FuncToolChecker {
43
49
  supportedVersions: [],
44
50
  binFolders: binFolder ? [binFolder] : undefined,
45
51
  },
52
+ telemetryProperties: this.telemetryProperties,
46
53
  error: error,
47
54
  });
48
55
  }
@@ -52,12 +59,15 @@ class FuncToolChecker {
52
59
  const nodeVersion = await this.getNodeVersion();
53
60
  installationInfo = await this.getInstallationInfo(installOptions);
54
61
  if (!installationInfo.isInstalled) {
55
- await this.install(installOptions.version);
56
- // TODO: remove duplicate func check
57
- installationInfo = await this.getInstallationInfo(installOptions);
62
+ const symlinkDir = installOptions.symlinkDir
63
+ ? path.resolve(installOptions.projectPath, installOptions.symlinkDir)
64
+ : undefined;
65
+ installationInfo = await this.install(installOptions.version, symlinkDir);
58
66
  }
59
- if (!installationInfo.error && installationInfo.isInstalled) {
60
- const expectedFuncNodeError = await this.checkExpectedFuncAndNode(installOptions.version, nodeVersion);
67
+ if (!installationInfo.error &&
68
+ installationInfo.isInstalled &&
69
+ installationInfo.details.installVersion) {
70
+ const expectedFuncNodeError = await this.checkExpectedFuncAndNode(installationInfo.details.installVersion, nodeVersion);
61
71
  if (expectedFuncNodeError) {
62
72
  installationInfo.error = expectedFuncNodeError;
63
73
  }
@@ -66,34 +76,49 @@ class FuncToolChecker {
66
76
  }
67
77
  catch (error) {
68
78
  if (error instanceof depsError_1.DepsCheckerError) {
69
- return await this.getDepsInfo(null, undefined, error);
79
+ return await this.getDepsInfo(undefined, undefined, error);
70
80
  }
71
- return await this.getDepsInfo(null, undefined, new depsError_1.DepsCheckerError(error.message, helpLink_1.defaultHelpLink));
81
+ return await this.getDepsInfo(undefined, undefined, new depsError_1.DepsCheckerError(error.message, helpLink_1.v3DefaultHelpLink));
72
82
  }
73
83
  }
74
84
  async getInstallationInfo(installOptions) {
75
85
  const symlinkDir = installOptions.symlinkDir
76
- ? path.join(installOptions.projectPath, installOptions.symlinkDir)
86
+ ? path.resolve(installOptions.projectPath, installOptions.symlinkDir)
77
87
  : undefined;
78
88
  if (symlinkDir) {
79
- const symlinkFunc = await this.checkFuncVersion(installOptions.version, symlinkDir, undefined);
80
- if (symlinkFunc) {
81
- return await this.getDepsInfo(symlinkFunc, symlinkDir);
89
+ const symlinkFuncRes = await this.checkFuncVersion(installOptions.version, symlinkDir, undefined);
90
+ if (symlinkFuncRes.isOk()) {
91
+ this.telemetryProperties[telemetry_1.TelemetryProperties.SymlinkFuncVersion] =
92
+ symlinkFuncRes.value.versionStr;
93
+ return await this.getDepsInfo(symlinkFuncRes.value, symlinkDir);
82
94
  }
83
95
  else {
96
+ this.telemetryProperties[telemetry_1.TelemetryProperties.SymlinkFuncVersionError] =
97
+ symlinkFuncRes.error.message;
84
98
  await fileHelper_1.unlinkSymlink(symlinkDir);
85
99
  }
86
100
  }
87
101
  const portableFunc = await this.checkPortableFuncVersion(installOptions.version);
88
102
  if (portableFunc) {
103
+ this.telemetryProperties[telemetry_1.TelemetryProperties.SelectedPortableFuncVersion] =
104
+ portableFunc.funcVersion.versionStr;
89
105
  if (symlinkDir) {
90
106
  await fileHelper_1.createSymlink(portableFunc.binFolder, symlinkDir);
91
107
  return await this.getDepsInfo(portableFunc.funcVersion, symlinkDir);
92
108
  }
93
109
  return await this.getDepsInfo(portableFunc.funcVersion, portableFunc.binFolder);
94
110
  }
95
- const globalFunc = await this.checkFuncVersion(installOptions.version, undefined, undefined);
96
- return await this.getDepsInfo(globalFunc, undefined);
111
+ const globalFuncRes = await this.checkFuncVersion(installOptions.version, undefined, undefined);
112
+ if (globalFuncRes.isOk()) {
113
+ this.telemetryProperties[telemetry_1.TelemetryProperties.GlobalFuncVersion] =
114
+ globalFuncRes.value.versionStr;
115
+ return await this.getDepsInfo(globalFuncRes.value, undefined);
116
+ }
117
+ else {
118
+ this.telemetryProperties[telemetry_1.TelemetryProperties.GlobalFuncVersionError] =
119
+ globalFuncRes.error.message;
120
+ return await this.getDepsInfo(undefined, undefined);
121
+ }
97
122
  }
98
123
  async getNodeVersion() {
99
124
  var _a;
@@ -103,87 +128,118 @@ class FuncToolChecker {
103
128
  }
104
129
  return nodeVersion;
105
130
  }
106
- async checkExpectedFuncAndNode(expectedVersion, nodeVersion) {
107
- // TODO validate expected func version and actual node version
131
+ async checkExpectedFuncAndNode(funcVersion, nodeVersion) {
132
+ const funcVersionRange = nodeFuncVersionRangeMapping[nodeVersion];
133
+ if (funcVersionRange && !semver_1.default.satisfies(funcVersion, funcVersionRange)) {
134
+ return new depsError_1.DepsCheckerError(message_1.Messages.portableFuncNodeNotMatched(nodeVersion, funcVersion), helpLink_1.v3DefaultHelpLink);
135
+ }
108
136
  return undefined;
109
137
  }
110
138
  async checkPortableFuncVersion(expectedFuncVersion) {
111
139
  try {
112
140
  const historyFuncBinFolder = FuncToolChecker.getPortableFuncBinFolder(undefined);
113
- const historyFunc = await this.checkFuncVersion(expectedFuncVersion, historyFuncBinFolder, FuncToolChecker.getHistorySentinelPath());
141
+ const historyFuncRes = await this.checkFuncVersion(expectedFuncVersion, historyFuncBinFolder, FuncToolChecker.getHistorySentinelPath());
142
+ if (historyFuncRes.isOk()) {
143
+ this.telemetryProperties[telemetry_1.TelemetryProperties.HistoryFuncVersion] =
144
+ historyFuncRes.value.versionStr;
145
+ }
146
+ else {
147
+ this.telemetryProperties[telemetry_1.TelemetryProperties.HistoryFuncVersionError] =
148
+ historyFuncRes.error.message;
149
+ }
114
150
  const versioningFuncStatus = await this.getVersioningPortableFunc(expectedFuncVersion);
115
151
  if (versioningFuncStatus &&
116
- (!historyFunc ||
117
- semver_1.default.gte(versioningFuncStatus.funcVersion.versionStr, historyFunc.versionStr))) {
152
+ (historyFuncRes.isErr() ||
153
+ semver_1.default.gte(versioningFuncStatus.funcVersion.versionStr, historyFuncRes.value.versionStr))) {
118
154
  return versioningFuncStatus;
119
155
  }
120
- else if (historyFunc) {
121
- return { funcVersion: historyFunc, binFolder: historyFuncBinFolder };
156
+ else if (historyFuncRes.isOk()) {
157
+ return { funcVersion: historyFuncRes.value, binFolder: historyFuncBinFolder };
122
158
  }
123
159
  }
124
160
  catch (error) {
125
161
  // do nothing
126
- this.appendLog(error);
127
162
  }
128
- return null;
163
+ return undefined;
129
164
  }
130
165
  async checkFuncVersion(expectedFuncVersion, binFolder, sentinelPath) {
131
166
  try {
132
167
  const funcVersion = await this.queryFuncVersion(binFolder);
133
168
  // For portable func, avoid "func -v" and "func new" work well, but "func start" fail.
134
169
  const hasSentinel = sentinelPath ? await fs.pathExists(sentinelPath) : true;
135
- return !!funcVersion && hasSentinel && isFuncVersionSupport(funcVersion, expectedFuncVersion)
136
- ? funcVersion
137
- : null;
170
+ if (!hasSentinel) {
171
+ return teamsfx_api_1.err(new depsError_1.DepsCheckerError(message_1.Messages.noSentinelFile(), helpLink_1.v3DefaultHelpLink));
172
+ }
173
+ const funcVersionSupport = isFuncVersionSupport(funcVersion, expectedFuncVersion);
174
+ if (!funcVersionSupport) {
175
+ return teamsfx_api_1.err(new depsError_1.DepsCheckerError(message_1.Messages.funcVersionNotMatch(funcVersion.versionStr, expectedFuncVersion), helpLink_1.v3DefaultHelpLink));
176
+ }
177
+ return teamsfx_api_1.ok(funcVersion);
138
178
  }
139
179
  catch (error) {
140
- this.appendLog(error);
141
- return null;
180
+ return teamsfx_api_1.err(new depsError_1.DepsCheckerError(error.message, helpLink_1.v3DefaultHelpLink));
142
181
  }
143
182
  }
144
183
  async getVersioningPortableFunc(expectedFuncVersion) {
184
+ var _a;
145
185
  const files = await fs.readdir(FuncToolChecker.getDefaultInstallPath(), {
146
186
  withFileTypes: true,
147
187
  });
148
188
  const funcDictionaries = files
149
189
  .filter((f) => f.isDirectory() && semver_1.default.valid(f.name))
150
190
  .map((f) => f.name);
191
+ this.telemetryProperties[telemetry_1.TelemetryProperties.VersioningFuncVersions] =
192
+ JSON.stringify(funcDictionaries);
151
193
  while (funcDictionaries.length > 0) {
152
194
  const matchedVersion = semver_1.default.maxSatisfying(funcDictionaries, expectedFuncVersion);
153
195
  if (!matchedVersion) {
154
- return null;
196
+ return undefined;
155
197
  }
156
198
  const binFolder = FuncToolChecker.getPortableFuncBinFolder(matchedVersion);
157
- const actualFunc = await this.checkFuncVersion(expectedFuncVersion, binFolder, FuncToolChecker.getVersioningSentinelPath(matchedVersion));
158
- if ((actualFunc === null || actualFunc === void 0 ? void 0 : actualFunc.versionStr) === matchedVersion) {
199
+ const actualFuncRes = await this.checkFuncVersion(expectedFuncVersion, binFolder, FuncToolChecker.getVersioningSentinelPath(matchedVersion));
200
+ if (actualFuncRes.isOk() && actualFuncRes.value.versionStr === matchedVersion) {
159
201
  return {
160
- funcVersion: actualFunc,
202
+ funcVersion: actualFuncRes.value,
161
203
  binFolder: binFolder,
162
204
  };
163
205
  }
206
+ if (actualFuncRes.isErr()) {
207
+ this.telemetryProperties[telemetry_1.TelemetryProperties.VersioningFuncVersionError] =
208
+ ((_a = this.telemetryProperties[telemetry_1.TelemetryProperties.VersioningFuncVersionError]) !== null && _a !== void 0 ? _a : "") +
209
+ `[${matchedVersion}] ${actualFuncRes.error.message}`;
210
+ }
164
211
  const matchedVersionIndex = funcDictionaries.indexOf(matchedVersion);
165
212
  if (matchedVersionIndex < 0) {
166
- return null;
213
+ return undefined;
167
214
  }
168
215
  funcDictionaries.splice(matchedVersionIndex, 1);
169
216
  }
170
- return null;
217
+ return undefined;
171
218
  }
172
- async install(expectedFuncVersion) {
219
+ async install(expectedFuncVersion, symlinkDir) {
173
220
  if (system_1.isLinux()) {
174
- throw new depsError_1.LinuxNotSupportedError(message_1.Messages.linuxDepsNotFound().split("@SupportedPackages").join(funcToolName), helpLink_1.defaultHelpLink);
221
+ throw new depsError_1.LinuxNotSupportedError(message_1.Messages.linuxDepsNotFound().split("@SupportedPackages").join(funcToolName), helpLink_1.v3DefaultHelpLink);
175
222
  }
176
223
  if (!(await this.hasNPM())) {
177
- throw new depsError_1.DepsCheckerError(message_1.Messages.needInstallNpm(), helpLink_1.defaultHelpLink);
224
+ throw new depsError_1.DepsCheckerError(message_1.Messages.needInstallNpm(), helpLink_1.v3DefaultHelpLink);
178
225
  }
179
226
  const tmpVersion = uuid.v4();
180
227
  await this.installFunc(tmpVersion, expectedFuncVersion);
181
- const funcVersion = await this.checkFuncVersion(expectedFuncVersion, FuncToolChecker.getPortableFuncBinFolder(tmpVersion), FuncToolChecker.getVersioningSentinelPath(tmpVersion));
182
- if (!funcVersion) {
228
+ const funcVersionRes = await this.checkFuncVersion(expectedFuncVersion, FuncToolChecker.getPortableFuncBinFolder(tmpVersion), FuncToolChecker.getVersioningSentinelPath(tmpVersion));
229
+ if (funcVersionRes.isErr()) {
183
230
  await this.cleanup(tmpVersion);
184
- throw new depsError_1.DepsCheckerError(message_1.Messages.failToValidateFuncCoreTool(), helpLink_1.defaultHelpLink);
231
+ this.telemetryProperties[telemetry_1.TelemetryProperties.InstallFuncError] = funcVersionRes.error.message;
232
+ throw new depsError_1.DepsCheckerError(message_1.Messages.failToValidateFuncCoreTool() + " " + funcVersionRes.error.message, helpLink_1.v3DefaultHelpLink);
233
+ }
234
+ this.telemetryProperties[telemetry_1.TelemetryProperties.InstalledFuncVersion] =
235
+ funcVersionRes.value.versionStr;
236
+ await fileHelper_1.rename(FuncToolChecker.getFuncInstallPath(tmpVersion), FuncToolChecker.getFuncInstallPath(funcVersionRes.value.versionStr));
237
+ const binFolder = FuncToolChecker.getPortableFuncBinFolder(funcVersionRes.value.versionStr);
238
+ if (symlinkDir) {
239
+ await fileHelper_1.createSymlink(binFolder, symlinkDir);
240
+ return await this.getDepsInfo(funcVersionRes.value, symlinkDir);
185
241
  }
186
- await fileHelper_1.rename(FuncToolChecker.getFuncInstallPath(tmpVersion), FuncToolChecker.getFuncInstallPath(funcVersion.versionStr));
242
+ return await this.getDepsInfo(funcVersionRes.value, binFolder);
187
243
  }
188
244
  static getDefaultInstallPath() {
189
245
  return path.join(os.homedir(), `.${teamsfx_api_1.ConfigFolderName}`, "bin", "azfunc");
@@ -203,19 +259,11 @@ class FuncToolChecker {
203
259
  return path.resolve(FuncToolChecker.getFuncInstallPath(versionStr), "node_modules", "azure-functions-core-tools", "bin");
204
260
  }
205
261
  async queryFuncVersion(funcBinFolder) {
206
- try {
207
- const env = funcBinFolder
208
- ? { PATH: `${funcBinFolder}${path.delimiter}${process.env.PATH}` }
209
- : undefined;
210
- const output = await cpUtils_1.cpUtils.executeCommand(undefined, undefined,
211
- // same as backend start, avoid powershell execution policy issue.
212
- { shell: system_1.isWindows() ? "cmd.exe" : true, env }, "func", "--version");
213
- return mapToFuncToolsVersion(output);
214
- }
215
- catch (error) {
216
- this.appendLog(error);
217
- return null;
218
- }
262
+ const execPath = funcBinFolder ? path.resolve(funcBinFolder, "func") : "func";
263
+ const output = await cpUtils_1.cpUtils.executeCommand(undefined, undefined,
264
+ // same as backend start, avoid powershell execution policy issue.
265
+ { shell: system_1.isWindows() ? "cmd.exe" : true }, execPath, "--version");
266
+ return mapToFuncToolsVersion(output);
219
267
  }
220
268
  async hasNPM() {
221
269
  try {
@@ -230,9 +278,7 @@ class FuncToolChecker {
230
278
  try {
231
279
  await fs.remove(FuncToolChecker.getFuncInstallPath(tmpVersionStr));
232
280
  }
233
- catch (error) {
234
- this.appendLog(error);
235
- }
281
+ catch (_a) { }
236
282
  }
237
283
  async installFunc(tmpVersion, expectedFuncVersion) {
238
284
  try {
@@ -244,15 +290,13 @@ class FuncToolChecker {
244
290
  }
245
291
  catch (error) {
246
292
  await this.cleanup(tmpVersion);
247
- throw new depsError_1.DepsCheckerError(localizeUtils_1.getLocalizedString("error.common.InstallSoftwareError", funcToolName) + " " + error.message, helpLink_1.defaultHelpLink);
293
+ this.telemetryProperties[telemetry_1.TelemetryProperties.InstallFuncError] = error.message;
294
+ throw new depsError_1.DepsCheckerError(localizeUtils_1.getLocalizedString("error.common.InstallSoftwareError", funcToolName), helpLink_1.v3DefaultHelpLink);
248
295
  }
249
296
  }
250
297
  getExecCommand(command) {
251
298
  return system_1.isWindows() ? `${command}.cmd` : command;
252
299
  }
253
- appendLog(error) {
254
- this.log = this.log + "\n" + (error === null || error === void 0 ? void 0 : error.message);
255
- }
256
300
  }
257
301
  exports.FuncToolChecker = FuncToolChecker;
258
302
  function mapToFuncToolsVersion(output) {
@@ -260,7 +304,7 @@ function mapToFuncToolsVersion(output) {
260
304
  const regex = /(?<major_version>\d+)\.(?<minor_version>\d+)\.(?<patch_version>\d+)/gm;
261
305
  const match = regex.exec(output);
262
306
  if (!match) {
263
- return null;
307
+ throw new depsError_1.DepsCheckerError(message_1.Messages.invalidFuncVersion(output), helpLink_1.v3DefaultHelpLink);
264
308
  }
265
309
  const majorVersion = Number.parseInt((_b = (_a = match.groups) === null || _a === void 0 ? void 0 : _a.major_version) !== null && _b !== void 0 ? _b : "");
266
310
  const minorVersion = Number.parseInt((_d = (_c = match.groups) === null || _c === void 0 ? void 0 : _c.minor_version) !== null && _d !== void 0 ? _d : "");
@@ -268,7 +312,7 @@ function mapToFuncToolsVersion(output) {
268
312
  if (!Number.isInteger(majorVersion) ||
269
313
  !Number.isInteger(minorVersion) ||
270
314
  !Number.isInteger(patchVersion)) {
271
- return null;
315
+ throw new depsError_1.DepsCheckerError(message_1.Messages.invalidFuncVersion(output), helpLink_1.v3DefaultHelpLink);
272
316
  }
273
317
  return {
274
318
  majorVersion: majorVersion,