@typespec/http 0.44.0-dev.3 → 0.44.0-dev.5
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/src/lib.d.ts +2 -17
- package/dist/src/lib.d.ts.map +1 -1
- package/dist/src/lib.js +0 -6
- package/dist/src/lib.js.map +1 -1
- package/dist/src/responses.js +0 -10
- package/dist/src/responses.js.map +1 -1
- package/lib/auth.tsp +5 -0
- package/lib/http-decorators.tsp +2 -1
- package/lib/http.tsp +37 -0
- package/package.json +1 -1
package/dist/src/lib.d.ts
CHANGED
|
@@ -35,9 +35,6 @@ declare const httpLib: import("@typespec/compiler").TypeSpecLibrary<{
|
|
|
35
35
|
"content-type-string": {
|
|
36
36
|
readonly default: "contentType parameter must be a string literal or union of string literals";
|
|
37
37
|
};
|
|
38
|
-
"duplicate-response": {
|
|
39
|
-
readonly default: import("@typespec/compiler").CallableMessage<["contentType", "statusCode"]>;
|
|
40
|
-
};
|
|
41
38
|
"content-type-ignored": {
|
|
42
39
|
readonly default: "`Content-Type` header ignored because there is no body.";
|
|
43
40
|
};
|
|
@@ -63,7 +60,7 @@ declare const httpLib: import("@typespec/compiler").TypeSpecLibrary<{
|
|
|
63
60
|
readonly default: "A format must be specified for @query when type is an array. e.g. @query({format: \"multi\"})";
|
|
64
61
|
};
|
|
65
62
|
}, Record<string, any>>;
|
|
66
|
-
declare const reportDiagnostic: <C extends "http-verb-duplicate" | "http-verb-wrong-type" | "missing-path-param" | "optional-path-param" | "missing-server-param" | "duplicate-body" | "duplicate-route-decorator" | "operation-param-duplicate-type" | "duplicate-operation" | "status-code-invalid" | "content-type-string" | "
|
|
63
|
+
declare const reportDiagnostic: <C extends "http-verb-duplicate" | "http-verb-wrong-type" | "missing-path-param" | "optional-path-param" | "missing-server-param" | "duplicate-body" | "duplicate-route-decorator" | "operation-param-duplicate-type" | "duplicate-operation" | "status-code-invalid" | "content-type-string" | "content-type-ignored" | "no-routes" | "invalid-type-for-auth" | "shared-inconsistency" | "write-visibility-not-supported" | "multipart-model" | "header-format-required" | "query-format-required", M extends keyof {
|
|
67
64
|
"http-verb-duplicate": {
|
|
68
65
|
readonly default: import("@typespec/compiler").CallableMessage<["entityName"]>;
|
|
69
66
|
};
|
|
@@ -100,9 +97,6 @@ declare const reportDiagnostic: <C extends "http-verb-duplicate" | "http-verb-wr
|
|
|
100
97
|
"content-type-string": {
|
|
101
98
|
readonly default: "contentType parameter must be a string literal or union of string literals";
|
|
102
99
|
};
|
|
103
|
-
"duplicate-response": {
|
|
104
|
-
readonly default: import("@typespec/compiler").CallableMessage<["contentType", "statusCode"]>;
|
|
105
|
-
};
|
|
106
100
|
"content-type-ignored": {
|
|
107
101
|
readonly default: "`Content-Type` header ignored because there is no body.";
|
|
108
102
|
};
|
|
@@ -164,9 +158,6 @@ declare const reportDiagnostic: <C extends "http-verb-duplicate" | "http-verb-wr
|
|
|
164
158
|
"content-type-string": {
|
|
165
159
|
readonly default: "contentType parameter must be a string literal or union of string literals";
|
|
166
160
|
};
|
|
167
|
-
"duplicate-response": {
|
|
168
|
-
readonly default: import("@typespec/compiler").CallableMessage<["contentType", "statusCode"]>;
|
|
169
|
-
};
|
|
170
161
|
"content-type-ignored": {
|
|
171
162
|
readonly default: "`Content-Type` header ignored because there is no body.";
|
|
172
163
|
};
|
|
@@ -191,7 +182,7 @@ declare const reportDiagnostic: <C extends "http-verb-duplicate" | "http-verb-wr
|
|
|
191
182
|
"query-format-required": {
|
|
192
183
|
readonly default: "A format must be specified for @query when type is an array. e.g. @query({format: \"multi\"})";
|
|
193
184
|
};
|
|
194
|
-
}, C, M>) => void, createDiagnostic: <C extends "http-verb-duplicate" | "http-verb-wrong-type" | "missing-path-param" | "optional-path-param" | "missing-server-param" | "duplicate-body" | "duplicate-route-decorator" | "operation-param-duplicate-type" | "duplicate-operation" | "status-code-invalid" | "content-type-string" | "
|
|
185
|
+
}, C, M>) => void, createDiagnostic: <C extends "http-verb-duplicate" | "http-verb-wrong-type" | "missing-path-param" | "optional-path-param" | "missing-server-param" | "duplicate-body" | "duplicate-route-decorator" | "operation-param-duplicate-type" | "duplicate-operation" | "status-code-invalid" | "content-type-string" | "content-type-ignored" | "no-routes" | "invalid-type-for-auth" | "shared-inconsistency" | "write-visibility-not-supported" | "multipart-model" | "header-format-required" | "query-format-required", M extends keyof {
|
|
195
186
|
"http-verb-duplicate": {
|
|
196
187
|
readonly default: import("@typespec/compiler").CallableMessage<["entityName"]>;
|
|
197
188
|
};
|
|
@@ -228,9 +219,6 @@ declare const reportDiagnostic: <C extends "http-verb-duplicate" | "http-verb-wr
|
|
|
228
219
|
"content-type-string": {
|
|
229
220
|
readonly default: "contentType parameter must be a string literal or union of string literals";
|
|
230
221
|
};
|
|
231
|
-
"duplicate-response": {
|
|
232
|
-
readonly default: import("@typespec/compiler").CallableMessage<["contentType", "statusCode"]>;
|
|
233
|
-
};
|
|
234
222
|
"content-type-ignored": {
|
|
235
223
|
readonly default: "`Content-Type` header ignored because there is no body.";
|
|
236
224
|
};
|
|
@@ -292,9 +280,6 @@ declare const reportDiagnostic: <C extends "http-verb-duplicate" | "http-verb-wr
|
|
|
292
280
|
"content-type-string": {
|
|
293
281
|
readonly default: "contentType parameter must be a string literal or union of string literals";
|
|
294
282
|
};
|
|
295
|
-
"duplicate-response": {
|
|
296
|
-
readonly default: import("@typespec/compiler").CallableMessage<["contentType", "statusCode"]>;
|
|
297
|
-
};
|
|
298
283
|
"content-type-ignored": {
|
|
299
284
|
readonly default: "`Content-Type` header ignored because there is no body.";
|
|
300
285
|
};
|
package/dist/src/lib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAiIA,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAAuC,CAAC;AACrD,QAAA,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAE,iBAAiB,0BAAY,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CAAC"}
|
package/dist/src/lib.js
CHANGED
|
@@ -71,12 +71,6 @@ const libDefinition = {
|
|
|
71
71
|
default: "contentType parameter must be a string literal or union of string literals",
|
|
72
72
|
},
|
|
73
73
|
},
|
|
74
|
-
"duplicate-response": {
|
|
75
|
-
severity: "error",
|
|
76
|
-
messages: {
|
|
77
|
-
default: paramMessage `Multiple return types for content type ${"contentType"} and status code ${"statusCode"}`,
|
|
78
|
-
},
|
|
79
|
-
},
|
|
80
74
|
"content-type-ignored": {
|
|
81
75
|
severity: "warning",
|
|
82
76
|
messages: {
|
package/dist/src/lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEzE,MAAM,aAAa,GAAG;IACpB,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE;QACX,qBAAqB,EAAE;YACrB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,gCAAgC,YAAY,EAAE;aACpE;SACF;QACD,sBAAsB,EAAE;YACtB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,eAAe,MAAM,SAAS,YAAY,EAAE;aAClE;SACF;QACD,oBAAoB,EAAE;YACpB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,2BAA2B,OAAO,uCAAuC;aAC/F;SACF;QACD,qBAAqB,EAAE;YACrB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,mBAAmB,WAAW,uBAAuB;aAC3E;SACF;QACD,sBAAsB,EAAE;YACtB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,kCAAkC,OAAO,wCAAwC;aACvG;SACF;QACD,gBAAgB,EAAE;YAChB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,kDAAkD;gBAC3D,oBAAoB,EAClB,4FAA4F;gBAC9F,kBAAkB,EAChB,iGAAiG;aACpG;SACF;QACD,2BAA2B,EAAE;YAC3B,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,SAAS,EAAE,sEAAsE;aAClF;SACF;QACD,gCAAgC,EAAE;YAChC,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,SAAS,WAAW,yBAAyB,OAAO,GAAG;aAC7E;SACF;QACD,qBAAqB,EAAE;YACrB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,wBAAwB,eAAe,gBAAgB,MAAM,IAAI,MAAM,IAAI;aACjG;SACF;QACD,qBAAqB,EAAE;YACrB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EACL,6FAA6F;gBAC/F,KAAK,EAAE,iEAAiE;aACzE;SACF;QACD,qBAAqB,EAAE;YACrB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,4EAA4E;aACtF;SACF;QACD,
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"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"}
|
package/dist/src/responses.js
CHANGED
|
@@ -62,16 +62,6 @@ function processResponseType(program, diagnostics, responses, responseType) {
|
|
|
62
62
|
description: getResponseDescription(program, responseType, statusCode, bodyType),
|
|
63
63
|
responses: [],
|
|
64
64
|
};
|
|
65
|
-
// check for duplicates
|
|
66
|
-
for (const contentType of contentTypes) {
|
|
67
|
-
if (response.responses.find((x) => { var _a; return (_a = x.body) === null || _a === void 0 ? void 0 : _a.contentTypes.includes(contentType); })) {
|
|
68
|
-
diagnostics.add(createDiagnostic({
|
|
69
|
-
code: "duplicate-response",
|
|
70
|
-
format: { statusCode: statusCode.toString(), contentType },
|
|
71
|
-
target: responseType,
|
|
72
|
-
}));
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
65
|
if (bodyType !== undefined) {
|
|
76
66
|
response.responses.push({ body: { contentTypes: contentTypes, type: bodyType }, headers });
|
|
77
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses.js","sourceRoot":"","sources":["../../src/responses.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"responses.js","sourceRoot":"","sources":["../../src/responses.ts"],"names":[],"mappings":"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"}
|
package/lib/auth.tsp
CHANGED
|
@@ -61,6 +61,7 @@ enum ApiKeyLocation {
|
|
|
61
61
|
|
|
62
62
|
/**
|
|
63
63
|
* An API key is a token that a client provides when making API calls. The key can be sent in the query string:
|
|
64
|
+
*
|
|
64
65
|
* ```
|
|
65
66
|
* GET /something?api_key=abcdef12345
|
|
66
67
|
* ```
|
|
@@ -78,6 +79,9 @@ enum ApiKeyLocation {
|
|
|
78
79
|
* GET /something HTTP/1.1
|
|
79
80
|
* Cookie: X-API-KEY=abcdef12345
|
|
80
81
|
* ```
|
|
82
|
+
*
|
|
83
|
+
* @template TLocation The location of the API key
|
|
84
|
+
* @template TName The name of the API key
|
|
81
85
|
*/
|
|
82
86
|
model ApiKeyAuth<TLocation extends ApiKeyLocation, TName extends string> {
|
|
83
87
|
@doc("API key authentication")
|
|
@@ -95,6 +99,7 @@ model ApiKeyAuth<TLocation extends ApiKeyLocation, TName extends string> {
|
|
|
95
99
|
* OAuth relies on authentication scenarios called flows, which allow the resource owner (user) to share the protected content from the resource server without sharing their credentials.
|
|
96
100
|
* For that purpose, an OAuth 2.0 server issues access tokens that the client applications can use to access protected resources on behalf of the resource owner.
|
|
97
101
|
* For more information about OAuth 2.0, see oauth.net and RFC 6749.
|
|
102
|
+
* @template TFlows The list of supported OAuth2 flows
|
|
98
103
|
*/
|
|
99
104
|
model OAuth2Auth<TFlows extends OAuth2Flow[]> {
|
|
100
105
|
@doc("OAuth2 authentication")
|
package/lib/http-decorators.tsp
CHANGED
|
@@ -202,6 +202,7 @@ extern dec useAuth(target: Namespace, auth: object | Union | object[]);
|
|
|
202
202
|
|
|
203
203
|
/**
|
|
204
204
|
* Specify if inapplicable metadata should be included in the payload for the given entity.
|
|
205
|
+
* @param value If true, inapplicable metadata will be included in the payload.
|
|
205
206
|
*/
|
|
206
207
|
extern dec includeInapplicableMetadataInPayload(target: unknown, value: boolean);
|
|
207
208
|
|
|
@@ -215,7 +216,7 @@ extern dec includeInapplicableMetadataInPayload(target: unknown, value: boolean)
|
|
|
215
216
|
* `@route` can only be applied to operations, namespaces, and interfaces.
|
|
216
217
|
*
|
|
217
218
|
* @param path Relative route path. Cannot include query parameters.
|
|
218
|
-
* @param
|
|
219
|
+
* @param options Set of parameters used to configure the route. Supports `{shared: true}` which indicates that the route may be shared by several operations.
|
|
219
220
|
*
|
|
220
221
|
* @example
|
|
221
222
|
*
|
package/lib/http.tsp
CHANGED
|
@@ -30,6 +30,9 @@ model Body<T> {
|
|
|
30
30
|
body: T;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
/**
|
|
34
|
+
* The Location header contains the URL where the status of the long running operation can be checked.
|
|
35
|
+
*/
|
|
33
36
|
model LocationHeader {
|
|
34
37
|
@doc("The Location header contains the URL where the status of the long running operation can be checked.")
|
|
35
38
|
@header
|
|
@@ -40,18 +43,52 @@ model LocationHeader {
|
|
|
40
43
|
// to update the default descriptions for these status codes. This ensures
|
|
41
44
|
// that we get consistent emit between different ways to spell the same
|
|
42
45
|
// responses in TypeSpec.
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* The request has succeeded.
|
|
49
|
+
*/
|
|
43
50
|
model OkResponse is Response<200>;
|
|
51
|
+
/**
|
|
52
|
+
* The request has succeeded and a new resource has been created as a result.
|
|
53
|
+
*/
|
|
44
54
|
model CreatedResponse is Response<201>;
|
|
55
|
+
/**
|
|
56
|
+
* The request has been accepted for processing, but processing has not yet completed.
|
|
57
|
+
*/
|
|
45
58
|
model AcceptedResponse is Response<202>;
|
|
59
|
+
/**
|
|
60
|
+
* There is no content to send for this request, but the headers may be useful.
|
|
61
|
+
*/
|
|
46
62
|
model NoContentResponse is Response<204>;
|
|
63
|
+
/**
|
|
64
|
+
* The URL of the requested resource has been changed permanently. The new URL is given in the response.
|
|
65
|
+
*/
|
|
47
66
|
model MovedResponse is Response<301> {
|
|
48
67
|
...LocationHeader;
|
|
49
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* The client has made a conditional request and the resource has not been modified.
|
|
71
|
+
*/
|
|
50
72
|
model NotModifiedResponse is Response<304>;
|
|
73
|
+
/**
|
|
74
|
+
* The server could not understand the request due to invalid syntax.
|
|
75
|
+
*/
|
|
51
76
|
model BadRequestResponse is Response<400>;
|
|
77
|
+
/**
|
|
78
|
+
* Access is unauthorized.
|
|
79
|
+
*/
|
|
52
80
|
model UnauthorizedResponse is Response<401>;
|
|
81
|
+
/**
|
|
82
|
+
* Access is forbidden.
|
|
83
|
+
*/
|
|
53
84
|
model ForbiddenResponse is Response<403>;
|
|
85
|
+
/**
|
|
86
|
+
* The server cannot find the requested resource.
|
|
87
|
+
*/
|
|
54
88
|
model NotFoundResponse is Response<404>;
|
|
89
|
+
/**
|
|
90
|
+
* The request conflicts with the current state of the server.
|
|
91
|
+
*/
|
|
55
92
|
model ConflictResponse is Response<409>;
|
|
56
93
|
|
|
57
94
|
/**
|