@microsoft/teamsfx-core 2.0.6-alpha.ae74bd5cd.0 → 2.0.6-alpha.bb3771d20.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 (111) hide show
  1. package/build/common/deps-checker/internal/funcToolChecker.d.ts +1 -1
  2. package/build/common/deps-checker/internal/funcToolChecker.d.ts.map +1 -1
  3. package/build/common/deps-checker/internal/funcToolChecker.js.map +1 -1
  4. package/build/common/featureFlags.d.ts +1 -0
  5. package/build/common/featureFlags.d.ts.map +1 -1
  6. package/build/common/featureFlags.js +5 -1
  7. package/build/common/featureFlags.js.map +1 -1
  8. package/build/common/local/constants.d.ts +1 -0
  9. package/build/common/local/constants.d.ts.map +1 -1
  10. package/build/common/local/constants.js +1 -0
  11. package/build/common/local/constants.js.map +1 -1
  12. package/build/common/local/localCertificateManager.d.ts +3 -2
  13. package/build/common/local/localCertificateManager.d.ts.map +1 -1
  14. package/build/common/local/localCertificateManager.js +5 -1
  15. package/build/common/local/localCertificateManager.js.map +1 -1
  16. package/build/common/m365/packageService.d.ts +1 -0
  17. package/build/common/m365/packageService.d.ts.map +1 -1
  18. package/build/common/m365/packageService.js +68 -0
  19. package/build/common/m365/packageService.js.map +1 -1
  20. package/build/common/spec-parser/adaptiveCardGenerator.d.ts.map +1 -1
  21. package/build/common/spec-parser/adaptiveCardGenerator.js +2 -4
  22. package/build/common/spec-parser/adaptiveCardGenerator.js.map +1 -1
  23. package/build/common/spec-parser/constants.d.ts +20 -13
  24. package/build/common/spec-parser/constants.d.ts.map +1 -1
  25. package/build/common/spec-parser/constants.js +20 -14
  26. package/build/common/spec-parser/constants.js.map +1 -1
  27. package/build/common/spec-parser/index.browser.d.ts +5 -0
  28. package/build/common/spec-parser/index.browser.d.ts.map +1 -0
  29. package/build/common/spec-parser/index.browser.js +16 -0
  30. package/build/common/spec-parser/index.browser.js.map +1 -0
  31. package/build/common/spec-parser/index.d.ts +5 -0
  32. package/build/common/spec-parser/index.d.ts.map +1 -0
  33. package/build/common/spec-parser/index.js +16 -0
  34. package/build/common/spec-parser/index.js.map +1 -0
  35. package/build/common/spec-parser/interfaces.d.ts +15 -2
  36. package/build/common/spec-parser/interfaces.d.ts.map +1 -1
  37. package/build/common/spec-parser/interfaces.js +2 -2
  38. package/build/common/spec-parser/interfaces.js.map +1 -1
  39. package/build/common/spec-parser/manifestUpdater.d.ts +2 -2
  40. package/build/common/spec-parser/manifestUpdater.d.ts.map +1 -1
  41. package/build/common/spec-parser/manifestUpdater.js +18 -102
  42. package/build/common/spec-parser/manifestUpdater.js.map +1 -1
  43. package/build/common/spec-parser/specFilter.d.ts +1 -1
  44. package/build/common/spec-parser/specFilter.d.ts.map +1 -1
  45. package/build/common/spec-parser/specFilter.js +2 -2
  46. package/build/common/spec-parser/specFilter.js.map +1 -1
  47. package/build/common/spec-parser/specParser.browser.d.ts +51 -0
  48. package/build/common/spec-parser/specParser.browser.d.ts.map +1 -0
  49. package/build/common/spec-parser/specParser.browser.js +144 -0
  50. package/build/common/spec-parser/specParser.browser.js.map +1 -0
  51. package/build/common/spec-parser/specParser.d.ts +10 -5
  52. package/build/common/spec-parser/specParser.d.ts.map +1 -1
  53. package/build/common/spec-parser/specParser.js +34 -84
  54. package/build/common/spec-parser/specParser.js.map +1 -1
  55. package/build/common/spec-parser/utils.d.ts +12 -5
  56. package/build/common/spec-parser/utils.d.ts.map +1 -1
  57. package/build/common/spec-parser/utils.js +190 -38
  58. package/build/common/spec-parser/utils.js.map +1 -1
  59. package/build/common/templates-config.json +2 -2
  60. package/build/common/tools.d.ts.map +1 -1
  61. package/build/common/tools.js +1 -1
  62. package/build/common/tools.js.map +1 -1
  63. package/build/component/developerPortalScaffoldUtils.d.ts.map +1 -1
  64. package/build/component/developerPortalScaffoldUtils.js +32 -0
  65. package/build/component/developerPortalScaffoldUtils.js.map +1 -1
  66. package/build/component/driver/script/scriptDriver.d.ts.map +1 -1
  67. package/build/component/driver/script/scriptDriver.js +2 -2
  68. package/build/component/driver/script/scriptDriver.js.map +1 -1
  69. package/build/component/driver/teamsApp/publishAppPackage.d.ts +1 -0
  70. package/build/component/driver/teamsApp/publishAppPackage.d.ts.map +1 -1
  71. package/build/component/driver/teamsApp/publishAppPackage.js +9 -9
  72. package/build/component/driver/teamsApp/publishAppPackage.js.map +1 -1
  73. package/build/component/driver/teamsApp/teamsappMgr.d.ts +20 -0
  74. package/build/component/driver/teamsApp/teamsappMgr.d.ts.map +1 -0
  75. package/build/component/driver/teamsApp/teamsappMgr.js +278 -0
  76. package/build/component/driver/teamsApp/teamsappMgr.js.map +1 -0
  77. package/build/component/generator/copilotPlugin/generator.d.ts.map +1 -1
  78. package/build/component/generator/copilotPlugin/generator.js +11 -14
  79. package/build/component/generator/copilotPlugin/generator.js.map +1 -1
  80. package/build/component/generator/copilotPlugin/helper.d.ts +5 -2
  81. package/build/component/generator/copilotPlugin/helper.d.ts.map +1 -1
  82. package/build/component/generator/copilotPlugin/helper.js +85 -15
  83. package/build/component/generator/copilotPlugin/helper.js.map +1 -1
  84. package/build/component/utils/envUtil.d.ts +1 -0
  85. package/build/component/utils/envUtil.d.ts.map +1 -1
  86. package/build/component/utils/envUtil.js +5 -0
  87. package/build/component/utils/envUtil.js.map +1 -1
  88. package/build/core/FxCore.d.ts +17 -1
  89. package/build/core/FxCore.d.ts.map +1 -1
  90. package/build/core/FxCore.js +71 -4
  91. package/build/core/FxCore.js.map +1 -1
  92. package/build/index.d.ts +3 -0
  93. package/build/index.d.ts.map +1 -1
  94. package/build/index.js +7 -1
  95. package/build/index.js.map +1 -1
  96. package/build/question/create.js +6 -6
  97. package/build/question/create.js.map +1 -1
  98. package/build/question/inputs/SPFxAddWebpartInputs.d.ts +2 -0
  99. package/build/question/inputs/SPFxAddWebpartInputs.d.ts.map +1 -1
  100. package/build/question/options/SPFxAddWebpartOptions.d.ts.map +1 -1
  101. package/build/question/options/SPFxAddWebpartOptions.js +9 -0
  102. package/build/question/options/SPFxAddWebpartOptions.js.map +1 -1
  103. package/build/question/other.d.ts.map +1 -1
  104. package/build/question/other.js +3 -0
  105. package/build/question/other.js.map +1 -1
  106. package/package.json +6 -6
  107. package/resource/package.nls.json +4 -8
  108. package/templates/fallback/common.zip +0 -0
  109. package/templates/fallback/csharp.zip +0 -0
  110. package/templates/fallback/js.zip +0 -0
  111. package/templates/fallback/ts.zip +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/common/spec-parser/constants.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,YAAY,CAAC;;;AAEb,oDAAsD;AAEtD,MAAa,cAAc;;AAA3B,wCA6FC;AA5FiB,+BAAgB,GAAG,kCAAkB,CAAC,8BAA8B,CAAC,CAAC;AACtE,kCAAmB,GAAG,kCAAkB,CAAC,iCAAiC,CAAC,CAAC;AAC5E,oCAAqB,GAAG,kCAAkB,CAAC,mCAAmC,CAAC,CAAC;AAChF,iCAAkB,GAAG,kCAAkB,CAAC,gCAAgC,CAAC,CAAC;AAC1E,6BAAc,GAAG,kCAAkB,CAAC,4BAA4B,CAAC,CAAC;AAClE,+CAAgC,GAAG,kCAAkB,CACnE,8CAA8C,CAC/C,CAAC;AACc,iCAAkB,GAAG,kCAAkB,CAAC,gCAAgC,CAAC,CAAC;AAC1E,4BAAa,GAAG,kCAAkB,CAAC,2BAA2B,CAAC,CAAC;AAEhE,sCAAuB,GAAG,kCAAkB,CAC1D,qCAAqC,CACtC,CAAC;AACc,4CAA6B,GAAG,kCAAkB,CAChE,2CAA2C,CAC5C,CAAC;AACc,qCAAsB,GAAG,kCAAkB,CAAC,oCAAoC,CAAC,CAAC;AAClF,iDAAkC,GAAG,kCAAkB,CACrE,gDAAgD,CACjD,CAAC;AACc,sCAAuB,GAAG,kCAAkB,CAC1D,qCAAqC,CACtC,CAAC;AAEc,iCAAkB,GAAG,YAAY,CAAC;AAClC,gCAAiB,GAC/B,qHAAqH,CAAC;AACxG,wCAAyB,GAAG,MAAM,CAAC;AAEnC,wBAAS,GAAG,KAAK,CAAC;AAClB,yBAAU,GAAG,MAAM,CAAC;AACpB,kCAAmB,GAAG,KAAK,CAAC;AAC5B,iCAAkB,GAAG,oDAAoD,CAAC;AAC1E,+BAAgB,GAAG,cAAc,CAAC;AAClC,4BAAa,GAAG,WAAW,CAAC;AAC5B,4BAAa,GAAG,WAAW,CAAC;AAC5B,iCAAkB,GAAG;IACnC,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,SAAS;CACV,CAAC;AACc,kCAAmB,GAAG;IACpC,KAAK;IACL,MAAM;IACN,KAAK;IACL,QAAQ;IACR,OAAO;IACP,MAAM;IACN,SAAS;IACT,OAAO;CACR,CAAC;AAEF,iEAAiE;AACjD,mCAAoB,GAAG;IACrC,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,SAAS;IACT,SAAS;IACT,MAAM;IACN,QAAQ;CACT,CAAC;AACc,iCAAkB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACjF,oCAAqB,GAAG;IACtC,UAAU;IACV,IAAI;IACJ,KAAK;IACL,aAAa;IACb,MAAM;IACN,QAAQ;CACT,CAAC;AACc,iCAAkB,GAAG;IACnC,OAAO;IACP,MAAM;IACN,QAAQ;IACR,SAAS;IACT,OAAO;IACP,MAAM;IACN,KAAK;IACL,WAAW;IACX,KAAK;CACN,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/common/spec-parser/constants.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,YAAY,CAAC;;;AAEb,MAAa,cAAc;;AAA3B,wCAsGC;AArGiB,+BAAgB,GAAG,yBAAyB,CAAC;AAC7C,kCAAmB,GACjC,qEAAqE,CAAC;AACxD,oCAAqB,GAAG,wCAAwC,CAAC;AACjE,iCAAkB,GAAG,2BAA2B,CAAC;AACjD,6BAAc,GAC5B,4LAA4L,CAAC;AAE/K,+CAAgC,GAC9C,+DAA+D,CAAC;AAClD,iCAAkB,GAAG,2DAA2D,CAAC;AACjF,4BAAa,GAAG,qBAAqB,CAAC;AAEtC,sCAAuB,GACrC,iGAAiG,CAAC;AACpF,4CAA6B,GAC3C,kEAAkE,CAAC;AACrD,qCAAsB,GACpC,iGAAiG,CAAC;AACpF,iDAAkC,GAChD,4GAA4G,CAAC;AAC/F,sCAAuB,GACrC,yDAAyD,CAAC;AAE5C,kCAAmB,GACjC,yFAAyF,CAAC;AAE5E,iCAAkB,GAAG,YAAY,CAAC;AAClC,gCAAiB,GAC/B,qHAAqH,CAAC;AACxG,wCAAyB,GAAG,MAAM,CAAC;AAEnC,wBAAS,GAAG,KAAK,CAAC;AAClB,yBAAU,GAAG,MAAM,CAAC;AACpB,kCAAmB,GAAG,KAAK,CAAC;AAC5B,iCAAkB,GAAG,oDAAoD,CAAC;AAC1E,+BAAgB,GAAG,cAAc,CAAC;AAClC,4BAAa,GAAG,WAAW,CAAC;AAC5B,4BAAa,GAAG,WAAW,CAAC;AAC5B,iCAAkB,GAAG;IACnC,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,SAAS;CACV,CAAC;AACc,kCAAmB,GAAG;IACpC,KAAK;IACL,MAAM;IACN,KAAK;IACL,QAAQ;IACR,OAAO;IACP,MAAM;IACN,SAAS;IACT,OAAO;CACR,CAAC;AAEF,iEAAiE;AACjD,mCAAoB,GAAG;IACrC,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,SAAS;IACT,SAAS;IACT,MAAM;IACN,QAAQ;CACT,CAAC;AACc,iCAAkB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACjF,oCAAqB,GAAG;IACtC,UAAU;IACV,IAAI;IACJ,KAAK;IACL,aAAa;IACb,MAAM;IACN,QAAQ;CACT,CAAC;AACc,iCAAkB,GAAG;IACnC,OAAO;IACP,MAAM;IACN,QAAQ;IACR,SAAS;IACT,OAAO;IACP,MAAM;IACN,KAAK;IACL,WAAW;IACX,KAAK;CACN,CAAC;AAEc,sCAAuB,GAAG,EAAE,CAAC;AAC7B,qCAAsB,GAAG,IAAI,CAAC;AAC9B,wCAAyB,GAAG,GAAG,CAAC;AAChC,0CAA2B,GAAG,GAAG,CAAC;AAClC,kCAAmB,GAAG,EAAE,CAAC;AACzB,oCAAqB,GAAG,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { SpecParser } from "./specParser.browser";
2
+ export { SpecParserError } from "./specParserError";
3
+ export { ValidationStatus, WarningType, ErrorType, WarningResult } from "./interfaces";
4
+ export { ConstantString } from "./constants";
5
+ //# sourceMappingURL=index.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../../../src/common/spec-parser/index.browser.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,16 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ "use strict";
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.ConstantString = exports.ErrorType = exports.WarningType = exports.ValidationStatus = exports.SpecParserError = exports.SpecParser = void 0;
6
+ var specParser_browser_1 = require("./specParser.browser");
7
+ Object.defineProperty(exports, "SpecParser", { enumerable: true, get: function () { return specParser_browser_1.SpecParser; } });
8
+ var specParserError_1 = require("./specParserError");
9
+ Object.defineProperty(exports, "SpecParserError", { enumerable: true, get: function () { return specParserError_1.SpecParserError; } });
10
+ var interfaces_1 = require("./interfaces");
11
+ Object.defineProperty(exports, "ValidationStatus", { enumerable: true, get: function () { return interfaces_1.ValidationStatus; } });
12
+ Object.defineProperty(exports, "WarningType", { enumerable: true, get: function () { return interfaces_1.WarningType; } });
13
+ Object.defineProperty(exports, "ErrorType", { enumerable: true, get: function () { return interfaces_1.ErrorType; } });
14
+ var constants_1 = require("./constants");
15
+ Object.defineProperty(exports, "ConstantString", { enumerable: true, get: function () { return constants_1.ConstantString; } });
16
+ //# sourceMappingURL=index.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../../../src/common/spec-parser/index.browser.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,YAAY,CAAC;;;AAEb,2DAAkD;AAAzC,gHAAA,UAAU,OAAA;AACnB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,2CAAuF;AAA9E,8GAAA,gBAAgB,OAAA;AAAE,yGAAA,WAAW,OAAA;AAAE,uGAAA,SAAS,OAAA;AACjD,yCAA6C;AAApC,2GAAA,cAAc,OAAA"}
@@ -0,0 +1,5 @@
1
+ export { SpecParser } from "./specParser";
2
+ export { SpecParserError } from "./specParserError";
3
+ export { ValidationStatus, WarningType, ErrorType, WarningResult } from "./interfaces";
4
+ export { ConstantString } from "./constants";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/spec-parser/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,16 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ "use strict";
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.ConstantString = exports.ErrorType = exports.WarningType = exports.ValidationStatus = exports.SpecParserError = exports.SpecParser = void 0;
6
+ var specParser_1 = require("./specParser");
7
+ Object.defineProperty(exports, "SpecParser", { enumerable: true, get: function () { return specParser_1.SpecParser; } });
8
+ var specParserError_1 = require("./specParserError");
9
+ Object.defineProperty(exports, "SpecParserError", { enumerable: true, get: function () { return specParserError_1.SpecParserError; } });
10
+ var interfaces_1 = require("./interfaces");
11
+ Object.defineProperty(exports, "ValidationStatus", { enumerable: true, get: function () { return interfaces_1.ValidationStatus; } });
12
+ Object.defineProperty(exports, "WarningType", { enumerable: true, get: function () { return interfaces_1.WarningType; } });
13
+ Object.defineProperty(exports, "ErrorType", { enumerable: true, get: function () { return interfaces_1.ErrorType; } });
14
+ var constants_1 = require("./constants");
15
+ Object.defineProperty(exports, "ConstantString", { enumerable: true, get: function () { return constants_1.ConstantString; } });
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/spec-parser/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,YAAY,CAAC;;;AAEb,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,2CAAuF;AAA9E,8GAAA,gBAAgB,OAAA;AAAE,yGAAA,WAAW,OAAA;AAAE,uGAAA,SAAS,OAAA;AACjD,yCAA6C;AAApC,2GAAA,cAAc,OAAA"}
@@ -65,8 +65,10 @@ export declare enum ErrorType {
65
65
  NoSupportedApi = "no-supported-api",
66
66
  NoExtraAPICanBeAdded = "no-extra-api-can-be-added",
67
67
  ResolveServerUrlFailed = "resolve-server-url-failed",
68
+ SwaggerNotSupported = "swagger-not-supported",
68
69
  ListFailed = "list-failed",
69
70
  ListOperationMapFailed = "list-operation-map-failed",
71
+ listSupportedAPIInfoFailed = "list-supported-api-info-failed",
70
72
  FilterSpecFailed = "filter-spec-failed",
71
73
  UpdateManifestFailed = "update-manifest-failed",
72
74
  GenerateAdaptiveCardFailed = "generate-adaptive-card-failed",
@@ -79,8 +81,6 @@ export declare enum ErrorType {
79
81
  * An enum that represents the types of warnings that can occur during validation.
80
82
  */
81
83
  export declare enum WarningType {
82
- AuthNotSupported = "auth-not-supported",
83
- MethodNotSupported = "method-not-supported",
84
84
  OperationIdMissing = "operationid-missing",
85
85
  GenerateCardFailed = "generate-card-failed",
86
86
  OperationOnlyContainsOptionalParam = "operation-only-contains-optional-param",
@@ -143,4 +143,17 @@ export interface CheckParamResult {
143
143
  optionalNum: number;
144
144
  isValid: boolean;
145
145
  }
146
+ export interface ParseOptions {
147
+ allowMissingId?: boolean;
148
+ allowSwagger?: boolean;
149
+ }
150
+ export interface APIInfo {
151
+ method: string;
152
+ path: string;
153
+ title: string;
154
+ id: string;
155
+ parameters: Parameter[];
156
+ description: string;
157
+ warning?: WarningResult;
158
+ }
146
159
  //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/common/spec-parser/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/common/spec-parser/interfaces.ts"],"names":[],"mappings":"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"}
@@ -16,8 +16,10 @@ var ErrorType;
16
16
  ErrorType["NoSupportedApi"] = "no-supported-api";
17
17
  ErrorType["NoExtraAPICanBeAdded"] = "no-extra-api-can-be-added";
18
18
  ErrorType["ResolveServerUrlFailed"] = "resolve-server-url-failed";
19
+ ErrorType["SwaggerNotSupported"] = "swagger-not-supported";
19
20
  ErrorType["ListFailed"] = "list-failed";
20
21
  ErrorType["ListOperationMapFailed"] = "list-operation-map-failed";
22
+ ErrorType["listSupportedAPIInfoFailed"] = "list-supported-api-info-failed";
21
23
  ErrorType["FilterSpecFailed"] = "filter-spec-failed";
22
24
  ErrorType["UpdateManifestFailed"] = "update-manifest-failed";
23
25
  ErrorType["GenerateAdaptiveCardFailed"] = "generate-adaptive-card-failed";
@@ -31,8 +33,6 @@ var ErrorType;
31
33
  */
32
34
  var WarningType;
33
35
  (function (WarningType) {
34
- WarningType["AuthNotSupported"] = "auth-not-supported";
35
- WarningType["MethodNotSupported"] = "method-not-supported";
36
36
  WarningType["OperationIdMissing"] = "operationid-missing";
37
37
  WarningType["GenerateCardFailed"] = "generate-card-failed";
38
38
  WarningType["OperationOnlyContainsOptionalParam"] = "operation-only-contains-optional-param";
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/common/spec-parser/interfaces.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,YAAY,CAAC;;;AAmEb;;GAEG;AACH,IAAY,SAoBX;AApBD,WAAY,SAAS;IACnB,4CAA+B,CAAA;IAC/B,+DAAkD,CAAA;IAClD,0DAA6C,CAAA;IAC7C,mEAAsD,CAAA;IACtD,gFAAmE,CAAA;IACnE,gDAAmC,CAAA;IACnC,+DAAkD,CAAA;IAClD,iEAAoD,CAAA;IAEpD,uCAA0B,CAAA;IAC1B,iEAAoD,CAAA;IACpD,oDAAuC,CAAA;IACvC,4DAA+C,CAAA;IAC/C,yEAA4D,CAAA;IAC5D,+CAAkC,CAAA;IAClC,+CAAkC,CAAA;IAElC,oCAAuB,CAAA;IACvB,gCAAmB,CAAA;AACrB,CAAC,EApBW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAoBpB;AAED;;GAEG;AACH,IAAY,WAQX;AARD,WAAY,WAAW;IACrB,sDAAuC,CAAA;IACvC,0DAA2C,CAAA;IAC3C,yDAA0C,CAAA;IAC1C,0DAA2C,CAAA;IAC3C,4FAA6E,CAAA;IAC7E,qEAAsD,CAAA;IACtD,kCAAmB,CAAA;AACrB,CAAC,EARW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAQtB;AAED;;GAEG;AACH,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,yDAAK,CAAA;IACL,6DAAO,CAAA;IACP,yDAAK,CAAA;AACP,CAAC,EAJW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAI3B"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/common/spec-parser/interfaces.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,YAAY,CAAC;;;AAmEb;;GAEG;AACH,IAAY,SAsBX;AAtBD,WAAY,SAAS;IACnB,4CAA+B,CAAA;IAC/B,+DAAkD,CAAA;IAClD,0DAA6C,CAAA;IAC7C,mEAAsD,CAAA;IACtD,gFAAmE,CAAA;IACnE,gDAAmC,CAAA;IACnC,+DAAkD,CAAA;IAClD,iEAAoD,CAAA;IACpD,0DAA6C,CAAA;IAE7C,uCAA0B,CAAA;IAC1B,iEAAoD,CAAA;IACpD,0EAA6D,CAAA;IAC7D,oDAAuC,CAAA;IACvC,4DAA+C,CAAA;IAC/C,yEAA4D,CAAA;IAC5D,+CAAkC,CAAA;IAClC,+CAAkC,CAAA;IAElC,oCAAuB,CAAA;IACvB,gCAAmB,CAAA;AACrB,CAAC,EAtBW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAsBpB;AAED;;GAEG;AACH,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,yDAA0C,CAAA;IAC1C,0DAA2C,CAAA;IAC3C,4FAA6E,CAAA;IAC7E,qEAAsD,CAAA;IACtD,kCAAmB,CAAA;AACrB,CAAC,EANW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAMtB;AAED;;GAEG;AACH,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,yDAAK,CAAA;IACL,6DAAO,CAAA;IACP,yDAAK,CAAA;AACP,CAAC,EAJW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAI3B"}
@@ -1,7 +1,7 @@
1
1
  import { OpenAPIV3 } from "openapi-types";
2
- import { Parameter, WarningResult } from "./interfaces";
2
+ import { WarningResult } from "./interfaces";
3
3
  import { IMessagingExtensionCommand, TeamsAppManifest } from "@microsoft/teamsfx-api";
4
4
  export declare function updateManifest(manifestPath: string, outputSpecPath: string, adaptiveCardFolder: string, spec: OpenAPIV3.Document): Promise<[TeamsAppManifest, WarningResult[]]>;
5
- export declare function generateParametersFromSchema(schema: OpenAPIV3.SchemaObject, name: string, isRequired?: boolean): [Parameter[], Parameter[]];
6
5
  export declare function generateCommands(spec: OpenAPIV3.Document, adaptiveCardFolder: string, manifestPath: string): Promise<[IMessagingExtensionCommand[], WarningResult[]]>;
6
+ export declare function getRelativePath(from: string, to: string): string;
7
7
  //# sourceMappingURL=manifestUpdater.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifestUpdater.d.ts","sourceRoot":"","sources":["../../../src/common/spec-parser/manifestUpdater.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAa,aAAa,EAAe,MAAM,cAAc,CAAC;AAOhF,OAAO,EAEL,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,MAAM,EAC1B,IAAI,EAAE,SAAS,CAAC,QAAQ,GACvB,OAAO,CAAC,CAAC,gBAAgB,EAAE,aAAa,EAAE,CAAC,CAAC,CA0B9C;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,SAAS,CAAC,YAAY,EAC9B,IAAI,EAAE,MAAM,EACZ,UAAU,UAAQ,GACjB,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,CAuC5B;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,SAAS,CAAC,QAAQ,EACxB,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,CAAC,0BAA0B,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,CA6F1D"}
1
+ {"version":3,"file":"manifestUpdater.d.ts","sourceRoot":"","sources":["../../../src/common/spec-parser/manifestUpdater.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAa,aAAa,EAAE,MAAM,cAAc,CAAC;AAIxD,OAAO,EAEL,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAEhC,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,MAAM,EAC1B,IAAI,EAAE,SAAS,CAAC,QAAQ,GACvB,OAAO,CAAC,CAAC,gBAAgB,EAAE,aAAa,EAAE,CAAC,CAAC,CA4B9C;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,SAAS,CAAC,QAAQ,EACxB,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,CAAC,0BAA0B,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,CAmC1D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAGhE"}
@@ -2,30 +2,28 @@
2
2
  // Licensed under the MIT license.
3
3
  "use strict";
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.generateCommands = exports.generateParametersFromSchema = exports.updateManifest = void 0;
5
+ exports.getRelativePath = exports.generateCommands = exports.updateManifest = void 0;
6
6
  const tslib_1 = require("tslib");
7
- const interfaces_1 = require("./interfaces");
8
7
  const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
9
8
  const path_1 = tslib_1.__importDefault(require("path"));
9
+ const interfaces_1 = require("./interfaces");
10
10
  const utils_1 = require("./utils");
11
11
  const specParserError_1 = require("./specParserError");
12
12
  const constants_1 = require("./constants");
13
- const util_1 = require("util");
14
13
  async function updateManifest(manifestPath, outputSpecPath, adaptiveCardFolder, spec) {
15
- var _a;
14
+ var _a, _b;
16
15
  try {
17
- // TODO: manifest interface can be updated when manifest parser library is ready
18
16
  const originalManifest = await fs_extra_1.default.readJSON(manifestPath);
19
17
  const [commands, warnings] = await generateCommands(spec, adaptiveCardFolder, manifestPath);
20
18
  const ComposeExtension = {
21
19
  composeExtensionType: "apiBased",
22
- apiSpecificationFile: utils_1.getRelativePath(manifestPath, outputSpecPath),
20
+ apiSpecificationFile: getRelativePath(manifestPath, outputSpecPath),
23
21
  commands: commands,
24
22
  };
25
23
  const updatedPart = {
26
24
  description: {
27
- short: spec.info.title,
28
- full: (_a = spec.info.description) !== null && _a !== void 0 ? _a : originalManifest.description.full,
25
+ short: spec.info.title.slice(0, constants_1.ConstantString.ShortDescriptionMaxLens),
26
+ full: (_b = ((_a = spec.info.description) !== null && _a !== void 0 ? _a : originalManifest.description.full)) === null || _b === void 0 ? void 0 : _b.slice(0, constants_1.ConstantString.FullDescriptionMaxLens),
29
27
  },
30
28
  composeExtensions: [ComposeExtension],
31
29
  };
@@ -37,43 +35,7 @@ async function updateManifest(manifestPath, outputSpecPath, adaptiveCardFolder,
37
35
  }
38
36
  }
39
37
  exports.updateManifest = updateManifest;
40
- function generateParametersFromSchema(schema, name, isRequired = false) {
41
- var _a, _b;
42
- const requiredParams = [];
43
- const optionalParams = [];
44
- if (schema.type === "string" ||
45
- schema.type === "integer" ||
46
- schema.type === "boolean" ||
47
- schema.type === "number") {
48
- const parameter = {
49
- name: name,
50
- title: utils_1.updateFirstLetter(name),
51
- description: (_a = schema.description) !== null && _a !== void 0 ? _a : "",
52
- };
53
- if (isRequired && schema.default === undefined) {
54
- requiredParams.push(parameter);
55
- }
56
- else {
57
- optionalParams.push(parameter);
58
- }
59
- }
60
- else if (schema.type === "object") {
61
- const { properties } = schema;
62
- for (const property in properties) {
63
- let isRequired = false;
64
- if (schema.required && ((_b = schema.required) === null || _b === void 0 ? void 0 : _b.indexOf(property)) >= 0) {
65
- isRequired = true;
66
- }
67
- const [requiredP, optionalP] = generateParametersFromSchema(properties[property], property, isRequired);
68
- requiredParams.push(...requiredP);
69
- optionalParams.push(...optionalP);
70
- }
71
- }
72
- return [requiredParams, optionalParams];
73
- }
74
- exports.generateParametersFromSchema = generateParametersFromSchema;
75
38
  async function generateCommands(spec, adaptiveCardFolder, manifestPath) {
76
- var _a, _b;
77
39
  const paths = spec.paths;
78
40
  const commands = [];
79
41
  const warnings = [];
@@ -87,66 +49,15 @@ async function generateCommands(spec, adaptiveCardFolder, manifestPath) {
87
49
  if (method === constants_1.ConstantString.PostMethod || method === constants_1.ConstantString.GetMethod) {
88
50
  const operationItem = operations[method];
89
51
  if (operationItem) {
90
- const requiredParams = [];
91
- const optionalParams = [];
92
- const paramObject = operationItem.parameters;
93
- if (paramObject) {
94
- paramObject.forEach((param) => {
95
- var _a;
96
- const parameter = {
97
- name: param.name,
98
- title: utils_1.updateFirstLetter(param.name),
99
- description: (_a = param.description) !== null && _a !== void 0 ? _a : "",
100
- };
101
- const schema = param.schema;
102
- if (param.in !== "header" && param.in !== "cookie") {
103
- if (param.required && (schema === null || schema === void 0 ? void 0 : schema.default) === undefined) {
104
- requiredParams.push(parameter);
105
- }
106
- else {
107
- optionalParams.push(parameter);
108
- }
109
- }
110
- });
111
- }
112
- if (operationItem.requestBody) {
113
- const requestBody = operationItem.requestBody;
114
- const requestJson = requestBody.content["application/json"];
115
- if (Object.keys(requestJson).length !== 0) {
116
- const schema = requestJson.schema;
117
- const [requiredP, optionalP] = generateParametersFromSchema(schema, "requestBody", requestBody.required);
118
- requiredParams.push(...requiredP);
119
- optionalParams.push(...optionalP);
120
- }
52
+ const [command, warning] = utils_1.parseApiInfo(operationItem);
53
+ const adaptiveCardPath = path_1.default.join(adaptiveCardFolder, command.id + ".json");
54
+ command.apiResponseRenderingTemplateFile = (await fs_extra_1.default.pathExists(adaptiveCardPath))
55
+ ? getRelativePath(manifestPath, adaptiveCardPath)
56
+ : "";
57
+ if (warning) {
58
+ warnings.push(warning);
121
59
  }
122
- const operationId = operationItem.operationId;
123
- const adaptiveCardPath = path_1.default.join(adaptiveCardFolder, operationId + ".json");
124
- const parameters = [];
125
- if (requiredParams.length != 0) {
126
- parameters.push(...requiredParams);
127
- }
128
- else {
129
- parameters.push(optionalParams[0]);
130
- }
131
- const command = {
132
- context: ["compose"],
133
- type: "query",
134
- title: (_a = operationItem.summary) !== null && _a !== void 0 ? _a : "",
135
- id: operationId,
136
- parameters: parameters,
137
- description: (_b = operationItem.description) !== null && _b !== void 0 ? _b : "",
138
- apiResponseRenderingTemplateFile: (await fs_extra_1.default.pathExists(adaptiveCardPath))
139
- ? utils_1.getRelativePath(manifestPath, adaptiveCardPath)
140
- : "",
141
- };
142
60
  commands.push(command);
143
- if (requiredParams.length === 0 && optionalParams.length > 1) {
144
- warnings.push({
145
- type: interfaces_1.WarningType.OperationOnlyContainsOptionalParam,
146
- content: util_1.format(constants_1.ConstantString.OperationOnlyContainsOptionalParam, operationId),
147
- data: operationId,
148
- });
149
- }
150
61
  }
151
62
  }
152
63
  }
@@ -156,4 +67,9 @@ async function generateCommands(spec, adaptiveCardFolder, manifestPath) {
156
67
  return [commands, warnings];
157
68
  }
158
69
  exports.generateCommands = generateCommands;
70
+ function getRelativePath(from, to) {
71
+ const relativePath = path_1.default.relative(path_1.default.dirname(from), to);
72
+ return path_1.default.normalize(relativePath).replace(/\\/g, "/");
73
+ }
74
+ exports.getRelativePath = getRelativePath;
159
75
  //# sourceMappingURL=manifestUpdater.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifestUpdater.js","sourceRoot":"","sources":["../../../src/common/spec-parser/manifestUpdater.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifestUpdater.js","sourceRoot":"","sources":["../../../src/common/spec-parser/manifestUpdater.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { OpenAPIV3 } from "openapi-types";
2
- export declare function specFilter(filter: string[], unResolveSpec: OpenAPIV3.Document, resolvedSpec: OpenAPIV3.Document): OpenAPIV3.Document;
2
+ export declare function specFilter(filter: string[], unResolveSpec: OpenAPIV3.Document, resolvedSpec: OpenAPIV3.Document, allowMissingId: boolean): OpenAPIV3.Document;
3
3
  //# sourceMappingURL=specFilter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"specFilter.d.ts","sourceRoot":"","sources":["../../../src/common/spec-parser/specFilter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAM1C,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EAAE,EAChB,aAAa,EAAE,SAAS,CAAC,QAAQ,EACjC,YAAY,EAAE,SAAS,CAAC,QAAQ,GAC/B,SAAS,CAAC,QAAQ,CAkCpB"}
1
+ {"version":3,"file":"specFilter.d.ts","sourceRoot":"","sources":["../../../src/common/spec-parser/specFilter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAM1C,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EAAE,EAChB,aAAa,EAAE,SAAS,CAAC,QAAQ,EACjC,YAAY,EAAE,SAAS,CAAC,QAAQ,EAChC,cAAc,EAAE,OAAO,GACtB,SAAS,CAAC,QAAQ,CAkCpB"}
@@ -7,14 +7,14 @@ const utils_1 = require("./utils");
7
7
  const specParserError_1 = require("./specParserError");
8
8
  const interfaces_1 = require("./interfaces");
9
9
  const constants_1 = require("./constants");
10
- function specFilter(filter, unResolveSpec, resolvedSpec) {
10
+ function specFilter(filter, unResolveSpec, resolvedSpec, allowMissingId) {
11
11
  try {
12
12
  const newSpec = Object.assign({}, unResolveSpec);
13
13
  const newPaths = {};
14
14
  for (const filterItem of filter) {
15
15
  const [method, path] = filterItem.split(" ");
16
16
  const methodName = method.toLowerCase();
17
- if (!utils_1.isSupportedApi(methodName, path, resolvedSpec)) {
17
+ if (!utils_1.isSupportedApi(methodName, path, resolvedSpec, allowMissingId)) {
18
18
  continue;
19
19
  }
20
20
  if (!newPaths[path]) {
@@ -1 +1 @@
1
- {"version":3,"file":"specFilter.js","sourceRoot":"","sources":["../../../src/common/spec-parser/specFilter.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,YAAY,CAAC;;;AAGb,mCAAiE;AACjE,uDAAoD;AACpD,6CAAyC;AACzC,2CAA6C;AAE7C,SAAgB,UAAU,CACxB,MAAgB,EAChB,aAAiC,EACjC,YAAgC;IAEhC,IAAI;QACF,MAAM,OAAO,qBAAQ,aAAa,CAAE,CAAC;QACrC,MAAM,QAAQ,GAA0B,EAAE,CAAC;QAC3C,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE;YAC/B,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAExC,IAAI,CAAC,sBAAc,CAAC,UAAU,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE;gBACnD,SAAS;aACV;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACnB,QAAQ,CAAC,IAAI,CAAC,qBAAQ,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAE,CAAC;gBAClD,KAAK,MAAM,CAAC,IAAI,0BAAc,CAAC,mBAAmB,EAAE;oBAClD,OAAQ,QAAQ,CAAC,IAAI,CAAS,CAAC,CAAC,CAAC,CAAC;iBACnC;aACF;YAEA,QAAQ,CAAC,IAAI,CAAS,CAAC,UAAU,CAAC,GAAI,aAAa,CAAC,KAAK,CAAC,IAAI,CAAS,CAAC,UAAU,CAAC,CAAC;YAErF,iCAAiC;YACjC,IAAI,CAAE,QAAQ,CAAC,IAAI,CAAS,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;gBACnD,QAAQ,CAAC,IAAI,CAAS,CAAC,UAAU,CAAC,CAAC,WAAW,GAAG,GAAG,UAAU,GAAG,8BAAsB,CACtF,IAAI,CACL,EAAE,CAAC;aACL;SACF;QAED,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;QACzB,OAAO,OAAO,CAAC;KAChB;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,iCAAe,CAAE,GAAa,CAAC,QAAQ,EAAE,EAAE,sBAAS,CAAC,gBAAgB,CAAC,CAAC;KAClF;AACH,CAAC;AAtCD,gCAsCC"}
1
+ {"version":3,"file":"specFilter.js","sourceRoot":"","sources":["../../../src/common/spec-parser/specFilter.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,YAAY,CAAC;;;AAGb,mCAAiE;AACjE,uDAAoD;AACpD,6CAAyC;AACzC,2CAA6C;AAE7C,SAAgB,UAAU,CACxB,MAAgB,EAChB,aAAiC,EACjC,YAAgC,EAChC,cAAuB;IAEvB,IAAI;QACF,MAAM,OAAO,qBAAQ,aAAa,CAAE,CAAC;QACrC,MAAM,QAAQ,GAA0B,EAAE,CAAC;QAC3C,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE;YAC/B,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAExC,IAAI,CAAC,sBAAc,CAAC,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,cAAc,CAAC,EAAE;gBACnE,SAAS;aACV;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACnB,QAAQ,CAAC,IAAI,CAAC,qBAAQ,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAE,CAAC;gBAClD,KAAK,MAAM,CAAC,IAAI,0BAAc,CAAC,mBAAmB,EAAE;oBAClD,OAAQ,QAAQ,CAAC,IAAI,CAAS,CAAC,CAAC,CAAC,CAAC;iBACnC;aACF;YAEA,QAAQ,CAAC,IAAI,CAAS,CAAC,UAAU,CAAC,GAAI,aAAa,CAAC,KAAK,CAAC,IAAI,CAAS,CAAC,UAAU,CAAC,CAAC;YAErF,iCAAiC;YACjC,IAAI,CAAE,QAAQ,CAAC,IAAI,CAAS,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;gBACnD,QAAQ,CAAC,IAAI,CAAS,CAAC,UAAU,CAAC,CAAC,WAAW,GAAG,GAAG,UAAU,GAAG,8BAAsB,CACtF,IAAI,CACL,EAAE,CAAC;aACL;SACF;QAED,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;QACzB,OAAO,OAAO,CAAC;KAChB;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,iCAAe,CAAE,GAAa,CAAC,QAAQ,EAAE,EAAE,sBAAS,CAAC,gBAAgB,CAAC,CAAC;KAClF;AACH,CAAC;AAvCD,gCAuCC"}
@@ -0,0 +1,51 @@
1
+ import SwaggerParser from "@apidevtools/swagger-parser";
2
+ import { OpenAPIV3 } from "openapi-types";
3
+ import { APIInfo, GenerateResult, ParseOptions, ValidateResult } from "./interfaces";
4
+ /**
5
+ * A class that parses an OpenAPI specification file and provides methods to validate, list, and generate artifacts.
6
+ */
7
+ export declare class SpecParser {
8
+ readonly pathOrSpec: string | OpenAPIV3.Document;
9
+ readonly parser: SwaggerParser;
10
+ readonly options: ParseOptions;
11
+ private apiMap;
12
+ private spec;
13
+ private unResolveSpec;
14
+ private isSwaggerFile;
15
+ private defaultOptions;
16
+ /**
17
+ * Creates a new instance of the SpecParser class.
18
+ * @param pathOrDoc The path to the OpenAPI specification file or the OpenAPI specification object.
19
+ * @param options The options for parsing the OpenAPI specification file.
20
+ */
21
+ constructor(pathOrDoc: string | OpenAPIV3.Document, options?: ParseOptions);
22
+ /**
23
+ * Validates the OpenAPI specification file and returns a validation result.
24
+ *
25
+ * @returns A validation result object that contains information about any errors or warnings in the specification file.
26
+ */
27
+ validate(): Promise<ValidateResult>;
28
+ listSupportedAPIInfo(): Promise<APIInfo[]>;
29
+ /**
30
+ * Lists all the OpenAPI operations in the specification file.
31
+ * @returns A string array that represents the HTTP method and path of each operation, such as ['GET /pets/{petId}', 'GET /user/{userId}']
32
+ * according to copilot plugin spec, only list get and post method without auth
33
+ */
34
+ list(): Promise<string[]>;
35
+ /**
36
+ * List all the OpenAPI operations in the specification file and return a map of operationId and operation path.
37
+ * @returns A map of operationId and operation path, such as [{'getPetById': 'GET /pets/{petId}'}, {'getUser': 'GET /user/{userId}'}]
38
+ */
39
+ listOperationMap(): Promise<Map<string, string>>;
40
+ /**
41
+ * Generates and update artifacts from the OpenAPI specification file. Generate Adaptive Cards, update Teams app manifest, and generate a new OpenAPI specification file.
42
+ * @param manifestPath A file path of the Teams app manifest file to update.
43
+ * @param filter An array of strings that represent the filters to apply when generating the artifacts. If filter is empty, it would process nothing.
44
+ * @param outputSpecPath File path of the new OpenAPI specification file to generate. If not specified or empty, no spec file will be generated.
45
+ * @param adaptiveCardFolder Folder path where the Adaptive Card files will be generated. If not specified or empty, Adaptive Card files will not be generated.
46
+ */
47
+ generate(manifestPath: string, filter: string[], outputSpecPath: string, adaptiveCardFolder: string, signal?: AbortSignal): Promise<GenerateResult>;
48
+ private loadSpec;
49
+ private getAllSupportedAPIs;
50
+ }
51
+ //# sourceMappingURL=specParser.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specParser.browser.d.ts","sourceRoot":"","sources":["../../../src/common/spec-parser/specParser.browser.ts"],"names":[],"mappings":"AAIA,OAAO,aAAa,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EACL,OAAO,EAEP,cAAc,EACd,YAAY,EACZ,cAAc,EAGf,MAAM,cAAc,CAAC;AAKtB;;GAEG;AACH,qBAAa,UAAU;IACrB,SAAgB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC;IACxD,SAAgB,MAAM,EAAE,aAAa,CAAC;IACtC,SAAgB,OAAO,EAAE,YAAY,CAAC;IAEtC,OAAO,CAAC,MAAM,CAA0D;IACxE,OAAO,CAAC,IAAI,CAAiC;IAC7C,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,aAAa,CAAsB;IAE3C,OAAO,CAAC,cAAc,CAGpB;IAEF;;;;OAIG;gBACS,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,YAAY;IAS1E;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IA6BnC,oBAAoB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAuChD;;;;OAIG;IAEG,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI/B;;;OAGG;IAEG,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAItD;;;;;;OAMG;IAEG,QAAQ,CACZ,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EAAE,EAChB,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,MAAM,EAC1B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC;YAIZ,QAAQ;IAYtB,OAAO,CAAC,mBAAmB;CAU5B"}
@@ -0,0 +1,144 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ "use strict";
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.SpecParser = void 0;
6
+ const tslib_1 = require("tslib");
7
+ const swagger_parser_1 = tslib_1.__importDefault(require("@apidevtools/swagger-parser"));
8
+ const interfaces_1 = require("./interfaces");
9
+ const specParserError_1 = require("./specParserError");
10
+ const utils_1 = require("./utils");
11
+ const constants_1 = require("./constants");
12
+ /**
13
+ * A class that parses an OpenAPI specification file and provides methods to validate, list, and generate artifacts.
14
+ */
15
+ class SpecParser {
16
+ /**
17
+ * Creates a new instance of the SpecParser class.
18
+ * @param pathOrDoc The path to the OpenAPI specification file or the OpenAPI specification object.
19
+ * @param options The options for parsing the OpenAPI specification file.
20
+ */
21
+ constructor(pathOrDoc, options) {
22
+ this.defaultOptions = {
23
+ allowMissingId: false,
24
+ allowSwagger: false,
25
+ };
26
+ this.pathOrSpec = pathOrDoc;
27
+ this.parser = new swagger_parser_1.default();
28
+ this.options = Object.assign(Object.assign({}, this.defaultOptions), (options !== null && options !== void 0 ? options : {}));
29
+ }
30
+ /**
31
+ * Validates the OpenAPI specification file and returns a validation result.
32
+ *
33
+ * @returns A validation result object that contains information about any errors or warnings in the specification file.
34
+ */
35
+ async validate() {
36
+ try {
37
+ try {
38
+ await this.loadSpec();
39
+ await this.parser.validate(this.spec);
40
+ }
41
+ catch (e) {
42
+ return {
43
+ status: interfaces_1.ValidationStatus.Error,
44
+ warnings: [],
45
+ errors: [{ type: interfaces_1.ErrorType.SpecNotValid, content: e.toString() }],
46
+ };
47
+ }
48
+ if (!this.options.allowSwagger && this.isSwaggerFile) {
49
+ return {
50
+ status: interfaces_1.ValidationStatus.Error,
51
+ warnings: [],
52
+ errors: [
53
+ { type: interfaces_1.ErrorType.SwaggerNotSupported, content: constants_1.ConstantString.SwaggerNotSupported },
54
+ ],
55
+ };
56
+ }
57
+ return utils_1.validateSpec(this.spec, this.parser, !!this.isSwaggerFile);
58
+ }
59
+ catch (err) {
60
+ throw new specParserError_1.SpecParserError(err.toString(), interfaces_1.ErrorType.ValidateFailed);
61
+ }
62
+ }
63
+ async listSupportedAPIInfo() {
64
+ try {
65
+ await this.loadSpec();
66
+ const apiMap = this.getAllSupportedAPIs(this.spec);
67
+ const apiInfos = [];
68
+ for (const key in apiMap) {
69
+ const pathObjectItem = apiMap[key];
70
+ const [method, path] = key.split(" ");
71
+ const operationId = pathObjectItem.operationId;
72
+ // In Browser environment, this api is by default not support api without operationId
73
+ if (!operationId) {
74
+ continue;
75
+ }
76
+ const [command, warning] = utils_1.parseApiInfo(pathObjectItem);
77
+ const apiInfo = {
78
+ method: method,
79
+ path: path,
80
+ title: command.title,
81
+ id: operationId,
82
+ parameters: command.parameters,
83
+ description: command.description,
84
+ };
85
+ if (warning) {
86
+ apiInfo.warning = warning;
87
+ }
88
+ apiInfos.push(apiInfo);
89
+ }
90
+ return apiInfos;
91
+ }
92
+ catch (err) {
93
+ throw new specParserError_1.SpecParserError(err.toString(), interfaces_1.ErrorType.listSupportedAPIInfoFailed);
94
+ }
95
+ }
96
+ /**
97
+ * Lists all the OpenAPI operations in the specification file.
98
+ * @returns A string array that represents the HTTP method and path of each operation, such as ['GET /pets/{petId}', 'GET /user/{userId}']
99
+ * according to copilot plugin spec, only list get and post method without auth
100
+ */
101
+ // eslint-disable-next-line @typescript-eslint/require-await
102
+ async list() {
103
+ throw new Error("Method not implemented.");
104
+ }
105
+ /**
106
+ * List all the OpenAPI operations in the specification file and return a map of operationId and operation path.
107
+ * @returns A map of operationId and operation path, such as [{'getPetById': 'GET /pets/{petId}'}, {'getUser': 'GET /user/{userId}'}]
108
+ */
109
+ // eslint-disable-next-line @typescript-eslint/require-await
110
+ async listOperationMap() {
111
+ throw new Error("Method not implemented.");
112
+ }
113
+ /**
114
+ * Generates and update artifacts from the OpenAPI specification file. Generate Adaptive Cards, update Teams app manifest, and generate a new OpenAPI specification file.
115
+ * @param manifestPath A file path of the Teams app manifest file to update.
116
+ * @param filter An array of strings that represent the filters to apply when generating the artifacts. If filter is empty, it would process nothing.
117
+ * @param outputSpecPath File path of the new OpenAPI specification file to generate. If not specified or empty, no spec file will be generated.
118
+ * @param adaptiveCardFolder Folder path where the Adaptive Card files will be generated. If not specified or empty, Adaptive Card files will not be generated.
119
+ */
120
+ // eslint-disable-next-line @typescript-eslint/require-await
121
+ async generate(manifestPath, filter, outputSpecPath, adaptiveCardFolder, signal) {
122
+ throw new Error("Method not implemented.");
123
+ }
124
+ async loadSpec() {
125
+ if (!this.spec) {
126
+ this.unResolveSpec = (await this.parser.parse(this.pathOrSpec));
127
+ if (!this.unResolveSpec.openapi && this.unResolveSpec.swagger === "2.0") {
128
+ this.isSwaggerFile = true;
129
+ }
130
+ const clonedUnResolveSpec = JSON.parse(JSON.stringify(this.unResolveSpec));
131
+ this.spec = (await this.parser.dereference(clonedUnResolveSpec));
132
+ }
133
+ }
134
+ getAllSupportedAPIs(spec) {
135
+ if (this.apiMap !== undefined) {
136
+ return this.apiMap;
137
+ }
138
+ const result = utils_1.listSupportedAPIs(spec, this.options.allowMissingId);
139
+ this.apiMap = result;
140
+ return result;
141
+ }
142
+ }
143
+ exports.SpecParser = SpecParser;
144
+ //# sourceMappingURL=specParser.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specParser.browser.js","sourceRoot":"","sources":["../../../src/common/spec-parser/specParser.browser.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAClC,YAAY,CAAC;;;;AAEb,yFAAwD;AAExD,6CAQsB;AACtB,uDAAoD;AACpD,mCAAwE;AACxE,2CAA6C;AAE7C;;GAEG;AACH,MAAa,UAAU;IAerB;;;;OAIG;IACH,YAAY,SAAsC,EAAE,OAAsB;QAVlE,mBAAc,GAAiB;YACrC,cAAc,EAAE,KAAK;YACrB,YAAY,EAAE,KAAK;SACpB,CAAC;QAQA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,wBAAa,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,mCACP,IAAI,CAAC,cAAc,GACnB,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC,CACnB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI;YACF,IAAI;gBACF,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;aACxC;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO;oBACL,MAAM,EAAE,6BAAgB,CAAC,KAAK;oBAC9B,QAAQ,EAAE,EAAE;oBACZ,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,sBAAS,CAAC,YAAY,EAAE,OAAO,EAAG,CAAW,CAAC,QAAQ,EAAE,EAAE,CAAC;iBAC7E,CAAC;aACH;YAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpD,OAAO;oBACL,MAAM,EAAE,6BAAgB,CAAC,KAAK;oBAC9B,QAAQ,EAAE,EAAE;oBACZ,MAAM,EAAE;wBACN,EAAE,IAAI,EAAE,sBAAS,CAAC,mBAAmB,EAAE,OAAO,EAAE,0BAAc,CAAC,mBAAmB,EAAE;qBACrF;iBACF,CAAC;aACH;YAED,OAAO,oBAAY,CAAC,IAAI,CAAC,IAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACpE;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,IAAI,iCAAe,CAAE,GAAa,CAAC,QAAQ,EAAE,EAAE,sBAAS,CAAC,cAAc,CAAC,CAAC;SAChF;IACH,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,IAAI;YACF,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;gBACxB,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBACnC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC;gBAE/C,qFAAqF;gBACrF,IAAI,CAAC,WAAW,EAAE;oBAChB,SAAS;iBACV;gBAED,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,oBAAY,CAAC,cAAc,CAAC,CAAC;gBAExD,MAAM,OAAO,GAAY;oBACvB,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,EAAE,EAAE,WAAW;oBACf,UAAU,EAAE,OAAO,CAAC,UAA0B;oBAC9C,WAAW,EAAE,OAAO,CAAC,WAAY;iBAClC,CAAC;gBAEF,IAAI,OAAO,EAAE;oBACX,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;iBAC3B;gBAED,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACxB;YAED,OAAO,QAAQ,CAAC;SACjB;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,IAAI,iCAAe,CAAE,GAAa,CAAC,QAAQ,EAAE,EAAE,sBAAS,CAAC,0BAA0B,CAAC,CAAC;SAC5F;IACH,CAAC;IAED;;;;OAIG;IACH,4DAA4D;IAC5D,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,4DAA4D;IAC5D,KAAK,CAAC,gBAAgB;QACpB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;OAMG;IACH,4DAA4D;IAC5D,KAAK,CAAC,QAAQ,CACZ,YAAoB,EACpB,MAAgB,EAChB,cAAsB,EACtB,kBAA0B,EAC1B,MAAoB;QAEpB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAuB,CAAC;YACtF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,IAAK,IAAI,CAAC,aAAqB,CAAC,OAAO,KAAK,KAAK,EAAE;gBAChF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;YAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YAC3E,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAuB,CAAC;SACxF;IACH,CAAC;IAEO,mBAAmB,CAAC,IAAwB;QAGlD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,OAAO,IAAI,CAAC,MAAM,CAAC;SACpB;QACD,MAAM,MAAM,GAAG,yBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,cAAe,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAjKD,gCAiKC"}