@typespec/http 0.68.0-dev.7 → 0.68.0-dev.9

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.
@@ -11,5 +11,5 @@ export { getOperationParameters } from "./parameters.js";
11
11
  export { HttpPart, getHttpFileModel, getHttpPart, isHttpFile, isOrExtendsHttpFile, } from "./private.decorators.js";
12
12
  export { getResponsesForOperation } from "./responses.js";
13
13
  export { addQueryParamsToUriTemplate, getRouteOptionsForNamespace, getRoutePath, getUriTemplatePathParam, isSharedRoute, joinPathSegments, setRoute, setSharedRoute, } from "./route.js";
14
- export type { AnyHttpAuthRef, ApiKeyAuth, Authentication, AuthenticationOption, AuthenticationOptionReference, AuthenticationReference, AuthorizationCodeFlow, BasicAuth, BearerAuth, ClientCredentialsFlow, CookieParameterOptions, HeaderFieldOptions, HttpAuth, HttpAuthBase, HttpAuthRef, HttpBody, HttpOperation, HttpOperationBody, HttpOperationBodyBase, HttpOperationCookieParameter, HttpOperationHeaderParameter, HttpOperationMultipartBody, HttpOperationParameter, HttpOperationParameters, HttpOperationPart, HttpOperationPathParameter, HttpOperationQueryParameter, HttpOperationResponse, HttpOperationResponseContent, HttpService, HttpServiceAuthentication, HttpStatusCodeRange, HttpStatusCodes, HttpStatusCodesEntry, HttpVerb, ImplicitFlow, NoAuth, NoHttpAuthRef, OAuth2Flow, OAuth2FlowType, OAuth2HttpAuthRef, OAuth2Scope, Oauth2Auth, OpenIDConnectAuth, OperationContainer, OperationVerbSelector, PasswordFlow, PathParameterOptions, QueryParameterOptions, RoutePath, } from "./types.js";
14
+ export type { AnyHttpAuthRef, ApiKeyAuth, Authentication, AuthenticationOption, AuthenticationOptionReference, AuthenticationReference, AuthorizationCodeFlow, BasicAuth, BearerAuth, ClientCredentialsFlow, CookieParameterOptions, HeaderFieldOptions, HttpAuth, HttpAuthBase, HttpAuthRef, HttpBody, HttpOperation, HttpOperationBody, HttpOperationBodyBase, HttpOperationCookieParameter, HttpOperationFileBody, HttpOperationHeaderParameter, HttpOperationMultipartBody, HttpOperationMultipartPartBody, HttpOperationParameter, HttpOperationParameters, HttpOperationPart, HttpOperationPathParameter, HttpOperationQueryParameter, HttpOperationResponse, HttpOperationResponseContent, HttpPayloadBody, HttpService, HttpServiceAuthentication, HttpStatusCodeRange, HttpStatusCodes, HttpStatusCodesEntry, HttpVerb, ImplicitFlow, NoAuth, NoHttpAuthRef, OAuth2Flow, OAuth2FlowType, OAuth2HttpAuthRef, OAuth2Scope, Oauth2Auth, OpenIDConnectAuth, OperationContainer, OperationVerbSelector, PasswordFlow, PathParameterOptions, QueryParameterOptions, RoutePath, } from "./types.js";
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,OAAO,EACP,OAAO,EACP,IAAI,EACJ,KAAK,EACL,OAAO,EACP,cAAc,EACd,MAAM,EACN,KAAK,EACL,KAAK,EACL,IAAI,EACJ,MAAM,EACN,MAAM,EACN,OAAO,EACP,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,wBAAwB,EACxB,cAAc,EACd,6BAA6B,EAC7B,MAAM,EACN,YAAY,EACZ,UAAU,EACV,aAAa,EACb,QAAQ,EACR,uBAAuB,EACvB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,KAAK,UAAU,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,sBAAsB,EACtB,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,UAAU,EACV,SAAS,EACT,wBAAwB,EACxB,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,YAAY,EACZ,uBAAuB,EACvB,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,cAAc,EACd,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,6BAA6B,EAC7B,uBAAuB,EACvB,qBAAqB,EACrB,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,4BAA4B,EAC5B,4BAA4B,EAC5B,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,0BAA0B,EAC1B,2BAA2B,EAC3B,qBAAqB,EACrB,4BAA4B,EAC5B,WAAW,EACX,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,aAAa,EACb,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,SAAS,GACV,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,OAAO,EACP,OAAO,EACP,IAAI,EACJ,KAAK,EACL,OAAO,EACP,cAAc,EACd,MAAM,EACN,KAAK,EACL,KAAK,EACL,IAAI,EACJ,MAAM,EACN,MAAM,EACN,OAAO,EACP,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,wBAAwB,EACxB,cAAc,EACd,6BAA6B,EAC7B,MAAM,EACN,YAAY,EACZ,UAAU,EACV,aAAa,EACb,QAAQ,EACR,uBAAuB,EACvB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,iBAAiB,GAElB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EACL,sBAAsB,EACtB,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,UAAU,EACV,SAAS,EACT,wBAAwB,GAGzB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAEL,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,YAAY,EACZ,uBAAuB,EACvB,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,cAAc,GACf,MAAM,YAAY,CAAC;AAuDpB,gBAAgB;AAChB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,OAAO,EACP,OAAO,EACP,IAAI,EACJ,KAAK,EACL,OAAO,EACP,cAAc,EACd,MAAM,EACN,KAAK,EACL,KAAK,EACL,IAAI,EACJ,MAAM,EACN,MAAM,EACN,OAAO,EACP,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,wBAAwB,EACxB,cAAc,EACd,6BAA6B,EAC7B,MAAM,EACN,YAAY,EACZ,UAAU,EACV,aAAa,EACb,QAAQ,EACR,uBAAuB,EACvB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,iBAAiB,GAElB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EACL,sBAAsB,EACtB,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,UAAU,EACV,SAAS,EACT,wBAAwB,GAGzB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAEL,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,YAAY,EACZ,uBAAuB,EACvB,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,cAAc,GACf,MAAM,YAAY,CAAC;AA0DpB,gBAAgB;AAChB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/src/lib.d.ts CHANGED
@@ -77,11 +77,24 @@ export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
77
77
  "http-file-extra-property": {
78
78
  readonly default: import("@typespec/compiler").CallableMessage<["propName"]>;
79
79
  };
80
+ "http-file-disallowed-metadata": {
81
+ readonly default: import("@typespec/compiler").CallableMessage<["metadataType", "propName"]>;
82
+ };
80
83
  "formdata-no-part-name": {
81
84
  readonly default: "Part used in multipart/form-data must have a name.";
82
85
  };
86
+ "http-file-structured": {
87
+ readonly default: import("@typespec/compiler").CallableMessage<["contentTypes"]>;
88
+ readonly union: "An HTTP File in a union is serialized as a structured model instead of being treated as the contents of a file. Declare a separate operation using `@sharedRoute` that has only the File model as the body type to treat it as a file, or suppress this warning if you intend to serialize the File as a model.";
89
+ };
90
+ "http-file-content-type-not-string": {
91
+ readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
92
+ };
93
+ "http-file-contents-not-scalar": {
94
+ readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
95
+ };
83
96
  }, Record<string, any>, "file" | "path" | "query" | "authentication" | "header" | "cookie" | "body" | "bodyRoot" | "bodyIgnore" | "multipartBody" | "statusCode" | "verbs" | "patchOptions" | "servers" | "includeInapplicableMetadataInPayload" | "externalInterfaces" | "routeProducer" | "routes" | "sharedRoutes" | "routeOptions" | "httpPart">;
84
- export declare const reportDiagnostic: <C extends "http-verb-duplicate" | "missing-uri-param" | "incompatible-uri-param" | "use-uri-template" | "optional-needs-path-expansion" | "missing-server-param" | "duplicate-body" | "duplicate-route-decorator" | "operation-param-duplicate-type" | "duplicate-operation" | "multiple-status-codes" | "status-code-invalid" | "content-type-string" | "content-type-ignored" | "metadata-ignored" | "response-cookie-not-supported" | "no-service-found" | "invalid-type-for-auth" | "shared-inconsistency" | "multipart-invalid-content-type" | "multipart-model" | "no-implicit-multipart" | "multipart-part" | "multipart-nested" | "http-file-extra-property" | "formdata-no-part-name", M extends keyof {
97
+ export declare const reportDiagnostic: <C extends "http-verb-duplicate" | "missing-uri-param" | "incompatible-uri-param" | "use-uri-template" | "optional-needs-path-expansion" | "missing-server-param" | "duplicate-body" | "duplicate-route-decorator" | "operation-param-duplicate-type" | "duplicate-operation" | "multiple-status-codes" | "status-code-invalid" | "content-type-string" | "content-type-ignored" | "metadata-ignored" | "response-cookie-not-supported" | "no-service-found" | "invalid-type-for-auth" | "shared-inconsistency" | "multipart-invalid-content-type" | "multipart-model" | "no-implicit-multipart" | "multipart-part" | "multipart-nested" | "http-file-extra-property" | "http-file-disallowed-metadata" | "formdata-no-part-name" | "http-file-structured" | "http-file-content-type-not-string" | "http-file-contents-not-scalar", M extends keyof {
85
98
  "http-verb-duplicate": {
86
99
  readonly default: import("@typespec/compiler").CallableMessage<["entityName"]>;
87
100
  };
@@ -160,9 +173,22 @@ export declare const reportDiagnostic: <C extends "http-verb-duplicate" | "missi
160
173
  "http-file-extra-property": {
161
174
  readonly default: import("@typespec/compiler").CallableMessage<["propName"]>;
162
175
  };
176
+ "http-file-disallowed-metadata": {
177
+ readonly default: import("@typespec/compiler").CallableMessage<["metadataType", "propName"]>;
178
+ };
163
179
  "formdata-no-part-name": {
164
180
  readonly default: "Part used in multipart/form-data must have a name.";
165
181
  };
182
+ "http-file-structured": {
183
+ readonly default: import("@typespec/compiler").CallableMessage<["contentTypes"]>;
184
+ readonly union: "An HTTP File in a union is serialized as a structured model instead of being treated as the contents of a file. Declare a separate operation using `@sharedRoute` that has only the File model as the body type to treat it as a file, or suppress this warning if you intend to serialize the File as a model.";
185
+ };
186
+ "http-file-content-type-not-string": {
187
+ readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
188
+ };
189
+ "http-file-contents-not-scalar": {
190
+ readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
191
+ };
166
192
  }[C]>(program: import("@typespec/compiler").Program, diag: import("@typespec/compiler").DiagnosticReport<{
167
193
  "http-verb-duplicate": {
168
194
  readonly default: import("@typespec/compiler").CallableMessage<["entityName"]>;
@@ -242,10 +268,23 @@ export declare const reportDiagnostic: <C extends "http-verb-duplicate" | "missi
242
268
  "http-file-extra-property": {
243
269
  readonly default: import("@typespec/compiler").CallableMessage<["propName"]>;
244
270
  };
271
+ "http-file-disallowed-metadata": {
272
+ readonly default: import("@typespec/compiler").CallableMessage<["metadataType", "propName"]>;
273
+ };
245
274
  "formdata-no-part-name": {
246
275
  readonly default: "Part used in multipart/form-data must have a name.";
247
276
  };
248
- }, C, M>) => void, createDiagnostic: <C extends "http-verb-duplicate" | "missing-uri-param" | "incompatible-uri-param" | "use-uri-template" | "optional-needs-path-expansion" | "missing-server-param" | "duplicate-body" | "duplicate-route-decorator" | "operation-param-duplicate-type" | "duplicate-operation" | "multiple-status-codes" | "status-code-invalid" | "content-type-string" | "content-type-ignored" | "metadata-ignored" | "response-cookie-not-supported" | "no-service-found" | "invalid-type-for-auth" | "shared-inconsistency" | "multipart-invalid-content-type" | "multipart-model" | "no-implicit-multipart" | "multipart-part" | "multipart-nested" | "http-file-extra-property" | "formdata-no-part-name", M extends keyof {
277
+ "http-file-structured": {
278
+ readonly default: import("@typespec/compiler").CallableMessage<["contentTypes"]>;
279
+ readonly union: "An HTTP File in a union is serialized as a structured model instead of being treated as the contents of a file. Declare a separate operation using `@sharedRoute` that has only the File model as the body type to treat it as a file, or suppress this warning if you intend to serialize the File as a model.";
280
+ };
281
+ "http-file-content-type-not-string": {
282
+ readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
283
+ };
284
+ "http-file-contents-not-scalar": {
285
+ readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
286
+ };
287
+ }, C, M>) => void, createDiagnostic: <C extends "http-verb-duplicate" | "missing-uri-param" | "incompatible-uri-param" | "use-uri-template" | "optional-needs-path-expansion" | "missing-server-param" | "duplicate-body" | "duplicate-route-decorator" | "operation-param-duplicate-type" | "duplicate-operation" | "multiple-status-codes" | "status-code-invalid" | "content-type-string" | "content-type-ignored" | "metadata-ignored" | "response-cookie-not-supported" | "no-service-found" | "invalid-type-for-auth" | "shared-inconsistency" | "multipart-invalid-content-type" | "multipart-model" | "no-implicit-multipart" | "multipart-part" | "multipart-nested" | "http-file-extra-property" | "http-file-disallowed-metadata" | "formdata-no-part-name" | "http-file-structured" | "http-file-content-type-not-string" | "http-file-contents-not-scalar", M extends keyof {
249
288
  "http-verb-duplicate": {
250
289
  readonly default: import("@typespec/compiler").CallableMessage<["entityName"]>;
251
290
  };
@@ -324,9 +363,22 @@ export declare const reportDiagnostic: <C extends "http-verb-duplicate" | "missi
324
363
  "http-file-extra-property": {
325
364
  readonly default: import("@typespec/compiler").CallableMessage<["propName"]>;
326
365
  };
366
+ "http-file-disallowed-metadata": {
367
+ readonly default: import("@typespec/compiler").CallableMessage<["metadataType", "propName"]>;
368
+ };
327
369
  "formdata-no-part-name": {
328
370
  readonly default: "Part used in multipart/form-data must have a name.";
329
371
  };
372
+ "http-file-structured": {
373
+ readonly default: import("@typespec/compiler").CallableMessage<["contentTypes"]>;
374
+ readonly union: "An HTTP File in a union is serialized as a structured model instead of being treated as the contents of a file. Declare a separate operation using `@sharedRoute` that has only the File model as the body type to treat it as a file, or suppress this warning if you intend to serialize the File as a model.";
375
+ };
376
+ "http-file-content-type-not-string": {
377
+ readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
378
+ };
379
+ "http-file-contents-not-scalar": {
380
+ readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
381
+ };
330
382
  }[C]>(diag: import("@typespec/compiler").DiagnosticReport<{
331
383
  "http-verb-duplicate": {
332
384
  readonly default: import("@typespec/compiler").CallableMessage<["entityName"]>;
@@ -406,8 +458,21 @@ export declare const reportDiagnostic: <C extends "http-verb-duplicate" | "missi
406
458
  "http-file-extra-property": {
407
459
  readonly default: import("@typespec/compiler").CallableMessage<["propName"]>;
408
460
  };
461
+ "http-file-disallowed-metadata": {
462
+ readonly default: import("@typespec/compiler").CallableMessage<["metadataType", "propName"]>;
463
+ };
409
464
  "formdata-no-part-name": {
410
465
  readonly default: "Part used in multipart/form-data must have a name.";
411
466
  };
467
+ "http-file-structured": {
468
+ readonly default: import("@typespec/compiler").CallableMessage<["contentTypes"]>;
469
+ readonly union: "An HTTP File in a union is serialized as a structured model instead of being treated as the contents of a file. Declare a separate operation using `@sharedRoute` that has only the File model as the body type to treat it as a file, or suppress this warning if you intend to serialize the File as a model.";
470
+ };
471
+ "http-file-content-type-not-string": {
472
+ readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
473
+ };
474
+ "http-file-contents-not-scalar": {
475
+ readonly default: import("@typespec/compiler").CallableMessage<["type"]>;
476
+ };
412
477
  }, C, M>) => import("@typespec/compiler").Diagnostic, HttpStateKeys: Record<"file" | "path" | "query" | "authentication" | "header" | "cookie" | "body" | "bodyRoot" | "bodyIgnore" | "multipartBody" | "statusCode" | "verbs" | "patchOptions" | "servers" | "includeInapplicableMetadataInPayload" | "externalInterfaces" | "routeProducer" | "routes" | "sharedRoutes" | "routeOptions" | "httpPart", symbol>;
413
478
  //# sourceMappingURL=lib.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oVAqMf,CAAC;AAEH,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAa,aAAa,6UAAS,CAAC"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oVA+Nf,CAAC;AAEH,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAa,aAAa,6UAAS,CAAC"}
package/dist/src/lib.js CHANGED
@@ -155,12 +155,37 @@ export const $lib = createTypeSpecLibrary({
155
155
  default: paramMessage `File model cannot define extra properties. Found '${"propName"}'.`,
156
156
  },
157
157
  },
158
+ "http-file-disallowed-metadata": {
159
+ severity: "error",
160
+ messages: {
161
+ default: paramMessage `File model cannot define HTTP metadata type '${"metadataType"}' on property '${"propName"}'.`,
162
+ },
163
+ },
158
164
  "formdata-no-part-name": {
159
165
  severity: "error",
160
166
  messages: {
161
167
  default: "Part used in multipart/form-data must have a name.",
162
168
  },
163
169
  },
170
+ "http-file-structured": {
171
+ severity: "warning",
172
+ messages: {
173
+ default: paramMessage `HTTP File body is serialized as a structured model in '${"contentTypes"}' instead of being treated as the contents of a file because an explicit Content-Type header is defined. Override the \`contentType\` property of the file model to declare the internal media type of the file's contents, or suppress this warning if you intend to serialize the File as a model.`,
174
+ union: "An HTTP File in a union is serialized as a structured model instead of being treated as the contents of a file. Declare a separate operation using `@sharedRoute` that has only the File model as the body type to treat it as a file, or suppress this warning if you intend to serialize the File as a model.",
175
+ },
176
+ },
177
+ "http-file-content-type-not-string": {
178
+ severity: "error",
179
+ messages: {
180
+ default: paramMessage `The 'contentType' property of the file model must be 'TypeSpec.string', a string literal, or a union of string literals. Found '${"type"}'.`,
181
+ },
182
+ },
183
+ "http-file-contents-not-scalar": {
184
+ severity: "error",
185
+ messages: {
186
+ default: paramMessage `The 'contents' property of the file model must be a scalar type that extends 'string' or 'bytes'. Found '${"type"}'.`,
187
+ },
188
+ },
164
189
  },
165
190
  state: {
166
191
  authentication: { description: "State for the @auth decorator" },
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"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"}
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,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC;IACxC,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,mBAAmB,EAAE;YACnB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,8BAA8B,OAAO,4CAA4C;aACvG;SACF;QACD,wBAAwB,EAAE;YACxB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,cAAc,OAAO,gCAAgC,SAAS,0BAA0B,gBAAgB,GAAG;aACjI;SACF;QACD,kBAAkB,EAAE;YAClB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,cAAc,OAAO,mJAAmJ;aAC9L;SACF;QAED,+BAA+B,EAAE;YAC/B,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,4BAA4B,WAAW,uGAAuG,WAAW,mBAAmB,WAAW,KAAK;aAClN;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,uBAAuB,EAAE;YACvB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,wEAAwE;aAClF;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,sBAAsB,EAAE;YACtB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EAAE,yDAAyD;aACnE;SACF;QACD,kBAAkB,EAAE;YAClB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,GAAG,MAAM,yGAAyG;aACxI;SACF;QACD,+BAA+B,EAAE;YAC/B,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,mDAAmD,UAAU,+EAA+E;aAClK;SACF;QACD,kBAAkB,EAAE;YAClB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,0DAA0D,WAAW,mEAAmE;aAC9J;SACF;QACD,uBAAuB,EAAE;YACvB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,YAAY,MAAM,sEAAsE;aAC9G;SACF;QACD,sBAAsB,EAAE;YACtB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,6BAA6B,MAAM,IAAI,MAAM,6CAA6C;aAChH;SACF;QACD,gCAAgC,EAAE;YAChC,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,iBAAiB,aAAa,mEAAmE,uBAAuB,GAAG;aACjJ;SACF;QACD,iBAAiB,EAAE;YACjB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,kEAAkE;aAC5E;SACF;QACD,uBAAuB,EAAE;YACvB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EACL,qFAAqF;aACxF;SACF;QACD,gBAAgB,EAAE;YAChB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,sCAAsC;aAChD;SACF;QACD,kBAAkB,EAAE;YAClB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,iDAAiD;aAC3D;SACF;QACD,0BAA0B,EAAE;YAC1B,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,qDAAqD,UAAU,IAAI;aACzF;SACF;QACD,+BAA+B,EAAE;YAC/B,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,gDAAgD,cAAc,kBAAkB,UAAU,IAAI;aACpH;SACF;QACD,uBAAuB,EAAE;YACvB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,oDAAoD;aAC9D;SACF;QACD,sBAAsB,EAAE;YACtB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,0DAA0D,cAAc,sSAAsS;gBACnY,KAAK,EACH,iTAAiT;aACpT;SACF;QACD,mCAAmC,EAAE;YACnC,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,mIAAmI,MAAM,IAAI;aACnK;SACF;QACD,+BAA+B,EAAE;YAC/B,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,4GAA4G,MAAM,IAAI;aAC5I;SACF;KACF;IACD,KAAK,EAAE;QACL,cAAc,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE;QAChE,MAAM,EAAE,EAAE,WAAW,EAAE,iCAAiC,EAAE;QAC1D,MAAM,EAAE,EAAE,WAAW,EAAE,iCAAiC,EAAE;QAC1D,KAAK,EAAE,EAAE,WAAW,EAAE,gCAAgC,EAAE;QACxD,IAAI,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE;QACtD,IAAI,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE;QACtD,QAAQ,EAAE,EAAE,WAAW,EAAE,mCAAmC,EAAE;QAC9D,UAAU,EAAE,EAAE,WAAW,EAAE,qCAAqC,EAAE;QAClE,aAAa,EAAE,EAAE,WAAW,EAAE,qCAAqC,EAAE;QACrE,UAAU,EAAE,EAAE,WAAW,EAAE,qCAAqC,EAAE;QAClE,KAAK,EAAE,EAAE,WAAW,EAAE,yDAAyD,EAAE;QACjF,YAAY,EAAE,EAAE,WAAW,EAAE,+CAA+C,EAAE;QAC9E,OAAO,EAAE,EAAE,WAAW,EAAE,iCAAiC,EAAE;QAC3D,oCAAoC,EAAE;YACpC,WAAW,EAAE,+DAA+D;SAC7E;QAED,WAAW;QACX,kBAAkB,EAAE,EAAE;QACtB,aAAa,EAAE,EAAE;QACjB,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,EAAE,WAAW,EAAE,sCAAsC,EAAE;QACrE,YAAY,EAAE,EAAE;QAEhB,UAAU;QACV,IAAI,EAAE,EAAE,WAAW,EAAE,uCAAuC,EAAE;QAC9D,QAAQ,EAAE,EAAE,WAAW,EAAE,2CAA2C,EAAE;KACvE;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { DiagnosticResult, Program, Type } from "@typespec/compiler";
2
2
  import { GetHttpPropertyOptions, HttpProperty } from "./http-property.js";
3
3
  import { Visibility } from "./metadata.js";
4
- import { HttpOperationBody, HttpOperationMultipartBody } from "./types.js";
4
+ import { HttpPayloadBody } from "./types.js";
5
5
  export interface HttpPayload {
6
- readonly body?: HttpOperationBody | HttpOperationMultipartBody;
6
+ readonly body?: HttpPayloadBody;
7
7
  readonly metadata: HttpProperty[];
8
8
  }
9
9
  export interface ExtractBodyAndMetadataOptions extends GetHttpPropertyOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../src/payload.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAIhB,OAAO,EAGP,IAAI,EAQL,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACL,sBAAsB,EAEtB,YAAY,EAEb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAqB,MAAM,YAAY,CAAC;AAE9F,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,0BAA0B,CAAC;IAC/D,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,6BAA8B,SAAQ,sBAAsB;CAAG;AAEhF;;GAEG;AACH,oBAAY,sBAAsB;IAChC;;OAEG;IACH,OAAO,IAAA;IACP;;OAEG;IACH,QAAQ,IAAA;IACR;;OAEG;IACH,SAAS,IAAA;CACV;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,sBAAsB,EACnC,OAAO,GAAE,6BAAkC,GAC1C,gBAAgB,CAAC,WAAW,CAAC,CAyB/B"}
1
+ {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../src/payload.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAIhB,OAAO,EAIP,IAAI,EASL,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EACL,sBAAsB,EAEtB,YAAY,EAEb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAIL,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,6BAA8B,SAAQ,sBAAsB;CAAG;AAEhF;;GAEG;AACH,oBAAY,sBAAsB;IAChC;;OAEG;IACH,OAAO,IAAA;IACP;;OAEG;IACH,QAAQ,IAAA;IACR;;OAEG;IACH,SAAS,IAAA;CACV;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,sBAAsB,EACnC,OAAO,GAAE,6BAAkC,GAC1C,gBAAgB,CAAC,WAAW,CAAC,CAyB/B"}
@@ -1,9 +1,10 @@
1
1
  import { createDiagnosticCollector, filterModelProperties, getDiscriminator, getEncode, getMediaTypeHint, isArrayModelType, navigateType, } from "@typespec/compiler";
2
+ import { SyntaxKind } from "@typespec/compiler/ast";
2
3
  import { DuplicateTracker } from "@typespec/compiler/utils";
3
4
  import { getContentTypes } from "./content-types.js";
4
5
  import { isCookieParam, isHeader, isPathParam, isQueryParam, isStatusCode } from "./decorators.js";
5
6
  import { resolvePayloadProperties, } from "./http-property.js";
6
- import { createDiagnostic } from "./lib.js";
7
+ import { createDiagnostic, reportDiagnostic } from "./lib.js";
7
8
  import { getHttpFileModel, getHttpPart } from "./private.decorators.js";
8
9
  /**
9
10
  * The disposition of a payload in an HTTP operation.
@@ -42,16 +43,22 @@ export function resolveHttpPayload(program, type, visibility, disposition, optio
42
43
  function resolveBody(program, requestOrResponseType, metadata, visibility, disposition) {
43
44
  const diagnostics = createDiagnosticCollector();
44
45
  const contentTypeProperty = metadata.find((x) => x.kind === "contentType");
45
- const file = getHttpFileModel(program, requestOrResponseType);
46
+ const file = getHttpFileModel(program, requestOrResponseType, createHttpFileModelFilter(metadata));
46
47
  if (file !== undefined) {
47
- return diagnostics.wrap({
48
- bodyKind: "single",
49
- contentTypes: diagnostics.pipe(getContentTypes(file.contentType)),
50
- contentTypeProperty: file.contentType,
51
- type: file.contents.type,
52
- isExplicit: false,
53
- containsMetadataAnnotations: false,
54
- });
48
+ if (!contentTypeProperty) {
49
+ // If no content-type property was specified, then this is a _literal_ file.
50
+ return diagnostics.join(getFileBody(file));
51
+ }
52
+ else {
53
+ const contentTypes = contentTypeProperty && diagnostics.pipe(getContentTypes(contentTypeProperty.property));
54
+ reportDiagnostic(program, {
55
+ code: "http-file-structured",
56
+ format: {
57
+ contentTypes: contentTypes.join(", "),
58
+ },
59
+ target: contentTypeProperty.property,
60
+ });
61
+ }
55
62
  }
56
63
  // non-model or intrinsic/array model -> response body is response type
57
64
  if (requestOrResponseType.kind !== "Model" || isArrayModelType(program, requestOrResponseType)) {
@@ -133,8 +140,30 @@ function resolveExplicitBodyProperty(program, metadata, contentTypeProperty, vis
133
140
  const valid = diagnostics.pipe(validateBodyProperty(program, item.property, disposition));
134
141
  containsMetadataAnnotations = !valid;
135
142
  }
136
- if (resolvedBody === undefined) {
137
- resolvedBody = {
143
+ const file = getHttpFileModel(program, item.property.type, createHttpFileModelFilter(metadata));
144
+ const isFile = file !== undefined && !contentTypeProperty;
145
+ if (file && contentTypeProperty) {
146
+ const contentTypes = diagnostics.pipe(getContentTypes(contentTypeProperty.property));
147
+ reportDiagnostic(program, {
148
+ code: "http-file-structured",
149
+ format: {
150
+ contentTypes: contentTypes.join(", "),
151
+ },
152
+ target: contentTypeProperty.property,
153
+ });
154
+ }
155
+ if (item.property.type.kind === "Union" && unionContainsFile(program, item.property.type)) {
156
+ reportDiagnostic(program, {
157
+ code: "http-file-structured",
158
+ messageId: "union",
159
+ target: item.property.node.kind === SyntaxKind.ModelProperty
160
+ ? item.property.node.value
161
+ : item.property.node,
162
+ });
163
+ }
164
+ resolvedBody ??= isFile
165
+ ? diagnostics.pipe(getFileBody(file, item.property))
166
+ : {
138
167
  bodyKind: "single",
139
168
  ...diagnostics.pipe(resolveContentTypesForBody(program, contentTypeProperty, item.property.type)),
140
169
  type: item.property.type,
@@ -142,7 +171,6 @@ function resolveExplicitBodyProperty(program, metadata, contentTypeProperty, vis
142
171
  containsMetadataAnnotations,
143
172
  property: item.property,
144
173
  };
145
- }
146
174
  break;
147
175
  case "multipartBody":
148
176
  resolvedBody = diagnostics.pipe(resolveMultiPartBody(program, item.property, contentTypeProperty, visibility));
@@ -159,6 +187,21 @@ function resolveExplicitBodyProperty(program, metadata, contentTypeProperty, vis
159
187
  }
160
188
  return diagnostics.wrap(resolvedBody);
161
189
  }
190
+ function unionContainsFile(program, u) {
191
+ return unionContainsFileWorker(u);
192
+ function unionContainsFileWorker(u, visited = new Set()) {
193
+ if (visited.has(u))
194
+ return false;
195
+ visited.add(u);
196
+ for (const { type } of u.variants.values()) {
197
+ if (!!getHttpFileModel(program, type) ||
198
+ (type.kind === "Union" && unionContainsFileWorker(type, visited))) {
199
+ return true;
200
+ }
201
+ }
202
+ return false;
203
+ }
204
+ }
162
205
  /** Validate a property marked with `@body` */
163
206
  function validateBodyProperty(program, property, disposition) {
164
207
  const diagnostics = createDiagnosticCollector();
@@ -293,10 +336,6 @@ function resolvePart(program, type, visibility, property) {
293
336
  const diagnostics = createDiagnosticCollector();
294
337
  const part = getHttpPart(program, type);
295
338
  if (part) {
296
- const file = getHttpFileModel(program, part.type);
297
- if (file !== undefined) {
298
- return getFilePart(part.options.name, file);
299
- }
300
339
  let { body, metadata } = diagnostics.pipe(resolveHttpPayload(program, part.type, visibility, HttpPayloadDisposition.Multipart));
301
340
  const contentTypeProperty = metadata.find((x) => x.kind === "contentType");
302
341
  if (body === undefined) {
@@ -319,31 +358,62 @@ function resolvePart(program, type, visibility, property) {
319
358
  body,
320
359
  optional: false,
321
360
  headers: metadata.filter((x) => x.kind === "header"),
361
+ filename: body.bodyKind === "file" ? body.filename : undefined,
322
362
  });
323
363
  }
324
364
  diagnostics.add(createDiagnostic({ code: "multipart-part", target: type }));
325
365
  return diagnostics.wrap(undefined);
326
366
  }
327
- function getFilePart(name, file) {
367
+ /**
368
+ * Creates a filter function to determine if a property is applicable metadata for the purposes
369
+ * of effective File model calculation.
370
+ */
371
+ function createHttpFileModelFilter(metadata) {
372
+ const metadataPropToMetadata = new Map(metadata.map((x) => [x.property, x]));
373
+ return function isApplicableMetadata(property) {
374
+ const httpProperty = metadataPropToMetadata.get(property);
375
+ if (["filename"].includes(property.name))
376
+ return true;
377
+ if (!httpProperty)
378
+ return true;
379
+ if (httpProperty.kind !== "bodyProperty")
380
+ return false;
381
+ return true;
382
+ };
383
+ }
384
+ /**
385
+ * Gets a file body from an HttpFileModel.
386
+ *
387
+ * @param file - the resolved file model
388
+ * @param property - the property that references the file model, if any
389
+ */
390
+ function getFileBody(file, property) {
328
391
  const [contentTypes, diagnostics] = getContentTypes(file.contentType);
392
+ const isText = isOrExtendsString(file.contents.type);
329
393
  return [
330
394
  {
331
- multi: false,
332
- name,
333
- body: {
334
- bodyKind: "single",
335
- contentTypeProperty: file.contentType,
336
- contentTypes: contentTypes,
337
- type: file.contents.type,
338
- isExplicit: false,
339
- containsMetadataAnnotations: false,
340
- },
395
+ bodyKind: "file",
396
+ type: file.type,
397
+ contents: file.contents,
341
398
  filename: file.filename,
342
- optional: false,
343
- headers: [],
399
+ isText,
400
+ contentTypeProperty: file.contentType,
401
+ contentTypes,
402
+ property,
344
403
  },
345
404
  diagnostics,
346
405
  ];
406
+ function isOrExtendsString(type) {
407
+ return isString(type) || (!!type.baseScalar && isOrExtendsString(type.baseScalar));
408
+ function isString(type) {
409
+ return (type.name === "string" &&
410
+ !!type.namespace &&
411
+ type.namespace.name === "TypeSpec" &&
412
+ !!type.namespace.namespace &&
413
+ type.namespace.namespace.name === "" &&
414
+ !type.namespace.namespace.namespace);
415
+ }
416
+ }
347
417
  }
348
418
  function getDefaultContentTypeForKind(type) {
349
419
  return type.kind === "Scalar" ? "text/plain" : "application/json";
@@ -1 +1 @@
1
- {"version":3,"file":"payload.js","sourceRoot":"","sources":["../../src/payload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payload.js","sourceRoot":"","sources":["../../src/payload.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { DecoratorContext, ModelProperty, Program, Type } from "@typespec/compiler";
1
+ import { DecoratorContext, Model, ModelProperty, Program, Type } from "@typespec/compiler";
2
2
  import { HttpFileDecorator, HttpPartDecorator, HttpPartOptions, PlainDataDecorator } from "../generated-defs/TypeSpec.Http.Private.js";
3
+ import { HttpOperationFileBody } from "./types.js";
3
4
  export declare const $plainData: PlainDataDecorator;
4
5
  export declare const $httpFile: HttpFileDecorator;
5
6
  /**
@@ -8,12 +9,12 @@ export declare const $httpFile: HttpFileDecorator;
8
9
  export declare function isHttpFile(program: Program, type: Type): boolean;
9
10
  export declare function isOrExtendsHttpFile(program: Program, type: Type): boolean;
10
11
  export interface HttpFileModel {
11
- readonly type: Type;
12
+ readonly type: Model;
12
13
  readonly contentType: ModelProperty;
13
14
  readonly filename: ModelProperty;
14
- readonly contents: ModelProperty;
15
+ readonly contents: HttpOperationFileBody["contents"];
15
16
  }
16
- export declare function getHttpFileModel(program: Program, type: Type): HttpFileModel | undefined;
17
+ export declare function getHttpFileModel(program: Program, type: Type, filter?: (property: ModelProperty) => boolean): HttpFileModel | undefined;
17
18
  export declare const $httpPart: HttpPartDecorator;
18
19
  export interface HttpPart {
19
20
  readonly type: Type;
@@ -1 +1 @@
1
- {"version":3,"file":"private.decorators.d.ts","sourceRoot":"","sources":["../../src/private.decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAEhB,aAAa,EAEb,OAAO,EACP,IAAI,EAEL,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EACnB,MAAM,4CAA4C,CAAC;AAGpD,eAAO,MAAM,UAAU,EAAE,kBA0BxB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,iBAEvB,CAAC;AAEF;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,WAEtD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,WAgB/D;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;CAClC;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,aAAa,GAAG,SAAS,CAUxF;AAED,eAAO,MAAM,SAAS,EAAE,iBAOvB,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;CACnC;AAED,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,QAAQ,GAAG,SAAS,CAEhF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,OAAO,QAIf;AAED;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,aAAa,GACtB,OAAO,CAST"}
1
+ {"version":3,"file":"private.decorators.d.ts","sourceRoot":"","sources":["../../src/private.decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAGhB,KAAK,EACL,aAAa,EAGb,OAAO,EACP,IAAI,EAKL,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EACnB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,eAAO,MAAM,UAAU,EAAE,kBA0BxB,CAAC;AAwBF,eAAO,MAAM,SAAS,EAAE,iBA8EvB,CAAC;AAEF;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,WAEtD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,WAgB/D;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC;CACtD;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,OAAO,GAC5C,aAAa,GAAG,SAAS,CAuC3B;AAeD,eAAO,MAAM,SAAS,EAAE,iBAOvB,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;CACnC;AAED,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,QAAQ,GAAG,SAAS,CAEhF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,OAAO,QAIf;AAED;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,aAAa,GACtB,OAAO,CAST"}
@@ -1,5 +1,6 @@
1
- import { getProperty, } from "@typespec/compiler";
2
- import { HttpStateKeys } from "./lib.js";
1
+ import { NoTarget, getProperty, getTypeName, walkPropertiesInherited, } from "@typespec/compiler";
2
+ import { SyntaxKind } from "@typespec/compiler/ast";
3
+ import { HttpStateKeys, reportDiagnostic } from "./lib.js";
3
4
  export const $plainData = (context, entity) => {
4
5
  const { program } = context;
5
6
  const decoratorsToRemove = ["$header", "$body", "$query", "$path", "$statusCode"];
@@ -22,8 +23,76 @@ export const $plainData = (context, entity) => {
22
23
  statusCodes.delete(property);
23
24
  }
24
25
  };
26
+ function getFileTemplateMetadata(target) {
27
+ if (target.sourceModels.length)
28
+ return;
29
+ const templateMapper = target.templateMapper;
30
+ if (!templateMapper || !templateMapper.args)
31
+ return;
32
+ // Grab the contentType and contents arguments
33
+ const [contentTypeArg, contentsArg] = templateMapper.args;
34
+ if (!contentTypeArg || !contentsArg)
35
+ return;
36
+ return { contentTypeArg, contentsArg, templateMapper: target.templateMapper };
37
+ }
38
+ function getFileDiagFormatName(t) {
39
+ if (t?.entityKind === "Type") {
40
+ return getTypeName(t, { printable: true });
41
+ }
42
+ else if (t?.type.kind === "String") {
43
+ return `"${t.type.value}"`;
44
+ }
45
+ return;
46
+ }
25
47
  export const $httpFile = (context, target) => {
48
+ const aliasModel = target.sourceModels.length > 0 ? target : undefined;
49
+ const templateMetadata = getFileTemplateMetadata(target);
50
+ const templateMapper = templateMetadata?.templateMapper;
51
+ // Validate the `ContentType` type is `TypeSpec.string`, a string literal, or a union of string literals
52
+ const contentType = target.properties.get("contentType").type;
53
+ if (!((contentType.kind === "String" || // is string literal
54
+ context.program.checker.isStdType(contentType, "string") || // is TypeSpec.string
55
+ (contentType.kind === "Union" &&
56
+ [...contentType.variants.values()].every((v) => v.type.kind === "String"))) // is union of string literals
57
+ )) {
58
+ const contentTypeDiagnosticTarget = getTemplateArgumentTarget(templateMapper?.source, "ContentType", 0) ??
59
+ templateMetadata?.contentTypeArg;
60
+ const contentTypeArg = templateMetadata?.contentTypeArg;
61
+ const typeName = getFileDiagFormatName(contentTypeArg) ?? getFileDiagFormatName(contentType) ?? "<unknown>";
62
+ reportDiagnostic(context.program, {
63
+ code: "http-file-content-type-not-string",
64
+ format: { type: typeName },
65
+ target: contentTypeDiagnosticTarget ?? aliasModel ?? NoTarget,
66
+ });
67
+ }
68
+ // Validate the `Contents` type is a scalar
69
+ const contents = target.properties.get("contents").type;
70
+ if (contents.kind !== "Scalar") {
71
+ const contentsArg = templateMetadata?.contentsArg;
72
+ const contentsDiagnosticTarget = getTemplateArgumentTarget(templateMapper?.source, "Contents", 1) ?? contentsArg;
73
+ const typeName = getFileDiagFormatName(contentsArg) ?? getFileDiagFormatName(contents) ?? "<unknown>";
74
+ reportDiagnostic(context.program, {
75
+ code: "http-file-contents-not-scalar",
76
+ format: { type: typeName },
77
+ target: contentsDiagnosticTarget ?? aliasModel ?? NoTarget,
78
+ });
79
+ }
26
80
  context.program.stateSet(HttpStateKeys.file).add(target);
81
+ function getTemplateArgumentTarget(source, name, argumentPosition) {
82
+ if (source?.node.kind === SyntaxKind.TypeReference) {
83
+ const argument = source.node.arguments.find((n) => n.name?.sv === name);
84
+ if (argument)
85
+ return argument;
86
+ const templateNode = target.templateNode;
87
+ const position = templateNode?.templateParameters
88
+ .map((n, idx) => [idx, n])
89
+ .find(([_, n]) => n.id.sv)?.[0] ?? argumentPosition;
90
+ if (position === undefined)
91
+ return undefined;
92
+ return source.node.arguments[position];
93
+ }
94
+ return undefined;
95
+ }
27
96
  };
28
97
  /**
29
98
  * Check if the given type is an `HttpFile`
@@ -44,15 +113,50 @@ export function isOrExtendsHttpFile(program, type) {
44
113
  }
45
114
  return false;
46
115
  }
47
- export function getHttpFileModel(program, type) {
48
- if (type.kind !== "Model" || !isOrExtendsHttpFile(program, type)) {
116
+ export function getHttpFileModel(program, type, filter) {
117
+ if (type.kind !== "Model")
49
118
  return undefined;
50
- }
51
119
  const contentType = getProperty(type, "contentType");
52
120
  const filename = getProperty(type, "filename");
53
121
  const contents = getProperty(type, "contents");
122
+ // All properties are required for an `Http.File` model
123
+ if (!contentType || !filename || !contents) {
124
+ return undefined;
125
+ }
126
+ // Check that each property is sourced from an `Http.File` model
127
+ if (!propertyIsFromHttpFile(program, contentType) ||
128
+ !propertyIsFromHttpFile(program, filename) ||
129
+ !propertyIsFromHttpFile(program, contents)) {
130
+ return undefined;
131
+ }
132
+ // Need to make sure that the filtered model only has the 3 `Http.File` properties
133
+ // Filtering should have removed all metadata (besides filename)
134
+ const effectiveProperties = new Set(walkPropertiesInherited(type));
135
+ if (filter) {
136
+ for (const prop of effectiveProperties) {
137
+ if (!filter(prop)) {
138
+ effectiveProperties.delete(prop);
139
+ }
140
+ }
141
+ }
142
+ // If there are any props beyond these 3, we know we have a body parameter
143
+ // that transforms this into a regular model.
144
+ if (effectiveProperties.size !== 3) {
145
+ return undefined;
146
+ }
54
147
  return { contents, contentType, filename, type };
55
148
  }
149
+ function propertyIsFromHttpFile(program, property) {
150
+ // Checks if the property's model, or any base models, are an Http.File.
151
+ const isFile = property.model ? isOrExtendsHttpFile(program, property.model) : false;
152
+ if (isFile)
153
+ return true;
154
+ // For spreads, the property may have a source property that links back to an Http.File model.
155
+ if (property.sourceProperty) {
156
+ return propertyIsFromHttpFile(program, property.sourceProperty);
157
+ }
158
+ return false;
159
+ }
56
160
  export const $httpPart = (context, target, type, options) => {
57
161
  context.program.stateMap(HttpStateKeys.httpPart).set(target, { type, options });
58
162
  };
@@ -1 +1 @@
1
- {"version":3,"file":"private.decorators.js","sourceRoot":"","sources":["../../src/private.decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"private.decorators.js","sourceRoot":"","sources":["../../src/private.decorators.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { DiagnosticResult, Interface, ListOperationOptions, Model, ModelProperty, Namespace, Operation, Program, Tuple, Type } from "@typespec/compiler";
1
+ import { DiagnosticResult, Interface, ListOperationOptions, Model, ModelProperty, Namespace, Operation, Program, Scalar, Tuple, Type } from "@typespec/compiler";
2
2
  import { CookieOptions, PathOptions, QueryOptions } from "../generated-defs/TypeSpec.Http.js";
3
3
  import { HeaderProperty, HttpProperty } from "./http-property.js";
4
4
  export type HttpVerb = "get" | "put" | "post" | "patch" | "delete" | "head";
@@ -256,7 +256,7 @@ export interface HttpOperationParameters {
256
256
  /** Http properties */
257
257
  readonly properties: HttpProperty[];
258
258
  parameters: HttpOperationParameter[];
259
- body?: HttpOperationBody | HttpOperationMultipartBody;
259
+ body?: HttpPayloadBody;
260
260
  }
261
261
  export interface HttpService {
262
262
  namespace: Namespace;
@@ -334,13 +334,19 @@ export interface HttpOperationResponseContent {
334
334
  /** Http properties for this response */
335
335
  readonly properties: HttpProperty[];
336
336
  headers?: Record<string, ModelProperty>;
337
- body?: HttpOperationBody | HttpOperationMultipartBody;
337
+ body?: HttpPayloadBody;
338
338
  }
339
+ /** The possible bodies of an HTTP operation. */
340
+ export type HttpPayloadBody = HttpOperationBody | HttpOperationMultipartBody | HttpOperationFileBody;
339
341
  export interface HttpOperationBodyBase {
340
342
  /** Content types. */
341
343
  readonly contentTypes: string[];
342
344
  /** Property used to set the content type if exists */
343
345
  readonly contentTypeProperty?: ModelProperty;
346
+ /**
347
+ * The payload property that defined this body, if any.
348
+ */
349
+ readonly property?: ModelProperty;
344
350
  }
345
351
  export interface HttpBody {
346
352
  readonly type: Type;
@@ -348,10 +354,6 @@ export interface HttpBody {
348
354
  readonly isExplicit: boolean;
349
355
  /** If the body contains metadata annotations to ignore. For example `@header`. */
350
356
  readonly containsMetadataAnnotations: boolean;
351
- /**
352
- * If the body was explicitly set as a property. Correspond to the property with `@body` or `@bodyRoot`
353
- */
354
- readonly property?: ModelProperty;
355
357
  }
356
358
  export interface HttpOperationBody extends HttpOperationBodyBase, HttpBody {
357
359
  readonly bodyKind: "single";
@@ -364,6 +366,8 @@ export interface HttpOperationMultipartBody extends HttpOperationBodyBase {
364
366
  readonly property: ModelProperty;
365
367
  readonly parts: HttpOperationPart[];
366
368
  }
369
+ /** The possible bodies of a multipart part. */
370
+ export type HttpOperationMultipartPartBody = HttpOperationBody | HttpOperationFileBody;
367
371
  /** Represent an part in a multipart body. */
368
372
  export interface HttpOperationPart {
369
373
  /** Property that defined the part if the model form is used. */
@@ -373,7 +377,7 @@ export interface HttpOperationPart {
373
377
  /** If the part is optional */
374
378
  readonly optional: boolean;
375
379
  /** Part body */
376
- readonly body: HttpOperationBody;
380
+ readonly body: HttpOperationMultipartPartBody;
377
381
  /** If the Part is an HttpFile this is the property defining the filename */
378
382
  readonly filename?: ModelProperty;
379
383
  /** Part headers */
@@ -381,6 +385,46 @@ export interface HttpOperationPart {
381
385
  /** If there can be multiple of that part */
382
386
  readonly multi: boolean;
383
387
  }
388
+ /**
389
+ * The type of an HTTP body that is a file upload or download.
390
+ */
391
+ export interface HttpOperationFileBody extends HttpOperationBodyBase {
392
+ readonly bodyKind: "file";
393
+ /**
394
+ * The model type of the body that is or extends `Http.File`.
395
+ */
396
+ readonly type: Model;
397
+ /**
398
+ * Whether the file contents should be represented as a string or raw byte stream.
399
+ *
400
+ * True if the `contents` property is a `string`, `false` if it is `bytes`.
401
+ *
402
+ * Emitters may choose to represent textual files as strings or streams of textual characters.
403
+ * If this property is `false`, emitters must expect that the contents may contain non-textual
404
+ * data.
405
+ */
406
+ readonly isText: boolean;
407
+ /**
408
+ * The list of inner media types of the file. In other words, what kind of files can be returned.
409
+ *
410
+ * This is determined by the `contentType` property of the file model.
411
+ */
412
+ readonly contentTypes: string[];
413
+ /**
414
+ * The `contentType` property.
415
+ */
416
+ readonly contentTypeProperty: ModelProperty;
417
+ /**
418
+ * The filename property.
419
+ */
420
+ readonly filename: ModelProperty;
421
+ /**
422
+ * The `contents` property.
423
+ */
424
+ readonly contents: ModelProperty & {
425
+ type: Scalar;
426
+ };
427
+ }
384
428
  export interface HttpStatusCodeRange {
385
429
  start: number;
386
430
  end: number;
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAMzD,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,QAQ3C"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwB,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAgBxE,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,QAQ3C"}
@@ -1,3 +1,4 @@
1
+ import { getCookieParamOptions, getHeaderFieldOptions, getPathOptions, getQueryOptions, isBody, isBodyRoot, isMultipartBodyProperty, isStatusCode, } from "./decorators.js";
1
2
  import { HttpStateKeys, reportDiagnostic } from "./lib.js";
2
3
  import { getAllHttpServices } from "./operations.js";
3
4
  import { isSharedRoute } from "./route.js";
@@ -20,17 +21,55 @@ function validateHttpFiles(program) {
20
21
  }
21
22
  function validateHttpFileModel(program, model) {
22
23
  for (const prop of model.properties.values()) {
23
- if (prop.name !== "contentType" && prop.name !== "filename" && prop.name !== "contents") {
24
- reportDiagnostic(program, {
25
- code: "http-file-extra-property",
26
- format: { propName: prop.name },
27
- target: prop,
28
- });
24
+ switch (prop.name) {
25
+ case "contentType":
26
+ case "contents": {
27
+ // Check if these properties have any HTTP metadata and if so, report an error
28
+ const annotations = {
29
+ header: getHeaderFieldOptions(program, prop),
30
+ cookie: getCookieParamOptions(program, prop),
31
+ query: getQueryOptions(program, prop),
32
+ path: getPathOptions(program, prop),
33
+ body: isBody(program, prop),
34
+ bodyRoot: isBodyRoot(program, prop),
35
+ multipartBody: isMultipartBodyProperty(program, prop),
36
+ statusCode: isStatusCode(program, prop),
37
+ };
38
+ reportDisallowed(prop, annotations);
39
+ break;
40
+ }
41
+ case "filename": {
42
+ const annotations = {
43
+ body: isBody(program, prop),
44
+ bodyRoot: isBodyRoot(program, prop),
45
+ multipartBody: isMultipartBodyProperty(program, prop),
46
+ statusCode: isStatusCode(program, prop),
47
+ cookie: getCookieParamOptions(program, prop),
48
+ };
49
+ reportDisallowed(prop, annotations);
50
+ break;
51
+ }
52
+ default:
53
+ reportDiagnostic(program, {
54
+ code: "http-file-extra-property",
55
+ format: { propName: prop.name },
56
+ target: prop,
57
+ });
29
58
  }
30
59
  }
31
60
  for (const child of model.derivedModels) {
32
61
  validateHttpFileModel(program, child);
33
62
  }
63
+ function reportDisallowed(target, annotations) {
64
+ const metadataEntries = Object.entries(annotations).filter((e) => !!e[1]);
65
+ for (const [metadataType] of metadataEntries) {
66
+ reportDiagnostic(program, {
67
+ code: "http-file-disallowed-metadata",
68
+ format: { propName: target.name, metadataType },
69
+ target: target,
70
+ });
71
+ }
72
+ }
34
73
  }
35
74
  function groupHttpOperations(operations) {
36
75
  const paths = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"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"}
package/lib/main.tsp CHANGED
@@ -106,11 +106,154 @@ model PlainData<Data> {
106
106
  ...Data;
107
107
  }
108
108
 
109
+ /**
110
+ * A file in an HTTP request, response, or multipart payload.
111
+ *
112
+ * Files have a special meaning that the HTTP library understands. When the body of an HTTP request, response,
113
+ * or multipart payload is _effectively_ an instance of `TypeSpec.Http.File` or any type that extends it, the
114
+ * operation is treated as a file upload or download.
115
+ *
116
+ * When using file bodies, the fields of the file model are defined to come from particular locations by default:
117
+ *
118
+ * - `contentType`: The `Content-Type` header of the request, response, or multipart payload (CANNOT be overridden or changed).
119
+ * - `contents`: The body of the request, response, or multipart payload (CANNOT be overridden or changed).
120
+ * - `filename`: The `filename` parameter value of the `Content-Disposition` header of the response or multipart payload
121
+ * (MAY be overridden or changed).
122
+ *
123
+ * A File may be used as a normal structured JSON object in a request or response, if the request specifies an explicit
124
+ * `Content-Type` header. In this case, the entire File model is serialized as if it were any other model. In a JSON payload,
125
+ * it will have a structure like:
126
+ *
127
+ * ```
128
+ * {
129
+ * "contentType": <string?>,
130
+ * "filename": <string?>,
131
+ * "contents": <string, base64>
132
+ * }
133
+ * ```
134
+ *
135
+ * The `contentType` _within_ the file defines what media types the data inside the file can be, but if the specification
136
+ * defines a `Content-Type` for the payload as HTTP metadata, that `Content-Type` metadata defines _how the file is
137
+ * serialized_. See the examples below for more information.
138
+ *
139
+ * NOTE: The `filename` and `contentType` fields are optional. Furthermore, the default location of `filename`
140
+ * (`Content-Disposition: <disposition>; filename=<filename>`) is only valid in HTTP responses and multipart payloads. If
141
+ * you wish to send the `filename` in a request, you must use HTTP metadata decorators to describe the location of the
142
+ * `filename` field. You can combine the metadata decorators with `@visibility` to control when the `filename` location
143
+ * is overridden, as shown in the examples below.
144
+ *
145
+ * @template ContentType The allowed media (MIME) types of the file contents.
146
+ * @template Contents The type of the file contents. This can be `string`, `bytes`, or any scalar that extends them.
147
+ *
148
+ * @example
149
+ * ```tsp
150
+ * // Download a file
151
+ * @get op download(): File;
152
+ *
153
+ * // Upload a file
154
+ * @post op upload(@bodyRoot file: File): void;
155
+ * ```
156
+ *
157
+ * @example
158
+ * ```tsp
159
+ * // Upload and download files in a multipart payload
160
+ * op multipartFormDataUpload(
161
+ * @multipartBody fields: {
162
+ * files: HttpPart<File>[];
163
+ * },
164
+ * ): void;
165
+ *
166
+ * op multipartFormDataDownload(): {
167
+ * @multipartBody formFields: {
168
+ * files: HttpPart<File>[];
169
+ * }
170
+ * };
171
+ * ```
172
+ *
173
+ * @example
174
+ * ```tsp
175
+ * // Declare a custom type of text file, where the filename goes in the path
176
+ * // in requests.
177
+ * model SpecFile extends File<"application/json" | "application/yaml", string> {
178
+ * // Provide a header that contains the name of the file when created or updated
179
+ * @header("x-filename")
180
+ * @path filename: string;
181
+ * }
182
+ *
183
+ * @get op downloadSpec(@path name: string): SpecFile;
184
+ *
185
+ * @post op uploadSpec(@bodyRoot spec: SpecFile): void;
186
+ * ```
187
+ *
188
+ * @example
189
+ * ```tsp
190
+ * // Declare a custom type of binary file
191
+ * model ImageFile extends File {
192
+ * contentType: "image/png" | "image/jpeg";
193
+ * @path filename: string;
194
+ * }
195
+ *
196
+ * @get op downloadImage(@path name: string): ImageFile;
197
+ *
198
+ * @post op uploadImage(@bodyRoot image: ImageFile): void;
199
+ * ```
200
+ *
201
+ * @example
202
+ * ```tsp
203
+ * // Use a File as a structured JSON object. The HTTP library will warn you that the File will be serialized as JSON,
204
+ * // so you should suppress the warning if it's really what you want instead of a binary file upload/download.
205
+ *
206
+ * // The response body is a JSON object like `{"contentType":<string?>,"filename":<string?>,"contents":<string>}`
207
+ * @get op downloadTextFileJson(): {
208
+ * @header contentType: "application/json",
209
+ * @body file: File<"text/plain", string>,
210
+ * };
211
+ *
212
+ * // The request body is a JSON object like `{"contentType":<string?>,"filename":<string?>,"contents":<base64>}`
213
+ * @post op uploadBinaryFileJson(
214
+ * @header contentType: "application/json",
215
+ * @body file: File<"image/png", bytes>,
216
+ * ): void;
217
+ *
218
+ */
219
+ @summary("A file in an HTTP request, response, or multipart payload.")
109
220
  @Private.httpFile
110
- model File {
111
- contentType?: string;
221
+ model File<ContentType extends string = string, Contents extends bytes | string = bytes> {
222
+ /**
223
+ * The allowed media (MIME) types of the file contents.
224
+ *
225
+ * In file bodies, this value comes from the `Content-Type` header of the request or response. In JSON bodies,
226
+ * this value is serialized as a field in the response.
227
+ *
228
+ * NOTE: this is not _necessarily_ the same as the `Content-Type` header of the request or response, but
229
+ * it will be for file bodies. It may be different if the file is serialized as a JSON object. It always refers to the
230
+ * _contents_ of the file, and not necessarily the way the file itself is transmitted or serialized.
231
+ */
232
+ @summary("The allowed media (MIME) types of the file contents.")
233
+ contentType?: ContentType;
234
+
235
+ /**
236
+ * The name of the file, if any.
237
+ *
238
+ * In file bodies, this value comes from the `filename` parameter of the `Content-Disposition` header of the response
239
+ * or multipart payload. In JSON bodies, this value is serialized as a field in the response.
240
+ *
241
+ * NOTE: By default, `filename` cannot be sent in request payloads and can only be sent in responses and multipart
242
+ * payloads, as the `Content-Disposition` header is not valid in requests. If you want to send the `filename` in a request,
243
+ * you must extend the `File` model and override the `filename` property with a different location defined by HTTP metadata
244
+ * decorators.
245
+ */
246
+ @summary("The name of the file, if any.")
112
247
  filename?: string;
113
- contents: bytes;
248
+
249
+ /**
250
+ * The contents of the file.
251
+ *
252
+ * In file bodies, this value comes from the body of the request, response, or multipart payload. In JSON bodies,
253
+ * this value is serialized as a field in the response.
254
+ */
255
+ @summary("The contents of the file.")
256
+ contents: Contents;
114
257
  }
115
258
 
116
259
  model HttpPartOptions {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/http",
3
- "version": "0.68.0-dev.7",
3
+ "version": "0.68.0-dev.9",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "TypeSpec HTTP protocol binding",
6
6
  "homepage": "https://github.com/microsoft/typespec",
@@ -77,7 +77,7 @@
77
77
  "dependencies": {},
78
78
  "scripts": {
79
79
  "clean": "rimraf ./dist ./temp",
80
- "build": "npm run gen-extern-signature && tsc -p . && npm run lint-typespec-library",
80
+ "build": "pnpm gen-extern-signature && tsc -p . && pnpm lint-typespec-library",
81
81
  "api-extractor": "api-extractor run --local --verbose",
82
82
  "watch": "tsc -p . --watch",
83
83
  "gen-extern-signature": "tspd --enable-experimental gen-extern-signature .",