@microsoft/teamsfx-core 2.0.6-alpha.da822cd72.0 → 2.0.6-alpha.e5db52f29.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/featureFlags.d.ts +1 -0
- package/build/common/featureFlags.d.ts.map +1 -1
- package/build/common/featureFlags.js +5 -1
- package/build/common/featureFlags.js.map +1 -1
- package/build/common/local/constants.d.ts +1 -0
- package/build/common/local/constants.d.ts.map +1 -1
- package/build/common/local/constants.js +1 -0
- package/build/common/local/constants.js.map +1 -1
- package/build/common/m365/launchHelper.d.ts +1 -1
- package/build/common/m365/launchHelper.d.ts.map +1 -1
- package/build/common/m365/launchHelper.js +2 -2
- package/build/common/m365/launchHelper.js.map +1 -1
- package/build/common/m365/packageService.d.ts +1 -0
- package/build/common/m365/packageService.d.ts.map +1 -1
- package/build/common/m365/packageService.js +68 -0
- package/build/common/m365/packageService.js.map +1 -1
- package/build/common/spec-parser/adaptiveCardGenerator.d.ts +3 -2
- package/build/common/spec-parser/adaptiveCardGenerator.d.ts.map +1 -1
- package/build/common/spec-parser/adaptiveCardGenerator.js +49 -19
- package/build/common/spec-parser/adaptiveCardGenerator.js.map +1 -1
- package/build/common/spec-parser/adaptiveCardWrapper.d.ts.map +1 -1
- package/build/common/spec-parser/adaptiveCardWrapper.js.map +1 -1
- package/build/common/spec-parser/constants.d.ts +15 -14
- package/build/common/spec-parser/constants.d.ts.map +1 -1
- package/build/common/spec-parser/constants.js +15 -15
- package/build/common/spec-parser/constants.js.map +1 -1
- package/build/common/spec-parser/index.d.ts +5 -0
- package/build/common/spec-parser/index.d.ts.map +1 -0
- package/build/common/spec-parser/index.js +16 -0
- package/build/common/spec-parser/index.js.map +1 -0
- package/build/common/spec-parser/interfaces.d.ts +20 -4
- package/build/common/spec-parser/interfaces.d.ts.map +1 -1
- package/build/common/spec-parser/interfaces.js +1 -2
- package/build/common/spec-parser/interfaces.js.map +1 -1
- package/build/common/spec-parser/manifestUpdater.d.ts +1 -2
- package/build/common/spec-parser/manifestUpdater.d.ts.map +1 -1
- package/build/common/spec-parser/manifestUpdater.js +9 -98
- 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.d.ts +10 -5
- package/build/common/spec-parser/specParser.d.ts.map +1 -1
- package/build/common/spec-parser/specParser.js +34 -84
- package/build/common/spec-parser/specParser.js.map +1 -1
- package/build/common/spec-parser/utils.d.ts +11 -4
- package/build/common/spec-parser/utils.d.ts.map +1 -1
- package/build/common/spec-parser/utils.js +184 -31
- package/build/common/spec-parser/utils.js.map +1 -1
- package/build/common/templates-config.json +2 -2
- package/build/component/configManager/lifecycle.d.ts +1 -0
- package/build/component/configManager/lifecycle.d.ts.map +1 -1
- package/build/component/configManager/lifecycle.js +17 -5
- package/build/component/configManager/lifecycle.js.map +1 -1
- package/build/component/coordinator/index.d.ts.map +1 -1
- package/build/component/coordinator/index.js +12 -9
- package/build/component/coordinator/index.js.map +1 -1
- package/build/component/developerPortalScaffoldUtils.d.ts.map +1 -1
- package/build/component/developerPortalScaffoldUtils.js +32 -0
- package/build/component/developerPortalScaffoldUtils.js.map +1 -1
- package/build/component/driver/add/addWebPart.d.ts.map +1 -1
- package/build/component/driver/add/addWebPart.js +2 -0
- package/build/component/driver/add/addWebPart.js.map +1 -1
- package/build/component/driver/add/interface/AddWebPartArgs.d.ts +4 -0
- package/build/component/driver/add/interface/AddWebPartArgs.d.ts.map +1 -1
- package/build/component/driver/teamsApp/publishAppPackage.d.ts +1 -0
- package/build/component/driver/teamsApp/publishAppPackage.d.ts.map +1 -1
- package/build/component/driver/teamsApp/publishAppPackage.js +9 -9
- package/build/component/driver/teamsApp/publishAppPackage.js.map +1 -1
- package/build/component/driver/teamsApp/teamsappMgr.d.ts +20 -0
- package/build/component/driver/teamsApp/teamsappMgr.d.ts.map +1 -0
- package/build/component/driver/teamsApp/teamsappMgr.js +278 -0
- package/build/component/driver/teamsApp/teamsappMgr.js.map +1 -0
- package/build/component/generator/copilotPlugin/generator.d.ts.map +1 -1
- package/build/component/generator/copilotPlugin/generator.js +11 -14
- package/build/component/generator/copilotPlugin/generator.js.map +1 -1
- package/build/component/generator/copilotPlugin/helper.d.ts +5 -2
- package/build/component/generator/copilotPlugin/helper.d.ts.map +1 -1
- package/build/component/generator/copilotPlugin/helper.js +83 -13
- package/build/component/generator/copilotPlugin/helper.js.map +1 -1
- package/build/component/generator/generator.d.ts.map +1 -1
- package/build/component/generator/generator.js +4 -2
- package/build/component/generator/generator.js.map +1 -1
- package/build/component/generator/generatorAction.d.ts +1 -1
- package/build/component/generator/generatorAction.d.ts.map +1 -1
- package/build/component/generator/generatorAction.js +8 -6
- package/build/component/generator/generatorAction.js.map +1 -1
- package/build/component/generator/officeAddin/generator.js +1 -1
- package/build/component/generator/officeAddin/generator.js.map +1 -1
- package/build/component/generator/officeAddin/helperMethods.d.ts.map +1 -1
- package/build/component/generator/officeAddin/helperMethods.js +20 -17
- package/build/component/generator/officeAddin/helperMethods.js.map +1 -1
- package/build/component/utils/common.d.ts.map +1 -1
- package/build/component/utils/common.js +9 -2
- 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 +5 -0
- package/build/component/utils/envUtil.js.map +1 -1
- package/build/core/FxCore.d.ts +17 -2
- package/build/core/FxCore.d.ts.map +1 -1
- package/build/core/FxCore.js +75 -7
- package/build/core/FxCore.js.map +1 -1
- package/build/core/middleware/projectMigratorV3.js +1 -1
- package/build/core/middleware/projectMigratorV3.js.map +1 -1
- package/build/question/create.d.ts +7 -6
- package/build/question/create.d.ts.map +1 -1
- package/build/question/create.js +77 -73
- package/build/question/create.js.map +1 -1
- package/build/question/inputs/CreateProjectInputs.d.ts +4 -4
- package/build/question/inputs/CreateProjectInputs.d.ts.map +1 -1
- package/build/question/inputs/SPFxAddWebpartInputs.d.ts +2 -0
- package/build/question/inputs/SPFxAddWebpartInputs.d.ts.map +1 -1
- package/build/question/options/CreateProjectOptions.d.ts.map +1 -1
- package/build/question/options/CreateProjectOptions.js +7 -8
- package/build/question/options/CreateProjectOptions.js.map +1 -1
- package/build/question/options/SPFxAddWebpartOptions.d.ts.map +1 -1
- package/build/question/options/SPFxAddWebpartOptions.js +9 -0
- package/build/question/options/SPFxAddWebpartOptions.js.map +1 -1
- package/build/question/other.d.ts.map +1 -1
- package/build/question/other.js +21 -0
- package/build/question/other.js.map +1 -1
- package/build/question/questionNames.d.ts +1 -2
- package/build/question/questionNames.d.ts.map +1 -1
- package/build/question/questionNames.js +1 -2
- package/build/question/questionNames.js.map +1 -1
- package/package.json +5 -4
- package/resource/package.nls.json +13 -15
- 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
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.teamsappMgr = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// Copyright (c) Microsoft Corporation.
|
|
6
|
+
// Licensed under the MIT license.
|
|
7
|
+
const teamsfx_api_1 = require("@microsoft/teamsfx-api");
|
|
8
|
+
const adm_zip_1 = tslib_1.__importDefault(require("adm-zip"));
|
|
9
|
+
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
10
|
+
const path = tslib_1.__importStar(require("path"));
|
|
11
|
+
const typedi_1 = require("typedi");
|
|
12
|
+
const util = tslib_1.__importStar(require("util"));
|
|
13
|
+
const localizeUtils_1 = require("../../../common/localizeUtils");
|
|
14
|
+
const tools_1 = require("../../../common/tools");
|
|
15
|
+
const common_1 = require("../../../error/common");
|
|
16
|
+
const lifecycle_1 = require("../../configManager/lifecycle");
|
|
17
|
+
const utils_1 = require("../../utils");
|
|
18
|
+
const envUtil_1 = require("../../utils/envUtil");
|
|
19
|
+
const pathUtils_1 = require("../../utils/pathUtils");
|
|
20
|
+
const configure_1 = require("./configure");
|
|
21
|
+
const constants_1 = require("./constants");
|
|
22
|
+
const createAppPackage_1 = require("./createAppPackage");
|
|
23
|
+
const publishAppPackage_1 = require("./publishAppPackage");
|
|
24
|
+
const ManifestUtils_1 = require("./utils/ManifestUtils");
|
|
25
|
+
class TeamsAppMgr {
|
|
26
|
+
async ensureAppPackageFile(inputs) {
|
|
27
|
+
// if no package file input, then do package first
|
|
28
|
+
if (!inputs["package-file"]) {
|
|
29
|
+
const packageRes = await this.packageTeamsApp(inputs);
|
|
30
|
+
if (packageRes.isErr()) {
|
|
31
|
+
return teamsfx_api_1.err(packageRes.error);
|
|
32
|
+
}
|
|
33
|
+
inputs["package-file"] = packageRes.value.outputZipPath;
|
|
34
|
+
}
|
|
35
|
+
if (!(await fs_extra_1.default.pathExists(inputs["package-file"]))) {
|
|
36
|
+
return teamsfx_api_1.err(new common_1.FileNotFoundError("updateTeamsApp", inputs["package-file"]));
|
|
37
|
+
}
|
|
38
|
+
return teamsfx_api_1.ok(undefined);
|
|
39
|
+
}
|
|
40
|
+
async readManifestFromZip(appPackagePath) {
|
|
41
|
+
const archivedFile = await fs_extra_1.default.readFile(appPackagePath);
|
|
42
|
+
const zipEntries = new adm_zip_1.default(archivedFile).getEntries();
|
|
43
|
+
const manifestFile = zipEntries.find((x) => x.entryName === constants_1.Constants.MANIFEST_FILE);
|
|
44
|
+
if (manifestFile) {
|
|
45
|
+
const manifestContent = manifestFile.getData().toString();
|
|
46
|
+
const manifest = JSON.parse(manifestContent);
|
|
47
|
+
return teamsfx_api_1.ok(manifest);
|
|
48
|
+
}
|
|
49
|
+
return teamsfx_api_1.err(new common_1.FileNotFoundError("readManifestFromZip", appPackagePath + ":" + constants_1.Constants.MANIFEST_FILE));
|
|
50
|
+
}
|
|
51
|
+
async checkAndTryToLoadEnv(inputs) {
|
|
52
|
+
//check placeholders in manifest file, if there are unresolved placeholders in manifest file, try to load env file
|
|
53
|
+
const manifestFile = inputs["manifest-file"];
|
|
54
|
+
const manifestString = await fs_extra_1.default.readFile(manifestFile, { encoding: "utf-8" });
|
|
55
|
+
const unresolved = [];
|
|
56
|
+
const resovled = [];
|
|
57
|
+
lifecycle_1.resolveString(manifestString, resovled, unresolved);
|
|
58
|
+
let env = undefined;
|
|
59
|
+
if (unresolved.length > 0) {
|
|
60
|
+
if (!inputs["env-file"]) {
|
|
61
|
+
const envRes = await envUtil_1.envUtil.listEnv(inputs.projectPath);
|
|
62
|
+
if (envRes.isErr()) {
|
|
63
|
+
return teamsfx_api_1.err(envRes.error);
|
|
64
|
+
}
|
|
65
|
+
const envs = envRes.value;
|
|
66
|
+
const envFolderPathRes = await pathUtils_1.pathUtils.getEnvFolderPath(inputs.projectPath);
|
|
67
|
+
if (envFolderPathRes.isErr()) {
|
|
68
|
+
return teamsfx_api_1.err(envFolderPathRes.error);
|
|
69
|
+
}
|
|
70
|
+
const envFolder = envFolderPathRes.value;
|
|
71
|
+
if (!envFolder)
|
|
72
|
+
return teamsfx_api_1.ok(env);
|
|
73
|
+
if (inputs.env) {
|
|
74
|
+
// env provided
|
|
75
|
+
if (envs.includes(inputs.env)) {
|
|
76
|
+
//env provided and found
|
|
77
|
+
inputs["env-file"] = path.join(envFolder, `.env.${inputs.env}`);
|
|
78
|
+
env = inputs.env;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
// env provided but not found
|
|
82
|
+
return teamsfx_api_1.err(new common_1.FileNotFoundError("updateTeamsApp", path.join(envFolder, `.env.${inputs.env}`)));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
//env not provided
|
|
87
|
+
if (envs.length > 1) {
|
|
88
|
+
//need provide
|
|
89
|
+
return teamsfx_api_1.err(new common_1.MissingRequiredInputError("env", "updateTeamsApp"));
|
|
90
|
+
}
|
|
91
|
+
else if (envs.length === 1) {
|
|
92
|
+
// no need provide
|
|
93
|
+
env = envs[0];
|
|
94
|
+
inputs["env-file"] = path.join(envFolder, `.env.${env}`);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
// no env file found
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (inputs["env-file"]) {
|
|
102
|
+
const res = await envUtil_1.envUtil.loadEnvFile(inputs["env-file"]);
|
|
103
|
+
if (res.isErr()) {
|
|
104
|
+
return teamsfx_api_1.err(res.error);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return teamsfx_api_1.ok(env);
|
|
109
|
+
}
|
|
110
|
+
async packageTeamsApp(inputs) {
|
|
111
|
+
if (!inputs["manifest-file"]) {
|
|
112
|
+
const defaultManifestPath = ManifestUtils_1.manifestUtils.getTeamsAppManifestPath(inputs.projectPath);
|
|
113
|
+
if (!(await fs_extra_1.default.pathExists(defaultManifestPath))) {
|
|
114
|
+
return teamsfx_api_1.err(new common_1.MissingRequiredInputError("package-file/manifest-file", "updateTeamsApp"));
|
|
115
|
+
}
|
|
116
|
+
inputs["manifest-file"] = defaultManifestPath;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
if (!(await fs_extra_1.default.pathExists(inputs["manifest-file"]))) {
|
|
120
|
+
return teamsfx_api_1.err(new common_1.FileNotFoundError("updateTeamsApp", inputs["manifest-file"]));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
const loadEnvRes = await this.checkAndTryToLoadEnv(inputs);
|
|
124
|
+
if (loadEnvRes.isErr())
|
|
125
|
+
return teamsfx_api_1.err(loadEnvRes.error);
|
|
126
|
+
const env = loadEnvRes.value;
|
|
127
|
+
// reach here means manifes-file is provided and exists
|
|
128
|
+
inputs["output-package-file"] =
|
|
129
|
+
inputs["output-package-file"] ||
|
|
130
|
+
path.join(inputs.projectPath, "appPackage", "build", env ? `appPackage.${env}.zip` : "appPackage.zip");
|
|
131
|
+
inputs["output-manifest-file"] =
|
|
132
|
+
inputs["output-manifest-file"] ||
|
|
133
|
+
path.join(inputs.projectPath, "appPackage", "build", env ? `manifest.${env}.json` : "manifest.json");
|
|
134
|
+
const packageArgs = {
|
|
135
|
+
manifestPath: inputs["manifest-file"],
|
|
136
|
+
outputZipPath: inputs["output-package-file"],
|
|
137
|
+
outputJsonPath: inputs["output-manifest-file"],
|
|
138
|
+
};
|
|
139
|
+
const buildDriver = typedi_1.Container.get(createAppPackage_1.actionName);
|
|
140
|
+
const driverContext = utils_1.createDriverContext(inputs);
|
|
141
|
+
const res = (await buildDriver.execute(packageArgs, driverContext)).result;
|
|
142
|
+
if (res.isErr()) {
|
|
143
|
+
return teamsfx_api_1.err(res.error);
|
|
144
|
+
}
|
|
145
|
+
return teamsfx_api_1.ok(packageArgs);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* entry of validate teams app
|
|
149
|
+
*/
|
|
150
|
+
async validateTeamsApp(inputs) {
|
|
151
|
+
const context = utils_1.createDriverContext(inputs);
|
|
152
|
+
if (!inputs["manifest-file"] && !inputs["package-file"]) {
|
|
153
|
+
// neither manifest-file nor package-file provided, use default manifest file
|
|
154
|
+
const defaultManifestPath = ManifestUtils_1.manifestUtils.getTeamsAppManifestPath(inputs.projectPath);
|
|
155
|
+
if (!(await fs_extra_1.default.pathExists(defaultManifestPath))) {
|
|
156
|
+
return teamsfx_api_1.err(new common_1.MissingRequiredInputError("package-file/manifest-file", "validateTeamsApp"));
|
|
157
|
+
}
|
|
158
|
+
inputs["manifest-file"] = defaultManifestPath;
|
|
159
|
+
}
|
|
160
|
+
if (inputs["manifest-file"]) {
|
|
161
|
+
const loadEnvRes = await this.checkAndTryToLoadEnv(inputs);
|
|
162
|
+
if (loadEnvRes.isErr())
|
|
163
|
+
return teamsfx_api_1.err(loadEnvRes.error);
|
|
164
|
+
const teamsAppManifestFilePath = inputs["manifest-file"];
|
|
165
|
+
const args = {
|
|
166
|
+
manifestPath: teamsAppManifestFilePath,
|
|
167
|
+
showMessage: (inputs === null || inputs === void 0 ? void 0 : inputs.showMessage) != undefined ? inputs.showMessage : true,
|
|
168
|
+
};
|
|
169
|
+
const driver = typedi_1.Container.get("teamsApp/validateManifest");
|
|
170
|
+
const result = (await driver.execute(args, context)).result;
|
|
171
|
+
if (result.isErr()) {
|
|
172
|
+
return teamsfx_api_1.err(result.error);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
else if (inputs["package-file"]) {
|
|
176
|
+
const teamsAppPackageFilePath = inputs["package-file"];
|
|
177
|
+
const args = {
|
|
178
|
+
appPackagePath: teamsAppPackageFilePath,
|
|
179
|
+
showMessage: true,
|
|
180
|
+
};
|
|
181
|
+
const driver = typedi_1.Container.get("teamsApp/validateAppPackage");
|
|
182
|
+
const result = (await driver.execute(args, context)).result;
|
|
183
|
+
if (result.isErr()) {
|
|
184
|
+
return teamsfx_api_1.err(result.error);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return teamsfx_api_1.ok(undefined);
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* entry of update teams app
|
|
191
|
+
*/
|
|
192
|
+
async updateTeamsApp(inputs) {
|
|
193
|
+
var _a;
|
|
194
|
+
// 1. zip package if necessary
|
|
195
|
+
const packageRes = await this.ensureAppPackageFile(inputs);
|
|
196
|
+
if (packageRes.isErr()) {
|
|
197
|
+
return teamsfx_api_1.err(packageRes.error);
|
|
198
|
+
}
|
|
199
|
+
const appPackageFile = inputs["package-file"];
|
|
200
|
+
const driverContext = utils_1.createDriverContext(inputs);
|
|
201
|
+
// 2. validate against app package
|
|
202
|
+
const args = {
|
|
203
|
+
appPackagePath: appPackageFile,
|
|
204
|
+
showMessage: true,
|
|
205
|
+
};
|
|
206
|
+
const driver = typedi_1.Container.get("teamsApp/validateAppPackage");
|
|
207
|
+
const validateRes = (await driver.execute(args, driverContext)).result;
|
|
208
|
+
if (validateRes.isErr()) {
|
|
209
|
+
return teamsfx_api_1.err(validateRes.error);
|
|
210
|
+
}
|
|
211
|
+
// 3. update app package
|
|
212
|
+
const updateTeamsAppArgs = {
|
|
213
|
+
appPackagePath: appPackageFile,
|
|
214
|
+
};
|
|
215
|
+
const configureDriver = typedi_1.Container.get(configure_1.actionName);
|
|
216
|
+
const updateRes = (await configureDriver.execute(updateTeamsAppArgs, driverContext)).result;
|
|
217
|
+
if (updateRes.isErr()) {
|
|
218
|
+
return teamsfx_api_1.err(updateRes.error);
|
|
219
|
+
}
|
|
220
|
+
// 4. show result
|
|
221
|
+
let loginHint = "";
|
|
222
|
+
const accountRes = await driverContext.m365TokenProvider.getJsonObject({
|
|
223
|
+
scopes: tools_1.AppStudioScopes,
|
|
224
|
+
});
|
|
225
|
+
if (accountRes.isOk()) {
|
|
226
|
+
loginHint = accountRes.value.unique_name;
|
|
227
|
+
}
|
|
228
|
+
const manifestRes = await this.readManifestFromZip(appPackageFile);
|
|
229
|
+
if (manifestRes.isErr()) {
|
|
230
|
+
return teamsfx_api_1.err(manifestRes.error);
|
|
231
|
+
}
|
|
232
|
+
const manifest = manifestRes.value;
|
|
233
|
+
const teamsAppId = manifest.id;
|
|
234
|
+
const url = util.format(constants_1.Constants.DEVELOPER_PORTAL_APP_PACKAGE_URL, teamsAppId, loginHint);
|
|
235
|
+
const message = [
|
|
236
|
+
{
|
|
237
|
+
content: localizeUtils_1.getLocalizedString("plugins.appstudio.teamsAppUpdatedCLINotice"),
|
|
238
|
+
color: teamsfx_api_1.Colors.BRIGHT_GREEN,
|
|
239
|
+
},
|
|
240
|
+
{ content: url, color: teamsfx_api_1.Colors.BRIGHT_CYAN },
|
|
241
|
+
];
|
|
242
|
+
void ((_a = driverContext.ui) === null || _a === void 0 ? void 0 : _a.showMessage("info", message, false));
|
|
243
|
+
return teamsfx_api_1.ok(undefined);
|
|
244
|
+
}
|
|
245
|
+
async publishTeamsApp(inputs) {
|
|
246
|
+
var _a;
|
|
247
|
+
// 1. zip package if necessary
|
|
248
|
+
const packageRes = await this.ensureAppPackageFile(inputs);
|
|
249
|
+
if (packageRes.isErr()) {
|
|
250
|
+
return teamsfx_api_1.err(packageRes.error);
|
|
251
|
+
}
|
|
252
|
+
const appPackageFile = inputs["package-file"];
|
|
253
|
+
const driverContext = utils_1.createDriverContext(inputs);
|
|
254
|
+
// 2. validate against app package
|
|
255
|
+
const args = {
|
|
256
|
+
appPackagePath: appPackageFile,
|
|
257
|
+
showMessage: true,
|
|
258
|
+
};
|
|
259
|
+
const driver = typedi_1.Container.get("teamsApp/validateAppPackage");
|
|
260
|
+
const validateRes = (await driver.execute(args, driverContext)).result;
|
|
261
|
+
if (validateRes.isErr()) {
|
|
262
|
+
return teamsfx_api_1.err(validateRes.error);
|
|
263
|
+
}
|
|
264
|
+
// 3. publish app package
|
|
265
|
+
const publishArgs = {
|
|
266
|
+
appPackagePath: appPackageFile,
|
|
267
|
+
};
|
|
268
|
+
const publishDriver = typedi_1.Container.get(publishAppPackage_1.actionName);
|
|
269
|
+
const updateRes = (await publishDriver.execute(publishArgs, driverContext)).result;
|
|
270
|
+
if (updateRes.isErr()) {
|
|
271
|
+
return teamsfx_api_1.err(updateRes.error);
|
|
272
|
+
}
|
|
273
|
+
void ((_a = driverContext.ui) === null || _a === void 0 ? void 0 : _a.showMessage("info", `publish successfully, Go to admin portal: ${constants_1.Constants.TEAMS_ADMIN_PORTAL}`, false));
|
|
274
|
+
return teamsfx_api_1.ok(undefined);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
exports.teamsappMgr = new TeamsAppMgr();
|
|
278
|
+
//# sourceMappingURL=teamsappMgr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teamsappMgr.js","sourceRoot":"","sources":["../../../../src/component/driver/teamsApp/teamsappMgr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../src/component/generator/copilotPlugin/generator.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,OAAO,EAEP,OAAO,EACP,MAAM,EAIN,MAAM,EAIN,OAAO,EACR,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../src/component/generator/copilotPlugin/generator.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,OAAO,EAEP,OAAO,EACP,MAAM,EAIN,MAAM,EAIN,OAAO,EACR,MAAM,wBAAwB,CAAC;AA2ChC,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;AAED,qBAAa,sBAAsB;WASb,mBAAmB,CACrC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;WAkBrC,wBAAwB,CAC1C,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;mBAUpC,aAAa;CAyKnC"}
|
|
@@ -13,19 +13,15 @@ const generator_1 = require("../generator");
|
|
|
13
13
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
14
14
|
const actionExecutionMW_1 = require("../../middleware/actionExecutionMW");
|
|
15
15
|
const telemetryEvents_1 = require("../spfx/utils/telemetryEvents");
|
|
16
|
-
const specParser_1 = require("../../../common/spec-parser/specParser");
|
|
17
16
|
const questionNames_1 = require("../../../question/questionNames");
|
|
18
17
|
const helper_1 = require("./helper");
|
|
19
|
-
const interfaces_1 = require("../../../common/spec-parser/interfaces");
|
|
20
18
|
const localizeUtils_1 = require("../../../common/localizeUtils");
|
|
21
19
|
const ManifestUtils_1 = require("../../driver/teamsApp/utils/ManifestUtils");
|
|
22
20
|
const create_1 = require("../../../question/create");
|
|
23
21
|
const fs = tslib_1.__importStar(require("fs-extra"));
|
|
24
22
|
const error_1 = require("../../../error");
|
|
25
|
-
const
|
|
26
|
-
const constants_1 = require("../../../common/spec-parser/constants");
|
|
23
|
+
const spec_parser_1 = require("../../../common/spec-parser");
|
|
27
24
|
const util = tslib_1.__importStar(require("util"));
|
|
28
|
-
const specParserError_1 = require("../../../common/spec-parser/specParserError");
|
|
29
25
|
const util_1 = require("../../../question/util");
|
|
30
26
|
const fromApiSpeccomponentName = "copilot-plugin-existing-api";
|
|
31
27
|
const fromApiSpecTemplateName = "copilot-plugin-existing-api";
|
|
@@ -56,30 +52,31 @@ class CopilotPluginGenerator {
|
|
|
56
52
|
const templateRes = await generator_1.Generator.generateTemplate(context, destinationPath, templateName, language === create_1.ProgrammingLanguage.CSharp ? create_1.ProgrammingLanguage.CSharp : undefined);
|
|
57
53
|
if (templateRes.isErr())
|
|
58
54
|
return teamsfx_api_1.err(templateRes.error);
|
|
59
|
-
|
|
55
|
+
let url = (_a = inputs[questionNames_1.QuestionNames.ApiSpecLocation]) !== null && _a !== void 0 ? _a : (_b = inputs.openAIPluginManifest) === null || _b === void 0 ? void 0 : _b.api.url;
|
|
56
|
+
url = url.trim();
|
|
60
57
|
context.telemetryReporter.sendTelemetryEvent(copilotPluginExistingApiSpecUrlTelemetryEvent, {
|
|
61
58
|
[isRemoteUrlTelemetryProperty]: util_1.isValidHttpUrl(url).toString(),
|
|
62
59
|
});
|
|
63
60
|
// validate API spec
|
|
64
|
-
const specParser = new
|
|
61
|
+
const specParser = new spec_parser_1.SpecParser(url);
|
|
65
62
|
const validationRes = await specParser.validate();
|
|
66
63
|
const warnings = validationRes.warnings;
|
|
67
|
-
const operationIdWarning = warnings.find((w) => w.type ===
|
|
64
|
+
const operationIdWarning = warnings.find((w) => w.type === spec_parser_1.WarningType.OperationIdMissing);
|
|
68
65
|
if (operationIdWarning && operationIdWarning.data) {
|
|
69
66
|
const apisMissingOperationId = operationIdWarning.data.filter((api) => filters.includes(api));
|
|
70
67
|
if (apisMissingOperationId.length > 0) {
|
|
71
|
-
operationIdWarning.content = util.format(
|
|
68
|
+
operationIdWarning.content = util.format(localizeUtils_1.getLocalizedString("core.common.MissingOperationId"), apisMissingOperationId.join(", "));
|
|
72
69
|
delete operationIdWarning.data;
|
|
73
70
|
}
|
|
74
71
|
else {
|
|
75
72
|
warnings.splice(warnings.indexOf(operationIdWarning), 1);
|
|
76
73
|
}
|
|
77
74
|
}
|
|
78
|
-
const specVersionWarning = warnings.find((w) => w.type ===
|
|
75
|
+
const specVersionWarning = warnings.find((w) => w.type === spec_parser_1.WarningType.ConvertSwaggerToOpenAPI);
|
|
79
76
|
if (specVersionWarning) {
|
|
80
77
|
specVersionWarning.content = ""; // We don't care content of this warning
|
|
81
78
|
}
|
|
82
|
-
if (validationRes.status ===
|
|
79
|
+
if (validationRes.status === spec_parser_1.ValidationStatus.Error) {
|
|
83
80
|
helper_1.logValidationResults(validationRes.errors, warnings, context, true, false, true);
|
|
84
81
|
const errorMessage = inputs.platform === teamsfx_api_1.Platform.VSCode
|
|
85
82
|
? localizeUtils_1.getLocalizedString("core.createProjectQuestion.apiSpec.multipleValidationErrors.vscode.message")
|
|
@@ -92,7 +89,7 @@ class CopilotPluginGenerator {
|
|
|
92
89
|
await fs.ensureDir(apiSpecFolderPath);
|
|
93
90
|
let isYaml;
|
|
94
91
|
try {
|
|
95
|
-
isYaml = await
|
|
92
|
+
isYaml = await helper_1.isYamlSpecFile(url);
|
|
96
93
|
}
|
|
97
94
|
catch (e) {
|
|
98
95
|
isYaml = false;
|
|
@@ -108,7 +105,7 @@ class CopilotPluginGenerator {
|
|
|
108
105
|
});
|
|
109
106
|
if (generateResult.warnings.length > 0) {
|
|
110
107
|
generateResult.warnings.find((o) => {
|
|
111
|
-
if (o.type ===
|
|
108
|
+
if (o.type === spec_parser_1.WarningType.OperationOnlyContainsOptionalParam) {
|
|
112
109
|
o.content = ""; // We don't care content of this warning
|
|
113
110
|
}
|
|
114
111
|
});
|
|
@@ -149,7 +146,7 @@ class CopilotPluginGenerator {
|
|
|
149
146
|
}
|
|
150
147
|
catch (e) {
|
|
151
148
|
let error;
|
|
152
|
-
if (e instanceof
|
|
149
|
+
if (e instanceof spec_parser_1.SpecParserError) {
|
|
153
150
|
error = helper_1.convertSpecParserErrorToFxError(e);
|
|
154
151
|
}
|
|
155
152
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/component/generator/copilotPlugin/generator.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;AAElC;;GAEG;AAEH,+CAA8C;AAC9C,wDAagC;AAChC,4CAAyC;AACzC,wDAAwB;AACxB,0EAAuE;AACvE,mEAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/component/generator/copilotPlugin/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* @author yuqzho@microsoft.com
|
|
3
3
|
*/
|
|
4
4
|
import { Context, FxError, OpenAIPluginManifest, Result, TeamsAppManifest, ApiOperation, Warning } from "@microsoft/teamsfx-api";
|
|
5
|
-
import { ErrorType as ApiSpecErrorType, WarningResult } from "../../../common/spec-parser
|
|
6
|
-
import {
|
|
5
|
+
import { ErrorType as ApiSpecErrorType, WarningResult, SpecParserError } from "../../../common/spec-parser";
|
|
6
|
+
import { ErrorResult as ApiSpecErrorResult } from "../../../common/spec-parser/interfaces";
|
|
7
7
|
declare enum OpenAIPluginManifestErrorType {
|
|
8
8
|
AuthNotSupported = "openai-pliugin-auth-not-supported",
|
|
9
9
|
ApiUrlMissing = "openai-plugin-api-url-missing"
|
|
@@ -20,6 +20,7 @@ export interface ErrorResult {
|
|
|
20
20
|
* The content of the error.
|
|
21
21
|
*/
|
|
22
22
|
content: string;
|
|
23
|
+
data?: any;
|
|
23
24
|
}
|
|
24
25
|
export declare class OpenAIPluginManifestHelper {
|
|
25
26
|
static loadOpenAIPluginManifest(input: string): Promise<OpenAIPluginManifest>;
|
|
@@ -29,5 +30,7 @@ export declare function listOperations(context: Context, manifest: OpenAIPluginM
|
|
|
29
30
|
export declare function logValidationResults(errors: ErrorResult[], warnings: WarningResult[], context: Context, isApiSpec: boolean, shouldLogWarning: boolean, shouldSkipTelemetry: boolean, existingCorrelationId?: string): void;
|
|
30
31
|
export declare function generateScaffoldingSummary(warnings: Warning[], teamsManifest: TeamsAppManifest, projectPath: string): string;
|
|
31
32
|
export declare function convertSpecParserErrorToFxError(error: SpecParserError): FxError;
|
|
33
|
+
export declare function isYamlSpecFile(specPath: string): Promise<boolean>;
|
|
34
|
+
export declare function formatValidationErrors(errors: ApiSpecErrorResult[]): ApiSpecErrorResult[];
|
|
32
35
|
export {};
|
|
33
36
|
//# sourceMappingURL=helper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../../../src/component/generator/copilotPlugin/helper.ts"],"names":[],"mappings":"AAGA;;GAEG;AAEH,OAAO,EACL,OAAO,EACP,OAAO,EAEP,oBAAoB,EACpB,MAAM,EAIN,gBAAgB,EAChB,YAAY,EAEZ,OAAO,EAMR,MAAM,wBAAwB,CAAC;AAGhC,OAAO,
|
|
1
|
+
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../../../src/component/generator/copilotPlugin/helper.ts"],"names":[],"mappings":"AAGA;;GAEG;AAEH,OAAO,EACL,OAAO,EACP,OAAO,EAEP,oBAAoB,EACpB,MAAM,EAIN,gBAAgB,EAChB,YAAY,EAEZ,OAAO,EAMR,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAEL,SAAS,IAAI,gBAAgB,EAE7B,aAAa,EAEb,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAQrC,OAAO,EAEL,WAAW,IAAI,kBAAkB,EAClC,MAAM,wCAAwC,CAAC;AAgBhD,aAAK,6BAA6B;IAChC,gBAAgB,sCAAsC;IACtD,aAAa,kCAAkC;CAChD;AAED,eAAO,MAAM,sCAAsC,gCAAgC,CAAC;AACpF,eAAO,MAAM,mDAAmD,gBAAgB,CAAC;AACjF,eAAO,MAAM,iDAAiD,aAAa,CAAC;AAE5E,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,EAAE,gBAAgB,GAAG,6BAA6B,CAAC;IAEvD;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,qBAAa,0BAA0B;WACxB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;WA0BtE,cAAc,CACzB,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;CAUvC;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,oBAAoB,GAAG,SAAS,EAC1C,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,iBAAiB,EAAE,MAAM,GAAG,SAAS,EACrC,mBAAmB,UAAO,EAC1B,gBAAgB,UAAO,EACvB,qBAAqB,CAAC,EAAE,MAAM,GAC7B,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,CA4EhD;AAoBD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EAAE,EACrB,QAAQ,EAAE,aAAa,EAAE,EACzB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,OAAO,EAClB,gBAAgB,EAAE,OAAO,EACzB,mBAAmB,EAAE,OAAO,EAC5B,qBAAqB,CAAC,EAAE,MAAM,GAC7B,IAAI,CAuEN;AA0BD,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,OAAO,EAAE,EACnB,aAAa,EAAE,gBAAgB,EAC/B,WAAW,EAAE,MAAM,GAClB,MAAM,CA6BR;AAkKD,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAE/E;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBvE;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,CAQzF"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright (c) Microsoft Corporation.
|
|
3
3
|
// Licensed under the MIT license.
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.convertSpecParserErrorToFxError = exports.generateScaffoldingSummary = exports.logValidationResults = exports.listOperations = exports.OpenAIPluginManifestHelper = exports.specParserGenerateResultWarningsTelemetryProperty = exports.specParserGenerateResultAllSuccessTelemetryProperty = exports.specParserGenerateResultTelemetryEvent = void 0;
|
|
5
|
+
exports.formatValidationErrors = exports.isYamlSpecFile = exports.convertSpecParserErrorToFxError = exports.generateScaffoldingSummary = exports.logValidationResults = exports.listOperations = exports.OpenAIPluginManifestHelper = exports.specParserGenerateResultWarningsTelemetryProperty = exports.specParserGenerateResultAllSuccessTelemetryProperty = exports.specParserGenerateResultTelemetryEvent = void 0;
|
|
6
6
|
const tslib_1 = require("tslib");
|
|
7
7
|
/**
|
|
8
8
|
* @author yuqzho@microsoft.com
|
|
@@ -10,8 +10,7 @@ const tslib_1 = require("tslib");
|
|
|
10
10
|
const teamsfx_api_1 = require("@microsoft/teamsfx-api");
|
|
11
11
|
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
12
12
|
const utils_1 = require("../utils");
|
|
13
|
-
const
|
|
14
|
-
const specParser_1 = require("../../../common/spec-parser/specParser");
|
|
13
|
+
const spec_parser_1 = require("../../../common/spec-parser");
|
|
15
14
|
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
16
15
|
const localizeUtils_1 = require("../../../common/localizeUtils");
|
|
17
16
|
const error_1 = require("../../../error");
|
|
@@ -19,7 +18,7 @@ const os_1 = require("os");
|
|
|
19
18
|
const constant_1 = require("../../configManager/constant");
|
|
20
19
|
const ManifestUtils_1 = require("../../driver/teamsApp/utils/ManifestUtils");
|
|
21
20
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
22
|
-
const
|
|
21
|
+
const interfaces_1 = require("../../../common/spec-parser/interfaces");
|
|
23
22
|
const manifestFilePath = "/.well-known/ai-plugin.json";
|
|
24
23
|
const componentName = "OpenAIPluginManifestHelper";
|
|
25
24
|
var OpenAIPluginManifestErrorType;
|
|
@@ -71,10 +70,11 @@ async function listOperations(context, manifest, apiSpecUrl, teamsManifestPath,
|
|
|
71
70
|
apiSpecUrl = manifest.api.url;
|
|
72
71
|
}
|
|
73
72
|
try {
|
|
74
|
-
const specParser = new
|
|
73
|
+
const specParser = new spec_parser_1.SpecParser(apiSpecUrl);
|
|
75
74
|
const validationRes = await specParser.validate();
|
|
75
|
+
validationRes.errors = formatValidationErrors(validationRes.errors);
|
|
76
76
|
logValidationResults(validationRes.errors, validationRes.warnings, context, true, shouldLogWarning, false, existingCorrelationId);
|
|
77
|
-
if (validationRes.status ===
|
|
77
|
+
if (validationRes.status === spec_parser_1.ValidationStatus.Error) {
|
|
78
78
|
return teamsfx_api_1.err(validationRes.errors);
|
|
79
79
|
}
|
|
80
80
|
let operations = await specParser.list();
|
|
@@ -93,7 +93,7 @@ async function listOperations(context, manifest, apiSpecUrl, teamsManifestPath,
|
|
|
93
93
|
if (operations.length == 0) {
|
|
94
94
|
const errors = [
|
|
95
95
|
{
|
|
96
|
-
type:
|
|
96
|
+
type: spec_parser_1.ErrorType.NoExtraAPICanBeAdded,
|
|
97
97
|
content: localizeUtils_1.getLocalizedString("error.copilotPlugin.noExtraAPICanBeAdded"),
|
|
98
98
|
},
|
|
99
99
|
];
|
|
@@ -109,7 +109,7 @@ async function listOperations(context, manifest, apiSpecUrl, teamsManifestPath,
|
|
|
109
109
|
return teamsfx_api_1.ok(sortedOperations);
|
|
110
110
|
}
|
|
111
111
|
catch (e) {
|
|
112
|
-
if (e instanceof
|
|
112
|
+
if (e instanceof spec_parser_1.SpecParserError) {
|
|
113
113
|
throw convertSpecParserErrorToFxError(e);
|
|
114
114
|
}
|
|
115
115
|
else {
|
|
@@ -227,11 +227,11 @@ function generateScaffoldingSummary(warnings, teamsManifest, projectPath) {
|
|
|
227
227
|
exports.generateScaffoldingSummary = generateScaffoldingSummary;
|
|
228
228
|
function formatApiSpecValidationWarningMessage(specWarnings, apiSpecFileName) {
|
|
229
229
|
const resultWarnings = [];
|
|
230
|
-
const operationIdWarning = specWarnings.find((w) => w.type ===
|
|
230
|
+
const operationIdWarning = specWarnings.find((w) => w.type === spec_parser_1.WarningType.OperationIdMissing);
|
|
231
231
|
if (operationIdWarning) {
|
|
232
232
|
resultWarnings.push(localizeUtils_1.getLocalizedString("core.copilotPlugin.scaffold.summary.warning.operationId", `${constant_1.SummaryConstant.NotExecuted} ${operationIdWarning.content}`, teamsfx_api_1.ManifestTemplateFileName));
|
|
233
233
|
}
|
|
234
|
-
const swaggerWarning = specWarnings.find((w) => w.type ===
|
|
234
|
+
const swaggerWarning = specWarnings.find((w) => w.type === spec_parser_1.WarningType.ConvertSwaggerToOpenAPI);
|
|
235
235
|
if (swaggerWarning) {
|
|
236
236
|
resultWarnings.push(`${constant_1.SummaryConstant.NotExecuted} ` +
|
|
237
237
|
localizeUtils_1.getLocalizedString("core.copilotPlugin.scaffold.summary.warning.swaggerVersion", apiSpecFileName));
|
|
@@ -269,8 +269,8 @@ function validateTeamsManifestLength(teamsManifest, projectPath, warnings) {
|
|
|
269
269
|
resultWarnings.push(formatLengthExceedingErrorMessage("/description/full", descriptionFullLimit));
|
|
270
270
|
}
|
|
271
271
|
// validate command
|
|
272
|
-
if (teamsfx_api_1.ManifestUtil.parseCommonProperties(teamsManifest).
|
|
273
|
-
const optionalParamsOnlyWarnings = warnings.filter((o) => o.type ===
|
|
272
|
+
if (teamsfx_api_1.ManifestUtil.parseCommonProperties(teamsManifest).isApiME) {
|
|
273
|
+
const optionalParamsOnlyWarnings = warnings.filter((o) => o.type === spec_parser_1.WarningType.OperationOnlyContainsOptionalParam);
|
|
274
274
|
const commands = teamsManifest.composeExtensions[0].commands;
|
|
275
275
|
if (optionalParamsOnlyWarnings) {
|
|
276
276
|
for (const optionalParamsOnlyWarning of optionalParamsOnlyWarnings) {
|
|
@@ -285,7 +285,7 @@ function validateTeamsManifestLength(teamsManifest, projectPath, warnings) {
|
|
|
285
285
|
for (const command of commands) {
|
|
286
286
|
if (command.type === "query") {
|
|
287
287
|
if (!command.apiResponseRenderingTemplateFile) {
|
|
288
|
-
const errorDetail = (_e = warnings.find((w) => w.type ===
|
|
288
|
+
const errorDetail = (_e = warnings.find((w) => w.type === spec_parser_1.WarningType.GenerateCardFailed && w.data === command.id)) === null || _e === void 0 ? void 0 : _e.content;
|
|
289
289
|
resultWarnings.push(localizeUtils_1.getLocalizedString("core.copilotPlugin.scaffold.summary.warning.teamsManifest.missingCardTemlate", "apiResponseRenderingTemplateFile", command.id) +
|
|
290
290
|
localizeUtils_1.getLocalizedString("core.copilotPlugin.scaffold.summary.warning.teamsManifest.missingCardTemlate.mitigation", teamsfx_api_1.AppPackageFolderName, `composeExtensions/commands/${command.id}/apiResponseRenderingTemplateFile`, path_1.default.join(teamsfx_api_1.AppPackageFolderName, teamsfx_api_1.ManifestTemplateFileName)) +
|
|
291
291
|
(errorDetail ? os_1.EOL + errorDetail : ""));
|
|
@@ -303,4 +303,74 @@ function convertSpecParserErrorToFxError(error) {
|
|
|
303
303
|
return new teamsfx_api_1.SystemError("SpecParser", error.errorType.toString(), error.message, error.message);
|
|
304
304
|
}
|
|
305
305
|
exports.convertSpecParserErrorToFxError = convertSpecParserErrorToFxError;
|
|
306
|
+
async function isYamlSpecFile(specPath) {
|
|
307
|
+
if (specPath.endsWith(".yaml") || specPath.endsWith(".yml")) {
|
|
308
|
+
return true;
|
|
309
|
+
}
|
|
310
|
+
else if (specPath.endsWith(".json")) {
|
|
311
|
+
return false;
|
|
312
|
+
}
|
|
313
|
+
const isRemoteFile = specPath.startsWith("http:") || specPath.startsWith("https:");
|
|
314
|
+
const fileContent = isRemoteFile
|
|
315
|
+
? (await axios_1.default.get(specPath)).data
|
|
316
|
+
: await fs_extra_1.default.readFile(specPath, "utf-8");
|
|
317
|
+
try {
|
|
318
|
+
JSON.parse(fileContent);
|
|
319
|
+
return false;
|
|
320
|
+
}
|
|
321
|
+
catch (error) {
|
|
322
|
+
return true;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
exports.isYamlSpecFile = isYamlSpecFile;
|
|
326
|
+
function formatValidationErrors(errors) {
|
|
327
|
+
return errors.map((error) => {
|
|
328
|
+
return {
|
|
329
|
+
type: error.type,
|
|
330
|
+
content: formatValidationErrorContent(error),
|
|
331
|
+
data: error.data,
|
|
332
|
+
};
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
exports.formatValidationErrors = formatValidationErrors;
|
|
336
|
+
function formatValidationErrorContent(error) {
|
|
337
|
+
try {
|
|
338
|
+
switch (error.type) {
|
|
339
|
+
case interfaces_1.ErrorType.SpecNotValid: {
|
|
340
|
+
let content = error.content;
|
|
341
|
+
if (error.content.startsWith("ResolverError: Error downloading")) {
|
|
342
|
+
content = error.content
|
|
343
|
+
.split("\n")
|
|
344
|
+
.map((o) => o.trim())
|
|
345
|
+
.join(". ");
|
|
346
|
+
content = content + ". " + localizeUtils_1.getLocalizedString("core.common.ErrorFetchApiSpec");
|
|
347
|
+
}
|
|
348
|
+
return content;
|
|
349
|
+
}
|
|
350
|
+
case interfaces_1.ErrorType.RemoteRefNotSupported:
|
|
351
|
+
return localizeUtils_1.getLocalizedString("core.common.RemoteRefNotSupported", error.data.join(", "));
|
|
352
|
+
case interfaces_1.ErrorType.NoServerInformation:
|
|
353
|
+
return localizeUtils_1.getLocalizedString("core.common.NoServerInformation");
|
|
354
|
+
case interfaces_1.ErrorType.UrlProtocolNotSupported:
|
|
355
|
+
return localizeUtils_1.getLocalizedString("core.common.UrlProtocolNotSupported", error.data);
|
|
356
|
+
case interfaces_1.ErrorType.RelativeServerUrlNotSupported:
|
|
357
|
+
return localizeUtils_1.getLocalizedString("core.common.RelativeServerUrlNotSupported");
|
|
358
|
+
case interfaces_1.ErrorType.NoSupportedApi:
|
|
359
|
+
return localizeUtils_1.getLocalizedString("core.common.NoSupportedApi");
|
|
360
|
+
case interfaces_1.ErrorType.NoExtraAPICanBeAdded:
|
|
361
|
+
return localizeUtils_1.getLocalizedString("error.copilotPlugin.noExtraAPICanBeAdded");
|
|
362
|
+
case interfaces_1.ErrorType.ResolveServerUrlFailed:
|
|
363
|
+
return error.content;
|
|
364
|
+
case interfaces_1.ErrorType.Cancelled:
|
|
365
|
+
return localizeUtils_1.getLocalizedString("core.common.CancelledMessage");
|
|
366
|
+
case interfaces_1.ErrorType.SwaggerNotSupported:
|
|
367
|
+
return localizeUtils_1.getLocalizedString("core.common.SwaggerNotSupported");
|
|
368
|
+
default:
|
|
369
|
+
return error.content;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
catch (e) {
|
|
373
|
+
return error.content;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
306
376
|
//# sourceMappingURL=helper.js.map
|