@typespec/http 0.41.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/LICENSE +21 -0
- package/README.md +106 -0
- package/dist/src/content-types.d.ts +15 -0
- package/dist/src/content-types.d.ts.map +1 -0
- package/dist/src/content-types.js +42 -0
- package/dist/src/content-types.js.map +1 -0
- package/dist/src/decorators.d.ts +82 -0
- package/dist/src/decorators.d.ts.map +1 -0
- package/dist/src/decorators.js +513 -0
- package/dist/src/decorators.js.map +1 -0
- package/dist/src/index.d.ts +11 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +11 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/lib.d.ts +294 -0
- package/dist/src/lib.d.ts.map +1 -0
- package/dist/src/lib.js +121 -0
- package/dist/src/lib.js.map +1 -0
- package/dist/src/metadata.d.ts +129 -0
- package/dist/src/metadata.d.ts.map +1 -0
- package/dist/src/metadata.js +323 -0
- package/dist/src/metadata.js.map +1 -0
- package/dist/src/operations.d.ts +31 -0
- package/dist/src/operations.d.ts.map +1 -0
- package/dist/src/operations.js +162 -0
- package/dist/src/operations.js.map +1 -0
- package/dist/src/parameters.d.ts +4 -0
- package/dist/src/parameters.d.ts.map +1 -0
- package/dist/src/parameters.js +142 -0
- package/dist/src/parameters.js.map +1 -0
- package/dist/src/responses.d.ts +7 -0
- package/dist/src/responses.d.ts.map +1 -0
- package/dist/src/responses.js +186 -0
- package/dist/src/responses.js.map +1 -0
- package/dist/src/route.d.ts +23 -0
- package/dist/src/route.d.ts.map +1 -0
- package/dist/src/route.js +149 -0
- package/dist/src/route.js.map +1 -0
- package/dist/src/testing/index.d.ts +3 -0
- package/dist/src/testing/index.d.ts.map +1 -0
- package/dist/src/testing/index.js +8 -0
- package/dist/src/testing/index.js.map +1 -0
- package/dist/src/types.d.ts +254 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils.d.ts +8 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +11 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/src/validate.d.ts +3 -0
- package/dist/src/validate.d.ts.map +1 -0
- package/dist/src/validate.js +9 -0
- package/dist/src/validate.js.map +1 -0
- package/lib/auth.tsp +185 -0
- package/lib/http-decorators.tsp +206 -0
- package/lib/http.tsp +57 -0
- package/package.json +72 -0
|
@@ -0,0 +1,513 @@
|
|
|
1
|
+
import { createDiagnosticCollector, getDoc, setTypeSpecNamespace, typespecTypeToJson, validateDecoratorTarget, validateDecoratorUniqueOnNode, } from "@typespec/compiler";
|
|
2
|
+
import { createDiagnostic, createStateSymbol, reportDiagnostic } from "./lib.js";
|
|
3
|
+
import { setRoute } from "./route.js";
|
|
4
|
+
import { extractParamsFromPath } from "./utils.js";
|
|
5
|
+
export const namespace = "TypeSpec.Http";
|
|
6
|
+
const headerFieldsKey = createStateSymbol("header");
|
|
7
|
+
export function $header(context, entity, headerNameOrOptions) {
|
|
8
|
+
var _a, _b;
|
|
9
|
+
const options = {
|
|
10
|
+
type: "header",
|
|
11
|
+
name: entity.name.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase(),
|
|
12
|
+
};
|
|
13
|
+
if (headerNameOrOptions) {
|
|
14
|
+
if (typeof headerNameOrOptions === "string") {
|
|
15
|
+
options.name = headerNameOrOptions;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
const name = (_a = headerNameOrOptions.properties.get("name")) === null || _a === void 0 ? void 0 : _a.type;
|
|
19
|
+
if ((name === null || name === void 0 ? void 0 : name.kind) === "String") {
|
|
20
|
+
options.name = name.value;
|
|
21
|
+
}
|
|
22
|
+
const format = (_b = headerNameOrOptions.properties.get("format")) === null || _b === void 0 ? void 0 : _b.type;
|
|
23
|
+
if ((format === null || format === void 0 ? void 0 : format.kind) === "String") {
|
|
24
|
+
if (format.value === "csv") {
|
|
25
|
+
options.format = format.value;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
if (entity.type.kind === "Model" &&
|
|
31
|
+
entity.type.name === "Array" &&
|
|
32
|
+
options.format === undefined) {
|
|
33
|
+
options.format = "csv";
|
|
34
|
+
}
|
|
35
|
+
context.program.stateMap(headerFieldsKey).set(entity, options);
|
|
36
|
+
}
|
|
37
|
+
export function getHeaderFieldOptions(program, entity) {
|
|
38
|
+
return program.stateMap(headerFieldsKey).get(entity);
|
|
39
|
+
}
|
|
40
|
+
export function getHeaderFieldName(program, entity) {
|
|
41
|
+
var _a;
|
|
42
|
+
return (_a = getHeaderFieldOptions(program, entity)) === null || _a === void 0 ? void 0 : _a.name;
|
|
43
|
+
}
|
|
44
|
+
export function isHeader(program, entity) {
|
|
45
|
+
return program.stateMap(headerFieldsKey).has(entity);
|
|
46
|
+
}
|
|
47
|
+
const queryFieldsKey = createStateSymbol("query");
|
|
48
|
+
export function $query(context, entity, queryNameOrOptions) {
|
|
49
|
+
var _a, _b;
|
|
50
|
+
const options = {
|
|
51
|
+
type: "query",
|
|
52
|
+
name: entity.name,
|
|
53
|
+
};
|
|
54
|
+
if (queryNameOrOptions) {
|
|
55
|
+
if (typeof queryNameOrOptions === "string") {
|
|
56
|
+
options.name = queryNameOrOptions;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
const name = (_a = queryNameOrOptions.properties.get("name")) === null || _a === void 0 ? void 0 : _a.type;
|
|
60
|
+
if ((name === null || name === void 0 ? void 0 : name.kind) === "String") {
|
|
61
|
+
options.name = name.value;
|
|
62
|
+
}
|
|
63
|
+
const format = (_b = queryNameOrOptions.properties.get("format")) === null || _b === void 0 ? void 0 : _b.type;
|
|
64
|
+
if ((format === null || format === void 0 ? void 0 : format.kind) === "String") {
|
|
65
|
+
if (format.value === "multi" || format.value === "csv") {
|
|
66
|
+
options.format = format.value;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (entity.type.kind === "Model" &&
|
|
72
|
+
entity.type.name === "Array" &&
|
|
73
|
+
options.format === undefined) {
|
|
74
|
+
options.format = "multi";
|
|
75
|
+
}
|
|
76
|
+
context.program.stateMap(queryFieldsKey).set(entity, options);
|
|
77
|
+
}
|
|
78
|
+
export function getQueryParamOptions(program, entity) {
|
|
79
|
+
return program.stateMap(queryFieldsKey).get(entity);
|
|
80
|
+
}
|
|
81
|
+
export function getQueryParamName(program, entity) {
|
|
82
|
+
var _a;
|
|
83
|
+
return (_a = getQueryParamOptions(program, entity)) === null || _a === void 0 ? void 0 : _a.name;
|
|
84
|
+
}
|
|
85
|
+
export function isQueryParam(program, entity) {
|
|
86
|
+
return program.stateMap(queryFieldsKey).has(entity);
|
|
87
|
+
}
|
|
88
|
+
const pathFieldsKey = createStateSymbol("path");
|
|
89
|
+
export function $path(context, entity, paramName) {
|
|
90
|
+
const options = {
|
|
91
|
+
type: "path",
|
|
92
|
+
name: paramName !== null && paramName !== void 0 ? paramName : entity.name,
|
|
93
|
+
};
|
|
94
|
+
context.program.stateMap(pathFieldsKey).set(entity, options);
|
|
95
|
+
}
|
|
96
|
+
export function getPathParamOptions(program, entity) {
|
|
97
|
+
return program.stateMap(pathFieldsKey).get(entity);
|
|
98
|
+
}
|
|
99
|
+
export function getPathParamName(program, entity) {
|
|
100
|
+
var _a;
|
|
101
|
+
return (_a = getPathParamOptions(program, entity)) === null || _a === void 0 ? void 0 : _a.name;
|
|
102
|
+
}
|
|
103
|
+
export function isPathParam(program, entity) {
|
|
104
|
+
return program.stateMap(pathFieldsKey).has(entity);
|
|
105
|
+
}
|
|
106
|
+
const bodyFieldsKey = createStateSymbol("body");
|
|
107
|
+
export function $body(context, entity) {
|
|
108
|
+
context.program.stateSet(bodyFieldsKey).add(entity);
|
|
109
|
+
}
|
|
110
|
+
export function isBody(program, entity) {
|
|
111
|
+
return program.stateSet(bodyFieldsKey).has(entity);
|
|
112
|
+
}
|
|
113
|
+
const statusCodeKey = createStateSymbol("statusCode");
|
|
114
|
+
export function $statusCode(context, entity) {
|
|
115
|
+
context.program.stateSet(statusCodeKey).add(entity);
|
|
116
|
+
const codes = [];
|
|
117
|
+
if (entity.type.kind === "String") {
|
|
118
|
+
if (validStatusCode(context.program, entity.type.value, entity)) {
|
|
119
|
+
codes.push(entity.type.value);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
else if (entity.type.kind === "Number") {
|
|
123
|
+
if (validStatusCode(context.program, String(entity.type.value), entity)) {
|
|
124
|
+
codes.push(String(entity.type.value));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else if (entity.type.kind === "Union") {
|
|
128
|
+
for (const option of entity.type.options) {
|
|
129
|
+
if (option.kind === "String") {
|
|
130
|
+
if (validStatusCode(context.program, option.value, option)) {
|
|
131
|
+
codes.push(option.value);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
else if (option.kind === "Number") {
|
|
135
|
+
if (validStatusCode(context.program, String(option.value), option)) {
|
|
136
|
+
codes.push(String(option.value));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
reportDiagnostic(context.program, {
|
|
141
|
+
code: "status-code-invalid",
|
|
142
|
+
target: entity,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
else if (entity.type.kind === "TemplateParameter") {
|
|
148
|
+
// Ignore template parameters
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
reportDiagnostic(context.program, {
|
|
152
|
+
code: "status-code-invalid",
|
|
153
|
+
target: entity,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
setStatusCode(context.program, entity, codes);
|
|
157
|
+
}
|
|
158
|
+
export function setStatusCode(program, entity, codes) {
|
|
159
|
+
program.stateMap(statusCodeKey).set(entity, codes);
|
|
160
|
+
}
|
|
161
|
+
// Check status code value: 3 digits with first digit in [1-5]
|
|
162
|
+
// Issue a diagnostic if not valid
|
|
163
|
+
function validStatusCode(program, code, entity) {
|
|
164
|
+
const statusCodePatten = /[1-5][0-9][0-9]/;
|
|
165
|
+
if (code.match(statusCodePatten)) {
|
|
166
|
+
return true;
|
|
167
|
+
}
|
|
168
|
+
reportDiagnostic(program, {
|
|
169
|
+
code: "status-code-invalid",
|
|
170
|
+
target: entity,
|
|
171
|
+
messageId: "value",
|
|
172
|
+
});
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
export function isStatusCode(program, entity) {
|
|
176
|
+
return program.stateMap(statusCodeKey).has(entity);
|
|
177
|
+
}
|
|
178
|
+
export function getStatusCodes(program, entity) {
|
|
179
|
+
var _a;
|
|
180
|
+
return (_a = program.stateMap(statusCodeKey).get(entity)) !== null && _a !== void 0 ? _a : [];
|
|
181
|
+
}
|
|
182
|
+
// Reference: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
|
|
183
|
+
export function getStatusCodeDescription(statusCode) {
|
|
184
|
+
switch (statusCode) {
|
|
185
|
+
case "200":
|
|
186
|
+
return "The request has succeeded.";
|
|
187
|
+
case "201":
|
|
188
|
+
return "The request has succeeded and a new resource has been created as a result.";
|
|
189
|
+
case "202":
|
|
190
|
+
return "The request has been accepted for processing, but processing has not yet completed.";
|
|
191
|
+
case "204":
|
|
192
|
+
return "There is no content to send for this request, but the headers may be useful. ";
|
|
193
|
+
case "301":
|
|
194
|
+
return "The URL of the requested resource has been changed permanently. The new URL is given in the response.";
|
|
195
|
+
case "304":
|
|
196
|
+
return "The client has made a conditional request and the resource has not been modified.";
|
|
197
|
+
case "400":
|
|
198
|
+
return "The server could not understand the request due to invalid syntax.";
|
|
199
|
+
case "401":
|
|
200
|
+
return "Access is unauthorized.";
|
|
201
|
+
case "403":
|
|
202
|
+
return "Access is forbidden";
|
|
203
|
+
case "404":
|
|
204
|
+
return "The server cannot find the requested resource.";
|
|
205
|
+
case "409":
|
|
206
|
+
return "The request conflicts with the current state of the server.";
|
|
207
|
+
case "412":
|
|
208
|
+
return "Precondition failed.";
|
|
209
|
+
case "503":
|
|
210
|
+
return "Service unavailable.";
|
|
211
|
+
}
|
|
212
|
+
switch (statusCode.charAt(0)) {
|
|
213
|
+
case "1":
|
|
214
|
+
return "Informational";
|
|
215
|
+
case "2":
|
|
216
|
+
return "Successful";
|
|
217
|
+
case "3":
|
|
218
|
+
return "Redirection";
|
|
219
|
+
case "4":
|
|
220
|
+
return "Client Error";
|
|
221
|
+
case "5":
|
|
222
|
+
return "Server Error";
|
|
223
|
+
}
|
|
224
|
+
// Any valid HTTP status code is covered above.
|
|
225
|
+
return undefined;
|
|
226
|
+
}
|
|
227
|
+
const operationVerbsKey = createStateSymbol("verbs");
|
|
228
|
+
function setOperationVerb(program, entity, verb) {
|
|
229
|
+
if (entity.kind === "Operation") {
|
|
230
|
+
if (!program.stateMap(operationVerbsKey).has(entity)) {
|
|
231
|
+
program.stateMap(operationVerbsKey).set(entity, verb);
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
reportDiagnostic(program, {
|
|
235
|
+
code: "http-verb-duplicate",
|
|
236
|
+
format: { entityName: entity.name },
|
|
237
|
+
target: entity,
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
reportDiagnostic(program, {
|
|
243
|
+
code: "http-verb-wrong-type",
|
|
244
|
+
format: { verb, entityKind: entity.kind },
|
|
245
|
+
target: entity,
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
export function getOperationVerb(program, entity) {
|
|
250
|
+
return program.stateMap(operationVerbsKey).get(entity);
|
|
251
|
+
}
|
|
252
|
+
export function $get(context, entity) {
|
|
253
|
+
setOperationVerb(context.program, entity, "get");
|
|
254
|
+
}
|
|
255
|
+
export function $put(context, entity) {
|
|
256
|
+
setOperationVerb(context.program, entity, "put");
|
|
257
|
+
}
|
|
258
|
+
export function $post(context, entity) {
|
|
259
|
+
setOperationVerb(context.program, entity, "post");
|
|
260
|
+
}
|
|
261
|
+
export function $patch(context, entity) {
|
|
262
|
+
setOperationVerb(context.program, entity, "patch");
|
|
263
|
+
}
|
|
264
|
+
export function $delete(context, entity) {
|
|
265
|
+
setOperationVerb(context.program, entity, "delete");
|
|
266
|
+
}
|
|
267
|
+
export function $head(context, entity) {
|
|
268
|
+
setOperationVerb(context.program, entity, "head");
|
|
269
|
+
}
|
|
270
|
+
const serversKey = createStateSymbol("servers");
|
|
271
|
+
/**
|
|
272
|
+
* Configure the server url for the service.
|
|
273
|
+
* @param context Decorator context
|
|
274
|
+
* @param target Decorator target(Must be a namespace)
|
|
275
|
+
* @param description Description for this server.
|
|
276
|
+
* @param parameters @optional Parameters to interpolate in the server url.
|
|
277
|
+
*/
|
|
278
|
+
export function $server(context, target, url, description, parameters) {
|
|
279
|
+
var _a;
|
|
280
|
+
const params = extractParamsFromPath(url);
|
|
281
|
+
const parameterMap = new Map((_a = parameters === null || parameters === void 0 ? void 0 : parameters.properties) !== null && _a !== void 0 ? _a : []);
|
|
282
|
+
for (const declaredParam of params) {
|
|
283
|
+
const param = parameterMap.get(declaredParam);
|
|
284
|
+
if (!param) {
|
|
285
|
+
reportDiagnostic(context.program, {
|
|
286
|
+
code: "missing-server-param",
|
|
287
|
+
format: { param: declaredParam },
|
|
288
|
+
target: context.getArgumentTarget(0),
|
|
289
|
+
});
|
|
290
|
+
parameterMap.delete(declaredParam);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
let servers = context.program.stateMap(serversKey).get(target);
|
|
294
|
+
if (servers === undefined) {
|
|
295
|
+
servers = [];
|
|
296
|
+
context.program.stateMap(serversKey).set(target, servers);
|
|
297
|
+
}
|
|
298
|
+
servers.push({
|
|
299
|
+
url,
|
|
300
|
+
description,
|
|
301
|
+
parameters: parameterMap,
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
export function getServers(program, type) {
|
|
305
|
+
return program.stateMap(serversKey).get(type);
|
|
306
|
+
}
|
|
307
|
+
export function $plainData(context, entity) {
|
|
308
|
+
if (!validateDecoratorTarget(context, entity, "@plainData", "Model")) {
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
const { program } = context;
|
|
312
|
+
const decoratorsToRemove = ["$header", "$body", "$query", "$path", "$statusCode"];
|
|
313
|
+
const [headers, bodies, queries, paths, statusCodes] = [
|
|
314
|
+
program.stateMap(headerFieldsKey),
|
|
315
|
+
program.stateSet(bodyFieldsKey),
|
|
316
|
+
program.stateMap(queryFieldsKey),
|
|
317
|
+
program.stateMap(pathFieldsKey),
|
|
318
|
+
program.stateMap(statusCodeKey),
|
|
319
|
+
];
|
|
320
|
+
for (const property of entity.properties.values()) {
|
|
321
|
+
// Remove the decorators so that they do not run in the future, for example,
|
|
322
|
+
// if this model is later spread into another.
|
|
323
|
+
property.decorators = property.decorators.filter((d) => !decoratorsToRemove.includes(d.decorator.name));
|
|
324
|
+
// Remove the impact the decorators already had on this model.
|
|
325
|
+
headers.delete(property);
|
|
326
|
+
bodies.delete(property);
|
|
327
|
+
queries.delete(property);
|
|
328
|
+
paths.delete(property);
|
|
329
|
+
statusCodes.delete(property);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
setTypeSpecNamespace("Private", $plainData);
|
|
333
|
+
const authenticationKey = createStateSymbol("authentication");
|
|
334
|
+
export function $useAuth(context, serviceNamespace, authConfig) {
|
|
335
|
+
const [auth, diagnostics] = extractServiceAuthentication(context.program, authConfig);
|
|
336
|
+
if (diagnostics.length > 0)
|
|
337
|
+
context.program.reportDiagnostics(diagnostics);
|
|
338
|
+
if (auth !== undefined) {
|
|
339
|
+
setAuthentication(context.program, serviceNamespace, auth);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
export function setAuthentication(program, serviceNamespace, auth) {
|
|
343
|
+
program.stateMap(authenticationKey).set(serviceNamespace, auth);
|
|
344
|
+
}
|
|
345
|
+
function extractServiceAuthentication(program, type) {
|
|
346
|
+
const diagnostics = createDiagnosticCollector();
|
|
347
|
+
switch (type.kind) {
|
|
348
|
+
case "Model":
|
|
349
|
+
const auth = diagnostics.pipe(extractHttpAuthentication(program, type, type));
|
|
350
|
+
if (auth === undefined)
|
|
351
|
+
return diagnostics.wrap(undefined);
|
|
352
|
+
return diagnostics.wrap({ options: [{ schemes: [auth] }] });
|
|
353
|
+
case "Tuple":
|
|
354
|
+
const option = diagnostics.pipe(extractHttpAuthenticationOption(program, type, type));
|
|
355
|
+
return diagnostics.wrap({ options: [option] });
|
|
356
|
+
case "Union":
|
|
357
|
+
return extractHttpAuthenticationOptions(program, type, type);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
function extractHttpAuthenticationOptions(program, tuple, diagnosticTarget) {
|
|
361
|
+
const options = [];
|
|
362
|
+
const diagnostics = createDiagnosticCollector();
|
|
363
|
+
for (const value of tuple.options) {
|
|
364
|
+
switch (value.kind) {
|
|
365
|
+
case "Model":
|
|
366
|
+
const result = diagnostics.pipe(extractHttpAuthentication(program, value, diagnosticTarget));
|
|
367
|
+
if (result !== undefined) {
|
|
368
|
+
options.push({ schemes: [result] });
|
|
369
|
+
}
|
|
370
|
+
break;
|
|
371
|
+
case "Tuple":
|
|
372
|
+
const option = diagnostics.pipe(extractHttpAuthenticationOption(program, value, diagnosticTarget));
|
|
373
|
+
options.push(option);
|
|
374
|
+
break;
|
|
375
|
+
default:
|
|
376
|
+
diagnostics.add(createDiagnostic({
|
|
377
|
+
code: "invalid-type-for-auth",
|
|
378
|
+
format: { kind: value.kind },
|
|
379
|
+
target: value,
|
|
380
|
+
}));
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
return diagnostics.wrap({ options });
|
|
384
|
+
}
|
|
385
|
+
function extractHttpAuthenticationOption(program, tuple, diagnosticTarget) {
|
|
386
|
+
const schemes = [];
|
|
387
|
+
const diagnostics = createDiagnosticCollector();
|
|
388
|
+
for (const value of tuple.values) {
|
|
389
|
+
switch (value.kind) {
|
|
390
|
+
case "Model":
|
|
391
|
+
const result = diagnostics.pipe(extractHttpAuthentication(program, value, diagnosticTarget));
|
|
392
|
+
if (result !== undefined) {
|
|
393
|
+
schemes.push(result);
|
|
394
|
+
}
|
|
395
|
+
break;
|
|
396
|
+
default:
|
|
397
|
+
diagnostics.add(createDiagnostic({
|
|
398
|
+
code: "invalid-type-for-auth",
|
|
399
|
+
format: { kind: value.kind },
|
|
400
|
+
target: value,
|
|
401
|
+
}));
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
return diagnostics.wrap({ schemes });
|
|
405
|
+
}
|
|
406
|
+
function extractHttpAuthentication(program, modelType, diagnosticTarget) {
|
|
407
|
+
const [result, diagnostics] = typespecTypeToJson(modelType, diagnosticTarget);
|
|
408
|
+
if (result === undefined) {
|
|
409
|
+
return [result, diagnostics];
|
|
410
|
+
}
|
|
411
|
+
const description = getDoc(program, modelType);
|
|
412
|
+
const auth = result.type === "oauth2" ? extractOAuth2Auth(result) : result;
|
|
413
|
+
return [
|
|
414
|
+
{
|
|
415
|
+
...auth,
|
|
416
|
+
id: modelType.name || result.type,
|
|
417
|
+
...(description && { description }),
|
|
418
|
+
},
|
|
419
|
+
diagnostics,
|
|
420
|
+
];
|
|
421
|
+
}
|
|
422
|
+
function extractOAuth2Auth(data) {
|
|
423
|
+
return {
|
|
424
|
+
...data,
|
|
425
|
+
flows: data.flows.map((flow) => {
|
|
426
|
+
return {
|
|
427
|
+
...flow,
|
|
428
|
+
scopes: flow.scopes.map((x) => ({ value: x })),
|
|
429
|
+
};
|
|
430
|
+
}),
|
|
431
|
+
};
|
|
432
|
+
}
|
|
433
|
+
export function getAuthentication(program, namespace) {
|
|
434
|
+
return program.stateMap(authenticationKey).get(namespace);
|
|
435
|
+
}
|
|
436
|
+
function extractSharedValue(context, parameters) {
|
|
437
|
+
var _a;
|
|
438
|
+
const sharedType = (_a = parameters === null || parameters === void 0 ? void 0 : parameters.properties.get("shared")) === null || _a === void 0 ? void 0 : _a.type;
|
|
439
|
+
if (sharedType === undefined) {
|
|
440
|
+
return false;
|
|
441
|
+
}
|
|
442
|
+
switch (sharedType.kind) {
|
|
443
|
+
case "Boolean":
|
|
444
|
+
return sharedType.value;
|
|
445
|
+
default:
|
|
446
|
+
reportDiagnostic(context.program, {
|
|
447
|
+
code: "shared-boolean",
|
|
448
|
+
target: sharedType,
|
|
449
|
+
});
|
|
450
|
+
return false;
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* `@route` defines the relative route URI for the target operation
|
|
455
|
+
*
|
|
456
|
+
* The first argument should be a URI fragment that may contain one or more path parameter fields.
|
|
457
|
+
* If the namespace or interface that contains the operation is also marked with a `@route` decorator,
|
|
458
|
+
* it will be used as a prefix to the route URI of the operation.
|
|
459
|
+
*
|
|
460
|
+
* `@route` can only be applied to operations, namespaces, and interfaces.
|
|
461
|
+
*/
|
|
462
|
+
export function $route(context, entity, path, parameters) {
|
|
463
|
+
validateDecoratorUniqueOnNode(context, entity, $route);
|
|
464
|
+
setRoute(context, entity, {
|
|
465
|
+
path,
|
|
466
|
+
shared: extractSharedValue(context, parameters),
|
|
467
|
+
});
|
|
468
|
+
}
|
|
469
|
+
const includeInapplicableMetadataInPayloadKey = createStateSymbol("includeInapplicableMetadataInPayload");
|
|
470
|
+
/**
|
|
471
|
+
* Specifies if inapplicable metadata should be included in the payload for
|
|
472
|
+
* the given entity. This is true by default unless changed by this
|
|
473
|
+
* decorator.
|
|
474
|
+
*
|
|
475
|
+
* @param entity Target model, namespace, or model property. If applied to a
|
|
476
|
+
* model or namespace, applies recursively to child models,
|
|
477
|
+
* namespaces, and model properties unless overridden by
|
|
478
|
+
* applying this decorator to a child.
|
|
479
|
+
*
|
|
480
|
+
* @param value `true` to include inapplicable metadata in payload, false to
|
|
481
|
+
* exclude it.
|
|
482
|
+
*
|
|
483
|
+
* @see isApplicableMetadata
|
|
484
|
+
*/
|
|
485
|
+
export function $includeInapplicableMetadataInPayload(context, entity, value) {
|
|
486
|
+
if (!validateDecoratorTarget(context, entity, "@includeInapplicableMetadataInPayload", [
|
|
487
|
+
"Namespace",
|
|
488
|
+
"Model",
|
|
489
|
+
"ModelProperty",
|
|
490
|
+
])) {
|
|
491
|
+
return;
|
|
492
|
+
}
|
|
493
|
+
const state = context.program.stateMap(includeInapplicableMetadataInPayloadKey);
|
|
494
|
+
state.set(entity, value);
|
|
495
|
+
}
|
|
496
|
+
/**
|
|
497
|
+
* Determines if the given model property should be included in the payload if it is
|
|
498
|
+
* inapplicable metadata.
|
|
499
|
+
*
|
|
500
|
+
* @see isApplicableMetadata
|
|
501
|
+
* @see $includeInapplicableMetadataInPayload
|
|
502
|
+
*/
|
|
503
|
+
export function includeInapplicableMetadataInPayload(program, property) {
|
|
504
|
+
let e;
|
|
505
|
+
for (e = property; e; e = e.kind === "ModelProperty" ? e.model : e.namespace) {
|
|
506
|
+
const value = program.stateMap(includeInapplicableMetadataInPayloadKey).get(e);
|
|
507
|
+
if (value !== undefined) {
|
|
508
|
+
return value;
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
return true;
|
|
512
|
+
}
|
|
513
|
+
//# sourceMappingURL=decorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const namespace = "TypeSpec.Http";
|
|
2
|
+
export * from "./content-types.js";
|
|
3
|
+
export * from "./decorators.js";
|
|
4
|
+
export * from "./metadata.js";
|
|
5
|
+
export * from "./operations.js";
|
|
6
|
+
export * from "./parameters.js";
|
|
7
|
+
export * from "./responses.js";
|
|
8
|
+
export * from "./route.js";
|
|
9
|
+
export * from "./types.js";
|
|
10
|
+
export * from "./validate.js";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,kBAAkB,CAAC;AAEzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export const namespace = "TypeSpec.Http";
|
|
2
|
+
export * from "./content-types.js";
|
|
3
|
+
export * from "./decorators.js";
|
|
4
|
+
export * from "./metadata.js";
|
|
5
|
+
export * from "./operations.js";
|
|
6
|
+
export * from "./parameters.js";
|
|
7
|
+
export * from "./responses.js";
|
|
8
|
+
export * from "./route.js";
|
|
9
|
+
export * from "./types.js";
|
|
10
|
+
export * from "./validate.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC;AAEzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
|