@microsoft/m365-spec-parser 0.1.1-alpha.169a2b37a.0 → 0.1.1-alpha.2f5decfcc.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/dist/index.esm2017.js +62 -42
- package/dist/index.esm2017.js.map +1 -1
- package/dist/index.esm2017.mjs +90 -63
- package/dist/index.esm2017.mjs.map +1 -1
- package/dist/index.esm5.js +62 -42
- package/dist/index.esm5.js.map +1 -1
- package/dist/index.node.cjs.js +90 -63
- package/dist/index.node.cjs.js.map +1 -1
- package/dist/src/constants.d.ts +2 -1
- package/dist/src/interfaces.d.ts +18 -20
- package/dist/src/manifestUpdater.d.ts +2 -2
- package/dist/src/specParser.d.ts +1 -1
- package/dist/src/utils.d.ts +12 -9
- package/package.json +3 -3
package/dist/src/interfaces.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { IParameter } from "@microsoft/teams-manifest";
|
|
1
2
|
import { OpenAPIV3 } from "openapi-types";
|
|
2
3
|
/**
|
|
3
4
|
* An interface that represents the result of validating an OpenAPI specification file.
|
|
@@ -67,7 +68,7 @@ export declare enum ErrorType {
|
|
|
67
68
|
NoExtraAPICanBeAdded = "no-extra-api-can-be-added",
|
|
68
69
|
ResolveServerUrlFailed = "resolve-server-url-failed",
|
|
69
70
|
SwaggerNotSupported = "swagger-not-supported",
|
|
70
|
-
|
|
71
|
+
MultipleAuthNotSupported = "multiple-auth-not-supported",
|
|
71
72
|
ListFailed = "list-failed",
|
|
72
73
|
listSupportedAPIInfoFailed = "list-supported-api-info-failed",
|
|
73
74
|
FilterSpecFailed = "filter-spec-failed",
|
|
@@ -135,18 +136,6 @@ export interface WrappedAdaptiveCard {
|
|
|
135
136
|
responseCardTemplate: AdaptiveCard;
|
|
136
137
|
previewCardTemplate: PreviewCardTemplate;
|
|
137
138
|
}
|
|
138
|
-
export interface ChoicesItem {
|
|
139
|
-
title: string;
|
|
140
|
-
value: string;
|
|
141
|
-
}
|
|
142
|
-
export interface Parameter {
|
|
143
|
-
name: string;
|
|
144
|
-
title: string;
|
|
145
|
-
description: string;
|
|
146
|
-
inputType?: "text" | "textarea" | "number" | "date" | "time" | "toggle" | "choiceset";
|
|
147
|
-
value?: string;
|
|
148
|
-
choices?: ChoicesItem[];
|
|
149
|
-
}
|
|
150
139
|
export interface CheckParamResult {
|
|
151
140
|
requiredNum: number;
|
|
152
141
|
optionalNum: number;
|
|
@@ -166,11 +155,15 @@ export interface ParseOptions {
|
|
|
166
155
|
*/
|
|
167
156
|
allowAPIKeyAuth?: boolean;
|
|
168
157
|
/**
|
|
169
|
-
* If true, the parser will allow
|
|
158
|
+
* If true, the parser will allow Bearer Token authentication in the spec file.
|
|
159
|
+
*/
|
|
160
|
+
allowBearerTokenAuth?: boolean;
|
|
161
|
+
/**
|
|
162
|
+
* If true, the parser will allow multiple parameters in the spec file. Teams AI project would ignore this parameters and always true
|
|
170
163
|
*/
|
|
171
164
|
allowMultipleParameters?: boolean;
|
|
172
165
|
/**
|
|
173
|
-
* If true, the parser will allow OAuth2 authentication in the spec file.
|
|
166
|
+
* If true, the parser will allow OAuth2 authentication in the spec file. Currently only support OAuth2 with auth code flow.
|
|
174
167
|
*/
|
|
175
168
|
allowOauth2?: boolean;
|
|
176
169
|
/**
|
|
@@ -193,17 +186,22 @@ export interface APIInfo {
|
|
|
193
186
|
path: string;
|
|
194
187
|
title: string;
|
|
195
188
|
id: string;
|
|
196
|
-
parameters:
|
|
189
|
+
parameters: IParameter[];
|
|
197
190
|
description: string;
|
|
198
191
|
warning?: WarningResult;
|
|
199
192
|
}
|
|
200
|
-
export interface
|
|
193
|
+
export interface ListAPIInfo {
|
|
201
194
|
api: string;
|
|
202
195
|
server: string;
|
|
203
196
|
operationId: string;
|
|
204
|
-
auth?:
|
|
197
|
+
auth?: AuthInfo;
|
|
198
|
+
}
|
|
199
|
+
export interface ListAPIResult {
|
|
200
|
+
allAPICount: number;
|
|
201
|
+
validAPICount: number;
|
|
202
|
+
validAPIs: ListAPIInfo[];
|
|
205
203
|
}
|
|
206
|
-
export interface
|
|
207
|
-
|
|
204
|
+
export interface AuthInfo {
|
|
205
|
+
authScheme: OpenAPIV3.SecuritySchemeObject;
|
|
208
206
|
name: string;
|
|
209
207
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { OpenAPIV3 } from "openapi-types";
|
|
2
|
-
import { ParseOptions, WarningResult } from "./interfaces";
|
|
2
|
+
import { AuthInfo, ParseOptions, WarningResult } from "./interfaces";
|
|
3
3
|
import { IMessagingExtensionCommand, TeamsAppManifest, PluginManifestSchema, FunctionParameter } from "@microsoft/teams-manifest";
|
|
4
4
|
export declare class ManifestUpdater {
|
|
5
5
|
static updateManifestWithAiPlugin(manifestPath: string, outputSpecPath: string, apiPluginFilePath: string, spec: OpenAPIV3.Document, options: ParseOptions): Promise<[TeamsAppManifest, PluginManifestSchema]>;
|
|
6
6
|
static updateManifestDescription(manifest: TeamsAppManifest, spec: OpenAPIV3.Document): void;
|
|
7
7
|
static mapOpenAPISchemaToFuncParam(schema: OpenAPIV3.SchemaObject, method: string, pathUrl: string): FunctionParameter;
|
|
8
8
|
static generatePluginManifestSchema(spec: OpenAPIV3.Document, specRelativePath: string, options: ParseOptions): PluginManifestSchema;
|
|
9
|
-
static updateManifest(manifestPath: string, outputSpecPath: string, spec: OpenAPIV3.Document, options: ParseOptions, adaptiveCardFolder?: string,
|
|
9
|
+
static updateManifest(manifestPath: string, outputSpecPath: string, spec: OpenAPIV3.Document, options: ParseOptions, adaptiveCardFolder?: string, authInfo?: AuthInfo): Promise<[TeamsAppManifest, WarningResult[]]>;
|
|
10
10
|
static generateCommands(spec: OpenAPIV3.Document, manifestPath: string, options: ParseOptions, adaptiveCardFolder?: string): Promise<[IMessagingExtensionCommand[], WarningResult[]]>;
|
|
11
11
|
static getRelativePath(from: string, to: string): string;
|
|
12
12
|
}
|
package/dist/src/specParser.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export declare class SpecParser {
|
|
|
31
31
|
* @returns A string array that represents the HTTP method and path of each operation, such as ['GET /pets/{petId}', 'GET /user/{userId}']
|
|
32
32
|
* according to copilot plugin spec, only list get and post method without auth
|
|
33
33
|
*/
|
|
34
|
-
list(): Promise<ListAPIResult
|
|
34
|
+
list(): Promise<ListAPIResult>;
|
|
35
35
|
/**
|
|
36
36
|
* Generate specs according to the filters.
|
|
37
37
|
* @param filter An array of strings that represent the filters to apply when generating the artifacts. If filter is empty, it would process nothing.
|
package/dist/src/utils.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { OpenAPIV3 } from "openapi-types";
|
|
2
2
|
import SwaggerParser from "@apidevtools/swagger-parser";
|
|
3
|
-
import {
|
|
4
|
-
import { IMessagingExtensionCommand } from "@microsoft/teams-manifest";
|
|
3
|
+
import { AuthInfo, CheckParamResult, ErrorResult, ParseOptions, ValidateResult, WarningResult } from "./interfaces";
|
|
4
|
+
import { IMessagingExtensionCommand, IParameter } from "@microsoft/teams-manifest";
|
|
5
5
|
export declare class Utils {
|
|
6
6
|
static hasNestedObjectInSchema(schema: OpenAPIV3.SchemaObject): boolean;
|
|
7
7
|
static checkParameters(paramObject: OpenAPIV3.ParameterObject[], isCopilot: boolean): CheckParamResult;
|
|
8
8
|
static checkPostBody(schema: OpenAPIV3.SchemaObject, isRequired?: boolean, isCopilot?: boolean): CheckParamResult;
|
|
9
|
+
static containMultipleMediaTypes(bodyObject: OpenAPIV3.RequestBodyObject | OpenAPIV3.ResponseObject): boolean;
|
|
9
10
|
/**
|
|
10
11
|
* Checks if the given API is supported.
|
|
11
12
|
* @param {string} method - The HTTP method of the API.
|
|
@@ -21,20 +22,21 @@ export declare class Utils {
|
|
|
21
22
|
* 6. only support request body with “application/json” content type
|
|
22
23
|
*/
|
|
23
24
|
static isSupportedApi(method: string, path: string, spec: OpenAPIV3.Document, options: ParseOptions): boolean;
|
|
24
|
-
static isSupportedAuth(
|
|
25
|
-
static
|
|
26
|
-
static
|
|
27
|
-
static
|
|
25
|
+
static isSupportedAuth(authSchemeArray: AuthInfo[][], options: ParseOptions): boolean;
|
|
26
|
+
static isBearerTokenAuth(authScheme: OpenAPIV3.SecuritySchemeObject): boolean;
|
|
27
|
+
static isAPIKeyAuth(authScheme: OpenAPIV3.SecuritySchemeObject): boolean;
|
|
28
|
+
static isOAuthWithAuthCodeFlow(authScheme: OpenAPIV3.SecuritySchemeObject): boolean;
|
|
29
|
+
static getAuthArray(securities: OpenAPIV3.SecurityRequirementObject[] | undefined, spec: OpenAPIV3.Document): AuthInfo[][];
|
|
28
30
|
static updateFirstLetter(str: string): string;
|
|
29
|
-
static getResponseJson(operationObject: OpenAPIV3.OperationObject | undefined): OpenAPIV3.MediaTypeObject;
|
|
31
|
+
static getResponseJson(operationObject: OpenAPIV3.OperationObject | undefined, isTeamsAiProject?: boolean): OpenAPIV3.MediaTypeObject;
|
|
30
32
|
static convertPathToCamelCase(path: string): string;
|
|
31
33
|
static getUrlProtocol(urlString: string): string | undefined;
|
|
32
34
|
static resolveServerUrl(url: string): string;
|
|
33
35
|
static checkServerUrl(servers: OpenAPIV3.ServerObject[]): ErrorResult[];
|
|
34
36
|
static validateServer(spec: OpenAPIV3.Document, options: ParseOptions): ErrorResult[];
|
|
35
37
|
static isWellKnownName(name: string, wellknownNameList: string[]): boolean;
|
|
36
|
-
static generateParametersFromSchema(schema: OpenAPIV3.SchemaObject, name: string, allowMultipleParameters: boolean, isRequired?: boolean): [
|
|
37
|
-
static updateParameterWithInputType(schema: OpenAPIV3.SchemaObject, param:
|
|
38
|
+
static generateParametersFromSchema(schema: OpenAPIV3.SchemaObject, name: string, allowMultipleParameters: boolean, isRequired?: boolean): [IParameter[], IParameter[]];
|
|
39
|
+
static updateParameterWithInputType(schema: OpenAPIV3.SchemaObject, param: IParameter): void;
|
|
38
40
|
static parseApiInfo(operationItem: OpenAPIV3.OperationObject, options: ParseOptions): [IMessagingExtensionCommand, WarningResult | undefined];
|
|
39
41
|
static listSupportedAPIs(spec: OpenAPIV3.Document, options: ParseOptions): {
|
|
40
42
|
[key: string]: OpenAPIV3.OperationObject;
|
|
@@ -42,4 +44,5 @@ export declare class Utils {
|
|
|
42
44
|
static validateSpec(spec: OpenAPIV3.Document, parser: SwaggerParser, isSwaggerFile: boolean, options: ParseOptions): ValidateResult;
|
|
43
45
|
static format(str: string, ...args: string[]): string;
|
|
44
46
|
static getSafeRegistrationIdEnvName(authName: string): string;
|
|
47
|
+
static getAllAPICount(spec: OpenAPIV3.Document): number;
|
|
45
48
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microsoft/m365-spec-parser",
|
|
3
|
-
"version": "0.1.1-alpha.
|
|
3
|
+
"version": "0.1.1-alpha.2f5decfcc.0",
|
|
4
4
|
"description": "OpenAPI specification files Parser for M365 Apps",
|
|
5
5
|
"main": "dist/index.node.cjs.js",
|
|
6
6
|
"browser": "dist/index.esm2017.js",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"sideEffects": false,
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@apidevtools/swagger-parser": "^10.1.0",
|
|
42
|
-
"@microsoft/teams-manifest": "0.1.4-alpha.
|
|
42
|
+
"@microsoft/teams-manifest": "0.1.4-alpha.2f5decfcc.0",
|
|
43
43
|
"fs-extra": "^11.2.0",
|
|
44
44
|
"js-yaml": "^4.1.0",
|
|
45
45
|
"openapi-types": "^7.2.3",
|
|
@@ -148,5 +148,5 @@
|
|
|
148
148
|
"npx eslint --cache --fix --quiet"
|
|
149
149
|
]
|
|
150
150
|
},
|
|
151
|
-
"gitHead": "
|
|
151
|
+
"gitHead": "f45c01f9a70836de49671dc1e5a2ca6ac22eac8e"
|
|
152
152
|
}
|