@typespec/http 0.53.0-dev.0 → 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 CHANGED
@@ -28,9 +28,9 @@ Available ruleSets:
28
28
 
29
29
  ### Rules
30
30
 
31
- | Name | Description |
32
- | --------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
33
- | [`@typespec/http/op-reference-container-route`](https://microsoft.github.io/typespec/libraries/http/rules/op-reference-container-route) | Check for referenced (`op is`) operations which have a @route on one of their containers. |
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://microsoft.github.io/typespec/libraries/http/authentication) for full details.
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(Must use all authentication together) |
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
 
@@ -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(Must be a namespace)
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
  */
@@ -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(Must be a namespace)
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://microsoft.github.io/typespec/libraries/http/rules/op-reference-container-route",
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,wFAAwF;IAC7F,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"}
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"}
@@ -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 typespec type.
262
+ * Response TypeSpec type.
249
263
  */
250
264
  type: Type;
251
265
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/dist/src/utils.js CHANGED
@@ -6,6 +6,6 @@
6
6
  */
7
7
  export function extractParamsFromPath(path) {
8
8
  var _a, _b;
9
- return (_b = (_a = path.match(/\{[^/.]+\}/g)) === null || _a === void 0 ? void 0 : _a.map((s) => s.slice(1, -1))) !== null && _b !== void 0 ? _b : [];
9
+ return (_b = (_a = path.match(/\{[^}]+\}/g)) === null || _a === void 0 ? void 0 : _a.map((s) => s.slice(1, -1))) !== null && _b !== void 0 ? _b : [];
10
10
  }
11
11
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;;IAChD,OAAO,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;;IAChD,OAAO,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC;AACpE,CAAC"}
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
+ }
@@ -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://microsoft.github.io/typespec/libraries/http/authentication) for full details.
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(Must use all authentication together)
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-dev.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://microsoft.github.io/typespec",
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.52.0 || >=0.53.0-dev <0.53.0"
42
+ "@typespec/compiler": "~0.53.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/node": "~18.11.9",
46
- "@typespec/compiler": "~0.52.0 || >=0.53.0-dev <0.53.0",
47
- "@typespec/eslint-config-typespec": "~0.52.0 || >=0.53.0-dev <0.53.0",
48
- "@typespec/library-linter": "~0.52.0 || >=0.53.0-dev <0.53.0",
49
- "@typespec/eslint-plugin": "~0.52.0 || >=0.53.0-dev <0.53.0",
50
- "@typespec/tspd": "~0.46.0 || >=0.47.0-dev <0.47.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",