@typespec/compiler 0.65.0-dev.0 → 0.65.0-dev.2

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,21 +1,75 @@
1
1
  import type { DefaultVisibilityDecorator, InvisibleDecorator, ParameterVisibilityDecorator, RemoveVisibilityDecorator, ReturnTypeVisibilityDecorator, VisibilityDecorator, WithDefaultKeyVisibilityDecorator, WithLifecycleUpdateDecorator, WithUpdateablePropertiesDecorator, WithVisibilityDecorator, WithVisibilityFilterDecorator } from "../../generated-defs/TypeSpec.js";
2
2
  import type { Program } from "../core/program.js";
3
3
  import { Operation } from "../core/types.js";
4
+ import { VisibilityFilter } from "../core/visibility/core.js";
4
5
  export declare const $withDefaultKeyVisibility: WithDefaultKeyVisibilityDecorator;
5
6
  export declare const $parameterVisibility: ParameterVisibilityDecorator;
6
7
  /**
7
8
  * Returns the visibilities of the parameters of the given operation, if provided with `@parameterVisibility`.
8
9
  *
10
+ * @deprecated Use `getParameterVisibilityFilter` instead.
11
+ *
12
+ * @see {@link getParameterVisibilityFilter}
9
13
  * @see {@link $parameterVisibility}
10
14
  */
11
15
  export declare function getParameterVisibility(program: Program, entity: Operation): string[] | undefined;
16
+ /**
17
+ * A context-specific provider for visibility information that applies when parameter or return type visibility
18
+ * constraints are not explicitly specified. Visibility providers are provided by libraries that define implied
19
+ * visibility semantics, such as `@typespec/http`.
20
+ *
21
+ * If you are not working in a protocol that has specific visibility semantics, you can use the
22
+ * {@link EmptyVisibilityProvider} from this package as a default provider. It will consider all properties visible by
23
+ * default unless otherwise explicitly specified.
24
+ */
25
+ export interface VisibilityProvider {
26
+ parameters(program: Program, operation: Operation): VisibilityFilter;
27
+ returnType(program: Program, operation: Operation): VisibilityFilter;
28
+ }
29
+ /**
30
+ * An empty visibility provider. This provider returns an empty filter that considers all properties visible. This filter
31
+ * is used when no context-specific visibility provider is available.
32
+ *
33
+ * When working with an HTTP specification, use the `HttpVisibilityProvider` from the `@typespec/http` library instead.
34
+ */
35
+ export declare const EmptyVisibilityProvider: VisibilityProvider;
36
+ /**
37
+ * Get the visibility filter that should apply to the parameters of the given operation, or `undefined` if no parameter
38
+ * visibility is set.
39
+ *
40
+ * If you are not working in a protocol that has specific implicit visibility semantics, you can use the
41
+ * {@link EmptyVisibilityProvider} as a default provider. If you working in a protocol or context where parameters have
42
+ * implicit visibility transformations (like HTTP), you should use the visibility provider from that library (for HTTP,
43
+ * use the `HttpVisibilityProvider` from the `@typespec/http` library).
44
+ *
45
+ * @param program - the Program in which the operation is defined
46
+ * @param operation - the Operation to get the parameter visibility filter for
47
+ * @param defaultProvider - a provider for visibility filters that apply when no visibility constraints are explicitly
48
+ * set. Defaults to an empty provider that returns an empty filter if not provided.
49
+ * @returns a visibility filter for the parameters of the operation, or `undefined` if no parameter visibility is set
50
+ */
51
+ export declare function getParameterVisibilityFilter(program: Program, operation: Operation, defaultProvider: VisibilityProvider): VisibilityFilter;
12
52
  export declare const $returnTypeVisibility: ReturnTypeVisibilityDecorator;
13
53
  /**
14
54
  * Returns the visibilities of the return type of the given operation, if provided with `@returnTypeVisibility`.
15
55
  *
56
+ * @deprecated Use `getReturnTypeVisibilityFilter` instead.
57
+ *
58
+ * @see {@link getReturnTypeVisibilityFilter}
16
59
  * @see {@link $returnTypeVisibility}
17
60
  */
18
61
  export declare function getReturnTypeVisibility(program: Program, entity: Operation): string[] | undefined;
62
+ /**
63
+ * Get the visibility filter that should apply to the return type of the given operation, or `undefined` if no return
64
+ * type visibility is set.
65
+ *
66
+ * @param program - the Program in which the operation is defined
67
+ * @param operation - the Operation to get the return type visibility filter for
68
+ * @param defaultProvider - a provider for visibility filters that apply when no visibility constraints are explicitly
69
+ * set. Defaults to an empty provider that returns an empty filter if not provided.
70
+ * @returns a visibility filter for the return type of the operation, or `undefined` if no return type visibility is set
71
+ */
72
+ export declare function getReturnTypeVisibilityFilter(program: Program, operation: Operation, defaultProvider: VisibilityProvider): VisibilityFilter;
19
73
  export declare const $visibility: VisibilityDecorator;
20
74
  export declare const $removeVisibility: RemoveVisibilityDecorator;
21
75
  export declare const $invisible: InvisibleDecorator;
@@ -1 +1 @@
1
- {"version":3,"file":"visibility.d.ts","sourceRoot":"","sources":["../../../src/lib/visibility.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,0BAA0B,EAC1B,kBAAkB,EAClB,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,EAC7B,mBAAmB,EACnB,iCAAiC,EACjC,4BAA4B,EAC5B,iCAAiC,EACjC,uBAAuB,EACvB,6BAA6B,EAC9B,MAAM,kCAAkC,CAAC;AAG1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EASL,SAAS,EAGV,MAAM,kBAAkB,CAAC;AAiD1B,eAAO,MAAM,yBAAyB,EAAE,iCAsCvC,CAAC;AAoCF,eAAO,MAAM,oBAAoB,EAAE,4BAuBlC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS,CAMhG;AAED,eAAO,MAAM,qBAAqB,EAAE,6BAuBnC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS,CAMjG;AAQD,eAAO,MAAM,WAAW,EAAE,mBA+BzB,CAAC;AAIF,eAAO,MAAM,iBAAiB,EAAE,yBAU/B,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,kBAMxB,CAAC;AAIF,eAAO,MAAM,kBAAkB,EAAE,0BAqBhC,CAAC;AAQF,eAAO,MAAM,eAAe,EAAE,uBA+C7B,CAAC;AAIF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,iCAUvC,CAAC;AAQF,eAAO,MAAM,qBAAqB,EAAE,6BAcnC,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,4BAuBlC,CAAC"}
1
+ {"version":3,"file":"visibility.d.ts","sourceRoot":"","sources":["../../../src/lib/visibility.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,0BAA0B,EAC1B,kBAAkB,EAClB,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,EAC7B,mBAAmB,EACnB,iCAAiC,EACjC,4BAA4B,EAC5B,iCAAiC,EACjC,uBAAuB,EACvB,6BAA6B,EAC9B,MAAM,kCAAkC,CAAC;AAG1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EASL,SAAS,EAGV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAYL,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AAoCpC,eAAO,MAAM,yBAAyB,EAAE,iCAsCvC,CAAC;AAwCF,eAAO,MAAM,oBAAoB,EAAE,4BA2BlC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS,CAMhG;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC;IACrE,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC;CACtE;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,kBAGrC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,kBAAkB,GAClC,gBAAgB,CAsBlB;AAED,eAAO,MAAM,qBAAqB,EAAE,6BAuBnC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS,CAMjG;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,kBAAkB,GAClC,gBAAgB,CAsBlB;AAQD,eAAO,MAAM,WAAW,EAAE,mBA+BzB,CAAC;AAIF,eAAO,MAAM,iBAAiB,EAAE,yBAU/B,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,kBAMxB,CAAC;AAIF,eAAO,MAAM,kBAAkB,EAAE,0BAqBhC,CAAC;AAQF,eAAO,MAAM,eAAe,EAAE,uBA+C7B,CAAC;AAIF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,iCAUvC,CAAC;AAQF,eAAO,MAAM,qBAAqB,EAAE,6BAcnC,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,4BAuBlC,CAAC"}
@@ -3,7 +3,7 @@
3
3
  import { validateDecoratorTarget, validateDecoratorUniqueOnNode } from "../core/decorator-utils.js";
4
4
  import { reportDiagnostic } from "../core/messages.js";
5
5
  import { addVisibilityModifiers, clearLegacyVisibility, clearVisibilityModifiersForClass, getLegacyVisibility, getVisibility, isVisible, removeVisibilityModifiers, resetVisibilityModifiersForClass, setDefaultModifierSetForVisibilityClass, setLegacyVisibility, VisibilityFilter, } from "../core/visibility/core.js";
6
- import { getLifecycleVisibilityEnum, normalizeVisibilityToLegacyLifecycleString, } from "../core/visibility/lifecycle.js";
6
+ import { getLifecycleVisibilityEnum, normalizeLegacyLifecycleVisibilityString, normalizeVisibilityToLegacyLifecycleString, } from "../core/visibility/lifecycle.js";
7
7
  import { isMutableType, mutateSubgraph, MutatorFlow } from "../experimental/mutators.js";
8
8
  import { isKey } from "./key.js";
9
9
  import { filterModelPropertiesInPlace, useStateMap } from "./utils.js";
@@ -69,8 +69,14 @@ function getOperationVisibilityConfig(program, operation) {
69
69
  }
70
70
  return config;
71
71
  }
72
+ // Hidden internal symbol to mark that parameter visibility was empty. This is used by HTTP
73
+ // to set the LegacyParameterVisibility flag. This is a hack.
74
+ const parameterVisibilityIsEmpty = Symbol.for("TypeSpec.Visibility.ParameterVisibilityIsEmpty");
72
75
  export const $parameterVisibility = (context, operation, ...visibilities) => {
73
76
  validateDecoratorUniqueOnNode(context, operation, $parameterVisibility);
77
+ if (visibilities.length === 0) {
78
+ context.program.stateSet(parameterVisibilityIsEmpty).add(operation);
79
+ }
74
80
  const [modifiers, legacyVisibilities] = splitLegacyVisibility(visibilities);
75
81
  if (modifiers.length > 0 && legacyVisibilities.length > 0) {
76
82
  reportDiagnostic(context.program, {
@@ -89,6 +95,9 @@ export const $parameterVisibility = (context, operation, ...visibilities) => {
89
95
  /**
90
96
  * Returns the visibilities of the parameters of the given operation, if provided with `@parameterVisibility`.
91
97
  *
98
+ * @deprecated Use `getParameterVisibilityFilter` instead.
99
+ *
100
+ * @see {@link getParameterVisibilityFilter}
92
101
  * @see {@link $parameterVisibility}
93
102
  */
94
103
  export function getParameterVisibility(program, entity) {
@@ -96,6 +105,49 @@ export function getParameterVisibility(program, entity) {
96
105
  .parameters?.map((p) => typeof p === "string" ? p : normalizeVisibilityToLegacyLifecycleString(program, p))
97
106
  .filter((p) => !!p);
98
107
  }
108
+ /**
109
+ * An empty visibility provider. This provider returns an empty filter that considers all properties visible. This filter
110
+ * is used when no context-specific visibility provider is available.
111
+ *
112
+ * When working with an HTTP specification, use the `HttpVisibilityProvider` from the `@typespec/http` library instead.
113
+ */
114
+ export const EmptyVisibilityProvider = {
115
+ parameters: () => ({}),
116
+ returnType: () => ({}),
117
+ };
118
+ /**
119
+ * Get the visibility filter that should apply to the parameters of the given operation, or `undefined` if no parameter
120
+ * visibility is set.
121
+ *
122
+ * If you are not working in a protocol that has specific implicit visibility semantics, you can use the
123
+ * {@link EmptyVisibilityProvider} as a default provider. If you working in a protocol or context where parameters have
124
+ * implicit visibility transformations (like HTTP), you should use the visibility provider from that library (for HTTP,
125
+ * use the `HttpVisibilityProvider` from the `@typespec/http` library).
126
+ *
127
+ * @param program - the Program in which the operation is defined
128
+ * @param operation - the Operation to get the parameter visibility filter for
129
+ * @param defaultProvider - a provider for visibility filters that apply when no visibility constraints are explicitly
130
+ * set. Defaults to an empty provider that returns an empty filter if not provided.
131
+ * @returns a visibility filter for the parameters of the operation, or `undefined` if no parameter visibility is set
132
+ */
133
+ export function getParameterVisibilityFilter(program, operation, defaultProvider) {
134
+ const operationVisibilityConfig = getOperationVisibilityConfig(program, operation);
135
+ if (!operationVisibilityConfig.parameters)
136
+ return defaultProvider.parameters(program, operation);
137
+ // If there are no parameters, return an empty filter. This has the effect of allowing `@parameterVisibility()` to
138
+ // disable the default visibility provider for an operation.
139
+ if (operationVisibilityConfig.parameters.length === 0)
140
+ return {};
141
+ return {
142
+ // WARNING: the HTTP library depends on `any` being the only key in the filter object returned by this method.
143
+ // if you change this logic, you will need to update the HTTP library to account for differences in the
144
+ // returned object. HTTP does not currently have a way to express `all` or `none` constraints in the same
145
+ // way that the core visibility system does.
146
+ any: new Set(operationVisibilityConfig.parameters
147
+ .map((v) => typeof v === "string" ? normalizeLegacyLifecycleVisibilityString(program, v) : v)
148
+ .filter((v) => !!v)),
149
+ };
150
+ }
99
151
  export const $returnTypeVisibility = (context, operation, ...visibilities) => {
100
152
  validateDecoratorUniqueOnNode(context, operation, $parameterVisibility);
101
153
  const [modifiers, legacyVisibilities] = splitLegacyVisibility(visibilities);
@@ -116,6 +168,9 @@ export const $returnTypeVisibility = (context, operation, ...visibilities) => {
116
168
  /**
117
169
  * Returns the visibilities of the return type of the given operation, if provided with `@returnTypeVisibility`.
118
170
  *
171
+ * @deprecated Use `getReturnTypeVisibilityFilter` instead.
172
+ *
173
+ * @see {@link getReturnTypeVisibilityFilter}
119
174
  * @see {@link $returnTypeVisibility}
120
175
  */
121
176
  export function getReturnTypeVisibility(program, entity) {
@@ -123,6 +178,34 @@ export function getReturnTypeVisibility(program, entity) {
123
178
  .returnType?.map((p) => typeof p === "string" ? p : normalizeVisibilityToLegacyLifecycleString(program, p))
124
179
  .filter((p) => !!p);
125
180
  }
181
+ /**
182
+ * Get the visibility filter that should apply to the return type of the given operation, or `undefined` if no return
183
+ * type visibility is set.
184
+ *
185
+ * @param program - the Program in which the operation is defined
186
+ * @param operation - the Operation to get the return type visibility filter for
187
+ * @param defaultProvider - a provider for visibility filters that apply when no visibility constraints are explicitly
188
+ * set. Defaults to an empty provider that returns an empty filter if not provided.
189
+ * @returns a visibility filter for the return type of the operation, or `undefined` if no return type visibility is set
190
+ */
191
+ export function getReturnTypeVisibilityFilter(program, operation, defaultProvider) {
192
+ const visibilityConfig = getOperationVisibilityConfig(program, operation);
193
+ if (!visibilityConfig.returnType)
194
+ return defaultProvider.returnType(program, operation);
195
+ // If there are no return type visibilities, return an empty filter. This has the effect of allowing
196
+ // `@returnTypeVisibility()` to disable the default visibility provider for an operation.
197
+ if (visibilityConfig.returnType.length === 0)
198
+ return {};
199
+ return {
200
+ // WARNING: the HTTP library depends on `any` being the only key in the filter object returned by this method.
201
+ // if you change this logic, you will need to update the HTTP library to account for differences in the
202
+ // returned object. HTTP does not currently have a way to express `all` or `none` constraints in the same
203
+ // way that the core visibility system does.
204
+ any: new Set(visibilityConfig.returnType
205
+ .map((v) => typeof v === "string" ? normalizeLegacyLifecycleVisibilityString(program, v) : v)
206
+ .filter((v) => !!v)),
207
+ };
208
+ }
126
209
  // #endregion
127
210
  // #region Core Visibility Decorators
128
211
  // -- @visibility decorator ---------------------
@@ -1 +1 @@
1
- {"version":3,"file":"visibility.js","sourceRoot":"","sources":["../../../src/lib/visibility.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"visibility.js","sourceRoot":"","sources":["../../../src/lib/visibility.ts"],"names":[],"mappings":"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"}