@typespec/openapi 0.66.0-dev.0 → 0.66.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.
- package/README.md +6 -11
- package/dist/generated-defs/TypeSpec.OpenAPI.d.ts +3 -3
- package/dist/generated-defs/TypeSpec.OpenAPI.d.ts.map +1 -1
- package/dist/src/decorators.d.ts +1 -1
- package/dist/src/decorators.d.ts.map +1 -1
- package/dist/src/decorators.js +9 -12
- package/dist/src/decorators.js.map +1 -1
- package/dist/src/helpers.d.ts +5 -5
- package/dist/src/helpers.js +5 -5
- package/lib/decorators.tsp +3 -3
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -50,7 +50,7 @@ op listPets(): Pet[] | PetStoreResponse;
|
|
|
50
50
|
Attach some custom data to the OpenAPI element generated from this type.
|
|
51
51
|
|
|
52
52
|
```typespec
|
|
53
|
-
@TypeSpec.OpenAPI.extension(key: valueof string, value: unknown)
|
|
53
|
+
@TypeSpec.OpenAPI.extension(key: valueof string, value: valueof unknown)
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
##### Target
|
|
@@ -59,21 +59,16 @@ Attach some custom data to the OpenAPI element generated from this type.
|
|
|
59
59
|
|
|
60
60
|
##### Parameters
|
|
61
61
|
|
|
62
|
-
| Name | Type
|
|
63
|
-
| ----- |
|
|
64
|
-
| key | `valueof string`
|
|
65
|
-
| value | `unknown`
|
|
62
|
+
| Name | Type | Description |
|
|
63
|
+
| ----- | ----------------- | ---------------- |
|
|
64
|
+
| key | `valueof string` | Extension key. |
|
|
65
|
+
| value | `valueof unknown` | Extension value. |
|
|
66
66
|
|
|
67
67
|
##### Examples
|
|
68
68
|
|
|
69
69
|
```typespec
|
|
70
70
|
@extension("x-custom", "My value")
|
|
71
|
-
@extension(
|
|
72
|
-
"x-pageable",
|
|
73
|
-
{
|
|
74
|
-
nextLink: "x-next-link",
|
|
75
|
-
}
|
|
76
|
-
)
|
|
71
|
+
@extension("x-pageable", #{ nextLink: "x-next-link" })
|
|
77
72
|
op read(): string;
|
|
78
73
|
```
|
|
79
74
|
|
|
@@ -23,16 +23,16 @@ export type OperationIdDecorator = (context: DecoratorContext, target: Operation
|
|
|
23
23
|
/**
|
|
24
24
|
* Attach some custom data to the OpenAPI element generated from this type.
|
|
25
25
|
*
|
|
26
|
-
* @param key Extension key.
|
|
26
|
+
* @param key Extension key.
|
|
27
27
|
* @param value Extension value.
|
|
28
28
|
* @example
|
|
29
29
|
* ```typespec
|
|
30
30
|
* @extension("x-custom", "My value")
|
|
31
|
-
* @extension("x-pageable", {nextLink: "x-next-link"})
|
|
31
|
+
* @extension("x-pageable", #{nextLink: "x-next-link"})
|
|
32
32
|
* op read(): string;
|
|
33
33
|
* ```
|
|
34
34
|
*/
|
|
35
|
-
export type ExtensionDecorator = (context: DecoratorContext, target: Type, key: string, value:
|
|
35
|
+
export type ExtensionDecorator = (context: DecoratorContext, target: Type, key: string, value: unknown) => void;
|
|
36
36
|
/**
|
|
37
37
|
* Specify that this model is to be treated as the OpenAPI `default` response.
|
|
38
38
|
* This differs from the compiler built-in `@error` decorator as this does not necessarily represent an error.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeSpec.OpenAPI.d.ts","sourceRoot":"","sources":["../../generated-defs/TypeSpec.OpenAPI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE9F,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;CACtC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,MAAM,KAChB,IAAI,CAAC;AAEV;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,IAAI,EACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"TypeSpec.OpenAPI.d.ts","sourceRoot":"","sources":["../../generated-defs/TypeSpec.OpenAPI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE9F,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;CACtC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,MAAM,KAChB,IAAI,CAAC;AAEV;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,IAAI,EACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,KACX,IAAI,CAAC;AAEV;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,KAAK,IAAI,CAAC;AAE1F;;;;;;;;;;GAUG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAClC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,IAAI,EACZ,GAAG,EAAE,MAAM,EACX,WAAW,CAAC,EAAE,MAAM,KACjB,IAAI,CAAC;AAEV;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,SAAS,EACjB,cAAc,EAAE,IAAI,KACjB,IAAI,CAAC;AAEV;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,WAAW,KACrB,IAAI,CAAC;AAEV,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,oBAAoB,CAAC;IAClC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,eAAe,EAAE,wBAAwB,CAAC;IAC1C,YAAY,EAAE,qBAAqB,CAAC;IACpC,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,oBAAoB,CAAC;CACnC,CAAC"}
|
package/dist/src/decorators.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ export declare function setInfo(program: Program, entity: Namespace, data: Addit
|
|
|
28
28
|
* @param extensionName Extension key
|
|
29
29
|
* @param data Extension value
|
|
30
30
|
*/
|
|
31
|
-
export declare function setExtension(program: Program, entity: Type, extensionName:
|
|
31
|
+
export declare function setExtension(program: Program, entity: Type, extensionName: string, data: unknown): void;
|
|
32
32
|
/**
|
|
33
33
|
* Get extensions set for the given type.
|
|
34
34
|
* @param program Program
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,SAAS,EACT,SAAS,EACT,OAAO,EACP,IAAI,EAGL,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,oBAAoB,EACrB,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGxE;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,oBAM1B,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAEtF;AAID,uCAAuC;AACvC,eAAO,MAAM,UAAU,EAAE,kBAgBxB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,cAAc,GAAG,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,QAGrD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,QAKhG;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE,GAAG,CAAC,CAE5F;AAQD,6CAA6C;AAC7C,eAAO,MAAM,gBAAgB,EAAE,wBAO9B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,OAAO,CAEzE;AAID;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,qBAW3B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,YAAY,GAAG,SAAS,CAExF;AAID,kCAAkC;AAClC,eAAO,MAAM,KAAK,EAAE,aAwCnB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,cAAc,GAAG,SAAS,CAEvF;AAED,gGAAgG;AAChG,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,cAAc,GAAG,SAAS,CAW3F;AAMD,yDAAyD;AACzD,QAAA,MAAO,eAAe;;aAErB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,oBA4DlC,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
package/dist/src/decorators.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { $service, getDoc, getService, getSummary, typespecTypeToJson, } from "@typespec/compiler";
|
|
1
|
+
import { $service, getDoc, getService, getSummary, isType, typespecTypeToJson, } from "@typespec/compiler";
|
|
2
2
|
import { useStateMap } from "@typespec/compiler/utils";
|
|
3
3
|
import { setStatusCode } from "@typespec/http";
|
|
4
|
-
import {
|
|
4
|
+
import { validateAdditionalInfoModel, validateIsUri } from "./helpers.js";
|
|
5
5
|
import { createStateSymbol, OpenAPIKeys, reportDiagnostic } from "./lib.js";
|
|
6
6
|
const operationIdsKey = createStateSymbol("operationIds");
|
|
7
7
|
/**
|
|
@@ -22,16 +22,13 @@ export function getOperationId(program, entity) {
|
|
|
22
22
|
const openApiExtensionKey = createStateSymbol("openApiExtension");
|
|
23
23
|
/** {@inheritdoc ExtensionDecorator} */
|
|
24
24
|
export const $extension = (context, entity, extensionName, value) => {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const [data, diagnostics] = typespecTypeToJson(value, entity);
|
|
33
|
-
if (diagnostics.length > 0) {
|
|
34
|
-
context.program.reportDiagnostics(diagnostics);
|
|
25
|
+
let data = value;
|
|
26
|
+
if (value && isType(value)) {
|
|
27
|
+
const [result, diagnostics] = typespecTypeToJson(value, entity);
|
|
28
|
+
if (diagnostics.length > 0) {
|
|
29
|
+
context.program.reportDiagnostics(diagnostics);
|
|
30
|
+
}
|
|
31
|
+
data = result;
|
|
35
32
|
}
|
|
36
33
|
setExtension(context.program, entity, extensionName, data);
|
|
37
34
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAER,MAAM,EACN,UAAU,EACV,UAAU,
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
|
package/dist/src/helpers.d.ts
CHANGED
|
@@ -47,12 +47,12 @@ export declare function getParameterKey(program: Program, property: ModelPropert
|
|
|
47
47
|
*/
|
|
48
48
|
export declare function resolveOperationId(program: Program, operation: Operation): string;
|
|
49
49
|
/**
|
|
50
|
-
* Determines if a property is read-only, which is defined as
|
|
51
|
-
*
|
|
50
|
+
* Determines if a property is read-only, which is defined as having the
|
|
51
|
+
* only the `Lifecycle.Read` modifier.
|
|
52
52
|
*
|
|
53
|
-
* If there is more than
|
|
54
|
-
* read-only. For example, `@visibility(
|
|
55
|
-
* designate a read-only property.
|
|
53
|
+
* If there is more than one Lifecycle visibility modifier active on the property,
|
|
54
|
+
* then the property is not read-only. For example, `@visibility(Lifecycle.Read, Lifecycle.Update)`
|
|
55
|
+
* does not designate a read-only property.
|
|
56
56
|
*/
|
|
57
57
|
export declare function isReadonlyProperty(program: Program, property: ModelProperty): boolean;
|
|
58
58
|
/**
|
package/dist/src/helpers.js
CHANGED
|
@@ -109,12 +109,12 @@ export function resolveOperationId(program, operation) {
|
|
|
109
109
|
return `${namespace.name}_${operation.name}`;
|
|
110
110
|
}
|
|
111
111
|
/**
|
|
112
|
-
* Determines if a property is read-only, which is defined as
|
|
113
|
-
*
|
|
112
|
+
* Determines if a property is read-only, which is defined as having the
|
|
113
|
+
* only the `Lifecycle.Read` modifier.
|
|
114
114
|
*
|
|
115
|
-
* If there is more than
|
|
116
|
-
* read-only. For example, `@visibility(
|
|
117
|
-
* designate a read-only property.
|
|
115
|
+
* If there is more than one Lifecycle visibility modifier active on the property,
|
|
116
|
+
* then the property is not read-only. For example, `@visibility(Lifecycle.Read, Lifecycle.Update)`
|
|
117
|
+
* does not designate a read-only property.
|
|
118
118
|
*/
|
|
119
119
|
export function isReadonlyProperty(program, property) {
|
|
120
120
|
const Lifecycle = getLifecycleVisibilityEnum(program);
|
package/lib/decorators.tsp
CHANGED
|
@@ -19,18 +19,18 @@ extern dec operationId(target: Operation, operationId: valueof string);
|
|
|
19
19
|
/**
|
|
20
20
|
* Attach some custom data to the OpenAPI element generated from this type.
|
|
21
21
|
*
|
|
22
|
-
* @param key Extension key.
|
|
22
|
+
* @param key Extension key.
|
|
23
23
|
* @param value Extension value.
|
|
24
24
|
*
|
|
25
25
|
* @example
|
|
26
26
|
*
|
|
27
27
|
* ```typespec
|
|
28
28
|
* @extension("x-custom", "My value")
|
|
29
|
-
* @extension("x-pageable", {nextLink: "x-next-link"})
|
|
29
|
+
* @extension("x-pageable", #{nextLink: "x-next-link"})
|
|
30
30
|
* op read(): string;
|
|
31
31
|
* ```
|
|
32
32
|
*/
|
|
33
|
-
extern dec extension(target: unknown, key: valueof string, value: unknown);
|
|
33
|
+
extern dec extension(target: unknown, key: valueof string, value: valueof unknown);
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
36
|
* Specify that this model is to be treated as the OpenAPI `default` response.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typespec/openapi",
|
|
3
|
-
"version": "0.66.0-dev.
|
|
3
|
+
"version": "0.66.0-dev.2",
|
|
4
4
|
"author": "Microsoft Corporation",
|
|
5
5
|
"description": "TypeSpec library providing OpenAPI concepts",
|
|
6
6
|
"homepage": "https://typespec.io",
|
|
@@ -39,12 +39,12 @@
|
|
|
39
39
|
"!dist/test/**"
|
|
40
40
|
],
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"@typespec/compiler": "~0.65.
|
|
42
|
+
"@typespec/compiler": "~0.65.3 || >=0.66.0-dev <0.66.0",
|
|
43
43
|
"@typespec/http": "~0.65.0 || >=0.66.0-dev <0.66.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@types/node": "~22.10.10",
|
|
47
|
-
"@typespec/compiler": "~0.65.
|
|
47
|
+
"@typespec/compiler": "~0.65.3 || >=0.66.0-dev <0.66.0",
|
|
48
48
|
"@typespec/http": "~0.65.0 || >=0.66.0-dev <0.66.0",
|
|
49
49
|
"@typespec/library-linter": "~0.65.0 || >=0.66.0-dev <0.66.0",
|
|
50
50
|
"@typespec/rest": "~0.65.0 || >=0.66.0-dev <0.66.0",
|