@typespec/http 0.53.0-dev.1 → 0.53.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/README.md +7 -7
- package/dist/src/decorators.d.ts +1 -1
- package/dist/src/decorators.js +1 -1
- package/dist/src/rules/op-reference-container-route.js +1 -1
- package/dist/src/rules/op-reference-container-route.js.map +1 -1
- package/dist/src/types.d.ts +16 -2
- package/dist/src/types.d.ts.map +1 -1
- package/lib/auth.tsp +18 -0
- package/lib/http-decorators.tsp +2 -2
- package/package.json +9 -9
package/README.md
CHANGED
|
@@ -28,9 +28,9 @@ Available ruleSets:
|
|
|
28
28
|
|
|
29
29
|
### Rules
|
|
30
30
|
|
|
31
|
-
| Name
|
|
32
|
-
|
|
|
33
|
-
| [`@typespec/http/op-reference-container-route`](https://
|
|
31
|
+
| Name | Description |
|
|
32
|
+
| --------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
|
|
33
|
+
| [`@typespec/http/op-reference-container-route`](https://typespec.io/docs/libraries/http/rules/op-reference-container-route) | Check for referenced (`op is`) operations which have a @route on one of their containers. |
|
|
34
34
|
|
|
35
35
|
## Decorators
|
|
36
36
|
|
|
@@ -447,7 +447,7 @@ op create(): {@statusCode: 201 | 202}
|
|
|
447
447
|
|
|
448
448
|
#### `@useAuth`
|
|
449
449
|
|
|
450
|
-
Specify this service authentication. See the [documentation in the Http library](https://
|
|
450
|
+
Specify this service authentication. See the [documentation in the Http library](https://typespec.io/docs/libraries/http/authentication) for full details.
|
|
451
451
|
|
|
452
452
|
```typespec
|
|
453
453
|
@TypeSpec.Http.useAuth(auth: {} | Union | {}[])
|
|
@@ -459,9 +459,9 @@ Specify this service authentication. See the [documentation in the Http library]
|
|
|
459
459
|
|
|
460
460
|
##### Parameters
|
|
461
461
|
|
|
462
|
-
| Name | Type | Description
|
|
463
|
-
| ---- | --------------------------- |
|
|
464
|
-
| auth | `union {} \| Union \| {}[]` | Authentication configuration. Can be a single security scheme, a union(either option is valid authentication) or a tuple(
|
|
462
|
+
| Name | Type | Description |
|
|
463
|
+
| ---- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
464
|
+
| auth | `union {} \| Union \| {}[]` | Authentication configuration. Can be a single security scheme, a union(either option is valid authentication) or a tuple (must use all authentication together) |
|
|
465
465
|
|
|
466
466
|
##### Examples
|
|
467
467
|
|
package/dist/src/decorators.d.ts
CHANGED
|
@@ -39,7 +39,7 @@ export interface HttpServer {
|
|
|
39
39
|
/**
|
|
40
40
|
* Configure the server url for the service.
|
|
41
41
|
* @param context Decorator context
|
|
42
|
-
* @param target Decorator target(
|
|
42
|
+
* @param target Decorator target (must be a namespace)
|
|
43
43
|
* @param description Description for this server.
|
|
44
44
|
* @param parameters @optional Parameters to interpolate in the server url.
|
|
45
45
|
*/
|
package/dist/src/decorators.js
CHANGED
|
@@ -284,7 +284,7 @@ export function $head(context, entity) {
|
|
|
284
284
|
/**
|
|
285
285
|
* Configure the server url for the service.
|
|
286
286
|
* @param context Decorator context
|
|
287
|
-
* @param target Decorator target(
|
|
287
|
+
* @param target Decorator target (must be a namespace)
|
|
288
288
|
* @param description Description for this server.
|
|
289
289
|
* @param parameters @optional Parameters to interpolate in the server url.
|
|
290
290
|
*/
|
|
@@ -4,7 +4,7 @@ export const opReferenceContainerRouteRule = createRule({
|
|
|
4
4
|
name: "op-reference-container-route",
|
|
5
5
|
severity: "warning",
|
|
6
6
|
description: "Check for referenced (`op is`) operations which have a @route on one of their containers.",
|
|
7
|
-
url: "https://
|
|
7
|
+
url: "https://typespec.io/docs/libraries/http/rules/op-reference-container-route",
|
|
8
8
|
messages: {
|
|
9
9
|
default: paramMessage `Operation ${"opName"} references an operation which has a @route prefix on its namespace or interface: "${"routePrefix"}". This operation will not carry forward the route prefix so the final route may be different than the referenced operation.`,
|
|
10
10
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"op-reference-container-route.js","sourceRoot":"","sources":["../../../src/rules/op-reference-container-route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAU,CAAC;IACtD,IAAI,EAAE,8BAA8B;IACpC,QAAQ,EAAE,SAAS;IACnB,WAAW,EACT,2FAA2F;IAC7F,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"op-reference-container-route.js","sourceRoot":"","sources":["../../../src/rules/op-reference-container-route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAU,CAAC;IACtD,IAAI,EAAE,8BAA8B;IACpC,QAAQ,EAAE,SAAS;IACnB,WAAW,EACT,2FAA2F;IAC7F,GAAG,EAAE,4EAA4E;IACjF,QAAQ,EAAE;QACR,OAAO,EAAE,YAAY,CAAA,aAAa,QAAQ,sFAAsF,aAAa,+HAA+H;KAC7Q;IACD,MAAM,CAAC,OAAO;QACZ,4EAA4E;QAC5E,6EAA6E;QAC7E,sDAAsD;QACtD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAiC,CAAC;QAE5D,SAAS,uBAAuB,CAC9B,SAAqD;;YAErD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,IAAI,SAAS,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACnC,OAAO,CACL,MAAA,uBAAuB,CAAC,SAAS,CAAC,SAAS,CAAC,mCAC5C,uBAAuB,CAAC,SAAS,CAAC,SAAS,CAAC,CAC7C,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACvD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3E,CAAC;QAED,SAAS,wBAAwB,CAAC,EAAyB,EAAE,UAAqB;;YAChF,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;gBACrB,gEAAgE;gBAChE,0CAA0C;gBAC1C,MAAM,SAAS,GAAG,MAAA,EAAE,CAAC,SAAS,mCAAI,EAAE,CAAC,SAAS,CAAC;gBAC/C,MAAM,iBAAiB,GAAG,MAAA,UAAU,CAAC,SAAS,mCAAI,UAAU,CAAC,SAAS,CAAC;gBACvE,IAAI,SAAS,KAAK,iBAAiB,EAAE,CAAC;oBACpC,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACxB,KAAK,GAAG,uBAAuB,CAAC,EAAE,CAAC,CAAC;wBACpC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;oBAC5B,CAAC;oBAED,IAAI,KAAK,EAAE,CAAC;wBACV,OAAO,CAAC,gBAAgB,CAAC;4BACvB,MAAM,EAAE,UAAU;4BAClB,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;yBACxD,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,2EAA2E;gBAC3E,wBAAwB,CAAC,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,OAAO;YACL,SAAS,EAAE,CAAC,EAAa,EAAE,EAAE;gBAC3B,wBAAwB,CAAC,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YACnD,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export interface AuthenticationOption {
|
|
|
16
16
|
*/
|
|
17
17
|
schemes: HttpAuth[];
|
|
18
18
|
}
|
|
19
|
-
export type HttpAuth = BasicAuth | BearerAuth | ApiKeyAuth<ApiKeyLocation, string> | Oauth2Auth<OAuth2Flow[]
|
|
19
|
+
export type HttpAuth = BasicAuth | BearerAuth | ApiKeyAuth<ApiKeyLocation, string> | Oauth2Auth<OAuth2Flow[]> | OpenIDConnectAuth;
|
|
20
20
|
export interface HttpAuthBase {
|
|
21
21
|
/**
|
|
22
22
|
* Id of the authentication scheme.
|
|
@@ -130,6 +130,20 @@ export interface OAuth2Scope {
|
|
|
130
130
|
value: string;
|
|
131
131
|
description?: string;
|
|
132
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* OpenID Connect (OIDC) is an identity layer built on top of the OAuth 2.0 protocol and supported by some OAuth 2.0 providers, such as Google and Azure Active Directory.
|
|
135
|
+
* It defines a sign-in flow that enables a client application to authenticate a user, and to obtain information (or "claims") about that user, such as the user name, email, and so on.
|
|
136
|
+
* User identity information is encoded in a secure JSON Web Token (JWT), called ID token.
|
|
137
|
+
* OpenID Connect defines a discovery mechanism, called OpenID Connect Discovery, where an OpenID server publishes its metadata at a well-known URL, typically
|
|
138
|
+
*
|
|
139
|
+
* ```http
|
|
140
|
+
* https://server.com/.well-known/openid-configuration
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
export interface OpenIDConnectAuth extends HttpAuthBase {
|
|
144
|
+
type: "openIdConnect";
|
|
145
|
+
openIdConnectUrl: string;
|
|
146
|
+
}
|
|
133
147
|
export type OperationContainer = Namespace | Interface;
|
|
134
148
|
export type OperationVerbSelector = (program: Program, operation: Operation) => HttpVerb | undefined;
|
|
135
149
|
export interface OperationParameterOptions {
|
|
@@ -245,7 +259,7 @@ export interface HttpOperationResponse {
|
|
|
245
259
|
*/
|
|
246
260
|
statusCodes: HttpStatusCodeRange | number | "*";
|
|
247
261
|
/**
|
|
248
|
-
* Response
|
|
262
|
+
* Response TypeSpec type.
|
|
249
263
|
*/
|
|
250
264
|
type: Type;
|
|
251
265
|
/**
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,oBAAoB,EACpB,aAAa,EACb,SAAS,EACT,SAAS,EACT,OAAO,EACP,IAAI,EACL,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAE7C,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5E,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,OAAO,EAAE,oBAAoB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,OAAO,EAAE,QAAQ,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,QAAQ,GAChB,SAAS,GACT,UAAU,GACV,UAAU,CAAC,cAAc,EAAE,MAAM,CAAC,GAClC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/lib/auth.tsp
CHANGED
|
@@ -194,3 +194,21 @@ model ClientCredentialsFlow {
|
|
|
194
194
|
@doc("list of scopes for the credential")
|
|
195
195
|
scopes: string[];
|
|
196
196
|
}
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* OpenID Connect (OIDC) is an identity layer built on top of the OAuth 2.0 protocol and supported by some OAuth 2.0 providers, such as Google and Azure Active Directory.
|
|
200
|
+
* It defines a sign-in flow that enables a client application to authenticate a user, and to obtain information (or "claims") about that user, such as the user name, email, and so on.
|
|
201
|
+
* User identity information is encoded in a secure JSON Web Token (JWT), called ID token.
|
|
202
|
+
* OpenID Connect defines a discovery mechanism, called OpenID Connect Discovery, where an OpenID server publishes its metadata at a well-known URL, typically
|
|
203
|
+
*
|
|
204
|
+
* ```http
|
|
205
|
+
* https://server.com/.well-known/openid-configuration
|
|
206
|
+
* ```
|
|
207
|
+
*/
|
|
208
|
+
model OpenIdConnectAuth<ConnectUrl extends valueof string> {
|
|
209
|
+
/** Auth type */
|
|
210
|
+
type: AuthType.openIdConnect;
|
|
211
|
+
|
|
212
|
+
/** Connect url. It can be specified relative to the server URL */
|
|
213
|
+
openIdConnectUrl: ConnectUrl;
|
|
214
|
+
}
|
package/lib/http-decorators.tsp
CHANGED
|
@@ -202,9 +202,9 @@ extern dec server(
|
|
|
202
202
|
);
|
|
203
203
|
|
|
204
204
|
/**
|
|
205
|
-
* Specify this service authentication. See the [documentation in the Http library](https://
|
|
205
|
+
* Specify this service authentication. See the [documentation in the Http library](https://typespec.io/docs/libraries/http/authentication) for full details.
|
|
206
206
|
*
|
|
207
|
-
* @param auth Authentication configuration. Can be a single security scheme, a union(either option is valid authentication) or a tuple(
|
|
207
|
+
* @param auth Authentication configuration. Can be a single security scheme, a union(either option is valid authentication) or a tuple (must use all authentication together)
|
|
208
208
|
* @example
|
|
209
209
|
*
|
|
210
210
|
* ```typespec
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typespec/http",
|
|
3
|
-
"version": "0.53.0
|
|
3
|
+
"version": "0.53.0",
|
|
4
4
|
"author": "Microsoft Corporation",
|
|
5
5
|
"description": "TypeSpec HTTP protocol binding",
|
|
6
6
|
"homepage": "https://github.com/microsoft/typespec",
|
|
7
|
-
"docusaurusWebsite": "https://
|
|
7
|
+
"docusaurusWebsite": "https://typespec.io/docs",
|
|
8
8
|
"readme": "https://github.com/microsoft/typespec/blob/main/README.md",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"repository": {
|
|
@@ -39,15 +39,15 @@
|
|
|
39
39
|
"!dist/test/**"
|
|
40
40
|
],
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"@typespec/compiler": "~0.
|
|
42
|
+
"@typespec/compiler": "~0.53.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@types/node": "~18.11.9",
|
|
46
|
-
"@typespec/compiler": "~0.
|
|
47
|
-
"@typespec/eslint-config-typespec": "~0.
|
|
48
|
-
"@typespec/library-linter": "~0.
|
|
49
|
-
"@typespec/eslint-plugin": "~0.
|
|
50
|
-
"@typespec/tspd": "~0.46.0
|
|
46
|
+
"@typespec/compiler": "~0.53.0",
|
|
47
|
+
"@typespec/eslint-config-typespec": "~0.53.0",
|
|
48
|
+
"@typespec/library-linter": "~0.53.0",
|
|
49
|
+
"@typespec/eslint-plugin": "~0.53.0",
|
|
50
|
+
"@typespec/tspd": "~0.46.0",
|
|
51
51
|
"eslint": "^8.55.0",
|
|
52
52
|
"vitest": "^1.2.0",
|
|
53
53
|
"@vitest/coverage-v8": "^1.1.0",
|
|
@@ -56,13 +56,13 @@
|
|
|
56
56
|
"rimraf": "~5.0.1",
|
|
57
57
|
"typescript": "~5.3.3"
|
|
58
58
|
},
|
|
59
|
-
"dependencies": {},
|
|
60
59
|
"scripts": {
|
|
61
60
|
"clean": "rimraf ./dist ./temp",
|
|
62
61
|
"build": "tsc -p . && npm run lint-typespec-library",
|
|
63
62
|
"watch": "tsc -p . --watch",
|
|
64
63
|
"lint-typespec-library": "tsp compile . --warn-as-error --import @typespec/library-linter --no-emit",
|
|
65
64
|
"test": "vitest run",
|
|
65
|
+
"test:watch": "vitest -w",
|
|
66
66
|
"test:ui": "vitest --ui",
|
|
67
67
|
"test-official": "vitest run --coverage --reporter=junit --reporter=default --no-file-parallelism",
|
|
68
68
|
"lint": "eslint . --ext .ts --max-warnings=0",
|