@microsoft/teamsfx-core 2.0.7-alpha.bdb04bd16.0 → 2.0.7-alpha.c6bb96186.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/build/common/constants.d.ts +3 -1
  2. package/build/common/constants.d.ts.map +1 -1
  3. package/build/common/constants.js +3 -1
  4. package/build/common/constants.js.map +1 -1
  5. package/build/common/featureFlags.d.ts +1 -0
  6. package/build/common/featureFlags.d.ts.map +1 -1
  7. package/build/common/featureFlags.js +6 -1
  8. package/build/common/featureFlags.js.map +1 -1
  9. package/build/common/local/packageJsonHelper.d.ts.map +1 -1
  10. package/build/common/local/packageJsonHelper.js +1 -2
  11. package/build/common/local/packageJsonHelper.js.map +1 -1
  12. package/build/common/m365/packageService.d.ts +1 -0
  13. package/build/common/m365/packageService.d.ts.map +1 -1
  14. package/build/common/m365/packageService.js +13 -0
  15. package/build/common/m365/packageService.js.map +1 -1
  16. package/build/common/projectSettingsHelper.d.ts +3 -0
  17. package/build/common/projectSettingsHelper.d.ts.map +1 -1
  18. package/build/common/projectSettingsHelper.js +29 -1
  19. package/build/common/projectSettingsHelper.js.map +1 -1
  20. package/build/common/projectTypeChecker.d.ts.map +1 -1
  21. package/build/common/projectTypeChecker.js +1 -2
  22. package/build/common/projectTypeChecker.js.map +1 -1
  23. package/build/common/samples.d.ts +3 -2
  24. package/build/common/samples.d.ts.map +1 -1
  25. package/build/common/samples.js +84 -40
  26. package/build/common/samples.js.map +1 -1
  27. package/build/common/templates-config.json +1 -1
  28. package/build/component/coordinator/index.d.ts +8 -1
  29. package/build/component/coordinator/index.d.ts.map +1 -1
  30. package/build/component/coordinator/index.js +56 -5
  31. package/build/component/coordinator/index.js.map +1 -1
  32. package/build/component/driver/aad/utility/aadAppClient.d.ts +1 -0
  33. package/build/component/driver/aad/utility/aadAppClient.d.ts.map +1 -1
  34. package/build/component/driver/aad/utility/aadAppClient.js +14 -0
  35. package/build/component/driver/aad/utility/aadAppClient.js.map +1 -1
  36. package/build/component/driver/apiKey/create.js +2 -2
  37. package/build/component/driver/apiKey/create.js.map +1 -1
  38. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.d.ts.map +1 -1
  39. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js +5 -5
  40. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js.map +1 -1
  41. package/build/component/driver/teamsApp/clients/appStudioClient.d.ts +30 -0
  42. package/build/component/driver/teamsApp/clients/appStudioClient.d.ts.map +1 -1
  43. package/build/component/driver/teamsApp/clients/appStudioClient.js +63 -0
  44. package/build/component/driver/teamsApp/clients/appStudioClient.js.map +1 -1
  45. package/build/component/driver/teamsApp/constants.d.ts +3 -0
  46. package/build/component/driver/teamsApp/constants.d.ts.map +1 -1
  47. package/build/component/driver/teamsApp/constants.js +3 -0
  48. package/build/component/driver/teamsApp/constants.js.map +1 -1
  49. package/build/component/driver/teamsApp/createAppPackage.d.ts +3 -0
  50. package/build/component/driver/teamsApp/createAppPackage.d.ts.map +1 -1
  51. package/build/component/driver/teamsApp/createAppPackage.js +61 -14
  52. package/build/component/driver/teamsApp/createAppPackage.js.map +1 -1
  53. package/build/component/driver/teamsApp/errors.d.ts +4 -0
  54. package/build/component/driver/teamsApp/errors.d.ts.map +1 -1
  55. package/build/component/driver/teamsApp/errors.js +7 -0
  56. package/build/component/driver/teamsApp/errors.js.map +1 -1
  57. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationDetailsResponse.d.ts +21 -0
  58. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationDetailsResponse.d.ts.map +1 -0
  59. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationDetailsResponse.js +5 -0
  60. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationDetailsResponse.js.map +1 -0
  61. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationResponse.d.ts +17 -0
  62. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationResponse.d.ts.map +1 -0
  63. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationResponse.js +16 -0
  64. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationResponse.js.map +1 -0
  65. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationResultsResponse.d.ts +41 -0
  66. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationResultsResponse.d.ts.map +1 -0
  67. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationResultsResponse.js +5 -0
  68. package/build/component/driver/teamsApp/interfaces/AsyncAppValidationResultsResponse.js.map +1 -0
  69. package/build/component/driver/teamsApp/utils/ManifestUtils.d.ts +1 -0
  70. package/build/component/driver/teamsApp/utils/ManifestUtils.d.ts.map +1 -1
  71. package/build/component/driver/teamsApp/utils/ManifestUtils.js +17 -0
  72. package/build/component/driver/teamsApp/utils/ManifestUtils.js.map +1 -1
  73. package/build/component/driver/teamsApp/utils/PluginManifestUtils.d.ts +8 -0
  74. package/build/component/driver/teamsApp/utils/PluginManifestUtils.d.ts.map +1 -0
  75. package/build/component/driver/teamsApp/utils/PluginManifestUtils.js +63 -0
  76. package/build/component/driver/teamsApp/utils/PluginManifestUtils.js.map +1 -0
  77. package/build/component/generator/copilotPlugin/generator.d.ts +4 -2
  78. package/build/component/generator/copilotPlugin/generator.d.ts.map +1 -1
  79. package/build/component/generator/copilotPlugin/generator.js +50 -18
  80. package/build/component/generator/copilotPlugin/generator.js.map +1 -1
  81. package/build/component/generator/copilotPlugin/helper.d.ts +5 -3
  82. package/build/component/generator/copilotPlugin/helper.d.ts.map +1 -1
  83. package/build/component/generator/copilotPlugin/helper.js +67 -25
  84. package/build/component/generator/copilotPlugin/helper.js.map +1 -1
  85. package/build/component/generator/error.d.ts +1 -1
  86. package/build/component/generator/error.d.ts.map +1 -1
  87. package/build/component/generator/error.js +4 -4
  88. package/build/component/generator/error.js.map +1 -1
  89. package/build/component/generator/generator.d.ts +5 -0
  90. package/build/component/generator/generator.d.ts.map +1 -1
  91. package/build/component/generator/generator.js +27 -25
  92. package/build/component/generator/generator.js.map +1 -1
  93. package/build/component/generator/generatorAction.d.ts +5 -15
  94. package/build/component/generator/generatorAction.d.ts.map +1 -1
  95. package/build/component/generator/generatorAction.js +44 -92
  96. package/build/component/generator/generatorAction.js.map +1 -1
  97. package/build/component/generator/officeAddin/config/projectProperties.d.ts +1 -0
  98. package/build/component/generator/officeAddin/config/projectProperties.d.ts.map +1 -1
  99. package/build/component/generator/officeAddin/config/projectProperties.js +1 -0
  100. package/build/component/generator/officeAddin/config/projectProperties.js.map +1 -1
  101. package/build/component/generator/officeAddin/config/projectsJsonData.d.ts +1 -4
  102. package/build/component/generator/officeAddin/config/projectsJsonData.d.ts.map +1 -1
  103. package/build/component/generator/officeAddin/config/projectsJsonData.js +4 -11
  104. package/build/component/generator/officeAddin/config/projectsJsonData.js.map +1 -1
  105. package/build/component/generator/officeAddin/generator.d.ts.map +1 -1
  106. package/build/component/generator/officeAddin/generator.js +13 -7
  107. package/build/component/generator/officeAddin/generator.js.map +1 -1
  108. package/build/component/generator/officeAddin/helperMethods.d.ts +2 -1
  109. package/build/component/generator/officeAddin/helperMethods.d.ts.map +1 -1
  110. package/build/component/generator/officeAddin/helperMethods.js +21 -10
  111. package/build/component/generator/officeAddin/helperMethods.js.map +1 -1
  112. package/build/component/generator/officeXMLAddin/generator.d.ts +9 -0
  113. package/build/component/generator/officeXMLAddin/generator.d.ts.map +1 -0
  114. package/build/component/generator/officeXMLAddin/generator.js +90 -0
  115. package/build/component/generator/officeXMLAddin/generator.js.map +1 -0
  116. package/build/component/generator/officeXMLAddin/projectConfig.d.ts +36 -0
  117. package/build/component/generator/officeXMLAddin/projectConfig.d.ts.map +1 -0
  118. package/build/component/generator/officeXMLAddin/projectConfig.js +127 -0
  119. package/build/component/generator/officeXMLAddin/projectConfig.js.map +1 -0
  120. package/build/component/generator/utils.d.ts +0 -1
  121. package/build/component/generator/utils.d.ts.map +1 -1
  122. package/build/component/generator/utils.js +29 -18
  123. package/build/component/generator/utils.js.map +1 -1
  124. package/build/component/utils/envUtil.d.ts.map +1 -1
  125. package/build/component/utils/envUtil.js +1 -0
  126. package/build/component/utils/envUtil.js.map +1 -1
  127. package/build/core/FxCore.d.ts.map +1 -1
  128. package/build/core/FxCore.js +21 -12
  129. package/build/core/FxCore.js.map +1 -1
  130. package/build/error/arm.d.ts.map +1 -1
  131. package/build/error/arm.js +0 -2
  132. package/build/error/arm.js.map +1 -1
  133. package/build/error/common.d.ts.map +1 -1
  134. package/build/error/common.js +1 -1
  135. package/build/error/common.js.map +1 -1
  136. package/build/error/deploy.d.ts.map +1 -1
  137. package/build/error/deploy.js +17 -6
  138. package/build/error/deploy.js.map +1 -1
  139. package/build/question/constants.d.ts +1 -0
  140. package/build/question/constants.d.ts.map +1 -1
  141. package/build/question/constants.js +2 -1
  142. package/build/question/constants.js.map +1 -1
  143. package/build/question/create.d.ts +27 -2
  144. package/build/question/create.d.ts.map +1 -1
  145. package/build/question/create.js +428 -61
  146. package/build/question/create.js.map +1 -1
  147. package/build/question/inputs/CreateProjectInputs.d.ts +18 -6
  148. package/build/question/inputs/CreateProjectInputs.d.ts.map +1 -1
  149. package/build/question/options/CreateProjectOptions.d.ts.map +1 -1
  150. package/build/question/options/CreateProjectOptions.js +46 -11
  151. package/build/question/options/CreateProjectOptions.js.map +1 -1
  152. package/build/question/questionNames.d.ts +10 -1
  153. package/build/question/questionNames.d.ts.map +1 -1
  154. package/build/question/questionNames.js +9 -0
  155. package/build/question/questionNames.js.map +1 -1
  156. package/package.json +6 -6
  157. package/resource/package.nls.json +157 -78
  158. package/templates/fallback/common.zip +0 -0
  159. package/templates/fallback/csharp.zip +0 -0
  160. package/templates/fallback/js.zip +0 -0
  161. package/templates/fallback/ts.zip +0 -0
  162. package/templates/plugins/resource/aad/auth/V3/Enable SSO.txt +1 -1
  163. package/build/common/spec-parser/adaptiveCardGenerator.d.ts +0 -7
  164. package/build/common/spec-parser/adaptiveCardGenerator.d.ts.map +0 -1
  165. package/build/common/spec-parser/adaptiveCardGenerator.js +0 -168
  166. package/build/common/spec-parser/adaptiveCardGenerator.js.map +0 -1
  167. package/build/common/spec-parser/adaptiveCardWrapper.d.ts +0 -15
  168. package/build/common/spec-parser/adaptiveCardWrapper.d.ts.map +0 -1
  169. package/build/common/spec-parser/adaptiveCardWrapper.js +0 -98
  170. package/build/common/spec-parser/adaptiveCardWrapper.js.map +0 -1
  171. package/build/common/spec-parser/constants.d.ts +0 -41
  172. package/build/common/spec-parser/constants.d.ts.map +0 -1
  173. package/build/common/spec-parser/constants.js +0 -95
  174. package/build/common/spec-parser/constants.js.map +0 -1
  175. package/build/common/spec-parser/index.browser.d.ts +0 -6
  176. package/build/common/spec-parser/index.browser.d.ts.map +0 -1
  177. package/build/common/spec-parser/index.browser.js +0 -16
  178. package/build/common/spec-parser/index.browser.js.map +0 -1
  179. package/build/common/spec-parser/index.d.ts +0 -5
  180. package/build/common/spec-parser/index.d.ts.map +0 -1
  181. package/build/common/spec-parser/index.js +0 -16
  182. package/build/common/spec-parser/index.js.map +0 -1
  183. package/build/common/spec-parser/interfaces.d.ts +0 -180
  184. package/build/common/spec-parser/interfaces.d.ts.map +0 -1
  185. package/build/common/spec-parser/interfaces.js +0 -51
  186. package/build/common/spec-parser/interfaces.js.map +0 -1
  187. package/build/common/spec-parser/manifestUpdater.d.ts +0 -7
  188. package/build/common/spec-parser/manifestUpdater.d.ts.map +0 -1
  189. package/build/common/spec-parser/manifestUpdater.js +0 -98
  190. package/build/common/spec-parser/manifestUpdater.js.map +0 -1
  191. package/build/common/spec-parser/specFilter.d.ts +0 -3
  192. package/build/common/spec-parser/specFilter.d.ts.map +0 -1
  193. package/build/common/spec-parser/specFilter.js +0 -40
  194. package/build/common/spec-parser/specFilter.js.map +0 -1
  195. package/build/common/spec-parser/specParser.browser.d.ts +0 -46
  196. package/build/common/spec-parser/specParser.browser.d.ts.map +0 -1
  197. package/build/common/spec-parser/specParser.browser.js +0 -139
  198. package/build/common/spec-parser/specParser.browser.js.map +0 -1
  199. package/build/common/spec-parser/specParser.d.ts +0 -46
  200. package/build/common/spec-parser/specParser.d.ts.map +0 -1
  201. package/build/common/spec-parser/specParser.js +0 -244
  202. package/build/common/spec-parser/specParser.js.map +0 -1
  203. package/build/common/spec-parser/specParserError.d.ts +0 -6
  204. package/build/common/spec-parser/specParserError.d.ts.map +0 -1
  205. package/build/common/spec-parser/specParserError.js +0 -13
  206. package/build/common/spec-parser/specParserError.js.map +0 -1
  207. package/build/common/spec-parser/utils.d.ts +0 -43
  208. package/build/common/spec-parser/utils.d.ts.map +0 -1
  209. package/build/common/spec-parser/utils.js +0 -587
  210. package/build/common/spec-parser/utils.js.map +0 -1
@@ -1,587 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
3
- "use strict";
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.getSafeRegistrationIdEnvName = exports.format = exports.validateSpec = exports.listSupportedAPIs = exports.parseApiInfo = exports.updateParameterWithInputType = exports.generateParametersFromSchema = exports.isWellKnownName = exports.validateServer = exports.checkServerUrl = exports.resolveServerUrl = exports.getUrlProtocol = exports.convertPathToCamelCase = exports.getResponseJson = exports.updateFirstLetter = exports.getAuthArray = exports.isBearerTokenAuth = exports.isAPIKeyAuth = exports.isSupportedAuth = exports.isSupportedApi = exports.checkPostBody = exports.checkParameters = void 0;
6
- const constants_1 = require("./constants");
7
- const interfaces_1 = require("./interfaces");
8
- function checkParameters(paramObject) {
9
- const paramResult = {
10
- requiredNum: 0,
11
- optionalNum: 0,
12
- isValid: true,
13
- };
14
- if (!paramObject) {
15
- return paramResult;
16
- }
17
- for (let i = 0; i < paramObject.length; i++) {
18
- const param = paramObject[i];
19
- const schema = param.schema;
20
- const isRequiredWithoutDefault = param.required && schema.default === undefined;
21
- if (param.in === "header" || param.in === "cookie") {
22
- if (isRequiredWithoutDefault) {
23
- paramResult.isValid = false;
24
- }
25
- continue;
26
- }
27
- if (schema.type !== "boolean" &&
28
- schema.type !== "string" &&
29
- schema.type !== "number" &&
30
- schema.type !== "integer") {
31
- if (isRequiredWithoutDefault) {
32
- paramResult.isValid = false;
33
- }
34
- continue;
35
- }
36
- if (param.in === "query" || param.in === "path") {
37
- if (isRequiredWithoutDefault) {
38
- paramResult.requiredNum = paramResult.requiredNum + 1;
39
- }
40
- else {
41
- paramResult.optionalNum = paramResult.optionalNum + 1;
42
- }
43
- }
44
- }
45
- return paramResult;
46
- }
47
- exports.checkParameters = checkParameters;
48
- function checkPostBody(schema, isRequired = false) {
49
- var _a;
50
- const paramResult = {
51
- requiredNum: 0,
52
- optionalNum: 0,
53
- isValid: true,
54
- };
55
- if (Object.keys(schema).length === 0) {
56
- return paramResult;
57
- }
58
- const isRequiredWithoutDefault = isRequired && schema.default === undefined;
59
- if (schema.type === "string" ||
60
- schema.type === "integer" ||
61
- schema.type === "boolean" ||
62
- schema.type === "number") {
63
- if (isRequiredWithoutDefault) {
64
- paramResult.requiredNum = paramResult.requiredNum + 1;
65
- }
66
- else {
67
- paramResult.optionalNum = paramResult.optionalNum + 1;
68
- }
69
- }
70
- else if (schema.type === "object") {
71
- const { properties } = schema;
72
- for (const property in properties) {
73
- let isRequired = false;
74
- if (schema.required && ((_a = schema.required) === null || _a === void 0 ? void 0 : _a.indexOf(property)) >= 0) {
75
- isRequired = true;
76
- }
77
- const result = checkPostBody(properties[property], isRequired);
78
- paramResult.requiredNum += result.requiredNum;
79
- paramResult.optionalNum += result.optionalNum;
80
- paramResult.isValid = paramResult.isValid && result.isValid;
81
- }
82
- }
83
- else {
84
- if (isRequiredWithoutDefault) {
85
- paramResult.isValid = false;
86
- }
87
- }
88
- return paramResult;
89
- }
90
- exports.checkPostBody = checkPostBody;
91
- /**
92
- * Checks if the given API is supported.
93
- * @param {string} method - The HTTP method of the API.
94
- * @param {string} path - The path of the API.
95
- * @param {OpenAPIV3.Document} spec - The OpenAPI specification document.
96
- * @returns {boolean} - Returns true if the API is supported, false otherwise.
97
- * @description The following APIs are supported:
98
- * 1. only support Get/Post operation without auth property
99
- * 2. parameter inside query or path only support string, number, boolean and integer
100
- * 3. parameter inside post body only support string, number, boolean, integer and object
101
- * 4. request body + required parameters <= 1
102
- * 5. response body should be “application/json” and not empty, and response code should be 20X
103
- * 6. only support request body with “application/json” content type
104
- */
105
- function isSupportedApi(method, path, spec, allowMissingId, allowAPIKeyAuth, allowMultipleParameters, allowOauth2) {
106
- const pathObj = spec.paths[path];
107
- method = method.toLocaleLowerCase();
108
- if (pathObj) {
109
- if ((method === constants_1.ConstantString.PostMethod || method === constants_1.ConstantString.GetMethod) &&
110
- pathObj[method]) {
111
- const securities = pathObj[method].security;
112
- const authArray = getAuthArray(securities, spec);
113
- if (!isSupportedAuth(authArray, allowAPIKeyAuth, allowOauth2)) {
114
- return false;
115
- }
116
- const operationObject = pathObj[method];
117
- if (!allowMissingId && !operationObject.operationId) {
118
- return false;
119
- }
120
- const paramObject = operationObject.parameters;
121
- const requestBody = operationObject.requestBody;
122
- const requestJsonBody = requestBody === null || requestBody === void 0 ? void 0 : requestBody.content["application/json"];
123
- const responseJson = getResponseJson(operationObject);
124
- if (Object.keys(responseJson).length === 0) {
125
- return false;
126
- }
127
- let requestBodyParamResult = {
128
- requiredNum: 0,
129
- optionalNum: 0,
130
- isValid: true,
131
- };
132
- if (requestJsonBody) {
133
- const requestBodySchema = requestJsonBody.schema;
134
- requestBodyParamResult = checkPostBody(requestBodySchema, requestBody.required);
135
- }
136
- if (!requestBodyParamResult.isValid) {
137
- return false;
138
- }
139
- const paramResult = checkParameters(paramObject);
140
- if (!paramResult.isValid) {
141
- return false;
142
- }
143
- if (requestBodyParamResult.requiredNum + paramResult.requiredNum > 1) {
144
- if (allowMultipleParameters &&
145
- requestBodyParamResult.requiredNum + paramResult.requiredNum <= 5) {
146
- return true;
147
- }
148
- return false;
149
- }
150
- else if (requestBodyParamResult.requiredNum +
151
- requestBodyParamResult.optionalNum +
152
- paramResult.requiredNum +
153
- paramResult.optionalNum ===
154
- 0) {
155
- return false;
156
- }
157
- else {
158
- return true;
159
- }
160
- }
161
- }
162
- return false;
163
- }
164
- exports.isSupportedApi = isSupportedApi;
165
- function isSupportedAuth(authSchemaArray, allowAPIKeyAuth, allowOauth2) {
166
- if (authSchemaArray.length === 0) {
167
- return true;
168
- }
169
- if (allowAPIKeyAuth || allowOauth2) {
170
- // Currently we don't support multiple auth in one operation
171
- if (authSchemaArray.length > 0 && authSchemaArray.every((auths) => auths.length > 1)) {
172
- return false;
173
- }
174
- for (const auths of authSchemaArray) {
175
- if (auths.length === 1) {
176
- if (!allowOauth2 && allowAPIKeyAuth && isAPIKeyAuth(auths[0].authSchema)) {
177
- return true;
178
- }
179
- else if (!allowAPIKeyAuth && allowOauth2 && isBearerTokenAuth(auths[0].authSchema)) {
180
- return true;
181
- }
182
- else if (allowAPIKeyAuth &&
183
- allowOauth2 &&
184
- (isAPIKeyAuth(auths[0].authSchema) || isBearerTokenAuth(auths[0].authSchema))) {
185
- return true;
186
- }
187
- }
188
- }
189
- }
190
- return false;
191
- }
192
- exports.isSupportedAuth = isSupportedAuth;
193
- function isAPIKeyAuth(authSchema) {
194
- return authSchema.type === "apiKey";
195
- }
196
- exports.isAPIKeyAuth = isAPIKeyAuth;
197
- function isBearerTokenAuth(authSchema) {
198
- return (authSchema.type === "oauth2" ||
199
- authSchema.type === "openIdConnect" ||
200
- (authSchema.type === "http" && authSchema.scheme === "bearer"));
201
- }
202
- exports.isBearerTokenAuth = isBearerTokenAuth;
203
- function getAuthArray(securities, spec) {
204
- var _a;
205
- const result = [];
206
- const securitySchemas = (_a = spec.components) === null || _a === void 0 ? void 0 : _a.securitySchemes;
207
- if (securities && securitySchemas) {
208
- for (let i = 0; i < securities.length; i++) {
209
- const security = securities[i];
210
- const authArray = [];
211
- for (const name in security) {
212
- const auth = securitySchemas[name];
213
- authArray.push({
214
- authSchema: auth,
215
- name: name,
216
- });
217
- }
218
- if (authArray.length > 0) {
219
- result.push(authArray);
220
- }
221
- }
222
- }
223
- result.sort((a, b) => a[0].name.localeCompare(b[0].name));
224
- return result;
225
- }
226
- exports.getAuthArray = getAuthArray;
227
- function updateFirstLetter(str) {
228
- return str.charAt(0).toUpperCase() + str.slice(1);
229
- }
230
- exports.updateFirstLetter = updateFirstLetter;
231
- function getResponseJson(operationObject) {
232
- var _a, _b;
233
- let json = {};
234
- for (const code of constants_1.ConstantString.ResponseCodeFor20X) {
235
- const responseObject = (_a = operationObject === null || operationObject === void 0 ? void 0 : operationObject.responses) === null || _a === void 0 ? void 0 : _a[code];
236
- if ((_b = responseObject === null || responseObject === void 0 ? void 0 : responseObject.content) === null || _b === void 0 ? void 0 : _b["application/json"]) {
237
- json = responseObject.content["application/json"];
238
- break;
239
- }
240
- }
241
- return json;
242
- }
243
- exports.getResponseJson = getResponseJson;
244
- function convertPathToCamelCase(path) {
245
- const pathSegments = path.split(/[./{]/);
246
- const camelCaseSegments = pathSegments.map((segment) => {
247
- segment = segment.replace(/}/g, "");
248
- return segment.charAt(0).toUpperCase() + segment.slice(1);
249
- });
250
- const camelCasePath = camelCaseSegments.join("");
251
- return camelCasePath;
252
- }
253
- exports.convertPathToCamelCase = convertPathToCamelCase;
254
- function getUrlProtocol(urlString) {
255
- try {
256
- const url = new URL(urlString);
257
- return url.protocol;
258
- }
259
- catch (err) {
260
- return undefined;
261
- }
262
- }
263
- exports.getUrlProtocol = getUrlProtocol;
264
- function resolveServerUrl(url) {
265
- const placeHolderReg = /\${{\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*}}/g;
266
- let matches = placeHolderReg.exec(url);
267
- let newUrl = url;
268
- while (matches != null) {
269
- const envVar = matches[1];
270
- const envVal = process.env[envVar];
271
- if (!envVal) {
272
- throw new Error(format(constants_1.ConstantString.ResolveServerUrlFailed, envVar));
273
- }
274
- else {
275
- newUrl = newUrl.replace(matches[0], envVal);
276
- }
277
- matches = placeHolderReg.exec(url);
278
- }
279
- return newUrl;
280
- }
281
- exports.resolveServerUrl = resolveServerUrl;
282
- function checkServerUrl(servers) {
283
- const errors = [];
284
- let serverUrl;
285
- try {
286
- serverUrl = resolveServerUrl(servers[0].url);
287
- }
288
- catch (err) {
289
- errors.push({
290
- type: interfaces_1.ErrorType.ResolveServerUrlFailed,
291
- content: err.message,
292
- data: servers,
293
- });
294
- return errors;
295
- }
296
- const protocol = getUrlProtocol(serverUrl);
297
- if (!protocol) {
298
- // Relative server url is not supported
299
- errors.push({
300
- type: interfaces_1.ErrorType.RelativeServerUrlNotSupported,
301
- content: constants_1.ConstantString.RelativeServerUrlNotSupported,
302
- data: servers,
303
- });
304
- }
305
- else if (protocol !== "https:") {
306
- // Http server url is not supported
307
- const protocolString = protocol.slice(0, -1);
308
- errors.push({
309
- type: interfaces_1.ErrorType.UrlProtocolNotSupported,
310
- content: format(constants_1.ConstantString.UrlProtocolNotSupported, protocol.slice(0, -1)),
311
- data: protocolString,
312
- });
313
- }
314
- return errors;
315
- }
316
- exports.checkServerUrl = checkServerUrl;
317
- function validateServer(spec, allowMissingId, allowAPIKeyAuth, allowMultipleParameters, allowOauth2) {
318
- const errors = [];
319
- let hasTopLevelServers = false;
320
- let hasPathLevelServers = false;
321
- let hasOperationLevelServers = false;
322
- if (spec.servers && spec.servers.length >= 1) {
323
- hasTopLevelServers = true;
324
- // for multiple server, we only use the first url
325
- const serverErrors = checkServerUrl(spec.servers);
326
- errors.push(...serverErrors);
327
- }
328
- const paths = spec.paths;
329
- for (const path in paths) {
330
- const methods = paths[path];
331
- if ((methods === null || methods === void 0 ? void 0 : methods.servers) && methods.servers.length >= 1) {
332
- hasPathLevelServers = true;
333
- const serverErrors = checkServerUrl(methods.servers);
334
- errors.push(...serverErrors);
335
- }
336
- for (const method in methods) {
337
- const operationObject = methods[method];
338
- if (isSupportedApi(method, path, spec, allowMissingId, allowAPIKeyAuth, allowMultipleParameters, allowOauth2)) {
339
- if ((operationObject === null || operationObject === void 0 ? void 0 : operationObject.servers) && operationObject.servers.length >= 1) {
340
- hasOperationLevelServers = true;
341
- const serverErrors = checkServerUrl(operationObject.servers);
342
- errors.push(...serverErrors);
343
- }
344
- }
345
- }
346
- }
347
- if (!hasTopLevelServers && !hasPathLevelServers && !hasOperationLevelServers) {
348
- errors.push({
349
- type: interfaces_1.ErrorType.NoServerInformation,
350
- content: constants_1.ConstantString.NoServerInformation,
351
- });
352
- }
353
- return errors;
354
- }
355
- exports.validateServer = validateServer;
356
- function isWellKnownName(name, wellknownNameList) {
357
- for (let i = 0; i < wellknownNameList.length; i++) {
358
- name = name.replace(/_/g, "").replace(/-/g, "");
359
- if (name.toLowerCase().includes(wellknownNameList[i])) {
360
- return true;
361
- }
362
- }
363
- return false;
364
- }
365
- exports.isWellKnownName = isWellKnownName;
366
- function generateParametersFromSchema(schema, name, allowMultipleParameters, isRequired = false) {
367
- var _a, _b;
368
- const requiredParams = [];
369
- const optionalParams = [];
370
- if (schema.type === "string" ||
371
- schema.type === "integer" ||
372
- schema.type === "boolean" ||
373
- schema.type === "number") {
374
- const parameter = {
375
- name: name,
376
- title: updateFirstLetter(name).slice(0, constants_1.ConstantString.ParameterTitleMaxLens),
377
- description: ((_a = schema.description) !== null && _a !== void 0 ? _a : "").slice(0, constants_1.ConstantString.ParameterDescriptionMaxLens),
378
- };
379
- if (allowMultipleParameters) {
380
- updateParameterWithInputType(schema, parameter);
381
- }
382
- if (isRequired && schema.default === undefined) {
383
- requiredParams.push(parameter);
384
- }
385
- else {
386
- optionalParams.push(parameter);
387
- }
388
- }
389
- else if (schema.type === "object") {
390
- const { properties } = schema;
391
- for (const property in properties) {
392
- let isRequired = false;
393
- if (schema.required && ((_b = schema.required) === null || _b === void 0 ? void 0 : _b.indexOf(property)) >= 0) {
394
- isRequired = true;
395
- }
396
- const [requiredP, optionalP] = generateParametersFromSchema(properties[property], property, allowMultipleParameters, isRequired);
397
- requiredParams.push(...requiredP);
398
- optionalParams.push(...optionalP);
399
- }
400
- }
401
- return [requiredParams, optionalParams];
402
- }
403
- exports.generateParametersFromSchema = generateParametersFromSchema;
404
- function updateParameterWithInputType(schema, param) {
405
- if (schema.enum) {
406
- param.inputType = "choiceset";
407
- param.choices = [];
408
- for (let i = 0; i < schema.enum.length; i++) {
409
- param.choices.push({
410
- title: schema.enum[i],
411
- value: schema.enum[i],
412
- });
413
- }
414
- }
415
- else if (schema.type === "string") {
416
- param.inputType = "text";
417
- }
418
- else if (schema.type === "integer" || schema.type === "number") {
419
- param.inputType = "number";
420
- }
421
- else if (schema.type === "boolean") {
422
- param.inputType = "toggle";
423
- }
424
- if (schema.default) {
425
- param.value = schema.default;
426
- }
427
- }
428
- exports.updateParameterWithInputType = updateParameterWithInputType;
429
- function parseApiInfo(operationItem, allowMultipleParameters) {
430
- var _a, _b;
431
- const requiredParams = [];
432
- const optionalParams = [];
433
- const paramObject = operationItem.parameters;
434
- if (paramObject) {
435
- paramObject.forEach((param) => {
436
- var _a;
437
- const parameter = {
438
- name: param.name,
439
- title: updateFirstLetter(param.name).slice(0, constants_1.ConstantString.ParameterTitleMaxLens),
440
- description: ((_a = param.description) !== null && _a !== void 0 ? _a : "").slice(0, constants_1.ConstantString.ParameterDescriptionMaxLens),
441
- };
442
- const schema = param.schema;
443
- if (allowMultipleParameters && schema) {
444
- updateParameterWithInputType(schema, parameter);
445
- }
446
- if (param.in !== "header" && param.in !== "cookie") {
447
- if (param.required && (schema === null || schema === void 0 ? void 0 : schema.default) === undefined) {
448
- requiredParams.push(parameter);
449
- }
450
- else {
451
- optionalParams.push(parameter);
452
- }
453
- }
454
- });
455
- }
456
- if (operationItem.requestBody) {
457
- const requestBody = operationItem.requestBody;
458
- const requestJson = requestBody.content["application/json"];
459
- if (Object.keys(requestJson).length !== 0) {
460
- const schema = requestJson.schema;
461
- const [requiredP, optionalP] = generateParametersFromSchema(schema, "requestBody", allowMultipleParameters, requestBody.required);
462
- requiredParams.push(...requiredP);
463
- optionalParams.push(...optionalP);
464
- }
465
- }
466
- const operationId = operationItem.operationId;
467
- const parameters = [];
468
- if (requiredParams.length !== 0) {
469
- parameters.push(...requiredParams);
470
- }
471
- else {
472
- parameters.push(optionalParams[0]);
473
- }
474
- const command = {
475
- context: ["compose"],
476
- type: "query",
477
- title: ((_a = operationItem.summary) !== null && _a !== void 0 ? _a : "").slice(0, constants_1.ConstantString.CommandTitleMaxLens),
478
- id: operationId,
479
- parameters: parameters,
480
- description: ((_b = operationItem.description) !== null && _b !== void 0 ? _b : "").slice(0, constants_1.ConstantString.CommandDescriptionMaxLens),
481
- };
482
- let warning = undefined;
483
- if (requiredParams.length === 0 && optionalParams.length > 1) {
484
- warning = {
485
- type: interfaces_1.WarningType.OperationOnlyContainsOptionalParam,
486
- content: format(constants_1.ConstantString.OperationOnlyContainsOptionalParam, operationId),
487
- data: operationId,
488
- };
489
- }
490
- return [command, warning];
491
- }
492
- exports.parseApiInfo = parseApiInfo;
493
- function listSupportedAPIs(spec, allowMissingId, allowAPIKeyAuth, allowMultipleParameters, allowOauth2) {
494
- const paths = spec.paths;
495
- const result = {};
496
- for (const path in paths) {
497
- const methods = paths[path];
498
- for (const method in methods) {
499
- // For developer preview, only support GET operation with only 1 parameter without auth
500
- if (isSupportedApi(method, path, spec, allowMissingId, allowAPIKeyAuth, allowMultipleParameters, allowOauth2)) {
501
- const operationObject = methods[method];
502
- result[`${method.toUpperCase()} ${path}`] = operationObject;
503
- }
504
- }
505
- }
506
- return result;
507
- }
508
- exports.listSupportedAPIs = listSupportedAPIs;
509
- function validateSpec(spec, parser, isSwaggerFile, allowMissingId, allowAPIKeyAuth, allowMultipleParameters, allowOauth2) {
510
- const errors = [];
511
- const warnings = [];
512
- if (isSwaggerFile) {
513
- warnings.push({
514
- type: interfaces_1.WarningType.ConvertSwaggerToOpenAPI,
515
- content: constants_1.ConstantString.ConvertSwaggerToOpenAPI,
516
- });
517
- }
518
- // Server validation
519
- const serverErrors = validateServer(spec, allowMissingId, allowAPIKeyAuth, allowMultipleParameters, allowOauth2);
520
- errors.push(...serverErrors);
521
- // Remote reference not supported
522
- const refPaths = parser.$refs.paths();
523
- // refPaths [0] is the current spec file path
524
- if (refPaths.length > 1) {
525
- errors.push({
526
- type: interfaces_1.ErrorType.RemoteRefNotSupported,
527
- content: format(constants_1.ConstantString.RemoteRefNotSupported, refPaths.join(", ")),
528
- data: refPaths,
529
- });
530
- }
531
- // No supported API
532
- const apiMap = listSupportedAPIs(spec, allowMissingId, allowAPIKeyAuth, allowMultipleParameters, allowOauth2);
533
- if (Object.keys(apiMap).length === 0) {
534
- errors.push({
535
- type: interfaces_1.ErrorType.NoSupportedApi,
536
- content: constants_1.ConstantString.NoSupportedApi,
537
- });
538
- }
539
- // OperationId missing
540
- const apisMissingOperationId = [];
541
- for (const key in apiMap) {
542
- const pathObjectItem = apiMap[key];
543
- if (!pathObjectItem.operationId) {
544
- apisMissingOperationId.push(key);
545
- }
546
- }
547
- if (apisMissingOperationId.length > 0) {
548
- warnings.push({
549
- type: interfaces_1.WarningType.OperationIdMissing,
550
- content: format(constants_1.ConstantString.MissingOperationId, apisMissingOperationId.join(", ")),
551
- data: apisMissingOperationId,
552
- });
553
- }
554
- let status = interfaces_1.ValidationStatus.Valid;
555
- if (warnings.length > 0 && errors.length === 0) {
556
- status = interfaces_1.ValidationStatus.Warning;
557
- }
558
- else if (errors.length > 0) {
559
- status = interfaces_1.ValidationStatus.Error;
560
- }
561
- return {
562
- status,
563
- warnings,
564
- errors,
565
- };
566
- }
567
- exports.validateSpec = validateSpec;
568
- function format(str, ...args) {
569
- let index = 0;
570
- return str.replace(/%s/g, () => {
571
- const arg = args[index++];
572
- return arg !== undefined ? arg : "";
573
- });
574
- }
575
- exports.format = format;
576
- function getSafeRegistrationIdEnvName(authName) {
577
- if (!authName) {
578
- return "";
579
- }
580
- let safeRegistrationIdEnvName = authName.toUpperCase().replace(/[^A-Z0-9_]/g, "_");
581
- if (!safeRegistrationIdEnvName.match(/^[A-Z]/)) {
582
- safeRegistrationIdEnvName = "PREFIX_" + safeRegistrationIdEnvName;
583
- }
584
- return safeRegistrationIdEnvName;
585
- }
586
- exports.getSafeRegistrationIdEnvName = getSafeRegistrationIdEnvName;
587
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/common/spec-parser/utils.ts"],"names":[],"mappings":"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"}