@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.
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib.d.ts +67 -2
- package/dist/src/lib.d.ts.map +1 -1
- package/dist/src/lib.js +25 -0
- package/dist/src/lib.js.map +1 -1
- package/dist/src/payload.d.ts +2 -2
- package/dist/src/payload.d.ts.map +1 -1
- package/dist/src/payload.js +100 -30
- package/dist/src/payload.js.map +1 -1
- package/dist/src/private.decorators.d.ts +5 -4
- package/dist/src/private.decorators.d.ts.map +1 -1
- package/dist/src/private.decorators.js +109 -5
- package/dist/src/private.decorators.js.map +1 -1
- package/dist/src/types.d.ts +52 -8
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/validate.d.ts.map +1 -1
- package/dist/src/validate.js +45 -6
- package/dist/src/validate.js.map +1 -1
- package/lib/main.tsp +146 -3
- package/package.json +2 -2
package/dist/src/index.d.ts
CHANGED
|
@@ -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
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -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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"}
|
package/dist/src/index.js.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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
|
package/dist/src/lib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI
|
|
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" },
|
package/dist/src/lib.js.map
CHANGED
|
@@ -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":"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"}
|
package/dist/src/payload.d.ts
CHANGED
|
@@ -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 {
|
|
4
|
+
import { HttpPayloadBody } from "./types.js";
|
|
5
5
|
export interface HttpPayload {
|
|
6
|
-
readonly body?:
|
|
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,
|
|
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"}
|
package/dist/src/payload.js
CHANGED
|
@@ -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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
|
|
137
|
-
|
|
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
|
-
|
|
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
|
-
|
|
332
|
-
|
|
333
|
-
|
|
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
|
-
|
|
343
|
-
|
|
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";
|
package/dist/src/payload.js.map
CHANGED
|
@@ -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":"AAAA,OAAO,EAWL,yBAAyB,EACzB,qBAAqB,EACrB,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAIL,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE9D,OAAO,EAAiB,gBAAgB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAevF;;GAEG;AACH,MAAM,CAAN,IAAY,sBAaX;AAbD,WAAY,sBAAsB;IAChC;;OAEG;IACH,yEAAO,CAAA;IACP;;OAEG;IACH,2EAAQ,CAAA;IACR;;OAEG;IACH,6EAAS,CAAA;AACX,CAAC,EAbW,sBAAsB,KAAtB,sBAAsB,QAajC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAgB,EAChB,IAAU,EACV,UAAsB,EACtB,WAAmC,EACnC,UAAyC,EAAE;IAE3C,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAEhD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAC/B,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAC1E,CAAC;IAEF,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IAE7F,IAAI,IAAI,EAAE,CAAC;QACT,IACE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACzD,IAAI,CAAC,QAAQ,KAAK,WAAW,EAC7B,CAAC;YACD,WAAW,CAAC,GAAG,CACb,gBAAgB,CAAC;gBACf,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;aAC9B,CAAC,CACH,CAAC;YACF,OAAO,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,WAAW,CAClB,OAAgB,EAChB,qBAA2B,EAC3B,QAAwB,EACxB,UAAsB,EACtB,WAAmC;IAEnC,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAEhD,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;IAE3E,MAAM,IAAI,GAAG,gBAAgB,CAC3B,OAAO,EACP,qBAAqB,EACrB,yBAAyB,CAAC,QAAQ,CAAC,CACpC,CAAC;IACF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,4EAA4E;YAC5E,OAAO,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAChB,mBAAmB,IAAI,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEzF,gBAAgB,CAAC,OAAO,EAAE;gBACxB,IAAI,EAAE,sBAAsB;gBAC5B,MAAM,EAAE;oBACN,YAAY,EAAE,YAAa,CAAC,IAAI,CAAC,IAAI,CAAC;iBACvC;gBACD,MAAM,EAAE,mBAAmB,CAAC,QAAQ;aACrC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,IAAI,qBAAqB,CAAC,IAAI,KAAK,OAAO,IAAI,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,CAAC,EAAE,CAAC;QAC/F,OAAO,WAAW,CAAC,IAAI,CAAC;YACtB,QAAQ,EAAE,QAAQ;YAClB,GAAG,WAAW,CAAC,IAAI,CACjB,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,CAAC,CAChF;YACD,IAAI,EAAE,qBAAqB;YAC3B,UAAU,EAAE,KAAK;YACjB,2BAA2B,EAAE,KAAK;SACnC,CAAC,CAAC;IACL,CAAC;IAED,yBAAyB;IACzB,MAAM,YAAY,GAAgC,WAAW,CAAC,IAAI,CAChE,2BAA2B,CAAC,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,UAAU,EAAE,WAAW,CAAC,CAC7F,CAAC;IAEF,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,0HAA0H;QAC1H,gGAAgG;QAChG,IAAI,qBAAqB,CAAC,SAAS,IAAI,qBAAqB,CAAC,OAAO,EAAE,CAAC;YACrE,OAAO,WAAW,CAAC,IAAI,CAAC;gBACtB,QAAQ,EAAE,QAAQ;gBAClB,GAAG,WAAW,CAAC,IAAI,CACjB,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,CAAC,CAChF;gBACD,IAAI,EAAE,qBAAqB;gBAC3B,UAAU,EAAE,KAAK;gBACjB,2BAA2B,EAAE,KAAK;aACnC,CAAC,CAAC;QACL,CAAC;QACD,wGAAwG;QACxG,4GAA4G;QAC5G,IACE,qBAAqB,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;YAC9C,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,CAAC,EAChD,CAAC;YACD,OAAO,WAAW,CAAC,IAAI,CAAC;gBACtB,QAAQ,EAAE,QAAQ;gBAClB,GAAG,WAAW,CAAC,IAAI,CACjB,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,CAAC,CAChF;gBACD,IAAI,EAAE,qBAAqB;gBAC3B,UAAU,EAAE,KAAK;gBACjB,2BAA2B,EAAE,KAAK;aACnC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE,CACxF,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CACpE,CAAC;IAEF,IAAI,qBAAqB,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC9C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,WAAW,CAAC,IAAI,CAAC;gBACtB,QAAQ,EAAE,QAAQ;gBAClB,GAAG,WAAW,CAAC,IAAI,CACjB,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,CAAC,CAChF;gBACD,IAAI,EAAE,qBAAqB;gBAC3B,UAAU,EAAE,KAAK;gBACjB,2BAA2B,EAAE,KAAK;aACnC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,GAAG,CACb,gBAAgB,CAAC;gBACf,IAAI,EAAE,gBAAgB;gBACtB,SAAS,EAAE,oBAAoB;gBAC/B,MAAM,EAAE,qBAAqB;aAC9B,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,YAAY,KAAK,SAAS,IAAI,mBAAmB,EAAE,CAAC;QACtD,WAAW,CAAC,GAAG,CACb,gBAAgB,CAAC;YACf,IAAI,EAAE,sBAAsB;YAC5B,MAAM,EAAE,mBAAmB,CAAC,QAAQ;SACrC,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxC,CAAC;AAOD,SAAS,2BAA2B,CAClC,OAAgB,EAChB,QAAwB,EACxB,mBAA6C,EAC7C,UAAsB,EACtB,WAAmC;IAEnC,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAChD,IAAI,YAAyC,CAAC;IAC9C,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAgB,CAAC;IAE9D,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACtF,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;QAED,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,MAAM,CAAC;YACZ,KAAK,UAAU;gBACb,IAAI,2BAA2B,GAAG,KAAK,CAAC;gBACxC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACzB,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;oBAC1F,2BAA2B,GAAG,CAAC,KAAK,CAAC;gBACvC,CAAC;gBAED,MAAM,IAAI,GAAG,gBAAgB,CAC3B,OAAO,EACP,IAAI,CAAC,QAAQ,CAAC,IAAI,EAClB,yBAAyB,CAAC,QAAQ,CAAC,CACpC,CAAC;gBAEF,MAAM,MAAM,GAAG,IAAI,KAAK,SAAS,IAAI,CAAC,mBAAmB,CAAC;gBAE1D,IAAI,IAAI,IAAI,mBAAmB,EAAE,CAAC;oBAChC,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACrF,gBAAgB,CAAC,OAAO,EAAE;wBACxB,IAAI,EAAE,sBAAsB;wBAC5B,MAAM,EAAE;4BACN,YAAY,EAAE,YAAa,CAAC,IAAI,CAAC,IAAI,CAAC;yBACvC;wBACD,MAAM,EAAE,mBAAmB,CAAC,QAAQ;qBACrC,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1F,gBAAgB,CAAC,OAAO,EAAE;wBACxB,IAAI,EAAE,sBAAsB;wBAC5B,SAAS,EAAE,OAAO;wBAClB,MAAM,EACJ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,aAAa;4BAClD,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK;4BAC1B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI;qBACzB,CAAC,CAAC;gBACL,CAAC;gBAED,YAAY,KAAK,MAAM;oBACrB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACpD,CAAC,CAAC;wBACE,QAAQ,EAAE,QAAQ;wBAClB,GAAG,WAAW,CAAC,IAAI,CACjB,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC7E;wBACD,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;wBACxB,UAAU,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM;wBAChC,2BAA2B;wBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;qBACxB,CAAC;gBACN,MAAM;YACR,KAAK,eAAe;gBAClB,YAAY,GAAG,WAAW,CAAC,IAAI,CAC7B,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,mBAAmB,EAAE,UAAU,CAAC,CAC9E,CAAC;gBACF,MAAM;QACV,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC;QACpD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,WAAW,CAAC,GAAG,CACb,gBAAgB,CAAC;gBACf,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,IAAI;aACb,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAgB,EAAE,CAAQ;IACnD,OAAO,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAElC,SAAS,uBAAuB,CAAC,CAAQ,EAAE,OAAO,GAAG,IAAI,GAAG,EAAE;QAC5D,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAEjC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAEf,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,IACE,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC;gBACjC,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EACjE,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,8CAA8C;AAC9C,SAAS,oBAAoB,CAC3B,OAAgB,EAChB,QAAuB,EACvB,WAAmC;IAEnC,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAChD,YAAY,CACV,QAAQ,CAAC,IAAI,EACb;QACE,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;YACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;gBAClC,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,iDAAiD;oBACjD,CAAC,WAAW,KAAK,sBAAsB,CAAC,OAAO;wBAC3C,WAAW,KAAK,sBAAsB,CAAC,QAAQ,CAAC;wBAClD,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC;wBAC9B,CAAC,CAAC,QAAQ;wBACV,CAAC,CAAC,CAAC,WAAW,KAAK,sBAAsB,CAAC,OAAO;4BAC3C,WAAW,KAAK,sBAAsB,CAAC,SAAS,CAAC;4BACnD,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC;4BAC7B,CAAC,CAAC,OAAO;4BACT,CAAC,CAAC,WAAW,KAAK,sBAAsB,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;gCAC5E,CAAC,CAAC,MAAM;gCACR,CAAC,CAAC,WAAW,KAAK,sBAAsB,CAAC,QAAQ,IAAI,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC;oCAC9E,CAAC,CAAC,YAAY;oCACd,CAAC,CAAC,SAAS,CAAC;YAEtB,IAAI,IAAI,EAAE,CAAC;gBACT,WAAW,CAAC,GAAG,CACb,gBAAgB,CAAC;oBACf,IAAI,EAAE,kBAAkB;oBACxB,MAAM,EAAE,EAAE,IAAI,EAAE;oBAChB,MAAM,EAAE,IAAI;iBACb,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;KACF,EACD,EAAE,CACH,CAAC;IACF,OAAO,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAAgB,EAChB,QAAuB,EACvB,mBAA6C,EAC7C,UAAsB;IAEtB,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAEhD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAE3B,MAAM,YAAY,GAChB,mBAAmB,IAAI,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEzF,KAAK,MAAM,WAAW,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;QAC7C,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,WAAkB,CAAC,EAAE,CAAC;YAC9D,WAAW,CAAC,GAAG,CACb,gBAAgB,CAAC;gBACf,IAAI,EAAE,gCAAgC;gBACtC,MAAM,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACtF,MAAM,EAAE,IAAI;aACb,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,WAAW,CAAC,IAAI,CACrB,6BAA6B,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,CAAC,CACxF,CAAC;IACJ,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,WAAW,CAAC,IAAI,CACrB,6BAA6B,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,CAAC,CACxF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACjF,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CACpC,OAAgB,EAChB,QAAuB,EACvB,IAAW,EACX,mBAA6C,EAC7C,UAAsB;IAEtB,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAChD,MAAM,KAAK,GAAwB,EAAE,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QACxF,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,MAAM,oBAAoB,GAAwB,mBAAmB;QACnE,CAAC,CAAC;YACE,mBAAmB,EAAE,mBAAmB,CAAC,QAAQ;YACjD,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;SAC9E;QACH,CAAC,CAAC;YACE,YAAY,EAAE,CAAC,qBAAqB,CAAC,QAAQ,CAAC;SAC/C,CAAC;IAEN,OAAO,WAAW,CAAC,IAAI,CAAC;QACtB,QAAQ,EAAE,WAAW;QACrB,GAAG,oBAAoB;QACvB,KAAK;QACL,QAAQ;QACR,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED,MAAM,qBAAqB,GAAG;IAC5B,QAAQ,EAAE,qBAAqB;IAC/B,KAAK,EAAE,iBAAiB;CAChB,CAAC;AACX,MAAM,2BAA2B,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAEzE,SAAS,6BAA6B,CACpC,OAAgB,EAChB,QAAuB,EACvB,IAAW,EACX,mBAA6C,EAC7C,UAAsB;IAEtB,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAChD,MAAM,KAAK,GAAwB,EAAE,CAAC;IAEtC,MAAM,YAAY,GAChB,mBAAmB,IAAI,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE1F,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;QAC7E,IAAI,IAAI,EAAE,IAAI,KAAK,SAAS,IAAI,YAAY,EAAE,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvF,WAAW,CAAC,GAAG,CACb,gBAAgB,CAAC;gBACf,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;aAChC,CAAC,CACH,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM,oBAAoB,GAAwB,mBAAmB;QACnE,CAAC,CAAC;YACE,mBAAmB,EAAE,mBAAmB,CAAC,QAAQ;YACjD,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;SAC9E;QACH,CAAC,CAAC;YACE,YAAY,EAAE,CAAC,qBAAqB,CAAC,QAAQ,CAAC;SAC/C,CAAC;IAEN,OAAO,WAAW,CAAC,IAAI,CAAC;QACtB,QAAQ,EAAE,WAAW;QACrB,GAAG,oBAAoB;QACvB,KAAK;QACL,QAAQ;QACR,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CACzB,OAAgB,EAChB,IAAU,EACV,UAAsB,EACtB,QAAwB;IAExB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC3F,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,OAAO,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,OAAgB,EAChB,IAAU,EACV,UAAsB,EACtB,QAAwB;IAExB,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAChD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,IAAI,CACvC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,sBAAsB,CAAC,SAAS,CAAC,CACrF,CAAC;QAEF,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QAE3E,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YACzC,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9E,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,IAAI,GAAG;gBACL,GAAG,IAAI;gBACP,YAAY,EAAE,WAAW,CAAC,IAAI,CAC5B,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,CACpE,CAAC,YAAY;aACf,CAAC;QACJ,CAAC;QAED,OAAO,WAAW,CAAC,IAAI,CAAC;YACtB,KAAK,EAAE,KAAK;YACZ,QAAQ;YACR,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,IAAI;YACJ,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAuB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;YACzE,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;SAC/D,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE5E,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,SAAS,yBAAyB,CAAC,QAAwB;IACzD,MAAM,sBAAsB,GAAG,IAAI,GAAG,CACpC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CACrC,CAAC;IAEF,OAAO,SAAS,oBAAoB,CAAC,QAAQ;QAC3C,MAAM,YAAY,GAAG,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACtD,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,YAAY,CAAC,IAAI,KAAK,cAAc;YAAE,OAAO,KAAK,CAAC;QAEvD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAClB,IAAmB,EACnB,QAAwB;IAExB,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEtE,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAErD,OAAO;QACL;YACE,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM;YACN,mBAAmB,EAAE,IAAI,CAAC,WAAW;YACrC,YAAY;YACZ,QAAQ;SACT;QACD,WAAW;KACZ,CAAC;IAEF,SAAS,iBAAiB,CAAC,IAAY;QACrC,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAEnF,SAAS,QAAQ,CAAC,IAAY;YAC5B,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,QAAQ;gBACtB,CAAC,CAAC,IAAI,CAAC,SAAS;gBAChB,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,UAAU;gBAClC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS;gBAC1B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,EAAE;gBACpC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CACpC,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CAAC,IAAU;IAC9C,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC;AACpE,CAAC;AAED,SAAS,aAAa,CAAC,IAAU;IAC/B,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,QAAQ;QACtB,IAAI,CAAC,IAAI,KAAK,QAAQ;QACtB,IAAI,CAAC,IAAI,KAAK,SAAS;QACvB,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAC/B,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CACjC,OAAgB,EAChB,mBAA6C,EAC7C,IAAU,EACV,wBAAgD,4BAA4B;IAE5E,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAEhD,OAAO,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAEnC,SAAS,OAAO;QACd,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO;gBACL,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;gBAC7E,mBAAmB,EAAE,mBAAmB,CAAC,QAAQ;aAClD,CAAC;QACJ,CAAC;QAED,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,gBAAgB,CAAC;gBACtB,KAAK,QAAQ;oBACX,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAC5C,MAAM;gBACR,KAAK,SAAS;oBACZ,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oBAC7C,MAAM;gBACR,KAAK,QAAQ;oBACX,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;oBAC7C,MAAM;gBACR;oBACE,KAAM,IAAqB,CAAC;YAChC,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC;QAEZ,OACE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC;YACzD,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EACpC,CAAC;YACD,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACtB,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7C,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAChC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAC7D,CAAC;YAEF,6EAA6E;YAE7E,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,EAAE,YAAY,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAChD,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;YAE9B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAC/B,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,CAAC,IAAI,CAAC,CACvE,CAAC;gBAEF,KAAK,MAAM,WAAW,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;oBAChD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;YACD,OAAO,EAAE,YAAY,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAEnF,OAAO,EAAE,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;QACzC,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -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:
|
|
12
|
+
readonly type: Model;
|
|
12
13
|
readonly contentType: ModelProperty;
|
|
13
14
|
readonly filename: ModelProperty;
|
|
14
|
-
readonly contents:
|
|
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,
|
|
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 {
|
|
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"
|
|
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":"AAAA,OAAO,EAOL,WAAW,
|
|
1
|
+
{"version":3,"file":"private.decorators.js","sourceRoot":"","sources":["../../src/private.decorators.ts"],"names":[],"mappings":"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"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -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?:
|
|
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?:
|
|
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:
|
|
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;
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/src/validate.js
CHANGED
|
@@ -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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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();
|
package/dist/src/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,0EAA0E;IAC1E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IACD,8BAA8B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClD,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACzC,MAAM,SAAS,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5D,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAgB,EAAE,KAAY;IAC3D,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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": "
|
|
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 .",
|