@typespec/http 0.59.0-dev.6 → 0.59.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/README.md +30 -26
- package/dist/generated-defs/TypeSpec.Http.d.ts +30 -14
- package/dist/generated-defs/TypeSpec.Http.d.ts.map +1 -1
- package/dist/src/decorators.d.ts.map +1 -1
- package/dist/src/decorators.js +19 -29
- package/dist/src/decorators.js.map +1 -1
- package/dist/src/http-property.d.ts +1 -1
- package/dist/src/http-property.d.ts.map +1 -1
- package/dist/src/http-property.js +42 -6
- package/dist/src/http-property.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib.d.ts +37 -22
- package/dist/src/lib.d.ts.map +1 -1
- package/dist/src/lib.js +13 -7
- package/dist/src/lib.js.map +1 -1
- package/dist/src/operations.js +2 -1
- package/dist/src/operations.js.map +1 -1
- package/dist/src/parameters.d.ts +1 -1
- package/dist/src/parameters.d.ts.map +1 -1
- package/dist/src/parameters.js +46 -10
- package/dist/src/parameters.js.map +1 -1
- package/dist/src/route.d.ts +2 -1
- package/dist/src/route.d.ts.map +1 -1
- package/dist/src/route.js +66 -30
- package/dist/src/route.js.map +1 -1
- package/dist/src/types.d.ts +23 -10
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/uri-template.d.ts +22 -0
- package/dist/src/uri-template.d.ts.map +1 -0
- package/dist/src/uri-template.js +41 -0
- package/dist/src/uri-template.js.map +1 -0
- package/lib/decorators.tsp +60 -14
- package/package.json +1 -1
package/dist/src/lib.d.ts
CHANGED
|
@@ -2,7 +2,13 @@ export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
|
|
|
2
2
|
"http-verb-duplicate": {
|
|
3
3
|
readonly default: import("@typespec/compiler").CallableMessage<["entityName"]>;
|
|
4
4
|
};
|
|
5
|
-
"missing-
|
|
5
|
+
"missing-uri-param": {
|
|
6
|
+
readonly default: import("@typespec/compiler").CallableMessage<["param"]>;
|
|
7
|
+
};
|
|
8
|
+
"incompatible-uri-param": {
|
|
9
|
+
readonly default: import("@typespec/compiler").CallableMessage<["param", "uriKind", "annotationKind"]>;
|
|
10
|
+
};
|
|
11
|
+
"use-uri-template": {
|
|
6
12
|
readonly default: import("@typespec/compiler").CallableMessage<["param"]>;
|
|
7
13
|
};
|
|
8
14
|
"optional-path-param": {
|
|
@@ -74,15 +80,18 @@ export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
|
|
|
74
80
|
"header-format-required": {
|
|
75
81
|
readonly default: "A format must be specified for @header when type is an array. e.g. @header({format: \"csv\"})";
|
|
76
82
|
};
|
|
77
|
-
"query-format-required": {
|
|
78
|
-
readonly default: "A format must be specified for @query when type is an array. e.g. @query({format: \"multi\"})";
|
|
79
|
-
};
|
|
80
83
|
}, Record<string, any>, "path" | "file" | "query" | "authentication" | "header" | "body" | "bodyRoot" | "bodyIgnore" | "multipartBody" | "statusCode" | "verbs" | "servers" | "includeInapplicableMetadataInPayload" | "externalInterfaces" | "routeProducer" | "routes" | "sharedRoutes" | "routeOptions" | "httpPart">;
|
|
81
|
-
export declare const reportDiagnostic: <C extends "http-verb-duplicate" | "missing-
|
|
84
|
+
export declare const reportDiagnostic: <C extends "http-verb-duplicate" | "missing-uri-param" | "incompatible-uri-param" | "use-uri-template" | "optional-path-param" | "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" | "no-service-found" | "invalid-type-for-auth" | "shared-inconsistency" | "write-visibility-not-supported" | "multipart-invalid-content-type" | "multipart-model" | "multipart-part" | "multipart-nested" | "http-file-extra-property" | "formdata-no-part-name" | "header-format-required", M extends keyof {
|
|
82
85
|
"http-verb-duplicate": {
|
|
83
86
|
readonly default: import("@typespec/compiler").CallableMessage<["entityName"]>;
|
|
84
87
|
};
|
|
85
|
-
"missing-
|
|
88
|
+
"missing-uri-param": {
|
|
89
|
+
readonly default: import("@typespec/compiler").CallableMessage<["param"]>;
|
|
90
|
+
};
|
|
91
|
+
"incompatible-uri-param": {
|
|
92
|
+
readonly default: import("@typespec/compiler").CallableMessage<["param", "uriKind", "annotationKind"]>;
|
|
93
|
+
};
|
|
94
|
+
"use-uri-template": {
|
|
86
95
|
readonly default: import("@typespec/compiler").CallableMessage<["param"]>;
|
|
87
96
|
};
|
|
88
97
|
"optional-path-param": {
|
|
@@ -154,14 +163,17 @@ export declare const reportDiagnostic: <C extends "http-verb-duplicate" | "missi
|
|
|
154
163
|
"header-format-required": {
|
|
155
164
|
readonly default: "A format must be specified for @header when type is an array. e.g. @header({format: \"csv\"})";
|
|
156
165
|
};
|
|
157
|
-
"query-format-required": {
|
|
158
|
-
readonly default: "A format must be specified for @query when type is an array. e.g. @query({format: \"multi\"})";
|
|
159
|
-
};
|
|
160
166
|
}[C]>(program: import("@typespec/compiler").Program, diag: import("@typespec/compiler").DiagnosticReport<{
|
|
161
167
|
"http-verb-duplicate": {
|
|
162
168
|
readonly default: import("@typespec/compiler").CallableMessage<["entityName"]>;
|
|
163
169
|
};
|
|
164
|
-
"missing-
|
|
170
|
+
"missing-uri-param": {
|
|
171
|
+
readonly default: import("@typespec/compiler").CallableMessage<["param"]>;
|
|
172
|
+
};
|
|
173
|
+
"incompatible-uri-param": {
|
|
174
|
+
readonly default: import("@typespec/compiler").CallableMessage<["param", "uriKind", "annotationKind"]>;
|
|
175
|
+
};
|
|
176
|
+
"use-uri-template": {
|
|
165
177
|
readonly default: import("@typespec/compiler").CallableMessage<["param"]>;
|
|
166
178
|
};
|
|
167
179
|
"optional-path-param": {
|
|
@@ -233,14 +245,17 @@ export declare const reportDiagnostic: <C extends "http-verb-duplicate" | "missi
|
|
|
233
245
|
"header-format-required": {
|
|
234
246
|
readonly default: "A format must be specified for @header when type is an array. e.g. @header({format: \"csv\"})";
|
|
235
247
|
};
|
|
236
|
-
|
|
237
|
-
readonly default: "A format must be specified for @query when type is an array. e.g. @query({format: \"multi\"})";
|
|
238
|
-
};
|
|
239
|
-
}, C, M>) => void, createDiagnostic: <C extends "http-verb-duplicate" | "missing-path-param" | "optional-path-param" | "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" | "no-service-found" | "invalid-type-for-auth" | "shared-inconsistency" | "write-visibility-not-supported" | "multipart-invalid-content-type" | "multipart-model" | "multipart-part" | "multipart-nested" | "http-file-extra-property" | "formdata-no-part-name" | "header-format-required" | "query-format-required", M extends keyof {
|
|
248
|
+
}, C, M>) => void, createDiagnostic: <C extends "http-verb-duplicate" | "missing-uri-param" | "incompatible-uri-param" | "use-uri-template" | "optional-path-param" | "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" | "no-service-found" | "invalid-type-for-auth" | "shared-inconsistency" | "write-visibility-not-supported" | "multipart-invalid-content-type" | "multipart-model" | "multipart-part" | "multipart-nested" | "http-file-extra-property" | "formdata-no-part-name" | "header-format-required", M extends keyof {
|
|
240
249
|
"http-verb-duplicate": {
|
|
241
250
|
readonly default: import("@typespec/compiler").CallableMessage<["entityName"]>;
|
|
242
251
|
};
|
|
243
|
-
"missing-
|
|
252
|
+
"missing-uri-param": {
|
|
253
|
+
readonly default: import("@typespec/compiler").CallableMessage<["param"]>;
|
|
254
|
+
};
|
|
255
|
+
"incompatible-uri-param": {
|
|
256
|
+
readonly default: import("@typespec/compiler").CallableMessage<["param", "uriKind", "annotationKind"]>;
|
|
257
|
+
};
|
|
258
|
+
"use-uri-template": {
|
|
244
259
|
readonly default: import("@typespec/compiler").CallableMessage<["param"]>;
|
|
245
260
|
};
|
|
246
261
|
"optional-path-param": {
|
|
@@ -312,14 +327,17 @@ export declare const reportDiagnostic: <C extends "http-verb-duplicate" | "missi
|
|
|
312
327
|
"header-format-required": {
|
|
313
328
|
readonly default: "A format must be specified for @header when type is an array. e.g. @header({format: \"csv\"})";
|
|
314
329
|
};
|
|
315
|
-
"query-format-required": {
|
|
316
|
-
readonly default: "A format must be specified for @query when type is an array. e.g. @query({format: \"multi\"})";
|
|
317
|
-
};
|
|
318
330
|
}[C]>(diag: import("@typespec/compiler").DiagnosticReport<{
|
|
319
331
|
"http-verb-duplicate": {
|
|
320
332
|
readonly default: import("@typespec/compiler").CallableMessage<["entityName"]>;
|
|
321
333
|
};
|
|
322
|
-
"missing-
|
|
334
|
+
"missing-uri-param": {
|
|
335
|
+
readonly default: import("@typespec/compiler").CallableMessage<["param"]>;
|
|
336
|
+
};
|
|
337
|
+
"incompatible-uri-param": {
|
|
338
|
+
readonly default: import("@typespec/compiler").CallableMessage<["param", "uriKind", "annotationKind"]>;
|
|
339
|
+
};
|
|
340
|
+
"use-uri-template": {
|
|
323
341
|
readonly default: import("@typespec/compiler").CallableMessage<["param"]>;
|
|
324
342
|
};
|
|
325
343
|
"optional-path-param": {
|
|
@@ -391,8 +409,5 @@ export declare const reportDiagnostic: <C extends "http-verb-duplicate" | "missi
|
|
|
391
409
|
"header-format-required": {
|
|
392
410
|
readonly default: "A format must be specified for @header when type is an array. e.g. @header({format: \"csv\"})";
|
|
393
411
|
};
|
|
394
|
-
"query-format-required": {
|
|
395
|
-
readonly default: "A format must be specified for @query when type is an array. e.g. @query({format: \"multi\"})";
|
|
396
|
-
};
|
|
397
412
|
}, C, M>) => import("@typespec/compiler").Diagnostic, HttpStateKeys: Record<"path" | "file" | "query" | "authentication" | "header" | "body" | "bodyRoot" | "bodyIgnore" | "multipartBody" | "statusCode" | "verbs" | "servers" | "includeInapplicableMetadataInPayload" | "externalInterfaces" | "routeProducer" | "routes" | "sharedRoutes" | "routeOptions" | "httpPart", symbol>;
|
|
398
413
|
//# 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAkMf,CAAC;AAEH,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAAa,aAAa,iTAAS,CAAC"}
|
package/dist/src/lib.js
CHANGED
|
@@ -8,12 +8,24 @@ export const $lib = createTypeSpecLibrary({
|
|
|
8
8
|
default: paramMessage `HTTP verb already applied to ${"entityName"}`,
|
|
9
9
|
},
|
|
10
10
|
},
|
|
11
|
-
"missing-
|
|
11
|
+
"missing-uri-param": {
|
|
12
12
|
severity: "error",
|
|
13
13
|
messages: {
|
|
14
14
|
default: paramMessage `Route reference parameter '${"param"}' but wasn't found in operation parameters`,
|
|
15
15
|
},
|
|
16
16
|
},
|
|
17
|
+
"incompatible-uri-param": {
|
|
18
|
+
severity: "error",
|
|
19
|
+
messages: {
|
|
20
|
+
default: paramMessage `Parameter '${"param"}' is defined in the uri as a ${"uriKind"} but is annotated as a ${"annotationKind"}.`,
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
"use-uri-template": {
|
|
24
|
+
severity: "error",
|
|
25
|
+
messages: {
|
|
26
|
+
default: paramMessage `Parameter '${"param"}' is already defined in the uri template. Explode, style and allowReserved property must be defined in the uri template as described by RFC 6570.`,
|
|
27
|
+
},
|
|
28
|
+
},
|
|
17
29
|
"optional-path-param": {
|
|
18
30
|
severity: "error",
|
|
19
31
|
messages: {
|
|
@@ -149,12 +161,6 @@ export const $lib = createTypeSpecLibrary({
|
|
|
149
161
|
default: `A format must be specified for @header when type is an array. e.g. @header({format: "csv"})`,
|
|
150
162
|
},
|
|
151
163
|
},
|
|
152
|
-
"query-format-required": {
|
|
153
|
-
severity: "error",
|
|
154
|
-
messages: {
|
|
155
|
-
default: `A format must be specified for @query when type is an array. e.g. @query({format: "multi"})`,
|
|
156
|
-
},
|
|
157
|
-
},
|
|
158
164
|
},
|
|
159
165
|
state: {
|
|
160
166
|
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":"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,
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"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"}
|
package/dist/src/operations.js
CHANGED
|
@@ -137,7 +137,8 @@ function getHttpOperationInternal(program, operation, options, cache) {
|
|
|
137
137
|
const authentication = getAuthenticationForOperation(program, operation);
|
|
138
138
|
const httpOperation = {
|
|
139
139
|
path: route.path,
|
|
140
|
-
|
|
140
|
+
uriTemplate: route.uriTemplate,
|
|
141
|
+
pathSegments: [],
|
|
141
142
|
verb: route.parameters.verb,
|
|
142
143
|
container: operation.interface ?? operation.namespace ?? program.getGlobalNamespaceType(),
|
|
143
144
|
parameters: route.parameters,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/operations.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/operations.ts"],"names":[],"mappings":"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"}
|
package/dist/src/parameters.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Diagnostic, Operation, Program } from "@typespec/compiler";
|
|
2
2
|
import { HttpOperation, HttpOperationParameters, OperationParameterOptions } from "./types.js";
|
|
3
|
-
export declare function getOperationParameters(program: Program, operation: Operation,
|
|
3
|
+
export declare function getOperationParameters(program: Program, operation: Operation, partialUriTemplate: string, overloadBase?: HttpOperation, options?: OperationParameterOptions): [HttpOperationParameters, readonly Diagnostic[]];
|
|
4
4
|
//# sourceMappingURL=parameters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../src/parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EAEV,SAAS,EACT,OAAO,EACR,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EACL,aAAa,EAEb,uBAAuB,EAEvB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../src/parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EAEV,SAAS,EACT,OAAO,EACR,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EACL,aAAa,EAEb,uBAAuB,EAEvB,yBAAyB,EAG1B,MAAM,YAAY,CAAC;AAGpB,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,MAAM,EAC1B,YAAY,CAAC,EAAE,aAAa,EAC5B,OAAO,GAAE,yBAA8B,GACtC,CAAC,uBAAuB,EAAE,SAAS,UAAU,EAAE,CAAC,CAkBlD"}
|
package/dist/src/parameters.js
CHANGED
|
@@ -3,32 +3,68 @@ import { getOperationVerb } from "./decorators.js";
|
|
|
3
3
|
import { createDiagnostic } from "./lib.js";
|
|
4
4
|
import { resolveRequestVisibility } from "./metadata.js";
|
|
5
5
|
import { resolveHttpPayload } from "./payload.js";
|
|
6
|
-
|
|
6
|
+
import { parseUriTemplate } from "./uri-template.js";
|
|
7
|
+
export function getOperationParameters(program, operation, partialUriTemplate, overloadBase, options = {}) {
|
|
7
8
|
const verb = (options?.verbSelector && options.verbSelector(program, operation)) ??
|
|
8
9
|
getOperationVerb(program, operation) ??
|
|
9
10
|
overloadBase?.verb;
|
|
10
11
|
if (verb) {
|
|
11
|
-
return getOperationParametersForVerb(program, operation, verb,
|
|
12
|
+
return getOperationParametersForVerb(program, operation, verb, partialUriTemplate);
|
|
12
13
|
}
|
|
13
14
|
// If no verb is explicitly specified, it is POST if there is a body and
|
|
14
15
|
// GET otherwise. Theoretically, it is possible to use @visibility
|
|
15
16
|
// strangely such that there is no body if the verb is POST and there is a
|
|
16
17
|
// body if the verb is GET. In that rare case, GET is chosen arbitrarily.
|
|
17
|
-
const post = getOperationParametersForVerb(program, operation, "post",
|
|
18
|
+
const post = getOperationParametersForVerb(program, operation, "post", partialUriTemplate);
|
|
18
19
|
return post[0].body
|
|
19
20
|
? post
|
|
20
|
-
: getOperationParametersForVerb(program, operation, "get",
|
|
21
|
+
: getOperationParametersForVerb(program, operation, "get", partialUriTemplate);
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
+
const operatorToStyle = {
|
|
24
|
+
";": "matrix",
|
|
25
|
+
"#": "fragment",
|
|
26
|
+
".": "label",
|
|
27
|
+
"/": "path",
|
|
28
|
+
};
|
|
29
|
+
function getOperationParametersForVerb(program, operation, verb, partialUriTemplate) {
|
|
23
30
|
const diagnostics = createDiagnosticCollector();
|
|
24
31
|
const visibility = resolveRequestVisibility(program, operation, verb);
|
|
25
|
-
|
|
26
|
-
const isTopLevel = param.model === operation.parameters;
|
|
27
|
-
return isTopLevel && knownPathParamNames.includes(param.name);
|
|
28
|
-
}
|
|
32
|
+
const parsedUriTemplate = parseUriTemplate(partialUriTemplate);
|
|
29
33
|
const parameters = [];
|
|
30
34
|
const { body: resolvedBody, metadata } = diagnostics.pipe(resolveHttpPayload(program, operation.parameters, visibility, "request", {
|
|
31
|
-
|
|
35
|
+
implicitParameter: (param) => {
|
|
36
|
+
const isTopLevel = param.model === operation.parameters;
|
|
37
|
+
const uriParam = isTopLevel && parsedUriTemplate.parameters.find((x) => x.name === param.name);
|
|
38
|
+
if (!uriParam) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
const explode = uriParam.modifier?.type === "explode";
|
|
42
|
+
if (uriParam.operator === "?" || uriParam.operator === "&") {
|
|
43
|
+
return {
|
|
44
|
+
type: "query",
|
|
45
|
+
name: uriParam.name,
|
|
46
|
+
explode,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
else if (uriParam.operator === "+") {
|
|
50
|
+
return {
|
|
51
|
+
type: "path",
|
|
52
|
+
name: uriParam.name,
|
|
53
|
+
explode,
|
|
54
|
+
allowReserved: true,
|
|
55
|
+
style: "simple",
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
return {
|
|
60
|
+
type: "path",
|
|
61
|
+
name: uriParam.name,
|
|
62
|
+
explode,
|
|
63
|
+
allowReserved: false,
|
|
64
|
+
style: (uriParam.operator && operatorToStyle[uriParam.operator]) ?? "simple",
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
},
|
|
32
68
|
}));
|
|
33
69
|
for (const item of metadata) {
|
|
34
70
|
switch (item.kind) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,GAK1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/parameters.ts"],"names":[],"mappings":"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"}
|
package/dist/src/route.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { DecoratorContext, DiagnosticResult, Interface, Namespace, Operation, Program, Type } from "@typespec/compiler";
|
|
2
2
|
import { HttpOperation, HttpOperationParameters, RouteOptions, RoutePath, RouteProducer, RouteProducerResult, RouteResolutionOptions } from "./types.js";
|
|
3
|
+
export declare function joinPathSegments(rest: string[]): string;
|
|
3
4
|
export declare function resolvePathAndParameters(program: Program, operation: Operation, overloadBase: HttpOperation | undefined, options: RouteResolutionOptions): DiagnosticResult<{
|
|
5
|
+
readonly uriTemplate: string;
|
|
4
6
|
path: string;
|
|
5
|
-
pathSegments: string[];
|
|
6
7
|
parameters: HttpOperationParameters;
|
|
7
8
|
}>;
|
|
8
9
|
/**
|
package/dist/src/route.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/route.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,SAAS,EACT,OAAO,EACP,IAAI,EAEL,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,aAAa,EAEb,uBAAuB,EAEvB,YAAY,EACZ,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAkBpB,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAM9C;AAUD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,aAAa,GAAG,SAAS,EACvC,OAAO,EAAE,sBAAsB,GAC9B,gBAAgB,CAAC;IAClB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,uBAAuB,CAAC;CACrC,CAAC,CAmCD;AAsDD;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,SAAS,EACjB,eAAe,EAAE,MAAM,QASxB;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,MAAM,EAAE,EACxB,YAAY,EAAE,aAAa,GAAG,SAAS,EACvC,OAAO,EAAE,YAAY,GACpB,gBAAgB,CAAC,mBAAmB,CAAC,CAiCvC;AAyBD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,GAC3B,IAAI,CAEN;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,aAAa,CAEtF;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,QAwBnF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,QAEpE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAE7E;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GACxC,SAAS,GAAG,SAAS,CAQvB;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,YAAY,QAGtB;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,GACnB,YAAY,GAAG,SAAS,CAE1B"}
|
package/dist/src/route.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createDiagnosticCollector, validateDecoratorTarget, } from "@typespec/compiler";
|
|
2
|
-
import {
|
|
2
|
+
import { createDiagnostic, HttpStateKeys, reportDiagnostic } from "./lib.js";
|
|
3
3
|
import { getOperationParameters } from "./parameters.js";
|
|
4
|
-
import {
|
|
4
|
+
import { parseUriTemplate } from "./uri-template.js";
|
|
5
5
|
// The set of allowed segment separator characters
|
|
6
6
|
const AllowedSegmentSeparators = ["/", ":"];
|
|
7
7
|
function normalizeFragment(fragment, trimLast = false) {
|
|
@@ -14,7 +14,7 @@ function normalizeFragment(fragment, trimLast = false) {
|
|
|
14
14
|
}
|
|
15
15
|
return fragment;
|
|
16
16
|
}
|
|
17
|
-
function joinPathSegments(rest) {
|
|
17
|
+
export function joinPathSegments(rest) {
|
|
18
18
|
let current = "";
|
|
19
19
|
for (const [index, segment] of rest.entries()) {
|
|
20
20
|
current += normalizeFragment(segment, index < rest.length - 1);
|
|
@@ -29,27 +29,42 @@ function buildPath(pathFragments) {
|
|
|
29
29
|
}
|
|
30
30
|
export function resolvePathAndParameters(program, operation, overloadBase, options) {
|
|
31
31
|
const diagnostics = createDiagnosticCollector();
|
|
32
|
-
const {
|
|
32
|
+
const { uriTemplate, parameters } = diagnostics.pipe(getUriTemplateAndParameters(program, operation, overloadBase, options));
|
|
33
|
+
const parsedUriTemplate = parseUriTemplate(uriTemplate);
|
|
33
34
|
// Pull out path parameters to verify what's in the path string
|
|
34
|
-
const paramByName = new Set(parameters.parameters
|
|
35
|
+
const paramByName = new Set(parameters.parameters
|
|
36
|
+
.filter(({ type }) => type === "path" || type === "query")
|
|
37
|
+
.map((x) => x.name));
|
|
35
38
|
// Ensure that all of the parameters defined in the route are accounted for in
|
|
36
39
|
// the operation parameters
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
if (!paramByName.has(routeParam)) {
|
|
40
|
+
for (const routeParam of parsedUriTemplate.parameters) {
|
|
41
|
+
if (!paramByName.has(routeParam.name)) {
|
|
40
42
|
diagnostics.add(createDiagnostic({
|
|
41
|
-
code: "missing-
|
|
42
|
-
format: { param: routeParam },
|
|
43
|
+
code: "missing-uri-param",
|
|
44
|
+
format: { param: routeParam.name },
|
|
43
45
|
target: operation,
|
|
44
46
|
}));
|
|
45
47
|
}
|
|
46
48
|
}
|
|
49
|
+
const path = produceLegacyPathFromUriTemplate(parsedUriTemplate);
|
|
47
50
|
return diagnostics.wrap({
|
|
48
|
-
|
|
49
|
-
|
|
51
|
+
uriTemplate,
|
|
52
|
+
path,
|
|
50
53
|
parameters,
|
|
51
54
|
});
|
|
52
55
|
}
|
|
56
|
+
function produceLegacyPathFromUriTemplate(uriTemplate) {
|
|
57
|
+
let result = "";
|
|
58
|
+
for (const segment of uriTemplate.segments ?? []) {
|
|
59
|
+
if (typeof segment === "string") {
|
|
60
|
+
result += segment;
|
|
61
|
+
}
|
|
62
|
+
else if (segment.operator !== "?" && segment.operator !== "&") {
|
|
63
|
+
result += `{${segment.name}}`;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return result;
|
|
67
|
+
}
|
|
53
68
|
function collectSegmentsAndOptions(program, source) {
|
|
54
69
|
if (source === undefined)
|
|
55
70
|
return [[], {}];
|
|
@@ -58,15 +73,17 @@ function collectSegmentsAndOptions(program, source) {
|
|
|
58
73
|
const options = source.kind === "Namespace" ? (getRouteOptionsForNamespace(program, source) ?? {}) : {};
|
|
59
74
|
return [[...parentSegments, ...(route ? [route] : [])], { ...parentOptions, ...options }];
|
|
60
75
|
}
|
|
61
|
-
function
|
|
62
|
-
const diagnostics = createDiagnosticCollector();
|
|
76
|
+
function getUriTemplateAndParameters(program, operation, overloadBase, options) {
|
|
63
77
|
const [parentSegments, parentOptions] = collectSegmentsAndOptions(program, operation.interface ?? operation.namespace);
|
|
64
78
|
const routeProducer = getRouteProducer(program, operation) ?? DefaultRouteProducer;
|
|
65
|
-
const result =
|
|
79
|
+
const [result, diagnostics] = routeProducer(program, operation, parentSegments, overloadBase, {
|
|
66
80
|
...parentOptions,
|
|
67
81
|
...options,
|
|
68
|
-
})
|
|
69
|
-
return
|
|
82
|
+
});
|
|
83
|
+
return [
|
|
84
|
+
{ uriTemplate: buildPath([result.uriTemplate]), parameters: result.parameters },
|
|
85
|
+
diagnostics,
|
|
86
|
+
];
|
|
70
87
|
}
|
|
71
88
|
/**
|
|
72
89
|
* @deprecated DO NOT USE. For internal use only as a workaround.
|
|
@@ -85,26 +102,45 @@ export function includeInterfaceRoutesInNamespace(program, target, sourceInterfa
|
|
|
85
102
|
export function DefaultRouteProducer(program, operation, parentSegments, overloadBase, options) {
|
|
86
103
|
const diagnostics = createDiagnosticCollector();
|
|
87
104
|
const routePath = getRoutePath(program, operation)?.path;
|
|
88
|
-
const
|
|
89
|
-
? overloadBase.
|
|
90
|
-
: [...parentSegments, ...(routePath ? [routePath] : [])];
|
|
91
|
-
const
|
|
92
|
-
const parameters = diagnostics.pipe(getOperationParameters(program, operation,
|
|
105
|
+
const uriTemplate = !routePath && overloadBase
|
|
106
|
+
? overloadBase.uriTemplate
|
|
107
|
+
: joinPathSegments([...parentSegments, ...(routePath ? [routePath] : [])]);
|
|
108
|
+
const parsedUriTemplate = parseUriTemplate(uriTemplate);
|
|
109
|
+
const parameters = diagnostics.pipe(getOperationParameters(program, operation, uriTemplate, overloadBase, options.paramOptions));
|
|
93
110
|
// Pull out path parameters to verify what's in the path string
|
|
94
|
-
const unreferencedPathParamNames = new
|
|
111
|
+
const unreferencedPathParamNames = new Map(parameters.parameters
|
|
112
|
+
.filter(({ type }) => type === "path" || type === "query")
|
|
113
|
+
.map((x) => [x.name, x]));
|
|
95
114
|
// Compile the list of all route params that aren't represented in the route
|
|
96
|
-
for (const
|
|
97
|
-
unreferencedPathParamNames.delete(
|
|
98
|
-
}
|
|
99
|
-
// Add any remaining declared path params
|
|
100
|
-
for (const paramName of unreferencedPathParamNames) {
|
|
101
|
-
segments.push(`{${paramName}}`);
|
|
115
|
+
for (const uriParam of parsedUriTemplate.parameters) {
|
|
116
|
+
unreferencedPathParamNames.delete(uriParam.name);
|
|
102
117
|
}
|
|
118
|
+
const resolvedUriTemplate = addOperationTemplateToUriTemplate(uriTemplate, [
|
|
119
|
+
...unreferencedPathParamNames.values(),
|
|
120
|
+
]);
|
|
103
121
|
return diagnostics.wrap({
|
|
104
|
-
|
|
122
|
+
uriTemplate: resolvedUriTemplate,
|
|
105
123
|
parameters,
|
|
106
124
|
});
|
|
107
125
|
}
|
|
126
|
+
const styleToOperator = {
|
|
127
|
+
matrix: ";",
|
|
128
|
+
label: ".",
|
|
129
|
+
simple: "",
|
|
130
|
+
path: "/",
|
|
131
|
+
fragment: "#",
|
|
132
|
+
};
|
|
133
|
+
function addOperationTemplateToUriTemplate(uriTemplate, params) {
|
|
134
|
+
const pathParams = params
|
|
135
|
+
.filter((x) => x.type === "path")
|
|
136
|
+
.map((param) => {
|
|
137
|
+
const operator = param.allowReserved ? "+" : styleToOperator[param.style];
|
|
138
|
+
return `{${operator}${param.name}${param.explode ? "*" : ""}}`;
|
|
139
|
+
});
|
|
140
|
+
const queryParams = params.filter((x) => x.type === "query");
|
|
141
|
+
const pathPart = joinPathSegments([uriTemplate, ...pathParams]);
|
|
142
|
+
return (pathPart + (queryParams.length > 0 ? `{?${queryParams.map((x) => x.name).join(",")}}` : ""));
|
|
143
|
+
}
|
|
108
144
|
export function setRouteProducer(program, operation, routeProducer) {
|
|
109
145
|
program.stateMap(HttpStateKeys.routeProducer).set(operation, routeProducer);
|
|
110
146
|
}
|
package/dist/src/route.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/route.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/route.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EAQzB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAYzD,OAAO,EAAE,gBAAgB,EAAe,MAAM,mBAAmB,CAAC;AAElE,kDAAkD;AAClD,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAE5C,SAAS,iBAAiB,CAAC,QAAgB,EAAE,QAAQ,GAAG,KAAK;IAC3D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,wBAAwB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7E,+BAA+B;QAC/B,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACtD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAc;IAC7C,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9C,OAAO,IAAI,iBAAiB,CAAC,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,SAAS,CAAC,aAAuB;IACxC,+DAA+D;IAC/D,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAEhF,uCAAuC;IACvC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,OAAgB,EAChB,SAAoB,EACpB,YAAuC,EACvC,OAA+B;IAM/B,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAChD,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC,IAAI,CAClD,2BAA2B,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CACvE,CAAC;IAEF,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAExD,+DAA+D;IAC/D,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,UAAU,CAAC,UAAU;SAClB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,CAAC;SACzD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACtB,CAAC;IAEF,8EAA8E;IAC9E,2BAA2B;IAC3B,KAAK,MAAM,UAAU,IAAI,iBAAiB,CAAC,UAAU,EAAE,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,WAAW,CAAC,GAAG,CACb,gBAAgB,CAAC;gBACf,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE;gBAClC,MAAM,EAAE,SAAS;aAClB,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,gCAAgC,CAAC,iBAAiB,CAAC,CAAC;IACjE,OAAO,WAAW,CAAC,IAAI,CAAC;QACtB,WAAW;QACX,IAAI;QACJ,UAAU;KACX,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gCAAgC,CAAC,WAAwB;IAChE,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,OAAO,CAAC;QACpB,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,GAAG,IAAI,OAAO,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;YAChE,MAAM,IAAI,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,yBAAyB,CAChC,OAAgB,EAChB,MAAyC;IAEzC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAE1C,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,GAAG,yBAAyB,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAE7F,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC;IAClD,MAAM,OAAO,GACX,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1F,OAAO,CAAC,CAAC,GAAG,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,2BAA2B,CAClC,OAAgB,EAChB,SAAoB,EACpB,YAAuC,EACvC,OAA+B;IAE/B,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,GAAG,yBAAyB,CAC/D,OAAO,EACP,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAC3C,CAAC;IAEF,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,oBAAoB,CAAC;IACnF,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE;QAC5F,GAAG,aAAa;QAChB,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE;QAC/E,WAAW;KACZ,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iCAAiC,CAC/C,OAAgB,EAChB,MAAiB,EACjB,eAAuB;IAEvB,IAAI,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,KAAK,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAgB,EAChB,SAAoB,EACpB,cAAwB,EACxB,YAAuC,EACvC,OAAqB;IAErB,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAChD,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC;IACzD,MAAM,WAAW,GACf,CAAC,SAAS,IAAI,YAAY;QACxB,CAAC,CAAC,YAAY,CAAC,WAAW;QAC1B,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,cAAc,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAE/E,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAExD,MAAM,UAAU,GAA4B,WAAW,CAAC,IAAI,CAC1D,sBAAsB,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,CAC5F,CAAC;IAEF,+DAA+D;IAC/D,MAAM,0BAA0B,GAAG,IAAI,GAAG,CACxC,UAAU,CAAC,UAAU;SAClB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,CAAC;SACzD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAC3B,CAAC;IAEF,4EAA4E;IAC5E,KAAK,MAAM,QAAQ,IAAI,iBAAiB,CAAC,UAAU,EAAE,CAAC;QACpD,0BAA0B,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,mBAAmB,GAAG,iCAAiC,CAAC,WAAW,EAAE;QACzE,GAAG,0BAA0B,CAAC,MAAM,EAAE;KACvC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,IAAI,CAAC;QACtB,WAAW,EAAE,mBAAmB;QAChC,UAAU;KACX,CAAC,CAAC;AACL,CAAC;AAED,MAAM,eAAe,GAAkD;IACrE,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,GAAG;CACd,CAAC;AAEF,SAAS,iCAAiC,CAAC,WAAmB,EAAE,MAAgC;IAC9F,MAAM,UAAU,GAAG,MAAM;SACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAChC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1E,OAAO,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;IACjE,CAAC,CAAC,CAAC;IACL,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IAE7D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;IAChE,OAAO,CACL,QAAQ,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAC5F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,OAAgB,EAChB,SAAoB,EACpB,aAA4B;IAE5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,SAAoB;IACrE,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAyB,EAAE,MAAY,EAAE,OAAkB;IAClF,IACE,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,EAC5F,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAE7D,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACrD,MAAM,YAAY,GAAuB,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,YAAY,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;YAClC,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE;gBAChC,IAAI,EAAE,2BAA2B;gBACjC,SAAS,EAAE,WAAW;gBACtB,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAClD,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,MAAmB,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAgB,EAAE,SAAoB;IACnE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,SAAoB;IAClE,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,OAAgB,EAChB,MAAyC;IAEzC,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChE,OAAO,IAAI;QACT,CAAC,CAAC;YACE,IAAI;YACJ,MAAM,EAAE,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,aAAa,CAAC,OAAO,EAAE,MAAmB,CAAC;SACnF;QACH,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,OAAgB,EAChB,SAAoB,EACpB,OAAqB;IAErB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,OAAgB,EAChB,SAAoB;IAEpB,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACrE,CAAC"}
|