@microsoft/teamsfx-core 2.0.6 → 2.0.7-alpha.8120e652f.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.
- package/build/common/constants.d.ts +1 -0
- package/build/common/constants.d.ts.map +1 -1
- package/build/common/constants.js +1 -0
- package/build/common/constants.js.map +1 -1
- package/build/common/deps-checker/checkerFactory.d.ts.map +1 -1
- package/build/common/deps-checker/checkerFactory.js +3 -0
- package/build/common/deps-checker/checkerFactory.js.map +1 -1
- package/build/common/deps-checker/constant/telemetry.d.ts +1 -0
- package/build/common/deps-checker/constant/telemetry.d.ts.map +1 -1
- package/build/common/deps-checker/constant/telemetry.js +1 -0
- package/build/common/deps-checker/constant/telemetry.js.map +1 -1
- package/build/common/deps-checker/coreDepsLoggerAdapter.d.ts +17 -0
- package/build/common/deps-checker/coreDepsLoggerAdapter.d.ts.map +1 -0
- package/build/common/deps-checker/coreDepsLoggerAdapter.js +47 -0
- package/build/common/deps-checker/coreDepsLoggerAdapter.js.map +1 -0
- package/build/common/deps-checker/coreDepsTelemetryAdapter.d.ts +16 -0
- package/build/common/deps-checker/coreDepsTelemetryAdapter.d.ts.map +1 -0
- package/build/common/deps-checker/coreDepsTelemetryAdapter.js +53 -0
- package/build/common/deps-checker/coreDepsTelemetryAdapter.js.map +1 -0
- package/build/common/deps-checker/depsChecker.d.ts +6 -1
- package/build/common/deps-checker/depsChecker.d.ts.map +1 -1
- package/build/common/deps-checker/depsChecker.js +6 -1
- package/build/common/deps-checker/depsChecker.js.map +1 -1
- package/build/common/deps-checker/index.d.ts +2 -0
- package/build/common/deps-checker/index.d.ts.map +1 -1
- package/build/common/deps-checker/index.js +2 -0
- package/build/common/deps-checker/index.js.map +1 -1
- package/build/common/deps-checker/internal/testToolChecker.d.ts +14 -3
- package/build/common/deps-checker/internal/testToolChecker.d.ts.map +1 -1
- package/build/common/deps-checker/internal/testToolChecker.js +178 -75
- package/build/common/deps-checker/internal/testToolChecker.js.map +1 -1
- package/build/common/deps-checker/internal/vxTestAppChecker.d.ts.map +1 -1
- package/build/common/deps-checker/internal/vxTestAppChecker.js +3 -45
- package/build/common/deps-checker/internal/vxTestAppChecker.js.map +1 -1
- package/build/common/deps-checker/util/downloadHelper.d.ts +15 -0
- package/build/common/deps-checker/util/downloadHelper.d.ts.map +1 -0
- package/build/common/deps-checker/util/downloadHelper.js +59 -0
- package/build/common/deps-checker/util/downloadHelper.js.map +1 -0
- package/build/common/featureFlags.d.ts +1 -2
- package/build/common/featureFlags.d.ts.map +1 -1
- package/build/common/featureFlags.js +5 -9
- package/build/common/featureFlags.js.map +1 -1
- package/build/common/local/packageJsonHelper.d.ts +0 -1
- package/build/common/local/packageJsonHelper.d.ts.map +1 -1
- package/build/common/local/packageJsonHelper.js +1 -29
- package/build/common/local/packageJsonHelper.js.map +1 -1
- package/build/common/m365/packageService.d.ts.map +1 -1
- package/build/common/m365/packageService.js +16 -7
- package/build/common/m365/packageService.js.map +1 -1
- package/build/common/projectTypeChecker.d.ts +38 -0
- package/build/common/projectTypeChecker.d.ts.map +1 -0
- package/build/common/projectTypeChecker.js +217 -0
- package/build/common/projectTypeChecker.js.map +1 -0
- package/build/common/samples.d.ts +6 -4
- package/build/common/samples.d.ts.map +1 -1
- package/build/common/samples.js +64 -29
- package/build/common/samples.js.map +1 -1
- package/build/common/spec-parser/interfaces.d.ts +14 -1
- package/build/common/spec-parser/interfaces.d.ts.map +1 -1
- package/build/common/spec-parser/manifestUpdater.d.ts +2 -2
- package/build/common/spec-parser/manifestUpdater.d.ts.map +1 -1
- package/build/common/spec-parser/manifestUpdater.js +33 -19
- package/build/common/spec-parser/manifestUpdater.js.map +1 -1
- package/build/common/spec-parser/specFilter.d.ts +1 -1
- package/build/common/spec-parser/specFilter.d.ts.map +1 -1
- package/build/common/spec-parser/specFilter.js +2 -2
- package/build/common/spec-parser/specFilter.js.map +1 -1
- package/build/common/spec-parser/specParser.browser.d.ts.map +1 -1
- package/build/common/spec-parser/specParser.browser.js +5 -3
- package/build/common/spec-parser/specParser.browser.js.map +1 -1
- package/build/common/spec-parser/specParser.d.ts.map +1 -1
- package/build/common/spec-parser/specParser.js +36 -37
- package/build/common/spec-parser/specParser.js.map +1 -1
- package/build/common/spec-parser/utils.d.ts +12 -8
- package/build/common/spec-parser/utils.d.ts.map +1 -1
- package/build/common/spec-parser/utils.js +97 -34
- package/build/common/spec-parser/utils.js.map +1 -1
- package/build/common/telemetry.d.ts +17 -1
- package/build/common/telemetry.d.ts.map +1 -1
- package/build/common/telemetry.js +35 -1
- package/build/common/telemetry.js.map +1 -1
- package/build/common/templates-config.json +1 -1
- package/build/component/configManager/lifecycle.d.ts.map +1 -1
- package/build/component/configManager/lifecycle.js +1 -1
- package/build/component/configManager/lifecycle.js.map +1 -1
- package/build/component/constant/commonConstant.d.ts +1 -0
- package/build/component/constant/commonConstant.d.ts.map +1 -1
- package/build/component/constant/commonConstant.js +2 -0
- package/build/component/constant/commonConstant.js.map +1 -1
- package/build/component/coordinator/index.d.ts +2 -1
- package/build/component/coordinator/index.d.ts.map +1 -1
- package/build/component/coordinator/index.js +12 -2
- package/build/component/coordinator/index.js.map +1 -1
- package/build/component/driver/aad/error/aadManifestError.d.ts +9 -0
- package/build/component/driver/aad/error/aadManifestError.d.ts.map +1 -1
- package/build/component/driver/aad/error/aadManifestError.js +37 -1
- package/build/component/driver/aad/error/aadManifestError.js.map +1 -1
- package/build/component/driver/aad/utility/aadAppClient.d.ts.map +1 -1
- package/build/component/driver/aad/utility/aadAppClient.js +9 -6
- package/build/component/driver/aad/utility/aadAppClient.js.map +1 -1
- package/build/component/driver/aad/utility/aadManifestHelper.d.ts.map +1 -1
- package/build/component/driver/aad/utility/aadManifestHelper.js +6 -0
- package/build/component/driver/aad/utility/aadManifestHelper.js.map +1 -1
- package/build/component/driver/aad/utility/constants.d.ts +1 -0
- package/build/component/driver/aad/utility/constants.d.ts.map +1 -1
- package/build/component/driver/aad/utility/constants.js +1 -0
- package/build/component/driver/aad/utility/constants.js.map +1 -1
- package/build/component/driver/apiKey/create.d.ts.map +1 -1
- package/build/component/driver/apiKey/create.js +7 -3
- package/build/component/driver/apiKey/create.js.map +1 -1
- package/build/component/driver/deploy/azure/azureFunctionDeployDriver.d.ts.map +1 -1
- package/build/component/driver/deploy/azure/azureFunctionDeployDriver.js.map +1 -1
- package/build/component/driver/deploy/azure/azureStaticWebAppGetDeploymentTokenDriver.d.ts +12 -0
- package/build/component/driver/deploy/azure/azureStaticWebAppGetDeploymentTokenDriver.d.ts.map +1 -0
- package/build/component/driver/deploy/azure/azureStaticWebAppGetDeploymentTokenDriver.js +71 -0
- package/build/component/driver/deploy/azure/azureStaticWebAppGetDeploymentTokenDriver.js.map +1 -0
- package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.d.ts +3 -2
- package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.d.ts.map +1 -1
- package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js +5 -1
- package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js.map +1 -1
- package/build/component/driver/deploy/azure/impl/azureDeployImpl.d.ts +5 -0
- package/build/component/driver/deploy/azure/impl/azureDeployImpl.d.ts.map +1 -1
- package/build/component/driver/deploy/azure/impl/azureDeployImpl.js +21 -0
- package/build/component/driver/deploy/azure/impl/azureDeployImpl.js.map +1 -1
- package/build/component/driver/devTool/installDriver.d.ts +2 -1
- package/build/component/driver/devTool/installDriver.d.ts.map +1 -1
- package/build/component/driver/devTool/installDriver.js +5 -2
- package/build/component/driver/devTool/installDriver.js.map +1 -1
- package/build/component/driver/index.d.ts +1 -0
- package/build/component/driver/index.d.ts.map +1 -1
- package/build/component/driver/index.js +1 -0
- package/build/component/driver/index.js.map +1 -1
- package/build/component/driver/interface/provisionArgs.d.ts +3 -0
- package/build/component/driver/interface/provisionArgs.d.ts.map +1 -1
- package/build/component/driver/interface/stepDriver.d.ts +2 -1
- package/build/component/driver/interface/stepDriver.d.ts.map +1 -1
- package/build/component/driver/middleware/addSWADeployTelemetry.d.ts +7 -0
- package/build/component/driver/middleware/addSWADeployTelemetry.d.ts.map +1 -0
- package/build/component/driver/middleware/addSWADeployTelemetry.js +52 -0
- package/build/component/driver/middleware/addSWADeployTelemetry.js.map +1 -0
- package/build/component/driver/middleware/addStartAndEndTelemetry.d.ts +3 -0
- package/build/component/driver/middleware/addStartAndEndTelemetry.d.ts.map +1 -1
- package/build/component/driver/middleware/addStartAndEndTelemetry.js +2 -1
- package/build/component/driver/middleware/addStartAndEndTelemetry.js.map +1 -1
- package/build/component/driver/script/npxBuildDriver.d.ts.map +1 -1
- package/build/component/driver/script/npxBuildDriver.js +5 -1
- package/build/component/driver/script/npxBuildDriver.js.map +1 -1
- package/build/component/driver/script/scriptDriver.d.ts +12 -8
- package/build/component/driver/script/scriptDriver.d.ts.map +1 -1
- package/build/component/driver/script/scriptDriver.js +54 -36
- package/build/component/driver/script/scriptDriver.js.map +1 -1
- package/build/component/driver/teamsApp/clients/appStudioClient.d.ts.map +1 -1
- package/build/component/driver/teamsApp/clients/appStudioClient.js +52 -33
- package/build/component/driver/teamsApp/clients/appStudioClient.js.map +1 -1
- package/build/component/driver/teamsApp/utils/telemetry.d.ts +7 -0
- package/build/component/driver/teamsApp/utils/telemetry.d.ts.map +1 -1
- package/build/component/driver/teamsApp/utils/telemetry.js +3 -2
- package/build/component/driver/teamsApp/utils/telemetry.js.map +1 -1
- package/build/component/driver/teamsApp/validateAppPackage.d.ts.map +1 -1
- package/build/component/driver/teamsApp/validateAppPackage.js +14 -8
- package/build/component/driver/teamsApp/validateAppPackage.js.map +1 -1
- package/build/component/generator/copilotPlugin/generator.d.ts.map +1 -1
- package/build/component/generator/copilotPlugin/generator.js +5 -4
- package/build/component/generator/copilotPlugin/generator.js.map +1 -1
- package/build/component/generator/copilotPlugin/helper.d.ts.map +1 -1
- package/build/component/generator/copilotPlugin/helper.js +6 -2
- package/build/component/generator/copilotPlugin/helper.js.map +1 -1
- package/build/component/generator/error.d.ts +5 -8
- package/build/component/generator/error.d.ts.map +1 -1
- package/build/component/generator/error.js +16 -16
- package/build/component/generator/error.js.map +1 -1
- package/build/component/generator/generator.d.ts +1 -1
- package/build/component/generator/generator.d.ts.map +1 -1
- package/build/component/generator/generator.js +16 -25
- package/build/component/generator/generator.js.map +1 -1
- package/build/component/generator/generatorAction.d.ts +4 -1
- package/build/component/generator/generatorAction.d.ts.map +1 -1
- package/build/component/generator/generatorAction.js +24 -6
- package/build/component/generator/generatorAction.js.map +1 -1
- package/build/component/generator/officeAddin/helperMethods.js +21 -20
- package/build/component/generator/officeAddin/helperMethods.js.map +1 -1
- package/build/component/generator/spfx/depsChecker/dependencyChecker.d.ts +1 -1
- package/build/component/generator/spfx/depsChecker/dependencyChecker.d.ts.map +1 -1
- package/build/component/generator/spfx/depsChecker/generatorChecker.d.ts +4 -3
- package/build/component/generator/spfx/depsChecker/generatorChecker.d.ts.map +1 -1
- package/build/component/generator/spfx/depsChecker/generatorChecker.js +30 -20
- package/build/component/generator/spfx/depsChecker/generatorChecker.js.map +1 -1
- package/build/component/generator/spfx/depsChecker/yoChecker.d.ts +3 -2
- package/build/component/generator/spfx/depsChecker/yoChecker.d.ts.map +1 -1
- package/build/component/generator/spfx/depsChecker/yoChecker.js +27 -18
- package/build/component/generator/spfx/depsChecker/yoChecker.js.map +1 -1
- package/build/component/generator/spfx/error.d.ts +2 -0
- package/build/component/generator/spfx/error.d.ts.map +1 -1
- package/build/component/generator/spfx/error.js +16 -1
- package/build/component/generator/spfx/error.js.map +1 -1
- package/build/component/generator/spfx/spfxGenerator.d.ts +3 -0
- package/build/component/generator/spfx/spfxGenerator.d.ts.map +1 -1
- package/build/component/generator/spfx/spfxGenerator.js +149 -20
- package/build/component/generator/spfx/spfxGenerator.js.map +1 -1
- package/build/component/generator/spfx/utils/constants.d.ts +3 -0
- package/build/component/generator/spfx/utils/constants.d.ts.map +1 -1
- package/build/component/generator/spfx/utils/constants.js +3 -0
- package/build/component/generator/spfx/utils/constants.js.map +1 -1
- package/build/component/generator/spfx/utils/telemetryEvents.d.ts +7 -8
- package/build/component/generator/spfx/utils/telemetryEvents.d.ts.map +1 -1
- package/build/component/generator/spfx/utils/telemetryEvents.js +5 -6
- package/build/component/generator/spfx/utils/telemetryEvents.js.map +1 -1
- package/build/component/generator/spfx/utils/utils.js +1 -1
- package/build/component/generator/utils.d.ts +5 -2
- package/build/component/generator/utils.d.ts.map +1 -1
- package/build/component/generator/utils.js +32 -12
- package/build/component/generator/utils.js.map +1 -1
- package/build/component/utils/common.d.ts +4 -1
- package/build/component/utils/common.d.ts.map +1 -1
- package/build/component/utils/common.js +21 -17
- package/build/component/utils/common.js.map +1 -1
- package/build/component/utils/envUtil.d.ts +1 -0
- package/build/component/utils/envUtil.d.ts.map +1 -1
- package/build/component/utils/envUtil.js +14 -2
- package/build/component/utils/envUtil.js.map +1 -1
- package/build/component/utils/fileOperation.d.ts +1 -1
- package/build/component/utils/fileOperation.d.ts.map +1 -1
- package/build/component/utils/fileOperation.js +34 -48
- package/build/component/utils/fileOperation.js.map +1 -1
- package/build/core/FxCore.d.ts +5 -0
- package/build/core/FxCore.d.ts.map +1 -1
- package/build/core/FxCore.js +48 -24
- package/build/core/FxCore.js.map +1 -1
- package/build/core/middleware/projectMigratorV3.d.ts +1 -1
- package/build/core/middleware/projectMigratorV3.d.ts.map +1 -1
- package/build/core/middleware/projectMigratorV3.js +10 -9
- package/build/core/middleware/projectMigratorV3.js.map +1 -1
- package/build/core/middleware/projectVersionChecker.js +4 -4
- package/build/core/middleware/projectVersionChecker.js.map +1 -1
- package/build/error/deploy.d.ts +6 -0
- package/build/error/deploy.d.ts.map +1 -1
- package/build/error/deploy.js +25 -1
- package/build/error/deploy.js.map +1 -1
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/build/question/create.d.ts.map +1 -1
- package/build/question/create.js +14 -5
- package/build/question/create.js.map +1 -1
- package/build/question/generator.js +1 -3
- package/build/question/generator.js.map +1 -1
- package/build/question/options/CreateProjectOptions.js +1 -1
- package/build/question/options/CreateProjectOptions.js.map +1 -1
- package/build/question/options/CreateSampleProjectOptions.d.ts.map +1 -1
- package/build/question/options/CreateSampleProjectOptions.js +5 -1
- package/build/question/options/CreateSampleProjectOptions.js.map +1 -1
- package/build/question/options/DeployAadManifestOptions.js +1 -1
- package/build/question/options/DeployAadManifestOptions.js.map +1 -1
- package/build/question/options/PermissionGrantOptions.js +1 -1
- package/build/question/options/PermissionGrantOptions.js.map +1 -1
- package/build/question/options/PermissionListOptions.js +1 -1
- package/build/question/options/PermissionListOptions.js.map +1 -1
- package/build/question/other.d.ts +2 -1
- package/build/question/other.d.ts.map +1 -1
- package/build/question/other.js +22 -8
- package/build/question/other.js.map +1 -1
- package/build/question/questionNames.d.ts +1 -0
- package/build/question/questionNames.d.ts.map +1 -1
- package/build/question/questionNames.js +1 -0
- package/build/question/questionNames.js.map +1 -1
- package/build/ui/visitor.d.ts.map +1 -1
- package/build/ui/visitor.js +11 -2
- package/build/ui/visitor.js.map +1 -1
- package/package.json +14 -22
- package/resource/package.nls.json +27 -7
- package/resource/yaml-schema/v1.3/yaml.schema.json +42 -5
- package/templates/fallback/common.zip +0 -0
- package/templates/fallback/csharp.zip +0 -0
- package/templates/fallback/js.zip +0 -0
- package/templates/fallback/ts.zip +0 -0
- package/templates/plugins/resource/aad/auth/V3/Bot/Pages/BotAuthorizeEndPage.cshtml +55 -51
- package/templates/plugins/resource/aad/auth/bot/csharp/Pages/BotAuthorizeEndPage.cshtml +55 -51
- package/templates/plugins/resource/aad/auth/bot/js/public/auth-end.html +6 -2
- package/templates/plugins/resource/aad/auth/bot/ts/public/auth-end.html +5 -1
- package/templates/plugins/resource/aad/auth/tab/js/public/auth-end.html +16 -9
- package/templates/plugins/resource/aad/auth/tab/js/public/auth-start.html +11 -7
- package/templates/plugins/resource/aad/auth/tab/ts/public/auth-end.html +16 -9
- package/templates/plugins/resource/aad/auth/tab/ts/public/auth-start.html +11 -7
|
@@ -3,11 +3,12 @@ import { DependencyChecker } from "./dependencyChecker";
|
|
|
3
3
|
export declare class GeneratorChecker implements DependencyChecker {
|
|
4
4
|
private readonly _logger;
|
|
5
5
|
constructor(logger: LogProvider);
|
|
6
|
-
|
|
6
|
+
ensureDependency(ctx: Context, targetVersion: string): Promise<Result<boolean, FxError>>;
|
|
7
7
|
isLatestInstalled(loadedLatestVersion: string | undefined): Promise<boolean>;
|
|
8
|
-
|
|
8
|
+
findLocalInstalledVersion(): Promise<string | undefined>;
|
|
9
|
+
install(targetVersion: string): Promise<void>;
|
|
9
10
|
getSpGeneratorPath(): string;
|
|
10
|
-
findGloballyInstalledVersion(timeoutInSeconds?: number): Promise<string | undefined>;
|
|
11
|
+
findGloballyInstalledVersion(timeoutInSeconds?: number, shouldThrowIfNotFind?: boolean): Promise<string | undefined>;
|
|
11
12
|
findLatestVersion(timeoutInSeconds?: number): Promise<string | undefined>;
|
|
12
13
|
private validate;
|
|
13
14
|
private getDefaultInstallPath;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatorChecker.d.ts","sourceRoot":"","sources":["../../../../../src/component/generator/spfx/depsChecker/generatorChecker.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,OAAO,EAEP,OAAO,EACP,WAAW,EAEX,MAAM,EAGP,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAYxD,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;gBAE1B,MAAM,EAAE,WAAW;IAIlB,
|
|
1
|
+
{"version":3,"file":"generatorChecker.d.ts","sourceRoot":"","sources":["../../../../../src/component/generator/spfx/depsChecker/generatorChecker.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,OAAO,EAEP,OAAO,EACP,WAAW,EAEX,MAAM,EAGP,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAYxD,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;gBAE1B,MAAM,EAAE,WAAW;IAIlB,gBAAgB,CAC3B,GAAG,EAAE,OAAO,EACZ,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IA2BvB,iBAAiB,CAAC,mBAAmB,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAU5E,yBAAyB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAUxD,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAanD,kBAAkB,IAAI,MAAM;IAatB,4BAA4B,CACvC,gBAAgB,CAAC,EAAE,MAAM,EACzB,oBAAoB,CAAC,EAAE,OAAO,GAC7B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IASjB,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;YAIxE,QAAQ;IAItB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,eAAe;YAIT,YAAY;YAeZ,OAAO;YAgBP,gBAAgB;CAuB/B"}
|
|
@@ -15,45 +15,55 @@ const cpUtils_1 = require("../../../../common/deps-checker/util/cpUtils");
|
|
|
15
15
|
const constants_1 = require("../utils/constants");
|
|
16
16
|
const utils_1 = require("../utils/utils");
|
|
17
17
|
const name = constants_1.Constants.GeneratorPackageName;
|
|
18
|
-
const displayName = `${name}
|
|
18
|
+
const displayName = `${name}`;
|
|
19
19
|
const timeout = 6 * 60 * 1000;
|
|
20
20
|
class GeneratorChecker {
|
|
21
21
|
constructor(logger) {
|
|
22
22
|
this._logger = logger;
|
|
23
23
|
}
|
|
24
|
-
async
|
|
25
|
-
telemetry_helper_1.telemetryHelper.sendSuccessEvent(ctx, telemetryEvents_1.TelemetryEvents.
|
|
24
|
+
async ensureDependency(ctx, targetVersion) {
|
|
25
|
+
telemetry_helper_1.telemetryHelper.sendSuccessEvent(ctx, telemetryEvents_1.TelemetryEvents.EnsureSharepointGeneratorStart);
|
|
26
26
|
try {
|
|
27
|
-
void this._logger.info(`${displayName} not found, installing...`);
|
|
28
|
-
await this.install();
|
|
29
|
-
void this._logger.info(`Successfully installed ${displayName}`);
|
|
30
|
-
telemetry_helper_1.telemetryHelper.sendSuccessEvent(ctx, telemetryEvents_1.TelemetryEvents.
|
|
27
|
+
void this._logger.info(`${displayName}@${targetVersion} not found, installing...`);
|
|
28
|
+
await this.install(targetVersion);
|
|
29
|
+
void this._logger.info(`Successfully installed ${displayName}@${targetVersion}`);
|
|
30
|
+
telemetry_helper_1.telemetryHelper.sendSuccessEvent(ctx, telemetryEvents_1.TelemetryEvents.EnsureSharepointGenerator);
|
|
31
31
|
}
|
|
32
32
|
catch (error) {
|
|
33
|
-
telemetry_helper_1.telemetryHelper.sendErrorEvent(ctx, telemetryEvents_1.TelemetryEvents.
|
|
34
|
-
[telemetryEvents_1.TelemetryProperty.
|
|
33
|
+
telemetry_helper_1.telemetryHelper.sendErrorEvent(ctx, telemetryEvents_1.TelemetryEvents.EnsureSharepointGenerator, error, {
|
|
34
|
+
[telemetryEvents_1.TelemetryProperty.EnsureSharepointGeneratorReason]: error
|
|
35
|
+
.name,
|
|
35
36
|
});
|
|
36
37
|
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
37
|
-
this._logger.error(`Failed to install ${displayName}, error = '${error}'`);
|
|
38
|
+
this._logger.error(`Failed to install ${displayName}@${targetVersion}, error = '${error}'`);
|
|
38
39
|
return teamsfx_api_1.err(error);
|
|
39
40
|
}
|
|
40
41
|
return teamsfx_api_1.ok(true);
|
|
41
42
|
}
|
|
42
43
|
async isLatestInstalled(loadedLatestVersion) {
|
|
43
44
|
try {
|
|
44
|
-
const generatorVersion = await this.
|
|
45
|
+
const generatorVersion = await this.findLocalInstalledVersion();
|
|
45
46
|
const latestGeneratorVersion = loadedLatestVersion !== null && loadedLatestVersion !== void 0 ? loadedLatestVersion : (await this.findLatestVersion(5));
|
|
46
|
-
|
|
47
|
-
return !!latestGeneratorVersion && generatorVersion === latestGeneratorVersion && hasSentinel;
|
|
47
|
+
return !!latestGeneratorVersion && generatorVersion === latestGeneratorVersion;
|
|
48
48
|
}
|
|
49
49
|
catch (error) {
|
|
50
50
|
return false;
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
-
async
|
|
53
|
+
async findLocalInstalledVersion() {
|
|
54
|
+
try {
|
|
55
|
+
const generatorVersion = await this.queryVersion();
|
|
56
|
+
const hasSentinel = await fs.pathExists(this.getSentinelPath());
|
|
57
|
+
return hasSentinel ? generatorVersion : undefined;
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async install(targetVersion) {
|
|
54
64
|
void this._logger.info("Start installing...");
|
|
55
65
|
await this.cleanup();
|
|
56
|
-
await this.installGenerator();
|
|
66
|
+
await this.installGenerator(targetVersion);
|
|
57
67
|
void this._logger.info("Validating package...");
|
|
58
68
|
if (!(await this.validate())) {
|
|
59
69
|
void this._logger.debug(`Failed to validate ${name}, cleaning up...`);
|
|
@@ -64,8 +74,8 @@ class GeneratorChecker {
|
|
|
64
74
|
getSpGeneratorPath() {
|
|
65
75
|
return `"${path.join(this.getDefaultInstallPath(), "node_modules", "@microsoft", "generator-sharepoint", "lib", "generators", "app", "index.js")}"`;
|
|
66
76
|
}
|
|
67
|
-
async findGloballyInstalledVersion(timeoutInSeconds) {
|
|
68
|
-
return await utils_1.Utils.findGloballyInstalledVersion(this._logger, name, timeoutInSeconds !== null && timeoutInSeconds !== void 0 ? timeoutInSeconds : 0);
|
|
77
|
+
async findGloballyInstalledVersion(timeoutInSeconds, shouldThrowIfNotFind) {
|
|
78
|
+
return await utils_1.Utils.findGloballyInstalledVersion(this._logger, name, timeoutInSeconds !== null && timeoutInSeconds !== void 0 ? timeoutInSeconds : 0, shouldThrowIfNotFind);
|
|
69
79
|
}
|
|
70
80
|
async findLatestVersion(timeoutInSeconds) {
|
|
71
81
|
return await utils_1.Utils.findLatestVersion(this._logger, name, timeoutInSeconds !== null && timeoutInSeconds !== void 0 ? timeoutInSeconds : 0);
|
|
@@ -103,15 +113,15 @@ class GeneratorChecker {
|
|
|
103
113
|
this._logger.error(`Failed to clean up path: ${this.getDefaultInstallPath()}, error: ${err}`);
|
|
104
114
|
}
|
|
105
115
|
}
|
|
106
|
-
async installGenerator() {
|
|
116
|
+
async installGenerator(targetVersion) {
|
|
117
|
+
const version = targetVersion !== null && targetVersion !== void 0 ? targetVersion : constants_1.Constants.LatestVersion;
|
|
107
118
|
try {
|
|
108
|
-
const version = constants_1.Constants.LatestVersion;
|
|
109
119
|
await fs.ensureDir(path.join(this.getDefaultInstallPath(), "node_modules"));
|
|
110
120
|
await cpUtils_1.cpUtils.executeCommand(undefined, this._logger, { timeout: timeout, shell: false }, utils_1.getExecCommand("npm"), "install", `${name}@${version}`, "--prefix", `${this.getDefaultInstallPath()}`, "--no-audit", "--global-style");
|
|
111
121
|
await fs.ensureFile(this.getSentinelPath());
|
|
112
122
|
}
|
|
113
123
|
catch (error) {
|
|
114
|
-
void this._logger.error(`Failed to execute npm install ${displayName}`);
|
|
124
|
+
void this._logger.error(`Failed to execute npm install ${displayName}@${version}`);
|
|
115
125
|
throw error_1.NpmInstallError(error);
|
|
116
126
|
}
|
|
117
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatorChecker.js","sourceRoot":"","sources":["../../../../../src/component/generator/spfx/depsChecker/generatorChecker.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;AAElC,qDAA+B;AAC/B,mDAA6B;AAC7B,+CAAyB;AACzB,wDAUgC;AAEhC,gEAA4D;AAC5D,8DAA8E;AAC9E,oCAAoE;AACpE,0EAAuE;AACvE,kDAA+C;AAC/C,0CAAuD;AAEvD,MAAM,IAAI,GAAG,qBAAS,CAAC,oBAAoB,CAAC;AAC5C,MAAM,WAAW,GAAG,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"generatorChecker.js","sourceRoot":"","sources":["../../../../../src/component/generator/spfx/depsChecker/generatorChecker.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,10 @@ import { DependencyChecker } from "./dependencyChecker";
|
|
|
3
3
|
export declare class YoChecker implements DependencyChecker {
|
|
4
4
|
private readonly _logger;
|
|
5
5
|
constructor(logger: LogProvider);
|
|
6
|
-
|
|
6
|
+
ensureDependency(ctx: Context, targetVersion: string): Promise<Result<boolean, FxError>>;
|
|
7
|
+
findLocalInstalledVersion(): Promise<string | undefined>;
|
|
7
8
|
isLatestInstalled(): Promise<boolean>;
|
|
8
|
-
install(): Promise<void>;
|
|
9
|
+
install(targetVersion: string): Promise<void>;
|
|
9
10
|
getBinFolders(): string[];
|
|
10
11
|
findGloballyInstalledVersion(timeoutInSeconds?: number): Promise<string | undefined>;
|
|
11
12
|
findLatestVersion(timeoutInSeconds: number): Promise<string | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yoChecker.d.ts","sourceRoot":"","sources":["../../../../../src/component/generator/spfx/depsChecker/yoChecker.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,OAAO,EAEP,OAAO,EACP,WAAW,EAEX,MAAM,EAGP,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAYxD,qBAAa,SAAU,YAAW,iBAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;gBAE1B,MAAM,EAAE,WAAW;IAIlB,
|
|
1
|
+
{"version":3,"file":"yoChecker.d.ts","sourceRoot":"","sources":["../../../../../src/component/generator/spfx/depsChecker/yoChecker.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,OAAO,EAEP,OAAO,EACP,WAAW,EAEX,MAAM,EAGP,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAYxD,qBAAa,SAAU,YAAW,iBAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;gBAE1B,MAAM,EAAE,WAAW;IAIlB,gBAAgB,CAC3B,GAAG,EAAE,OAAO,EACZ,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IA0BvB,yBAAyB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAUxD,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAUrC,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAanD,aAAa,IAAI,MAAM,EAAE;IAKnB,4BAA4B,CACvC,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIjB,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;YAIvE,QAAQ;IAItB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,eAAe;YAIT,YAAY;YAcZ,OAAO;YAoCP,SAAS;CAuBxB"}
|
|
@@ -15,44 +15,53 @@ const cpUtils_1 = require("../../../../common/deps-checker/util/cpUtils");
|
|
|
15
15
|
const utils_1 = require("../utils/utils");
|
|
16
16
|
const constants_1 = require("../utils/constants");
|
|
17
17
|
const name = constants_1.Constants.YeomanPackageName;
|
|
18
|
-
const displayName = `${name}
|
|
18
|
+
const displayName = `${name}`;
|
|
19
19
|
const timeout = 6 * 60 * 1000;
|
|
20
20
|
class YoChecker {
|
|
21
21
|
constructor(logger) {
|
|
22
22
|
this._logger = logger;
|
|
23
23
|
}
|
|
24
|
-
async
|
|
25
|
-
telemetry_helper_1.telemetryHelper.sendSuccessEvent(ctx, telemetryEvents_1.TelemetryEvents.
|
|
24
|
+
async ensureDependency(ctx, targetVersion) {
|
|
25
|
+
telemetry_helper_1.telemetryHelper.sendSuccessEvent(ctx, telemetryEvents_1.TelemetryEvents.EnsureYoStart);
|
|
26
26
|
try {
|
|
27
|
-
void this._logger.info(`${displayName} not found, installing...`);
|
|
28
|
-
await this.install();
|
|
29
|
-
void this._logger.info(`Successfully installed ${displayName}`);
|
|
30
|
-
telemetry_helper_1.telemetryHelper.sendSuccessEvent(ctx, telemetryEvents_1.TelemetryEvents.
|
|
27
|
+
void this._logger.info(`${displayName}@${targetVersion} not found, installing...`);
|
|
28
|
+
await this.install(targetVersion);
|
|
29
|
+
void this._logger.info(`Successfully installed ${displayName}@${targetVersion}`);
|
|
30
|
+
telemetry_helper_1.telemetryHelper.sendSuccessEvent(ctx, telemetryEvents_1.TelemetryEvents.EnsureYo);
|
|
31
31
|
}
|
|
32
32
|
catch (error) {
|
|
33
|
-
telemetry_helper_1.telemetryHelper.sendErrorEvent(ctx, telemetryEvents_1.TelemetryEvents.
|
|
34
|
-
[telemetryEvents_1.TelemetryProperty.
|
|
33
|
+
telemetry_helper_1.telemetryHelper.sendErrorEvent(ctx, telemetryEvents_1.TelemetryEvents.EnsureYo, error, {
|
|
34
|
+
[telemetryEvents_1.TelemetryProperty.EnsureYoReason]: error.name,
|
|
35
35
|
});
|
|
36
|
-
this._logger.error(`Failed to install ${displayName}, error = '${error.toString()}'`);
|
|
36
|
+
this._logger.error(`Failed to install ${displayName}@${targetVersion}, error = '${error.toString()}'`);
|
|
37
37
|
return teamsfx_api_1.err(error);
|
|
38
38
|
}
|
|
39
39
|
return teamsfx_api_1.ok(true);
|
|
40
40
|
}
|
|
41
|
-
async
|
|
41
|
+
async findLocalInstalledVersion() {
|
|
42
42
|
try {
|
|
43
43
|
const yoVersion = await this.queryVersion();
|
|
44
|
-
const latestYeomanVersion = await this.findLatestVersion(10);
|
|
45
44
|
const hasSentinel = await fs_extra_1.default.pathExists(this.getSentinelPath());
|
|
46
|
-
return
|
|
45
|
+
return hasSentinel ? yoVersion : undefined;
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async isLatestInstalled() {
|
|
52
|
+
try {
|
|
53
|
+
const yoVersion = await this.findLocalInstalledVersion();
|
|
54
|
+
const latestYeomanVersion = await this.findLatestVersion(10);
|
|
55
|
+
return !!latestYeomanVersion && yoVersion === latestYeomanVersion;
|
|
47
56
|
}
|
|
48
57
|
catch (error) {
|
|
49
58
|
return false;
|
|
50
59
|
}
|
|
51
60
|
}
|
|
52
|
-
async install() {
|
|
61
|
+
async install(targetVersion) {
|
|
53
62
|
void this._logger.info("Start installing...");
|
|
54
63
|
await this.cleanup();
|
|
55
|
-
await this.installYo();
|
|
64
|
+
await this.installYo(targetVersion);
|
|
56
65
|
void this._logger.info("Validating package...");
|
|
57
66
|
if (!(await this.validate())) {
|
|
58
67
|
void this._logger.debug("Failed to validate yo, cleaning up...");
|
|
@@ -116,15 +125,15 @@ class YoChecker {
|
|
|
116
125
|
this._logger.error(`Failed to clean up path: ${this.getDefaultInstallPath()}, error: ${err.toString()}`);
|
|
117
126
|
}
|
|
118
127
|
}
|
|
119
|
-
async installYo() {
|
|
128
|
+
async installYo(targetVersion) {
|
|
129
|
+
const version = targetVersion !== null && targetVersion !== void 0 ? targetVersion : constants_1.Constants.LatestVersion;
|
|
120
130
|
try {
|
|
121
|
-
const version = constants_1.Constants.LatestVersion;
|
|
122
131
|
await fs_extra_1.default.ensureDir(path.join(this.getDefaultInstallPath(), "node_modules"));
|
|
123
132
|
await cpUtils_1.cpUtils.executeCommand(undefined, this._logger, { timeout: timeout, shell: false }, utils_1.getExecCommand("npm"), "install", `${name}@${version}`, "--prefix", `${this.getDefaultInstallPath()}`, "--no-audit", "--global-style");
|
|
124
133
|
await fs_extra_1.default.ensureFile(this.getSentinelPath());
|
|
125
134
|
}
|
|
126
135
|
catch (error) {
|
|
127
|
-
void this._logger.error(
|
|
136
|
+
void this._logger.error(`Failed to execute npm install ${displayName}@${version}`);
|
|
128
137
|
throw error_1.NpmInstallError(error);
|
|
129
138
|
}
|
|
130
139
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yoChecker.js","sourceRoot":"","sources":["../../../../../src/component/generator/spfx/depsChecker/yoChecker.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;AAElC,gEAA0B;AAC1B,mDAA6B;AAC7B,+CAAyB;AACzB,wDAUgC;AAEhC,gEAA4D;AAC5D,8DAA8E;AAC9E,oCAAoE;AACpE,0EAAuE;AACvE,0CAAuD;AACvD,kDAA+C;AAE/C,MAAM,IAAI,GAAG,qBAAS,CAAC,iBAAiB,CAAC;AACzC,MAAM,WAAW,GAAG,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"yoChecker.js","sourceRoot":"","sources":["../../../../../src/component/generator/spfx/depsChecker/yoChecker.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,12 @@ export declare function NpmInstallError(error: Error): SystemError;
|
|
|
4
4
|
export declare function DependencyValidateError(dependency: string): SystemError;
|
|
5
5
|
export declare function DevEnvironmentSetupError(): UserError;
|
|
6
6
|
export declare function LatestPackageInstallError(): SystemError;
|
|
7
|
+
export declare function PackageTargetVersionInstallError(packageName: string, version: string): SystemError;
|
|
7
8
|
export declare function YoGeneratorScaffoldError(): UserError;
|
|
8
9
|
export declare function CopyExistingSPFxSolutionError(e: Error): UserError;
|
|
9
10
|
export declare function RetrieveSPFxInfoError(): UserError;
|
|
10
11
|
export declare function UpdateSPFxTemplateError(e: Error): UserError;
|
|
11
12
|
export declare function ImportSPFxSolutionError(e: Error): UserError;
|
|
12
13
|
export declare function PathAlreadyExistsError(path: string): UserError;
|
|
14
|
+
export declare function SolutionVersionMissingError(path: string): UserError;
|
|
13
15
|
//# sourceMappingURL=error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../src/component/generator/spfx/error.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAIhE,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,WAAW,CAUnE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,CAOzD;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAOvE;AAED,wBAAgB,wBAAwB,IAAI,SAAS,CAQpD;AAED,wBAAgB,yBAAyB,IAAI,WAAW,CAgBvD;AAED,wBAAgB,wBAAwB,IAAI,SAAS,CAcpD;AAED,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,CAQjE;AAED,wBAAgB,qBAAqB,IAAI,SAAS,CAQjD;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,CAQ3D;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,CAQ3D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAO9D"}
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../src/component/generator/spfx/error.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAIhE,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,WAAW,CAUnE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,CAOzD;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAOvE;AAED,wBAAgB,wBAAwB,IAAI,SAAS,CAQpD;AAED,wBAAgB,yBAAyB,IAAI,WAAW,CAgBvD;AAED,wBAAgB,gCAAgC,CAC9C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,WAAW,CAmBb;AAED,wBAAgB,wBAAwB,IAAI,SAAS,CAcpD;AAED,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,CAQjE;AAED,wBAAgB,qBAAqB,IAAI,SAAS,CAQjD;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,CAQ3D;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,CAQ3D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAO9D;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAOnE"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
3
|
"use strict";
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.PathAlreadyExistsError = exports.ImportSPFxSolutionError = exports.UpdateSPFxTemplateError = exports.RetrieveSPFxInfoError = exports.CopyExistingSPFxSolutionError = exports.YoGeneratorScaffoldError = exports.LatestPackageInstallError = exports.DevEnvironmentSetupError = exports.DependencyValidateError = exports.NpmInstallError = exports.ScaffoldError = void 0;
|
|
5
|
+
exports.SolutionVersionMissingError = exports.PathAlreadyExistsError = exports.ImportSPFxSolutionError = exports.UpdateSPFxTemplateError = exports.RetrieveSPFxInfoError = exports.CopyExistingSPFxSolutionError = exports.YoGeneratorScaffoldError = exports.PackageTargetVersionInstallError = exports.LatestPackageInstallError = exports.DevEnvironmentSetupError = exports.DependencyValidateError = exports.NpmInstallError = exports.ScaffoldError = void 0;
|
|
6
6
|
const teamsfx_api_1 = require("@microsoft/teamsfx-api");
|
|
7
7
|
const constants_1 = require("./utils/constants");
|
|
8
8
|
const localizeUtils_1 = require("../../../common/localizeUtils");
|
|
@@ -42,6 +42,12 @@ function LatestPackageInstallError() {
|
|
|
42
42
|
return new teamsfx_api_1.SystemError(constants_1.Constants.PLUGIN_NAME, "LatestPackageInstallFailed", localizeUtils_1.getDefaultString("plugins.spfx.error.installLatestDependencyError", fxFolderPath, constants_1.Constants.SetUpDevEnvironmentHelpLink), localizeUtils_1.getLocalizedString("plugins.spfx.error.installLatestDependencyError", fxFolderPath, constants_1.Constants.SetUpDevEnvironmentHelpLink));
|
|
43
43
|
}
|
|
44
44
|
exports.LatestPackageInstallError = LatestPackageInstallError;
|
|
45
|
+
function PackageTargetVersionInstallError(packageName, version) {
|
|
46
|
+
const fxFolderPath = "HOME/.fx";
|
|
47
|
+
const packageInfo = `${packageName}@${version}`;
|
|
48
|
+
return new teamsfx_api_1.SystemError(constants_1.Constants.PLUGIN_NAME, "PackageTargetVersionInstallError", localizeUtils_1.getDefaultString("plugins.spfx.error.installDependencyError", fxFolderPath, constants_1.Constants.AddWebpartHelpLink, packageInfo), localizeUtils_1.getLocalizedString("plugins.spfx.error.installDependencyError", fxFolderPath, constants_1.Constants.AddWebpartHelpLink, packageInfo));
|
|
49
|
+
}
|
|
50
|
+
exports.PackageTargetVersionInstallError = PackageTargetVersionInstallError;
|
|
45
51
|
function YoGeneratorScaffoldError() {
|
|
46
52
|
return new teamsfx_api_1.UserError({
|
|
47
53
|
source: constants_1.Constants.PLUGIN_NAME,
|
|
@@ -101,4 +107,13 @@ function PathAlreadyExistsError(path) {
|
|
|
101
107
|
});
|
|
102
108
|
}
|
|
103
109
|
exports.PathAlreadyExistsError = PathAlreadyExistsError;
|
|
110
|
+
function SolutionVersionMissingError(path) {
|
|
111
|
+
return new teamsfx_api_1.UserError({
|
|
112
|
+
source: constants_1.Constants.PLUGIN_NAME,
|
|
113
|
+
name: "SolutionVersionMissing",
|
|
114
|
+
message: localizeUtils_1.getDefaultString("plugins.spfx.addWebPart.cannotFindSolutionVersion", path),
|
|
115
|
+
displayMessage: localizeUtils_1.getLocalizedString("plugins.spfx.addWebPart.cannotFindSolutionVersion", path),
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
exports.SolutionVersionMissingError = SolutionVersionMissingError;
|
|
104
119
|
//# sourceMappingURL=error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../src/component/generator/spfx/error.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../src/component/generator/spfx/error.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,9 @@ export declare class SPFxGenerator {
|
|
|
6
6
|
private static importSPFxProject;
|
|
7
7
|
static doYeomanScaffold(context: Context, inputs: Inputs, destinationPath: string): Promise<Result<string, FxError>>;
|
|
8
8
|
static getSolutionName(spfxFolder: string): Promise<string | undefined>;
|
|
9
|
+
private static getSolutionVersion;
|
|
10
|
+
private static ensureLocalDependencies;
|
|
11
|
+
private static shouldAddWebPartWithLocalDependencies;
|
|
9
12
|
private static copySPFxSolution;
|
|
10
13
|
private static getWebpartManifest;
|
|
11
14
|
private static updateSPFxTemplate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spfxGenerator.d.ts","sourceRoot":"","sources":["../../../../src/component/generator/spfx/spfxGenerator.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,OAAO,EAEP,OAAO,EACP,MAAM,
|
|
1
|
+
{"version":3,"file":"spfxGenerator.d.ts","sourceRoot":"","sources":["../../../../src/component/generator/spfx/spfxGenerator.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,OAAO,EAEP,OAAO,EACP,MAAM,EAMN,MAAM,EAIP,MAAM,wBAAwB,CAAC;AAahC,OAAO,EAAE,aAAa,EAAqB,MAAM,oCAAoC,CAAC;AAuBtF,qBAAa,aAAa;WASJ,QAAQ,CAC1B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;mBAajB,cAAc;mBAmBd,iBAAiB;WA8GlB,gBAAgB,CAClC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;WAgMf,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;mBAa/D,kBAAkB;mBAYlB,uBAAuB;mBAsEvB,qCAAqC;mBA0HrC,gBAAgB;mBAehB,kBAAkB;mBAoClB,kBAAkB;CAqKxC"}
|
|
@@ -120,7 +120,7 @@ class SPFxGenerator {
|
|
|
120
120
|
var _a, _b;
|
|
121
121
|
const ui = context.userInteraction;
|
|
122
122
|
const progressHandler = await progress_helper_1.ProgressHelper.startScaffoldProgressHandler(ui, inputs.stage == teamsfx_api_1.Stage.addWebpart);
|
|
123
|
-
|
|
123
|
+
let shouldInstallLocally = inputs[questionNames_1.QuestionNames.SPFxInstallPackage] === create_1.SPFxVersionOptionIds.installLocally;
|
|
124
124
|
try {
|
|
125
125
|
const webpartName = inputs[questionNames_1.QuestionNames.SPFxWebpartName];
|
|
126
126
|
const framework = inputs[questionNames_1.QuestionNames.SPFxFramework];
|
|
@@ -131,28 +131,28 @@ class SPFxGenerator {
|
|
|
131
131
|
await (progressHandler === null || progressHandler === void 0 ? void 0 : progressHandler.next(localizeUtils_1.getLocalizedString("plugins.spfx.scaffold.dependencyCheck")));
|
|
132
132
|
const yoChecker = new yoChecker_1.YoChecker(context.logProvider);
|
|
133
133
|
const spGeneratorChecker = new generatorChecker_1.GeneratorChecker(context.logProvider);
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
throw error_2.LatestPackageInstallError();
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
if (!latestGeneratorInstalled) {
|
|
146
|
-
const spGeneratorRes = await spGeneratorChecker.ensureLatestDependency(context);
|
|
147
|
-
if (spGeneratorRes.isErr()) {
|
|
148
|
-
throw error_2.LatestPackageInstallError();
|
|
149
|
-
}
|
|
150
|
-
}
|
|
134
|
+
let targetVersion = constants_2.Constants.LatestVersion;
|
|
135
|
+
let localVersion = undefined;
|
|
136
|
+
if (isAddSPFx) {
|
|
137
|
+
const yoInfoPath = path.join(inputs[questionNames_1.QuestionNames.SPFxFolder], constants_2.Constants.YO_RC_FILE);
|
|
138
|
+
targetVersion = await this.getSolutionVersion(yoInfoPath);
|
|
139
|
+
if (!targetVersion) {
|
|
140
|
+
context.logProvider.error(localizeUtils_1.getLocalizedString("plugins.spfx.addWebPart.cannotFindSolutionVersion", yoInfoPath));
|
|
141
|
+
throw error_2.SolutionVersionMissingError(yoInfoPath);
|
|
151
142
|
}
|
|
143
|
+
const versions = await Promise.all([
|
|
144
|
+
spGeneratorChecker.findLocalInstalledVersion(),
|
|
145
|
+
spGeneratorChecker.findGloballyInstalledVersion(undefined, false),
|
|
146
|
+
]);
|
|
147
|
+
localVersion = versions[0];
|
|
148
|
+
shouldInstallLocally = await this.shouldAddWebPartWithLocalDependencies(targetVersion, versions[1], localVersion, context);
|
|
149
|
+
}
|
|
150
|
+
if (shouldInstallLocally) {
|
|
151
|
+
await this.ensureLocalDependencies(targetVersion, localVersion, inputs, context, yoChecker, spGeneratorChecker, progressHandler);
|
|
152
152
|
}
|
|
153
153
|
else {
|
|
154
154
|
const isLowerVersion = !!inputs.globalSpfxPackageVersion &&
|
|
155
|
-
semver_1.default.
|
|
155
|
+
semver_1.default.lt(inputs.globalSpfxPackageVersion, constants_2.Constants.RecommendedLowestSpfxVersion.substring(1));
|
|
156
156
|
if (isLowerVersion) {
|
|
157
157
|
context.telemetryReporter.sendTelemetryEvent(telemetryEvents_1.TelemetryEvents.UseNotRecommendedVersion);
|
|
158
158
|
}
|
|
@@ -249,7 +249,7 @@ class SPFxGenerator {
|
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
251
|
static async getSolutionName(spfxFolder) {
|
|
252
|
-
const yoInfoPath = path.join(spfxFolder,
|
|
252
|
+
const yoInfoPath = path.join(spfxFolder, constants_2.Constants.YO_RC_FILE);
|
|
253
253
|
if (await fs_extra_1.default.pathExists(yoInfoPath)) {
|
|
254
254
|
const yoInfo = await fs_extra_1.default.readJson(yoInfoPath);
|
|
255
255
|
if (yoInfo["@microsoft/generator-sharepoint"]) {
|
|
@@ -261,6 +261,135 @@ class SPFxGenerator {
|
|
|
261
261
|
}
|
|
262
262
|
return undefined;
|
|
263
263
|
}
|
|
264
|
+
static async getSolutionVersion(yoInfoPath) {
|
|
265
|
+
if (await fs_extra_1.default.pathExists(yoInfoPath)) {
|
|
266
|
+
const yoInfo = await fs_extra_1.default.readJson(yoInfoPath);
|
|
267
|
+
if (yoInfo["@microsoft/generator-sharepoint"]) {
|
|
268
|
+
return yoInfo["@microsoft/generator-sharepoint"][constants_2.Constants.YO_RC_VERSION];
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
throw new error_1.FileNotFoundError(constants_2.Constants.PLUGIN_NAME, yoInfoPath);
|
|
273
|
+
}
|
|
274
|
+
return "";
|
|
275
|
+
}
|
|
276
|
+
static async ensureLocalDependencies(targetSPFxVersion, localSPFxVersion, inputs, context, yoChecker, spGeneratorChecker, progressHandler) {
|
|
277
|
+
let needInstallYo = false;
|
|
278
|
+
let needInstallGenerator = false;
|
|
279
|
+
const isAddWebPart = targetSPFxVersion !== constants_2.Constants.LatestVersion;
|
|
280
|
+
// yo
|
|
281
|
+
if (!isAddWebPart) {
|
|
282
|
+
const latestYoInstalled = await yoChecker.isLatestInstalled();
|
|
283
|
+
needInstallYo = !latestYoInstalled;
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
const localYoVersion = await yoChecker.findLocalInstalledVersion();
|
|
287
|
+
needInstallYo = !localYoVersion;
|
|
288
|
+
}
|
|
289
|
+
// spfx generator
|
|
290
|
+
if (!isAddWebPart) {
|
|
291
|
+
const latestGeneratorInstalled = await spGeneratorChecker.isLatestInstalled(inputs.latestSpfxPackageVersion);
|
|
292
|
+
needInstallGenerator = !latestGeneratorInstalled;
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
// we have check and confirmed with user before install/upgrade dependencies for user
|
|
296
|
+
needInstallGenerator = !localSPFxVersion || semver_1.default.lt(localSPFxVersion, targetSPFxVersion);
|
|
297
|
+
}
|
|
298
|
+
if (needInstallYo || needInstallGenerator) {
|
|
299
|
+
await (progressHandler === null || progressHandler === void 0 ? void 0 : progressHandler.next(localizeUtils_1.getLocalizedString("plugins.spfx.scaffold.dependencyInstall")));
|
|
300
|
+
if (needInstallYo) {
|
|
301
|
+
const yoRes = await yoChecker.ensureDependency(context, constants_2.Constants.LatestVersion);
|
|
302
|
+
if (yoRes.isErr()) {
|
|
303
|
+
if (isAddWebPart) {
|
|
304
|
+
throw error_2.PackageTargetVersionInstallError(constants_2.Constants.YeomanPackageName, constants_2.Constants.LatestVersion);
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
throw error_2.LatestPackageInstallError();
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
if (needInstallGenerator) {
|
|
312
|
+
const spGeneratorRes = await spGeneratorChecker.ensureDependency(context, targetSPFxVersion);
|
|
313
|
+
if (spGeneratorRes.isErr()) {
|
|
314
|
+
if (isAddWebPart) {
|
|
315
|
+
throw error_2.PackageTargetVersionInstallError(constants_2.Constants.GeneratorPackageName, targetSPFxVersion);
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
throw error_2.LatestPackageInstallError();
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
// return shouldUseLocal
|
|
325
|
+
static async shouldAddWebPartWithLocalDependencies(solutionVersion, globalVersion, localVersion, context) {
|
|
326
|
+
if (globalVersion === solutionVersion) {
|
|
327
|
+
// use globally installed pacakge to add web part
|
|
328
|
+
context.telemetryReporter.sendTelemetryEvent(telemetryEvents_1.TelemetryEvents.CheckAddWebPartPackage, {
|
|
329
|
+
[telemetryEvents_1.TelemetryProperty.PackageSource]: "global",
|
|
330
|
+
});
|
|
331
|
+
return false;
|
|
332
|
+
}
|
|
333
|
+
if (localVersion === solutionVersion) {
|
|
334
|
+
// use locally installed package to add web part
|
|
335
|
+
context.telemetryReporter.sendTelemetryEvent(telemetryEvents_1.TelemetryEvents.CheckAddWebPartPackage, {
|
|
336
|
+
[telemetryEvents_1.TelemetryProperty.PackageSource]: "local",
|
|
337
|
+
[telemetryEvents_1.TelemetryProperty.UserAction]: "none",
|
|
338
|
+
});
|
|
339
|
+
return true;
|
|
340
|
+
}
|
|
341
|
+
const displayedSolutionVersion = `v${solutionVersion}`;
|
|
342
|
+
const displayedLocalVersion = localVersion ? `v${localVersion}` : undefined;
|
|
343
|
+
const displayedGlobalVersion = globalVersion ? `v${globalVersion}` : undefined;
|
|
344
|
+
let userAnswer;
|
|
345
|
+
let continueText;
|
|
346
|
+
let defaultContinueText;
|
|
347
|
+
if (!localVersion) {
|
|
348
|
+
// ask user to confirm to install locally
|
|
349
|
+
continueText = localizeUtils_1.getLocalizedString("plugins.spfx.addWebPart.install");
|
|
350
|
+
defaultContinueText = localizeUtils_1.getDefaultString("plugins.spfx.addWebPart.install");
|
|
351
|
+
const res = await context.userInteraction.showMessage("info", localizeUtils_1.getLocalizedString("plugins.spfx.addWebPart.confirmInstall", displayedSolutionVersion, displayedSolutionVersion), true, continueText);
|
|
352
|
+
userAnswer = res.isOk() ? res.value : undefined;
|
|
353
|
+
}
|
|
354
|
+
else if (semver_1.default.lt(localVersion, solutionVersion)) {
|
|
355
|
+
// ask user to confirm to upgrade local SPFx
|
|
356
|
+
continueText = localizeUtils_1.getLocalizedString("plugins.spfx.addWebPart.upgrade");
|
|
357
|
+
defaultContinueText = localizeUtils_1.getDefaultString("plugins.spfx.addWebPart.upgrade");
|
|
358
|
+
const res = await context.userInteraction.showMessage("info", localizeUtils_1.getLocalizedString("plugins.spfx.addWebPart.confirmUpgrade", displayedLocalVersion, displayedSolutionVersion, displayedSolutionVersion), true, continueText);
|
|
359
|
+
userAnswer = res.isOk() ? res.value : undefined;
|
|
360
|
+
}
|
|
361
|
+
else {
|
|
362
|
+
// localVersion > solutionVersion
|
|
363
|
+
// ask user to confirm to continue, learn more or cancel
|
|
364
|
+
continueText = localizeUtils_1.getLocalizedString("plugins.spfx.addWebPart.versionMismatch.continue");
|
|
365
|
+
defaultContinueText = localizeUtils_1.getDefaultString("plugins.spfx.addWebPart.versionMismatch.continue");
|
|
366
|
+
let userSelected;
|
|
367
|
+
const helpText = localizeUtils_1.getLocalizedString("plugins.spfx.addWebPart.versionMismatch.help");
|
|
368
|
+
do {
|
|
369
|
+
const res = await context.userInteraction.showMessage("info", localizeUtils_1.getLocalizedString("plugins.spfx.addWebPart.versionMismatch.continueConfirm", displayedSolutionVersion, displayedLocalVersion), true, helpText, continueText);
|
|
370
|
+
userSelected = res.isOk() ? res.value : undefined;
|
|
371
|
+
if (userSelected === helpText) {
|
|
372
|
+
context.telemetryReporter.sendTelemetryEvent(telemetryEvents_1.TelemetryEvents.LearnMoreVersionMismatch);
|
|
373
|
+
void context.userInteraction.openUrl(constants_2.Constants.AddWebpartHelpLink);
|
|
374
|
+
}
|
|
375
|
+
} while (userSelected === helpText);
|
|
376
|
+
userAnswer = userSelected;
|
|
377
|
+
context.logProvider.log(teamsfx_api_1.LogLevel.Warning, displayedGlobalVersion
|
|
378
|
+
? localizeUtils_1.getLocalizedString("plugins.spfx.addWebPart.versionMismatch.output", displayedSolutionVersion, displayedGlobalVersion, displayedLocalVersion, displayedLocalVersion, constants_2.Constants.AddWebpartHelpLink)
|
|
379
|
+
: localizeUtils_1.getLocalizedString("plugins.spfx.addWebPart.versionMismatch.localOnly.output", displayedSolutionVersion, displayedLocalVersion, displayedLocalVersion, constants_2.Constants.AddWebpartHelpLink));
|
|
380
|
+
}
|
|
381
|
+
context.telemetryReporter.sendTelemetryEvent(telemetryEvents_1.TelemetryEvents.CheckAddWebPartPackage, {
|
|
382
|
+
[telemetryEvents_1.TelemetryProperty.PackageSource]: "local",
|
|
383
|
+
[telemetryEvents_1.TelemetryProperty.UserAction]: defaultContinueText,
|
|
384
|
+
[telemetryEvents_1.TelemetryProperty.ConfirmAddWebPartResult]: !userAnswer ? "Cancel" : defaultContinueText,
|
|
385
|
+
});
|
|
386
|
+
if (userAnswer !== continueText) {
|
|
387
|
+
throw new error_1.UserCancelError(constants_2.Constants.PLUGIN_NAME);
|
|
388
|
+
}
|
|
389
|
+
else {
|
|
390
|
+
return true;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
264
393
|
static async copySPFxSolution(src, dest) {
|
|
265
394
|
try {
|
|
266
395
|
await fs_extra_1.default.ensureDir(dest);
|