@azure-tools/typespec-azure-core 0.28.0-dev.1 → 0.28.0-dev.3

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.
@@ -1,6 +1,8 @@
1
1
  import "./index.js";
2
2
  import { DecoratorContext, Enum, EnumMember, Model, ModelProperty, Operation, Program, Scalar, Type } from "@typespec/compiler";
3
3
  export declare const namespace = "Azure.Core";
4
+ export declare const PollingOperationKey: string;
5
+ export declare const FinalOperationKey = "final";
4
6
  export declare function $fixed(context: DecoratorContext, target: Enum): void;
5
7
  export declare function isFixed(program: Program, target: Enum): boolean;
6
8
  export declare function $pagedResult(context: DecoratorContext, entity: Type): void;
@@ -39,6 +41,7 @@ export interface LongRunningStates {
39
41
  states: string[];
40
42
  }
41
43
  export declare function $lroStatus(context: DecoratorContext, entity: Enum | ModelProperty): void;
44
+ export declare function extractLroStates(program: Program, entity: Type): LongRunningStates | undefined;
42
45
  /**
43
46
  * Returns the `LongRunningStates` associated with `entity`.
44
47
  */
@@ -87,7 +90,9 @@ export declare function $pollingOperation(context: DecoratorContext, entity: Ope
87
90
  export declare function $finalOperation(context: DecoratorContext, entity: Operation, linkedOperation: Operation, parameters?: Model): void;
88
91
  export declare function $nextPageOperation(context: DecoratorContext, entity: Operation, linkedOperation: Operation, parameters?: Model): void;
89
92
  export declare function $requestParameter(context: DecoratorContext, entity: Model, name: string): void;
93
+ export declare function getRequestParameter(program: Program, entity: ModelProperty): string | undefined;
90
94
  export declare function $responseProperty(context: DecoratorContext, entity: Model, name: string): void;
95
+ export declare function getResponseProperty(program: Program, entity: ModelProperty): string | undefined;
91
96
  export declare function $spreadCustomParameters(context: DecoratorContext, entity: Model, customizations: Model): void;
92
97
  export declare function $spreadCustomResponseProperties(context: DecoratorContext, entity: Model, customizations: Model): void;
93
98
  export declare function $ensureResourceType(context: DecoratorContext, entity: Operation, resourceType: Type): void;
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,11 @@ import { getKnownValues, getNamespaceFullName, getTypeName, isErrorModel, isKey,
4
4
  import { getOperationParameters, getResponsesForOperation, getRoutePath } from "@typespec/http";
5
5
  import { getResourceTypeKey, getSegment, isAutoRoute } from "@typespec/rest";
6
6
  export const namespace = "Azure.Core";
7
+ /*
8
+ * Constants for polling and final operation links
9
+ */
10
+ export const PollingOperationKey = "polling";
11
+ export const FinalOperationKey = "final";
7
12
  // @fixed
8
13
  const fixedKey = createStateSymbol("fixed");
9
14
  export function $fixed(context, target) {
@@ -199,7 +204,7 @@ function storeLroState(program, states, name, enumMember) {
199
204
  }
200
205
  }
201
206
  }
202
- function extractLroStates(program, entity) {
207
+ export function extractLroStates(program, entity) {
203
208
  const result = { states: [] };
204
209
  if (entity.kind === "ModelProperty") {
205
210
  // Call the function recursively on the property type
@@ -436,13 +441,13 @@ export function $pollingOperation(context, entity, linkedOperation, parameters)
436
441
  if (!validateDecoratorTarget(context, entity, "@pollingOperation", "Operation")) {
437
442
  return;
438
443
  }
439
- context.call($operationLink, entity, linkedOperation, "polling", parameters);
444
+ context.call($operationLink, entity, linkedOperation, PollingOperationKey, parameters);
440
445
  }
441
446
  export function $finalOperation(context, entity, linkedOperation, parameters) {
442
447
  if (!validateDecoratorTarget(context, entity, "@finalOperation", "Operation")) {
443
448
  return;
444
449
  }
445
- context.call($operationLink, entity, linkedOperation, "final", parameters);
450
+ context.call($operationLink, entity, linkedOperation, FinalOperationKey, parameters);
446
451
  }
447
452
  export function $nextPageOperation(context, entity, linkedOperation, parameters) {
448
453
  if (!validateDecoratorTarget(context, entity, "@nextPageOperation", "Operation")) {
@@ -454,10 +459,22 @@ const requestParameterKey = createStateSymbol("requestParameter");
454
459
  export function $requestParameter(context, entity, name) {
455
460
  context.program.stateMap(requestParameterKey).set(entity, name);
456
461
  }
462
+ export function getRequestParameter(program, entity) {
463
+ if (entity.type.kind !== "Model")
464
+ return undefined;
465
+ const parameterName = program.stateMap(requestParameterKey).get(entity.type);
466
+ return parameterName;
467
+ }
457
468
  const responsePropertyKey = createStateSymbol("responseParameter");
458
469
  export function $responseProperty(context, entity, name) {
459
470
  context.program.stateMap(responsePropertyKey).set(entity, name);
460
471
  }
472
+ export function getResponseProperty(program, entity) {
473
+ if (entity.type.kind !== "Model")
474
+ return undefined;
475
+ const parameterName = program.stateMap(responsePropertyKey).get(entity.type);
476
+ return parameterName;
477
+ }
461
478
  export function $spreadCustomParameters(context, entity, customizations) {
462
479
  var _a;
463
480
  const customParameters = (_a = customizations.properties.get("parameters")) === null || _a === void 0 ? void 0 : _a.type;
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  export * from "./decorators.js";
2
2
  export { libDef } from "./lib.js";
3
3
  export * from "./linter.js";
4
+ export * from "./lro-helpers.js";
4
5
  export * from "./rules/prevent-rest-library.js";
5
6
  export * from "./rules/use-standard-ops.js";
6
7
  export * from "./traits.js";
8
+ export * from "./utils.js";
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,7 +1,9 @@
1
1
  export * from "./decorators.js";
2
2
  export { libDef } from "./lib.js";
3
3
  export * from "./linter.js";
4
+ export * from "./lro-helpers.js";
4
5
  export * from "./rules/prevent-rest-library.js";
5
6
  export * from "./rules/use-standard-ops.js";
6
7
  export * from "./traits.js";
8
+ export * from "./utils.js";
7
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
package/dist/src/lib.d.ts CHANGED
@@ -160,6 +160,18 @@ export declare const libDef: {
160
160
  readonly default: import("@typespec/compiler").CallableMessage<["propertyName", "kind"]>;
161
161
  };
162
162
  };
163
+ readonly "expected-success-response": {
164
+ readonly severity: "error";
165
+ readonly messages: {
166
+ readonly default: "The operation must have a success response";
167
+ };
168
+ };
169
+ readonly "lro-polling-data-missing-from-operation-response": {
170
+ readonly severity: "error";
171
+ readonly messages: {
172
+ readonly default: "At least one operation response must contain a field marked with `@lroStatus`";
173
+ };
174
+ };
163
175
  };
164
176
  };
165
177
  export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
@@ -243,8 +255,14 @@ export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
243
255
  "invalid-parameter": {
244
256
  readonly default: import("@typespec/compiler").CallableMessage<["propertyName", "kind"]>;
245
257
  };
258
+ "expected-success-response": {
259
+ readonly default: "The operation must have a success response";
260
+ };
261
+ "lro-polling-data-missing-from-operation-response": {
262
+ readonly default: "At least one operation response must contain a field marked with `@lroStatus`";
263
+ };
246
264
  }, Record<string, any>>;
247
- export declare const reportDiagnostic: <C extends "casing-style" | "lro-status-union-non-string" | "lro-status-property-invalid-type" | "lro-status-missing" | "bad-record-type" | "request-parameter-invalid" | "response-property-invalid" | "no-multiple-discriminator" | "operation-link-parameter-invalid" | "client-definition-parameters-not-model" | "invalid-resource-type" | "use-extensible-enum" | "use-standard-operations" | "no-format" | "no-rest-library-interfaces" | "no-unknown" | "documentation-required" | "key-visibility-required" | "long-running-polling-operation-required" | "rpc-operation-needs-route" | "invalid-trait-property-count" | "invalid-trait-property-type" | "invalid-trait-context" | "trait-property-without-location" | "expected-trait-missing" | "invalid-parameter", M extends keyof {
265
+ export declare const reportDiagnostic: <C extends "casing-style" | "lro-status-union-non-string" | "lro-status-property-invalid-type" | "lro-status-missing" | "bad-record-type" | "request-parameter-invalid" | "response-property-invalid" | "no-multiple-discriminator" | "operation-link-parameter-invalid" | "client-definition-parameters-not-model" | "invalid-resource-type" | "use-extensible-enum" | "use-standard-operations" | "no-format" | "no-rest-library-interfaces" | "no-unknown" | "documentation-required" | "key-visibility-required" | "long-running-polling-operation-required" | "rpc-operation-needs-route" | "invalid-trait-property-count" | "invalid-trait-property-type" | "invalid-trait-context" | "trait-property-without-location" | "expected-trait-missing" | "invalid-parameter" | "expected-success-response" | "lro-polling-data-missing-from-operation-response", M extends keyof {
248
266
  "casing-style": {
249
267
  readonly default: import("@typespec/compiler").CallableMessage<["type", "casing"]>;
250
268
  };
@@ -325,6 +343,12 @@ export declare const reportDiagnostic: <C extends "casing-style" | "lro-status-u
325
343
  "invalid-parameter": {
326
344
  readonly default: import("@typespec/compiler").CallableMessage<["propertyName", "kind"]>;
327
345
  };
346
+ "expected-success-response": {
347
+ readonly default: "The operation must have a success response";
348
+ };
349
+ "lro-polling-data-missing-from-operation-response": {
350
+ readonly default: "At least one operation response must contain a field marked with `@lroStatus`";
351
+ };
328
352
  }[C]>(program: import("@typespec/compiler").Program, diag: import("@typespec/compiler").DiagnosticReport<{
329
353
  "casing-style": {
330
354
  readonly default: import("@typespec/compiler").CallableMessage<["type", "casing"]>;
@@ -406,5 +430,11 @@ export declare const reportDiagnostic: <C extends "casing-style" | "lro-status-u
406
430
  "invalid-parameter": {
407
431
  readonly default: import("@typespec/compiler").CallableMessage<["propertyName", "kind"]>;
408
432
  };
433
+ "expected-success-response": {
434
+ readonly default: "The operation must have a success response";
435
+ };
436
+ "lro-polling-data-missing-from-operation-response": {
437
+ readonly default: "At least one operation response must contain a field marked with `@lroStatus`";
438
+ };
409
439
  }, C, M>) => void, createStateSymbol: (name: string) => symbol;
410
440
  //# sourceMappingURL=lib.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,eAAe,CAAC;AAEtC,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqKT,CAAC;AAEX,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAAgC,CAAC;AAClD,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,iBAAiB,0BAAS,CAAC"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,eAAe,CAAC;AAEtC,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiLT,CAAC;AAEX,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAAgC,CAAC;AAClD,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,iBAAiB,0BAAS,CAAC"}
package/dist/src/lib.js CHANGED
@@ -161,6 +161,18 @@ export const libDef = {
161
161
  default: paramMessage `Expected property '${"propertyName"}' to be a ${"kind"} parameter.`,
162
162
  },
163
163
  },
164
+ "expected-success-response": {
165
+ severity: "error",
166
+ messages: {
167
+ default: "The operation must have a success response",
168
+ },
169
+ },
170
+ "lro-polling-data-missing-from-operation-response": {
171
+ severity: "error",
172
+ messages: {
173
+ default: "At least one operation response must contain a field marked with `@lroStatus`",
174
+ },
175
+ },
164
176
  },
165
177
  };
166
178
  export const $lib = createTypeSpecLibrary(libDef);
@@ -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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"}
@@ -0,0 +1,143 @@
1
+ import "./index.js";
2
+ import { Model, ModelProperty, Operation, Program } from "@typespec/compiler";
3
+ /**
4
+ * Custom polling
5
+ * Represents a property or header that provides a Uri linking to another operation
6
+ */
7
+ export interface OperationLink {
8
+ kind: "link";
9
+ location: "ResponseHeader" | "ResponseBody";
10
+ property: ModelProperty;
11
+ }
12
+ /**
13
+ * Custom polling
14
+ * Represents the property that contains the state and the terminal state values
15
+ */
16
+ export type TerminationStatus = HttpTerminationStatus | ModelPropertyTerminationStatus;
17
+ /**
18
+ * Definition of a StatusMonitor that uses http status rather then status code
19
+ */
20
+ export interface HttpTerminationStatus {
21
+ kind: "status-code";
22
+ }
23
+ /**
24
+ * Definition of a status monitor that uses a status field
25
+ */
26
+ export interface ModelPropertyTerminationStatus {
27
+ kind: "model-property";
28
+ property: ModelProperty;
29
+ succeededState: string[];
30
+ failedState: string[];
31
+ canceledState: string[];
32
+ }
33
+ /**
34
+ * Custom polling
35
+ * Represents the source of a parameter value when the client resolves an operation reference
36
+ */
37
+ export interface ParameterSource {
38
+ location: "OperationParameters" | "RequestBody" | "Response";
39
+ parameter: string;
40
+ }
41
+ /**
42
+ * Custom polling
43
+ * Represents a reference to an operation, including a map from the
44
+ * original operation to the parameters of the linked operation
45
+ */
46
+ export interface OperationReference {
47
+ kind: "reference";
48
+ operation: Operation;
49
+ parameterMap?: Map<string, ParameterSource>;
50
+ }
51
+ /**
52
+ * Custom polling
53
+ * A step in a logical operation that involves multiple calls
54
+ */
55
+ export interface LogicalOperationStep {
56
+ responseModel: Model;
57
+ }
58
+ export type OperationStep = NextOperationLink | NextOperationReference | PollingOperationStep | FinalOperationLink | FinalOperationReference | PollingSuccessProperty;
59
+ /**
60
+ * Indicates that an operation step involves polling, and includes details on
61
+ * how to end polling
62
+ */
63
+ export interface PollingOperationStep extends LogicalOperationStep {
64
+ kind: "pollingOperationStep";
65
+ terminationStatus: TerminationStatus;
66
+ }
67
+ export type nextOperationStep = NextOperationLink | NextOperationReference;
68
+ /**
69
+ * A resource link to the next operation
70
+ */
71
+ export interface NextOperationLink extends LogicalOperationStep {
72
+ kind: "nextOperationLink";
73
+ target: OperationLink;
74
+ }
75
+ /**
76
+ * An operation link to the next operation
77
+ */
78
+ export interface NextOperationReference extends LogicalOperationStep {
79
+ kind: "nextOperationReference";
80
+ target: OperationReference;
81
+ }
82
+ /**
83
+ * For long-running operations, a description of the final step for
84
+ * getting to a success result
85
+ */
86
+ export type FinalOperationStep = FinalOperationLink | FinalOperationReference | PollingSuccessProperty;
87
+ /**
88
+ * For long-running operations, the resource link to the final result
89
+ */
90
+ export interface FinalOperationLink extends LogicalOperationStep {
91
+ kind: "finalOperationLink";
92
+ target: OperationLink;
93
+ }
94
+ /**
95
+ * For long-running operations, the operation link to the final result
96
+ */
97
+ export interface FinalOperationReference extends LogicalOperationStep {
98
+ kind: "finalOperationReference";
99
+ target: OperationReference;
100
+ }
101
+ /**
102
+ * For long-running operations using a status monitor, describes the
103
+ * property of the StatusMonitor that contains the success response
104
+ */
105
+ export interface PollingSuccessProperty extends LogicalOperationStep {
106
+ kind: "pollingSuccessProperty";
107
+ target: ModelProperty;
108
+ sourceProperty: ModelProperty;
109
+ }
110
+ /**
111
+ * Azure SDK polling information: provides data contained in the
112
+ * long-running-operation-options.final-state-via field
113
+ */
114
+ export declare enum FinalStateValue {
115
+ azureAsyncOperation = "azure-async-operation",
116
+ location = "location",
117
+ operationLocation = "operation-location",
118
+ originalUri = "original-uri",
119
+ customLink = "custom-link",
120
+ customOperationReference = "custom-operation-reference"
121
+ }
122
+ /**
123
+ * Information about long-running operations
124
+ * For standard Lro Patterns, only the 'logicalResult' and 'finalStateVia' will be used.
125
+ */
126
+ export interface LroMetadata {
127
+ operation: Operation;
128
+ logicalResult: Model;
129
+ finalStateVia: FinalStateValue;
130
+ statusMonitorStep?: NextOperationLink | NextOperationReference;
131
+ pollingInfo: PollingOperationStep;
132
+ finalStep?: FinalOperationStep;
133
+ }
134
+ /**
135
+ *
136
+ * @param program The program being processed
137
+ * @param operation The operation to get Lwo Metadata for
138
+ * @returns LroMetadata for the operation is it is long-running,
139
+ * or nothing if the operation is synchronous, or lro information
140
+ * cannot be processed.
141
+ */
142
+ export declare function getLroMetadata(program: Program, operation: Operation): LroMetadata | undefined;
143
+ //# sourceMappingURL=lro-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lro-helpers.d.ts","sourceRoot":"","sources":["../../src/lro-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,467 @@
1
+ import "./index.js";
2
+ import { filterModelProperties, filterResponseModels, getHttpMetadata, getOperationResponse, getResultModelWithProperty, getSuccessResponse, } from "./utils.js";
3
+ import { isNeverType, } from "@typespec/compiler";
4
+ import { getHeaderFieldName, getHttpOperation, isHeader } from "@typespec/http";
5
+ import { getAction, getResourceLocationType, getResourceOperation } from "@typespec/rest";
6
+ import { extractLroStates, FinalOperationKey, getOperationLink, getOperationLinks, getRequestParameter, getResponseProperty, isFinalLocation, isPollingLocation, PollingOperationKey, } from "./decorators.js";
7
+ /**
8
+ * Azure SDK polling information: provides data contained in the
9
+ * long-running-operation-options.final-state-via field
10
+ */
11
+ export var FinalStateValue;
12
+ (function (FinalStateValue) {
13
+ FinalStateValue["azureAsyncOperation"] = "azure-async-operation";
14
+ FinalStateValue["location"] = "location";
15
+ FinalStateValue["operationLocation"] = "operation-location";
16
+ FinalStateValue["originalUri"] = "original-uri";
17
+ FinalStateValue["customLink"] = "custom-link";
18
+ FinalStateValue["customOperationReference"] = "custom-operation-reference";
19
+ })(FinalStateValue = FinalStateValue || (FinalStateValue = {}));
20
+ /**
21
+ *
22
+ * @param program The program being processed
23
+ * @param operation The operation to get Lwo Metadata for
24
+ * @returns LroMetadata for the operation is it is long-running,
25
+ * or nothing if the operation is synchronous, or lro information
26
+ * cannot be processed.
27
+ */
28
+ export function getLroMetadata(program, operation) {
29
+ const context = ensureContext(program, operation, undefined);
30
+ if (context === undefined)
31
+ return undefined;
32
+ processFinalReference(program, operation, context);
33
+ processFinalLink(program, operation, context);
34
+ const nextReference = processStatusMonitorReference(program, operation, context);
35
+ if (nextReference !== undefined) {
36
+ context.statusMonitorStep = nextReference;
37
+ processFinalReference(program, nextReference.target.operation, context);
38
+ processFinalLink(program, nextReference.target.operation, context);
39
+ context.pollingStep = getPollingStep(program, nextReference.responseModel);
40
+ return createLroMetadata(program, operation, context);
41
+ }
42
+ if (processStatusMonitorLink(program, operation, context)) {
43
+ return createLroMetadata(program, operation, context);
44
+ }
45
+ const originalStep = getPollingStep(program, operation);
46
+ if (originalStep !== undefined) {
47
+ context.pollingStep = originalStep;
48
+ return createLroMetadata(program, operation, context);
49
+ }
50
+ return undefined;
51
+ }
52
+ function createFinalOperationLink(program, model, property) {
53
+ return {
54
+ kind: "finalOperationLink",
55
+ responseModel: model,
56
+ target: {
57
+ kind: "link",
58
+ location: isHeader(program, property) ? "ResponseHeader" : "ResponseBody",
59
+ property: property,
60
+ },
61
+ };
62
+ }
63
+ function createLroMetadata(program, operation, context) {
64
+ const [finalState, model] = getFinalStateVia(program, operation, context);
65
+ return {
66
+ operation: operation,
67
+ logicalResult: model,
68
+ finalStateVia: finalState,
69
+ statusMonitorStep: context.statusMonitorStep,
70
+ pollingInfo: context.pollingStep,
71
+ finalStep: context.finalStep,
72
+ };
73
+ }
74
+ function createOperationLink(program, modelProperty) {
75
+ return {
76
+ kind: "link",
77
+ location: isHeader(program, modelProperty) ? "ResponseHeader" : "ResponseBody",
78
+ property: modelProperty,
79
+ };
80
+ }
81
+ function createOperationReference(program, metadata) {
82
+ const map = new Map();
83
+ if (metadata.parameters !== undefined && metadata.parameters.kind === "Model") {
84
+ for (const [name, property] of metadata.parameters.properties.entries()) {
85
+ const requestParam = getRequestParameter(program, property);
86
+ if (requestParam !== undefined) {
87
+ map.set(name, { location: "OperationParameters", parameter: requestParam });
88
+ }
89
+ const responseProperty = getResponseProperty(program, property);
90
+ if (responseProperty !== undefined) {
91
+ map.set(name, { location: "Response", parameter: responseProperty });
92
+ }
93
+ }
94
+ }
95
+ const opParams = metadata.linkedOperation.parameters.properties;
96
+ if (map.size !== opParams.size)
97
+ return undefined;
98
+ for (const [name, _] of opParams.entries()) {
99
+ if (!map.has(name))
100
+ return undefined;
101
+ }
102
+ return {
103
+ kind: "reference",
104
+ operation: metadata.linkedOperation,
105
+ parameterMap: map,
106
+ };
107
+ }
108
+ function createPollingStep(pollingData) {
109
+ return {
110
+ kind: "pollingOperationStep",
111
+ responseModel: pollingData.monitorType,
112
+ terminationStatus: {
113
+ kind: "model-property",
114
+ canceledState: [pollingData.lroStates.canceledState],
115
+ failedState: [pollingData.lroStates.failedState],
116
+ succeededState: [pollingData.lroStates.succeededState],
117
+ property: pollingData.statusProperty,
118
+ },
119
+ };
120
+ }
121
+ function ensureContext(program, operation, context) {
122
+ if (context)
123
+ return context;
124
+ const [httpOperation, diagnostics] = getHttpOperation(program, operation);
125
+ if (diagnostics !== undefined && diagnostics.length > 0) {
126
+ program.reportDiagnostics(diagnostics);
127
+ }
128
+ const candidate = getSuccessResponse(program, httpOperation);
129
+ if (candidate === undefined)
130
+ return undefined;
131
+ return {
132
+ visitedModels: new Set(),
133
+ visitedOperations: new Set(),
134
+ httpOperation: httpOperation,
135
+ originalModel: candidate,
136
+ };
137
+ }
138
+ function getFinalStateVia(program, operation, context) {
139
+ var _a, _b, _c, _d;
140
+ const operationAction = getAction(program, operation);
141
+ const resOp = getResourceOperation(program, operation);
142
+ let model = context.originalModel;
143
+ let finalState = FinalStateValue.originalUri;
144
+ if (operationAction !== undefined || (resOp !== undefined && resOp.operation === "delete")) {
145
+ finalState = FinalStateValue.operationLocation;
146
+ model = (_b = (_a = context.pollingStep) === null || _a === void 0 ? void 0 : _a.responseModel) !== null && _b !== void 0 ? _b : context.originalModel;
147
+ }
148
+ if (context.finalStep) {
149
+ model = context.finalStep.responseModel;
150
+ if (context.finalStep.kind === "pollingSuccessProperty" &&
151
+ context.statusMonitorStep !== undefined &&
152
+ context.statusMonitorStep.kind === "nextOperationLink") {
153
+ finalState = getLroStatusFromHeaderProperty(program, context.statusMonitorStep.target.property);
154
+ }
155
+ else {
156
+ finalState = getStatusFromLinkOrReference(program, operation, context.finalStep.target);
157
+ }
158
+ return [finalState, model];
159
+ }
160
+ // handle actions and delete operations
161
+ if ((operationAction !== undefined &&
162
+ operationAction !== null &&
163
+ context.statusMonitorStep !== undefined) ||
164
+ ((resOp === null || resOp === void 0 ? void 0 : resOp.operation) !== undefined &&
165
+ resOp.operation === "delete" &&
166
+ context.pollingStep !== undefined &&
167
+ context.statusMonitorStep !== undefined)) {
168
+ const info = getStatusMonitorInfo(program, context.statusMonitorStep.responseModel);
169
+ if (info !== undefined) {
170
+ model = (_c = info.successType) !== null && _c !== void 0 ? _c : info.monitorType;
171
+ finalState = getStatusFromLinkOrReference(program, operation, (_d = context.statusMonitorStep) === null || _d === void 0 ? void 0 : _d.target);
172
+ }
173
+ }
174
+ return [finalState, model];
175
+ }
176
+ function getLroStatusFromHeaderProperty(program, property) {
177
+ let finalState;
178
+ if (!isHeader(program, property))
179
+ return FinalStateValue.customLink;
180
+ const name = getHeaderFieldName(program, property);
181
+ if (name === undefined)
182
+ return FinalStateValue.customLink;
183
+ switch (name) {
184
+ case "Operation-Location":
185
+ finalState = FinalStateValue.operationLocation;
186
+ break;
187
+ case "azureAsyncOperation":
188
+ finalState = FinalStateValue.azureAsyncOperation;
189
+ break;
190
+ case "location":
191
+ finalState = FinalStateValue.location;
192
+ break;
193
+ default:
194
+ finalState = FinalStateValue.customLink;
195
+ }
196
+ return finalState;
197
+ }
198
+ function getLroStatusProperty(program, model) {
199
+ const properties = filterModelProperties(model, (prop) => extractLroStates(program, prop) !== undefined);
200
+ return properties.length > 0 ? properties[0] : undefined;
201
+ }
202
+ function getPollingStep(program, modelOrOperation) {
203
+ let info;
204
+ switch (modelOrOperation.kind) {
205
+ case "Operation":
206
+ const httpOperation = getHttpMetadata(program, modelOrOperation);
207
+ info = GetStatusMonitorInfoFromOperation(program, httpOperation);
208
+ break;
209
+ case "Model":
210
+ info = getStatusMonitorInfo(program, modelOrOperation);
211
+ break;
212
+ }
213
+ if (info === undefined)
214
+ return undefined;
215
+ return createPollingStep(info);
216
+ }
217
+ function getStatusFromLinkOrReference(program, sourceOperation, target) {
218
+ let finalState = FinalStateValue.originalUri;
219
+ switch (target.kind) {
220
+ case "link":
221
+ {
222
+ switch (target.location) {
223
+ case "ResponseBody":
224
+ finalState = FinalStateValue.customLink;
225
+ break;
226
+ case "ResponseHeader":
227
+ finalState = getLroStatusFromHeaderProperty(program, target.property);
228
+ break;
229
+ }
230
+ }
231
+ break;
232
+ case "reference":
233
+ {
234
+ finalState = FinalStateValue.customOperationReference;
235
+ if (isMatchingGetOperation(program, sourceOperation, target.operation)) {
236
+ finalState = FinalStateValue.originalUri;
237
+ }
238
+ }
239
+ break;
240
+ }
241
+ return finalState;
242
+ }
243
+ /**
244
+ * Extracts status monitor information from a pollingLink
245
+ * @param program The program being processed
246
+ * @param link The link to the status monitor
247
+ */
248
+ function getStatusMonitorInfo(program, modelOrLink) {
249
+ if (modelOrLink.kind === "link") {
250
+ const statusMonitorType = resolveOperationLocation(program, modelOrLink.property);
251
+ if (statusMonitorType === undefined)
252
+ return undefined;
253
+ modelOrLink = statusMonitorType;
254
+ }
255
+ const statusProperty = getLroStatusProperty(program, modelOrLink);
256
+ if (statusProperty === undefined)
257
+ return undefined;
258
+ const successInfo = getTargetModelInformation(program, modelOrLink);
259
+ const lroStates = extractLroStates(program, statusProperty);
260
+ if (lroStates === undefined)
261
+ return undefined;
262
+ return {
263
+ monitorType: modelOrLink,
264
+ successType: successInfo !== undefined ? successInfo[0] : undefined,
265
+ successProperty: successInfo !== undefined ? successInfo[1] : undefined,
266
+ statusProperty: statusProperty,
267
+ lroStates: lroStates,
268
+ };
269
+ }
270
+ function GetStatusMonitorInfoFromOperation(program, operation) {
271
+ const models = filterResponseModels(operation, (model) => filterModelProperties(model, (prop) => extractLroStates(program, prop) !== undefined).length >
272
+ 0);
273
+ if (models === undefined || models.length < 1)
274
+ return undefined;
275
+ return getStatusMonitorInfo(program, models[0]);
276
+ }
277
+ function getStatusMonitorLinks(program, operation) {
278
+ const models = filterResponseModels(operation, (model) => filterModelProperties(model, (prop) => isPollingLocation(program, prop) || isFinalLocation(program, prop)).length > 0);
279
+ if (models === undefined || models.length < 1)
280
+ return undefined;
281
+ return getStatusMonitorLinksFromModel(program, models[0]);
282
+ }
283
+ function getStatusMonitorLinksFromModel(program, model) {
284
+ const pollingLinks = filterModelProperties(model, (prop) => isPollingLocation(program, prop));
285
+ if (pollingLinks === undefined || pollingLinks.length !== 1)
286
+ return undefined;
287
+ const pollingLink = createOperationLink(program, pollingLinks[0]);
288
+ const monitorInfo = getStatusMonitorInfo(program, pollingLink);
289
+ if (monitorInfo === undefined)
290
+ return undefined;
291
+ const finalLinks = filterModelProperties(model, (prop) => isFinalLocation(program, prop));
292
+ const finalLink = finalLinks === undefined || finalLinks.length !== 1
293
+ ? undefined
294
+ : createOperationLink(program, finalLinks[0]);
295
+ let finalTarget;
296
+ if (finalLink !== undefined) {
297
+ finalTarget = getTargetModelInformation(program, finalLink);
298
+ }
299
+ return {
300
+ model: monitorInfo.monitorType,
301
+ statusMonitor: pollingLink,
302
+ pollingData: monitorInfo,
303
+ final: finalLink,
304
+ finalModel: finalTarget === undefined ? undefined : finalTarget[0],
305
+ };
306
+ }
307
+ /**
308
+ * Gets the target model, as defined in the status monitor, either through result property
309
+ * or `@finalLocation` links
310
+ * @param program The program being processed
311
+ * @param link The link pointing to the monitor
312
+ */
313
+ function getTargetModelInformation(program, modelOrLink) {
314
+ if (modelOrLink.kind === "link") {
315
+ const linkModel = resolveOperationLocation(program, modelOrLink.property);
316
+ if (linkModel === undefined)
317
+ return undefined;
318
+ modelOrLink = linkModel;
319
+ }
320
+ const finalLinkProps = filterModelProperties(modelOrLink, (prop) => isFinalLocation(program, prop));
321
+ const resultProps = filterModelProperties(modelOrLink, (prop) => isResultProperty(program, prop));
322
+ if (finalLinkProps.length === 1) {
323
+ const result = resolveOperationLocation(program, finalLinkProps[0]);
324
+ if (result !== undefined)
325
+ return [result, finalLinkProps[0]];
326
+ }
327
+ if (resultProps.length === 1 &&
328
+ !isNeverType(resultProps[0].type) &&
329
+ resultProps[0].type.kind === "Model") {
330
+ return [resultProps[0].type, resultProps[0]];
331
+ }
332
+ return undefined;
333
+ }
334
+ function isMatchingGetOperation(program, sourceOperation, targetOperation) {
335
+ const sourceHttp = getHttpMetadata(program, sourceOperation);
336
+ const targetHttp = getHttpMetadata(program, targetOperation);
337
+ return sourceHttp.path === targetHttp.path && targetHttp.verb === "get";
338
+ }
339
+ function isResultProperty(program, property) {
340
+ return property.name === "result";
341
+ }
342
+ function processFinalLink(program, modelOrOperation, context) {
343
+ if (context.finalStep !== undefined)
344
+ return;
345
+ switch (modelOrOperation.kind) {
346
+ case "Operation":
347
+ {
348
+ const result = getResultModelWithProperty(program, modelOrOperation, (prop) => isFinalLocation(program, prop));
349
+ if (result === undefined)
350
+ return;
351
+ const [model, property] = result;
352
+ context.finalStep = createFinalOperationLink(program, model, property);
353
+ }
354
+ break;
355
+ case "Model":
356
+ {
357
+ const outProperties = filterModelProperties(modelOrOperation, (prop) => isFinalLocation(program, prop));
358
+ if (outProperties === undefined || outProperties.length !== 1)
359
+ return;
360
+ context.finalStep = createFinalOperationLink(program, modelOrOperation, outProperties[0]);
361
+ }
362
+ break;
363
+ }
364
+ }
365
+ function processFinalReference(program, operation, context) {
366
+ if (context.finalStep !== undefined)
367
+ return;
368
+ const link = getOperationLink(program, operation, "final");
369
+ if (link === undefined)
370
+ return;
371
+ const reference = createOperationReference(program, link);
372
+ if (reference === undefined)
373
+ return;
374
+ const model = getOperationResponse(program, link.linkedOperation);
375
+ if (model === undefined)
376
+ return;
377
+ context.finalStep = {
378
+ kind: "finalOperationReference",
379
+ responseModel: model,
380
+ target: reference,
381
+ };
382
+ }
383
+ function processStatusMonitorLink(program, modelOrOperation, context) {
384
+ let lroData;
385
+ switch (modelOrOperation.kind) {
386
+ case "Operation":
387
+ lroData = getStatusMonitorLinks(program, context.httpOperation);
388
+ break;
389
+ case "Model":
390
+ lroData = getStatusMonitorLinksFromModel(program, modelOrOperation);
391
+ break;
392
+ }
393
+ if (lroData === undefined || lroData.statusMonitor === undefined) {
394
+ return false;
395
+ }
396
+ context.pollingStep = createPollingStep(lroData.pollingData);
397
+ if (context.finalStep === undefined) {
398
+ if (lroData.final !== undefined && lroData.finalModel !== undefined) {
399
+ context.finalStep = {
400
+ kind: "finalOperationLink",
401
+ responseModel: lroData.finalModel,
402
+ target: lroData.final,
403
+ };
404
+ }
405
+ else if (lroData.pollingData.successProperty !== undefined &&
406
+ lroData.pollingData.successType !== undefined) {
407
+ const final = {
408
+ kind: "pollingSuccessProperty",
409
+ target: lroData.pollingData.successProperty,
410
+ responseModel: lroData.pollingData.successType,
411
+ sourceProperty: lroData.statusMonitor.property,
412
+ };
413
+ context.finalStep = final;
414
+ }
415
+ }
416
+ context.statusMonitorStep = {
417
+ kind: "nextOperationLink",
418
+ responseModel: lroData.model,
419
+ target: lroData.statusMonitor,
420
+ };
421
+ return true;
422
+ }
423
+ function processStatusMonitorReference(program, referencedOperation, context) {
424
+ const references = getOperationLinks(program, referencedOperation);
425
+ if (references === undefined)
426
+ return undefined;
427
+ const pollingData = references.get(PollingOperationKey);
428
+ if (pollingData === undefined)
429
+ return undefined;
430
+ const pollingReference = createOperationReference(program, pollingData);
431
+ if (pollingReference === undefined)
432
+ return undefined;
433
+ const finalData = references.get(FinalOperationKey);
434
+ if (context.finalStep === undefined && finalData !== undefined) {
435
+ const finalReference = createOperationReference(program, finalData);
436
+ const finalModel = getSuccessResponse(program, getHttpMetadata(program, finalData.linkedOperation));
437
+ if (finalReference !== undefined && finalModel !== undefined) {
438
+ context.finalStep = {
439
+ kind: "finalOperationReference",
440
+ responseModel: finalModel,
441
+ target: finalReference,
442
+ };
443
+ }
444
+ }
445
+ const responseModel = getSuccessResponse(program, getHttpMetadata(program, pollingData.linkedOperation));
446
+ if (responseModel === undefined)
447
+ return undefined;
448
+ return {
449
+ kind: "nextOperationReference",
450
+ responseModel: responseModel,
451
+ target: pollingReference,
452
+ };
453
+ }
454
+ function resolveOperationLocation(program, property) {
455
+ const resolvedScalar = resolveToScalarType(program, property.type);
456
+ if (resolvedScalar === undefined)
457
+ return undefined;
458
+ return getResourceLocationType(program, resolvedScalar);
459
+ }
460
+ function resolveToScalarType(program, type) {
461
+ switch (type.kind) {
462
+ case "Scalar":
463
+ return type;
464
+ }
465
+ return undefined;
466
+ }
467
+ //# sourceMappingURL=lro-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lro-helpers.js","sourceRoot":"","sources":["../../src/lro-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,CAAC;AACpB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,WAAW,GAOZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAiB,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EAGjB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAuIzB;;;GAGG;AACH,MAAM,CAAN,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,gEAA6C,CAAA;IAC7C,wCAAqB,CAAA;IACrB,2DAAwC,CAAA;IACxC,+CAA4B,CAAA;IAC5B,6CAA0B,CAAA;IAC1B,0EAAuD,CAAA;AACzD,CAAC,EAPW,eAAe,GAAf,eAAe,KAAf,eAAe,QAO1B;AAiBD;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,OAAgB,EAAE,SAAoB;IACnE,MAAM,OAAO,GAA2B,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACrF,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,qBAAqB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACnD,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAuC,6BAA6B,CACrF,OAAO,EACP,SAAS,EACT,OAAO,CACR,CAAC;IACF,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,OAAO,CAAC,iBAAiB,GAAG,aAAa,CAAC;QAC1C,qBAAqB,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACxE,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACnE,OAAO,CAAC,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;QAC3E,OAAO,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;KACvD;IAED,IAAI,wBAAwB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE;QACzD,OAAO,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;KACvD;IAED,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxD,IAAI,YAAY,KAAK,SAAS,EAAE;QAC9B,OAAO,CAAC,WAAW,GAAG,YAAY,CAAC;QACnC,OAAO,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;KACvD;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AA2CD,SAAS,wBAAwB,CAC/B,OAAgB,EAChB,KAAY,EACZ,QAAuB;IAEvB,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,aAAa,EAAE,KAAK;QACpB,MAAM,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc;YACzE,QAAQ,EAAE,QAAQ;SACnB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAgB,EAChB,SAAoB,EACpB,OAAmB;IAEnB,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1E,OAAO;QACL,SAAS,EAAE,SAAS;QACpB,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,UAAU;QACzB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,WAAW,EAAE,OAAO,CAAC,WAAY;QACjC,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgB,EAAE,aAA4B;IACzE,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc;QAC9E,QAAQ,EAAE,aAAa;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,OAAgB,EAChB,QAA+B;IAE/B,MAAM,GAAG,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC/C,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE;QAC7E,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE;YACvE,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC5D,IAAI,YAAY,KAAK,SAAS,EAAE;gBAC9B,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,qBAAqB,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;aAC7E;YACD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAChE,IAAI,gBAAgB,KAAK,SAAS,EAAE;gBAClC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;aACtE;SACF;KACF;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC;IAChE,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE;QAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;KACtC;IACD,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,QAAQ,CAAC,eAAe;QACnC,YAAY,EAAE,GAAG;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,WAA8B;IACvD,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,aAAa,EAAE,WAAW,CAAC,WAAW;QACtC,iBAAiB,EAAE;YACjB,IAAI,EAAE,gBAAgB;YACtB,aAAa,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC;YACpD,WAAW,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC;YAChD,cAAc,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC;YACtD,QAAQ,EAAE,WAAW,CAAC,cAAc;SACrC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,OAAgB,EAChB,SAAoB,EACpB,OAA+B;IAE/B,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC1E,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;QACvD,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;KACxC;IAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC7D,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC9C,OAAO;QACL,aAAa,EAAE,IAAI,GAAG,EAAS;QAC/B,iBAAiB,EAAE,IAAI,GAAG,EAAa;QACvC,aAAa,EAAE,aAAa;QAC5B,aAAa,EAAE,SAAS;KACzB,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,OAAgB,EAChB,SAAoB,EACpB,OAAmB;;IAEnB,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACvD,IAAI,KAAK,GAAU,OAAO,CAAC,aAAa,CAAC;IACzC,IAAI,UAAU,GAAoB,eAAe,CAAC,WAAW,CAAC;IAC9D,IAAI,eAAe,KAAK,SAAS,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,EAAE;QAC1F,UAAU,GAAG,eAAe,CAAC,iBAAiB,CAAC;QAC/C,KAAK,GAAG,MAAA,MAAA,OAAO,CAAC,WAAW,0CAAE,aAAa,mCAAI,OAAO,CAAC,aAAa,CAAC;KACrE;IAED,IAAI,OAAO,CAAC,SAAS,EAAE;QACrB,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC;QACxC,IACE,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,wBAAwB;YACnD,OAAO,CAAC,iBAAiB,KAAK,SAAS;YACvC,OAAO,CAAC,iBAAiB,CAAC,IAAI,KAAK,mBAAmB,EACtD;YACA,UAAU,GAAG,8BAA8B,CACzC,OAAO,EACP,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAC1C,CAAC;SACH;aAAM;YACL,UAAU,GAAG,4BAA4B,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SACzF;QACD,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;KAC5B;IAED,uCAAuC;IACvC,IACE,CAAC,eAAe,KAAK,SAAS;QAC5B,eAAe,KAAK,IAAI;QACxB,OAAO,CAAC,iBAAiB,KAAK,SAAS,CAAC;QAC1C,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,MAAK,SAAS;YAC7B,KAAK,CAAC,SAAS,KAAK,QAAQ;YAC5B,OAAO,CAAC,WAAW,KAAK,SAAS;YACjC,OAAO,CAAC,iBAAiB,KAAK,SAAS,CAAC,EAC1C;QACA,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACpF,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,KAAK,GAAG,MAAA,IAAI,CAAC,WAAW,mCAAI,IAAI,CAAC,WAAW,CAAC;YAC7C,UAAU,GAAG,4BAA4B,CACvC,OAAO,EACP,SAAS,EACT,MAAA,OAAO,CAAC,iBAAiB,0CAAE,MAAM,CAClC,CAAC;SACH;KACF;IAED,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,8BAA8B,CACrC,OAAgB,EAChB,QAAuB;IAEvB,IAAI,UAA2B,CAAC;IAChC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;QAAE,OAAO,eAAe,CAAC,UAAU,CAAC;IACpE,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC,UAAU,CAAC;IAE1D,QAAQ,IAAI,EAAE;QACZ,KAAK,oBAAoB;YACvB,UAAU,GAAG,eAAe,CAAC,iBAAiB,CAAC;YAC/C,MAAM;QACR,KAAK,qBAAqB;YACxB,UAAU,GAAG,eAAe,CAAC,mBAAmB,CAAC;YACjD,MAAM;QACR,KAAK,UAAU;YACb,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC;YACtC,MAAM;QACR;YACE,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;KAC3C;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAgB,EAAE,KAAY;IAC1D,MAAM,UAAU,GAAG,qBAAqB,CACtC,KAAK,EACL,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,SAAS,CACxD,CAAC;IACF,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC;AAED,SAAS,cAAc,CACrB,OAAgB,EAChB,gBAAmC;IAEnC,IAAI,IAAmC,CAAC;IACxC,QAAQ,gBAAgB,CAAC,IAAI,EAAE;QAC7B,KAAK,WAAW;YACd,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YACjE,IAAI,GAAG,iCAAiC,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YACjE,MAAM;QACR,KAAK,OAAO;YACV,IAAI,GAAG,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YACvD,MAAM;KACT;IAED,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,4BAA4B,CACnC,OAAgB,EAChB,eAA0B,EAC1B,MAA0D;IAE1D,IAAI,UAAU,GAAoB,eAAe,CAAC,WAAW,CAAC;IAC9D,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,MAAM;YACT;gBACE,QAAQ,MAAM,CAAC,QAAQ,EAAE;oBACvB,KAAK,cAAc;wBACjB,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;wBACxC,MAAM;oBACR,KAAK,gBAAgB;wBACnB,UAAU,GAAG,8BAA8B,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;wBACtE,MAAM;iBACT;aACF;YACD,MAAM;QACR,KAAK,WAAW;YACd;gBACE,UAAU,GAAG,eAAe,CAAC,wBAAwB,CAAC;gBACtD,IAAI,sBAAsB,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE;oBACtE,UAAU,GAAG,eAAe,CAAC,WAAW,CAAC;iBAC1C;aACF;YACD,MAAM;KACT;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAC3B,OAAgB,EAChB,WAAkC;IAElC,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE;QAC/B,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;QAClF,IAAI,iBAAiB,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACtD,WAAW,GAAG,iBAAiB,CAAC;KACjC;IAED,MAAM,cAAc,GAAG,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAClE,IAAI,cAAc,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,WAAW,GAAG,yBAAyB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC5D,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC9C,OAAO;QACL,WAAW,EAAE,WAAW;QACxB,WAAW,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACnE,eAAe,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACvE,cAAc,EAAE,cAAc;QAC9B,SAAS,EAAE,SAAS;KACrB,CAAC;AACJ,CAAC;AAED,SAAS,iCAAiC,CACxC,OAAgB,EAChB,SAAwB;IAExB,MAAM,MAAM,GAAG,oBAAoB,CACjC,SAAS,EACT,CAAC,KAAK,EAAE,EAAE,CACR,qBAAqB,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,MAAM;QAC5F,CAAC,CACJ,CAAC;IACF,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,OAAO,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAgB,EAChB,SAAwB;IAExB,MAAM,MAAM,GAAwB,oBAAoB,CACtD,SAAS,EACT,CAAC,KAAK,EAAE,EAAE,CACR,qBAAqB,CACnB,KAAK,EACL,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAC7E,CAAC,MAAM,GAAG,CAAC,CACf,CAAC;IACF,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,OAAO,8BAA8B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,8BAA8B,CACrC,OAAgB,EAChB,KAAY;IAEZ,MAAM,YAAY,GAAgC,qBAAqB,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CACtF,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CACjC,CAAC;IACF,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9E,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC/D,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,UAAU,GAAgC,qBAAqB,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CACpF,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAC/B,CAAC;IACF,MAAM,SAAS,GACb,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QACjD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,WAA+C,CAAC;IACpD,IAAI,SAAS,KAAK,SAAS,EAAE;QAC3B,WAAW,GAAG,yBAAyB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KAC7D;IACD,OAAO;QACL,KAAK,EAAE,WAAW,CAAC,WAAW;QAC9B,aAAa,EAAE,WAAW;QAC1B,WAAW,EAAE,WAAW;QACxB,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;KACnE,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,yBAAyB,CAChC,OAAgB,EAChB,WAAkC;IAElC,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE;QAC/B,MAAM,SAAS,GAAG,wBAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC1E,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC9C,WAAW,GAAG,SAAS,CAAC;KACzB;IAED,MAAM,cAAc,GAAG,qBAAqB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CACjE,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAC/B,CAAC;IACF,MAAM,WAAW,GAAG,qBAAqB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAElG,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QAC/B,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9D;IAED,IACE,WAAW,CAAC,MAAM,KAAK,CAAC;QACxB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EACpC;QACA,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9C;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAAgB,EAChB,eAA0B,EAC1B,eAA0B;IAE1B,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC7D,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,CAAC;AAC1E,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB,EAAE,QAAuB;IACjE,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC;AACpC,CAAC;AAED,SAAS,gBAAgB,CACvB,OAAgB,EAChB,gBAAmC,EACnC,OAAmB;IAEnB,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;QAAE,OAAO;IAC5C,QAAQ,gBAAgB,CAAC,IAAI,EAAE;QAC7B,KAAK,WAAW;YACd;gBACE,MAAM,MAAM,GAAG,0BAA0B,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAC5E,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAC/B,CAAC;gBACF,IAAI,MAAM,KAAK,SAAS;oBAAE,OAAO;gBACjC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC;gBACjC,OAAO,CAAC,SAAS,GAAG,wBAAwB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;aACxE;YACD,MAAM;QACR,KAAK,OAAO;YACV;gBACE,MAAM,aAAa,GAAoB,qBAAqB,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CACtF,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAC/B,CAAC;gBACF,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO;gBACtE,OAAO,CAAC,SAAS,GAAG,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3F;YACD,MAAM;KACT;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAgB,EAAE,SAAoB,EAAE,OAAmB;IACxF,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;QAAE,OAAO;IAC5C,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3D,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO;IAC/B,MAAM,SAAS,GAAG,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1D,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO;IACpC,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAClE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO;IAChC,OAAO,CAAC,SAAS,GAAG;QAClB,IAAI,EAAE,yBAAyB;QAC/B,aAAa,EAAE,KAAK;QACpB,MAAM,EAAE,SAAS;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,OAAgB,EAChB,gBAAmC,EACnC,OAAmB;IAEnB,IAAI,OAA0C,CAAC;IAC/C,QAAQ,gBAAgB,CAAC,IAAI,EAAE;QAC7B,KAAK,WAAW;YACd,OAAO,GAAG,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;YAChE,MAAM;QACR,KAAK,OAAO;YACV,OAAO,GAAG,8BAA8B,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YACpE,MAAM;KACT;IAED,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE;QAChE,OAAO,KAAK,CAAC;KACd;IACD,OAAO,CAAC,WAAW,GAAG,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7D,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE;QACnC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE;YACnE,OAAO,CAAC,SAAS,GAAG;gBAClB,IAAI,EAAE,oBAAoB;gBAC1B,aAAa,EAAE,OAAO,CAAC,UAAU;gBACjC,MAAM,EAAE,OAAO,CAAC,KAAK;aACtB,CAAC;SACH;aAAM,IACL,OAAO,CAAC,WAAW,CAAC,eAAe,KAAK,SAAS;YACjD,OAAO,CAAC,WAAW,CAAC,WAAW,KAAK,SAAS,EAC7C;YACA,MAAM,KAAK,GAA2B;gBACpC,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,eAAe;gBAC3C,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,WAAW;gBAC9C,cAAc,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ;aAC/C,CAAC;YACF,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;SAC3B;KACF;IACD,OAAO,CAAC,iBAAiB,GAAG;QAC1B,IAAI,EAAE,mBAAmB;QACzB,aAAa,EAAE,OAAO,CAAC,KAAK;QAC5B,MAAM,EAAE,OAAO,CAAC,aAAa;KAC9B,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,6BAA6B,CACpC,OAAgB,EAChB,mBAA8B,EAC9B,OAAmB;IAEnB,MAAM,UAAU,GAAmD,iBAAiB,CAClF,OAAO,EACP,mBAAmB,CACpB,CAAC;IACF,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE/C,MAAM,WAAW,GAAsC,UAAU,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC3F,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACxE,IAAI,gBAAgB,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACrD,MAAM,SAAS,GAAsC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACvF,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE;QAC9D,MAAM,cAAc,GAAG,wBAAwB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACpE,MAAM,UAAU,GAAG,kBAAkB,CACnC,OAAO,EACP,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,eAAe,CAAC,CACpD,CAAC;QACF,IAAI,cAAc,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5D,OAAO,CAAC,SAAS,GAAG;gBAClB,IAAI,EAAE,yBAAyB;gBAC/B,aAAa,EAAE,UAAU;gBACzB,MAAM,EAAE,cAAc;aACvB,CAAC;SACH;KACF;IACD,MAAM,aAAa,GAAG,kBAAkB,CACtC,OAAO,EACP,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,eAAe,CAAC,CACtD,CAAC;IACF,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAClD,OAAO;QACL,IAAI,EAAE,wBAAwB;QAC9B,aAAa,EAAE,aAAa;QAC5B,MAAM,EAAE,gBAAgB;KACzB,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAgB,EAAE,QAAuB;IACzE,MAAM,cAAc,GAAuB,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvF,IAAI,cAAc,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACnD,OAAO,uBAAuB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgB,EAAE,IAAU;IACvD,QAAQ,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC;KACf;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,48 @@
1
+ import "./index.js";
2
+ import { Model, ModelProperty, Operation, Program } from "@typespec/compiler";
3
+ import { HttpOperation } from "@typespec/http";
4
+ /**
5
+ * Filter the model properties of a model, using the given predicate
6
+ * @param model The model to filter
7
+ * @parm predicate The predicate function used to filter model properties
8
+ * @returns a list of filtered properties, it will have length 0 if no properties
9
+ * match the filter.
10
+ */
11
+ export declare function filterModelProperties(model: Model, predicate: (prop: ModelProperty) => boolean): ModelProperty[];
12
+ /**
13
+ * Filter operation responses using a predicate
14
+ * @param operation The operation containign the response models to filter
15
+ * @param predicate A predicate function to apply to each response model
16
+ * @returns A list of models matching the predicate, or undefined if there are none
17
+ */
18
+ export declare function filterResponseModels(operation: HttpOperation, predicate: (model: Model) => boolean): Model[] | undefined;
19
+ /**
20
+ * Get the Http metadata for this operation
21
+ * @param program The program being processed
22
+ * @param operation The operation to get http metadata for
23
+ * @returns An HttpOperation with http metadata. May emit error diagnostics.
24
+ */
25
+ export declare function getHttpMetadata(program: Program, operation: Operation): HttpOperation;
26
+ /**
27
+ * Get the main success response from an operation
28
+ * @param program Get success responses for an operation
29
+ * @param operation The operation to process
30
+ * @returns A model, if there is a 2xx response, or nothing otherwise
31
+ */
32
+ export declare function getOperationResponse(program: Program, operation: Operation): Model | undefined;
33
+ /**
34
+ * Return the first response model that has any properties matching the given model property predicate
35
+ * @param program The program being processed
36
+ * @param operation The operation to retrieve matching response from
37
+ * @param predicate The predicate function to apply to each model property of the responses
38
+ * @returns The model and matching model property, or nothing if no matching models are found
39
+ */
40
+ export declare function getResultModelWithProperty(program: Program, operation: Operation, predicate: (prop: ModelProperty) => boolean): [Model, ModelProperty] | undefined;
41
+ /**
42
+ * Get the first success response of an operation
43
+ * @param program The program being processed
44
+ * @param operation The operation to process
45
+ * @returns The first success response, or nothing, if no matching models are found
46
+ */
47
+ export declare function getSuccessResponse(program: Program, operation: HttpOperation): Model | undefined;
48
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,CAAC;AAGpB,OAAO,EAAgB,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAoB,aAAa,EAAgB,MAAM,gBAAgB,CAAC;AAE/E;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,GAC1C,aAAa,EAAE,CAEjB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,GACnC,KAAK,EAAE,GAAG,SAAS,CAmBrB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,aAAa,CAOrF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,KAAK,GAAG,SAAS,CAO9F;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,GAC1C,CAAC,KAAK,EAAE,aAAa,CAAC,GAAG,SAAS,CAWpC;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,GAAG,KAAK,GAAG,SAAS,CAehG"}
@@ -0,0 +1,131 @@
1
+ import "./index.js";
2
+ import { reportDiagnostic } from "./lib.js";
3
+ import { isErrorModel } from "@typespec/compiler";
4
+ import { getHttpOperation, isStatusCode } from "@typespec/http";
5
+ /**
6
+ * Filter the model properties of a model, using the given predicate
7
+ * @param model The model to filter
8
+ * @parm predicate The predicate function used to filter model properties
9
+ * @returns a list of filtered properties, it will have length 0 if no properties
10
+ * match the filter.
11
+ */
12
+ export function filterModelProperties(model, predicate) {
13
+ return [...getAllProperties(model).values()].filter(predicate);
14
+ }
15
+ /**
16
+ * Filter operation responses using a predicate
17
+ * @param operation The operation containign the response models to filter
18
+ * @param predicate A predicate function to apply to each response model
19
+ * @returns A list of models matching the predicate, or undefined if there are none
20
+ */
21
+ export function filterResponseModels(operation, predicate) {
22
+ const models = [];
23
+ for (const response of operation.responses) {
24
+ switch (response.type.kind) {
25
+ case "Model":
26
+ if (predicate(response.type))
27
+ models.push(response.type);
28
+ break;
29
+ case "Union":
30
+ for (const variant of response.type.variants.values()) {
31
+ if (variant.type.kind === "Model" && predicate(variant.type))
32
+ models.push(variant.type);
33
+ }
34
+ break;
35
+ case "Tuple":
36
+ for (const type of response.type.values) {
37
+ if (type.kind === "Model" && predicate(type))
38
+ models.push(type);
39
+ }
40
+ }
41
+ }
42
+ return models.length > 0 ? models : undefined;
43
+ }
44
+ /**
45
+ * Get the Http metadata for this operation
46
+ * @param program The program being processed
47
+ * @param operation The operation to get http metadata for
48
+ * @returns An HttpOperation with http metadata. May emit error diagnostics.
49
+ */
50
+ export function getHttpMetadata(program, operation) {
51
+ const [httpOperation, diagnostics] = getHttpOperation(program, operation);
52
+ if (diagnostics && diagnostics.length > 0) {
53
+ program.reportDiagnostics(diagnostics);
54
+ }
55
+ return httpOperation;
56
+ }
57
+ /**
58
+ * Get the main success response from an operation
59
+ * @param program Get success responses for an operation
60
+ * @param operation The operation to process
61
+ * @returns A model, if there is a 2xx response, or nothing otherwise
62
+ */
63
+ export function getOperationResponse(program, operation) {
64
+ const response = getSuccessResponse(program, getHttpMetadata(program, operation));
65
+ if (response === undefined) {
66
+ reportDiagnostic(program, { code: "expected-success-response", target: operation });
67
+ }
68
+ return response;
69
+ }
70
+ /**
71
+ * Return the first response model that has any properties matching the given model property predicate
72
+ * @param program The program being processed
73
+ * @param operation The operation to retrieve matching response from
74
+ * @param predicate The predicate function to apply to each model property of the responses
75
+ * @returns The model and matching model property, or nothing if no matching models are found
76
+ */
77
+ export function getResultModelWithProperty(program, operation, predicate) {
78
+ const httpOperation = getHttpMetadata(program, operation);
79
+ const models = filterResponseModels(httpOperation, (model) => filterModelProperties(model, predicate).length > 0);
80
+ if (models === undefined || models.length < 1)
81
+ return undefined;
82
+ const properties = [...models[0].properties.values()].filter(predicate);
83
+ if (properties.length < 1)
84
+ return undefined;
85
+ return [models[0], properties[0]];
86
+ }
87
+ /**
88
+ * Get the first success response of an operation
89
+ * @param program The program being processed
90
+ * @param operation The operation to process
91
+ * @returns The first success response, or nothing, if no matching models are found
92
+ */
93
+ export function getSuccessResponse(program, operation) {
94
+ var _a;
95
+ const candidates = (_a = filterResponseModels(operation, (response) => !isErrorModel(program, response))) === null || _a === void 0 ? void 0 : _a.filter((m) => {
96
+ var _a, _b, _c;
97
+ const prop = getStatusCodeProperty(program, m);
98
+ return (prop === undefined ||
99
+ (((_a = prop.type) === null || _a === void 0 ? void 0 : _a.kind) === "String" && ((_b = prop.type.value) === null || _b === void 0 ? void 0 : _b.startsWith("2"))) ||
100
+ (((_c = prop.type) === null || _c === void 0 ? void 0 : _c.kind) === "Number" && prop.type.value >= 200 && prop.type.value < 300));
101
+ });
102
+ if (candidates === undefined || candidates.length < 1)
103
+ return undefined;
104
+ return candidates[0];
105
+ }
106
+ /**
107
+ *
108
+ * @param program The probgram being processed
109
+ * @param model The model to check for status code properties
110
+ * @returns The property that represents an http status code, or nothing if there is none.
111
+ */
112
+ function getStatusCodeProperty(program, model) {
113
+ const properties = filterModelProperties(model, (prop) => isStatusCode(program, prop));
114
+ return properties.length > 0 ? properties[0] : undefined;
115
+ }
116
+ /**
117
+ *
118
+ * @param model The model to process
119
+ * @param collection The set of ModelProperties found so far
120
+ * @returns The full set of model properties found in a model and all ancestors
121
+ */
122
+ function getAllProperties(model, collection) {
123
+ const outCollection = collection !== null && collection !== void 0 ? collection : new Map();
124
+ for (const [name, value] of model.properties.entries()) {
125
+ outCollection.set(name, value);
126
+ }
127
+ if (model.baseModel)
128
+ return getAllProperties(model.baseModel, outCollection);
129
+ return outCollection;
130
+ }
131
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -59,11 +59,11 @@ model LocationOfCreatedResourceResponse<T extends object> is TypeSpec.Http.Creat
59
59
  }
60
60
 
61
61
  @doc("Metadata for long running operation status monitor locations")
62
- model LongRunningStatusLocation {
62
+ model LongRunningStatusLocation<TStatusResult = never> {
63
63
  @pollingLocation
64
64
  @doc("The location for monitoring the operation state.")
65
65
  @TypeSpec.Http.header("Operation-Location")
66
- operationLocation: ResourceLocation<OperationStatus>;
66
+ operationLocation: ResourceLocation<OperationStatus<TStatusResult>>;
67
67
  }
68
68
 
69
69
  alias AcceptedResponse<T = {}> = TypeSpec.Http.AcceptedResponse & T;
@@ -286,7 +286,7 @@ op LongRunningResourceUpdate<
286
286
  },
287
287
  Foundations.ResourceOkResponse<TResource &
288
288
  TraitProperties<Traits, TraitLocation.Response, TraitContext.Update> &
289
- Foundations.LongRunningStatusLocation>,
289
+ Foundations.LongRunningStatusLocation<TResource>>,
290
290
  Traits,
291
291
  TErrorResponse
292
292
  >;
package/lib/models.tsp CHANGED
@@ -39,8 +39,7 @@ alias ResourceOperationStatusResponse<
39
39
  TResource,
40
40
  TStatusResult,
41
41
  TStatusError
42
- > = ResourceOperationStatus<TResource, TStatusResult, TStatusError> &
43
- Foundations.ItemKeysOf<TResource>;
42
+ > = ResourceOperationStatus<TResource, TStatusResult, TStatusError>;
44
43
 
45
44
  @doc("Provides the standard 'top' query parameter for list operations.")
46
45
  model TopQueryParameter {
@@ -84,7 +84,7 @@ interface ResourceOperations<
84
84
  TraitLocation.Response,
85
85
  TraitContext.Create | TraitContext.Update
86
86
  > &
87
- Foundations.LongRunningStatusLocation>,
87
+ Foundations.LongRunningStatusLocation<TResource>>,
88
88
  Traits & InterfaceTraits,
89
89
  TErrorResponse
90
90
  >;
@@ -139,7 +139,7 @@ interface ResourceOperations<
139
139
  TraitLocation.Response,
140
140
  TraitContext.Create | TraitContext.Update
141
141
  > &
142
- Foundations.LongRunningStatusLocation>,
142
+ Foundations.LongRunningStatusLocation<TResource>>,
143
143
  Traits & InterfaceTraits,
144
144
  TErrorResponse
145
145
  >;
@@ -293,7 +293,7 @@ interface ResourceOperations<
293
293
  TraitProperties<Traits & InterfaceTraits, TraitLocation.Parameters, TraitContext.Action>,
294
294
  AcceptedResponse &
295
295
  ResourceOperationStatus<TResource, TStatusResult, TStatusError> &
296
- Foundations.LongRunningStatusLocation &
296
+ Foundations.LongRunningStatusLocation<TStatusResult> &
297
297
  TraitProperties<Traits & InterfaceTraits, TraitLocation.Response, TraitContext.Action>,
298
298
  Traits & InterfaceTraits,
299
299
  TErrorResponse
@@ -316,7 +316,7 @@ interface ResourceOperations<
316
316
  TraitProperties<Traits & InterfaceTraits, TraitLocation.Parameters, TraitContext.Action>,
317
317
  AcceptedResponse &
318
318
  ResourceOperationStatus<TResource, TStatusResult, TStatusError> &
319
- Foundations.LongRunningStatusLocation &
319
+ Foundations.LongRunningStatusLocation<TStatusResult> &
320
320
  TraitProperties<Traits & InterfaceTraits, TraitLocation.Response, TraitContext.Action>,
321
321
  Traits & InterfaceTraits,
322
322
  TErrorResponse
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure-tools/typespec-azure-core",
3
- "version": "0.28.0-dev.1",
3
+ "version": "0.28.0-dev.3",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "TypeSpec Azure Core library",
6
6
  "homepage": "https://azure.github.io/typespec-azure",