@typespec/json-schema 0.59.0 → 0.60.0-dev.1

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 CHANGED
@@ -43,6 +43,16 @@ emit:
43
43
  - "@typespec/json-schema"
44
44
  ```
45
45
 
46
+ The config can be extended with options as follows:
47
+
48
+ ```yaml
49
+ emit:
50
+ - "@typespec/json-schema"
51
+ options:
52
+ "@typespec/json-schema":
53
+ option: value
54
+ ```
55
+
46
56
  ### Emitter options
47
57
 
48
58
  #### `file-type`
@@ -1,3 +1,6 @@
1
1
  import type { DecoratorContext, Model, Type } from "@typespec/compiler";
2
2
  export type ValidatesRawJsonDecorator = (context: DecoratorContext, target: Model, value: Type) => void;
3
+ export type TypeSpecJsonSchemaPrivateDecorators = {
4
+ validatesRawJson: ValidatesRawJsonDecorator;
5
+ };
3
6
  //# sourceMappingURL=TypeSpec.JsonSchema.Private.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TypeSpec.JsonSchema.Private.d.ts","sourceRoot":"","sources":["../../generated-defs/TypeSpec.JsonSchema.Private.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAExE,MAAM,MAAM,yBAAyB,GAAG,CACtC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,KAAK,EACb,KAAK,EAAE,IAAI,KACR,IAAI,CAAC"}
1
+ {"version":3,"file":"TypeSpec.JsonSchema.Private.d.ts","sourceRoot":"","sources":["../../generated-defs/TypeSpec.JsonSchema.Private.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAExE,MAAM,MAAM,yBAAyB,GAAG,CACtC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,KAAK,EACb,KAAK,EAAE,IAAI,KACR,IAAI,CAAC;AAEV,MAAM,MAAM,mCAAmC,GAAG;IAChD,gBAAgB,EAAE,yBAAyB,CAAC;CAC7C,CAAC"}
@@ -118,4 +118,22 @@ export type ContentSchemaDecorator = (context: DecoratorContext, target: Scalar
118
118
  * @param value the value of the keyword.
119
119
  */
120
120
  export type ExtensionDecorator = (context: DecoratorContext, target: Type, key: string, value: Type | unknown) => void;
121
+ export type TypeSpecJsonSchemaDecorators = {
122
+ jsonSchema: JsonSchemaDecorator;
123
+ baseUri: BaseUriDecorator;
124
+ id: IdDecorator;
125
+ oneOf: OneOfDecorator;
126
+ multipleOf: MultipleOfDecorator;
127
+ contains: ContainsDecorator;
128
+ minContains: MinContainsDecorator;
129
+ maxContains: MaxContainsDecorator;
130
+ uniqueItems: UniqueItemsDecorator;
131
+ minProperties: MinPropertiesDecorator;
132
+ maxProperties: MaxPropertiesDecorator;
133
+ contentEncoding: ContentEncodingDecorator;
134
+ prefixItems: PrefixItemsDecorator;
135
+ contentMediaType: ContentMediaTypeDecorator;
136
+ contentSchema: ContentSchemaDecorator;
137
+ extension: ExtensionDecorator;
138
+ };
121
139
  //# sourceMappingURL=TypeSpec.JsonSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TypeSpec.JsonSchema.d.ts","sourceRoot":"","sources":["../../generated-defs/TypeSpec.JsonSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,OAAO,EACP,MAAM,EACN,IAAI,EACJ,KAAK,EACN,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;GAQG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,IAAI,EACZ,OAAO,CAAC,EAAE,MAAM,KACb,IAAI,CAAC;AAEV;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,KACZ,IAAI,CAAC;AAEV;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;AAExF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,GAAG,aAAa,KAAK,IAAI,CAAC;AAEhG;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,GAAG,aAAa,EAC9B,KAAK,EAAE,OAAO,KACX,IAAI,CAAC;AAEV;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,IAAI,GAAG,aAAa,EAC5B,KAAK,EAAE,IAAI,KACR,IAAI,CAAC;AAEV;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,IAAI,GAAG,aAAa,EAC5B,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;AAEV;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,IAAI,GAAG,aAAa,EAC5B,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,IAAI,GAAG,aAAa,KACzB,IAAI,CAAC;AAEV;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,IAAI,GAAG,aAAa,EAC5B,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;AAEV;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,IAAI,GAAG,aAAa,EAC5B,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;AAEV;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,GAAG,aAAa,EAC9B,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;AAEV;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,IAAI,GAAG,aAAa,EAC5B,KAAK,EAAE,IAAI,KACR,IAAI,CAAC;AAEV;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG,CACtC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,GAAG,aAAa,EAC9B,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;AAEV;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,GAAG,aAAa,EAC9B,KAAK,EAAE,IAAI,KACR,IAAI,CAAC;AAEV;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,IAAI,EACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,IAAI,GAAG,OAAO,KAClB,IAAI,CAAC"}
1
+ {"version":3,"file":"TypeSpec.JsonSchema.d.ts","sourceRoot":"","sources":["../../generated-defs/TypeSpec.JsonSchema.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,5 @@
1
1
  /** An error here would mean that the decorator is not exported or doesn't have the right name. */
2
- import { $baseUri, $contains, $contentEncoding, $contentMediaType, $contentSchema, $extension, $id, $jsonSchema, $maxContains, $maxProperties, $minContains, $minProperties, $multipleOf, $oneOf, $prefixItems, $uniqueItems, } from "@typespec/json-schema";
2
+ import { $decorators } from "@typespec/json-schema";
3
3
  /** An error here would mean that the exported decorator is not using the same signature. Make sure to have export const $decName: DecNameDecorator = (...) => ... */
4
- const _ = {
5
- $jsonSchema,
6
- $baseUri,
7
- $id,
8
- $oneOf,
9
- $multipleOf,
10
- $contains,
11
- $minContains,
12
- $maxContains,
13
- $uniqueItems,
14
- $minProperties,
15
- $maxProperties,
16
- $contentEncoding,
17
- $prefixItems,
18
- $contentMediaType,
19
- $contentSchema,
20
- $extension,
21
- };
4
+ const _ = $decorators["TypeSpec.JsonSchema"];
22
5
  //# sourceMappingURL=TypeSpec.JsonSchema.ts-test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TypeSpec.JsonSchema.ts-test.js","sourceRoot":"","sources":["../../generated-defs/TypeSpec.JsonSchema.ts-test.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,OAAO,EACL,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,GAAG,EACH,WAAW,EACX,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,cAAc,EACd,WAAW,EACX,MAAM,EACN,YAAY,EACZ,YAAY,GACb,MAAM,uBAAuB,CAAC;AAuC/B,qKAAqK;AACrK,MAAM,CAAC,GAAe;IACpB,WAAW;IACX,QAAQ;IACR,GAAG;IACH,MAAM;IACN,WAAW;IACX,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,YAAY;IACZ,iBAAiB;IACjB,cAAc;IACd,UAAU;CACX,CAAC"}
1
+ {"version":3,"file":"TypeSpec.JsonSchema.ts-test.js","sourceRoot":"","sources":["../../generated-defs/TypeSpec.JsonSchema.ts-test.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,qKAAqK;AACrK,MAAM,CAAC,GAAiC,WAAW,CAAC,qBAAqB,CAAC,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { Enum, Model, Namespace, Numeric, Program, Scalar, Tuple, Type, Union } from "@typespec/compiler";
2
+ import { ValidatesRawJsonDecorator } from "../generated-defs/TypeSpec.JsonSchema.Private.js";
3
+ import { BaseUriDecorator, ContainsDecorator, ContentEncodingDecorator, ContentMediaTypeDecorator, ContentSchemaDecorator, ExtensionDecorator, IdDecorator, JsonSchemaDecorator, MaxContainsDecorator, MaxPropertiesDecorator, MinContainsDecorator, MinPropertiesDecorator, MultipleOfDecorator, OneOfDecorator, PrefixItemsDecorator, UniqueItemsDecorator } from "../generated-defs/TypeSpec.JsonSchema.js";
4
+ export type JsonSchemaDeclaration = Model | Union | Enum | Scalar;
5
+ export declare const $jsonSchema: JsonSchemaDecorator;
6
+ export declare const $baseUri: BaseUriDecorator;
7
+ export declare function getBaseUri(program: Program, target: Type): any;
8
+ export declare function findBaseUri(program: Program, target: JsonSchemaDeclaration | Namespace): string | undefined;
9
+ export declare function isJsonSchemaDeclaration(program: Program, target: JsonSchemaDeclaration): boolean;
10
+ export declare function getJsonSchemaTypes(program: Program): (Namespace | Model)[];
11
+ export declare function getJsonSchema(program: Program, target: Type): boolean;
12
+ export declare const $multipleOf: MultipleOfDecorator;
13
+ export declare function getMultipleOfAsNumeric(program: Program, target: Type): Numeric | undefined;
14
+ export declare function getMultipleOf(program: Program, target: Type): number | undefined;
15
+ export declare const $id: IdDecorator;
16
+ export declare function getId(program: Program, target: Type): any;
17
+ export declare const $oneOf: OneOfDecorator;
18
+ export declare function isOneOf(program: Program, target: Type): boolean;
19
+ export declare const $contains: ContainsDecorator;
20
+ export declare function getContains(program: Program, target: Type): any;
21
+ export declare const $minContains: MinContainsDecorator;
22
+ export declare function getMinContains(program: Program, target: Type): any;
23
+ export declare const $maxContains: MaxContainsDecorator;
24
+ export declare function getMaxContains(program: Program, target: Type): any;
25
+ export declare const $uniqueItems: UniqueItemsDecorator;
26
+ export declare function getUniqueItems(program: Program, target: Type): any;
27
+ export declare const $minProperties: MinPropertiesDecorator;
28
+ export declare function getMinProperties(program: Program, target: Type): any;
29
+ export declare const $maxProperties: MaxPropertiesDecorator;
30
+ export declare function getMaxProperties(program: Program, target: Type): any;
31
+ export declare const $contentEncoding: ContentEncodingDecorator;
32
+ export declare function getContentEncoding(program: Program, target: Type): string;
33
+ export declare const $contentMediaType: ContentMediaTypeDecorator;
34
+ export declare function getContentMediaType(program: Program, target: Type): string;
35
+ export declare const $contentSchema: ContentSchemaDecorator;
36
+ export declare function getContentSchema(program: Program, target: Type): any;
37
+ export declare const $prefixItems: PrefixItemsDecorator;
38
+ export declare function getPrefixItems(program: Program, target: Type): Tuple | undefined;
39
+ export interface ExtensionRecord {
40
+ key: string;
41
+ value: Type | unknown;
42
+ }
43
+ export declare const $extension: ExtensionDecorator;
44
+ export declare function getExtensions(program: Program, target: Type): ExtensionRecord[];
45
+ export declare function setExtension(program: Program, target: Type, key: string, value: unknown): void;
46
+ export declare const $validatesRawJson: ValidatesRawJsonDecorator;
47
+ //# sourceMappingURL=decorators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ import { isType, setTypeSpecNamespace, typespecTypeToJson, } from "@typespec/compiler";
2
+ import { createStateSymbol } from "./lib.js";
3
+ const jsonSchemaKey = createStateSymbol("JsonSchema");
4
+ export const $jsonSchema = (context, target, baseUriOrId) => {
5
+ context.program.stateSet(jsonSchemaKey).add(target);
6
+ if (baseUriOrId) {
7
+ if (target.kind === "Namespace") {
8
+ context.call($baseUri, target, baseUriOrId);
9
+ }
10
+ else {
11
+ context.call($id, target, baseUriOrId);
12
+ }
13
+ }
14
+ };
15
+ const baseUriKey = createStateSymbol("JsonSchema.baseURI");
16
+ export const $baseUri = (context, target, baseUri) => {
17
+ context.program.stateMap(baseUriKey).set(target, baseUri);
18
+ };
19
+ export function getBaseUri(program, target) {
20
+ return program.stateMap(baseUriKey).get(target);
21
+ }
22
+ export function findBaseUri(program, target) {
23
+ let baseUrl;
24
+ let current = target;
25
+ do {
26
+ baseUrl = getBaseUri(program, current);
27
+ current = current.namespace;
28
+ } while (!baseUrl && current);
29
+ return baseUrl;
30
+ }
31
+ export function isJsonSchemaDeclaration(program, target) {
32
+ let current = target;
33
+ do {
34
+ if (getJsonSchema(program, current)) {
35
+ return true;
36
+ }
37
+ current = current.namespace;
38
+ } while (current);
39
+ return false;
40
+ }
41
+ export function getJsonSchemaTypes(program) {
42
+ return [...(program.stateSet(jsonSchemaKey) || [])];
43
+ }
44
+ export function getJsonSchema(program, target) {
45
+ return program.stateSet(jsonSchemaKey).has(target);
46
+ }
47
+ const multipleOfKey = createStateSymbol("JsonSchema.multipleOf");
48
+ export const $multipleOf = (context, target, value) => {
49
+ context.program.stateMap(multipleOfKey).set(target, value);
50
+ };
51
+ export function getMultipleOfAsNumeric(program, target) {
52
+ return program.stateMap(multipleOfKey).get(target);
53
+ }
54
+ export function getMultipleOf(program, target) {
55
+ return getMultipleOfAsNumeric(program, target)?.asNumber() ?? undefined;
56
+ }
57
+ const idKey = createStateSymbol("JsonSchema.id");
58
+ export const $id = (context, target, value) => {
59
+ context.program.stateMap(idKey).set(target, value);
60
+ };
61
+ export function getId(program, target) {
62
+ return program.stateMap(idKey).get(target);
63
+ }
64
+ const oneOfKey = createStateSymbol("JsonSchema.oneOf");
65
+ export const $oneOf = (context, target) => {
66
+ context.program.stateMap(oneOfKey).set(target, true);
67
+ };
68
+ export function isOneOf(program, target) {
69
+ return program.stateMap(oneOfKey).has(target);
70
+ }
71
+ const containsKey = createStateSymbol("JsonSchema.contains");
72
+ export const $contains = (context, target, value) => {
73
+ context.program.stateMap(containsKey).set(target, value);
74
+ };
75
+ export function getContains(program, target) {
76
+ return program.stateMap(containsKey).get(target);
77
+ }
78
+ const minContainsKey = createStateSymbol("JsonSchema.minContains");
79
+ export const $minContains = (context, target, value) => {
80
+ context.program.stateMap(minContainsKey).set(target, value);
81
+ };
82
+ export function getMinContains(program, target) {
83
+ return program.stateMap(minContainsKey).get(target);
84
+ }
85
+ const maxContainsKey = createStateSymbol("JsonSchema.maxContains");
86
+ export const $maxContains = (context, target, value) => {
87
+ context.program.stateMap(maxContainsKey).set(target, value);
88
+ };
89
+ export function getMaxContains(program, target) {
90
+ return program.stateMap(maxContainsKey).get(target);
91
+ }
92
+ const uniqueItemsKey = createStateSymbol("JsonSchema.uniqueItems");
93
+ export const $uniqueItems = (context, target) => {
94
+ context.program.stateMap(uniqueItemsKey).set(target, true);
95
+ };
96
+ export function getUniqueItems(program, target) {
97
+ return program.stateMap(uniqueItemsKey).get(target);
98
+ }
99
+ const minPropertiesKey = createStateSymbol("JsonSchema.minProperties");
100
+ export const $minProperties = (context, target, value) => {
101
+ context.program.stateMap(minPropertiesKey).set(target, value);
102
+ };
103
+ export function getMinProperties(program, target) {
104
+ return program.stateMap(minPropertiesKey).get(target);
105
+ }
106
+ const maxPropertiesKey = createStateSymbol("JsonSchema.maxProperties");
107
+ export const $maxProperties = (context, target, value) => {
108
+ context.program.stateMap(maxPropertiesKey).set(target, value);
109
+ };
110
+ export function getMaxProperties(program, target) {
111
+ return program.stateMap(maxPropertiesKey).get(target);
112
+ }
113
+ const contentEncodingKey = createStateSymbol("JsonSchema.contentEncoding");
114
+ export const $contentEncoding = (context, target, value) => {
115
+ context.program.stateMap(contentEncodingKey).set(target, value);
116
+ };
117
+ export function getContentEncoding(program, target) {
118
+ return program.stateMap(contentEncodingKey).get(target);
119
+ }
120
+ const contentMediaType = createStateSymbol("JsonSchema.contentMediaType");
121
+ export const $contentMediaType = (context, target, value) => {
122
+ context.program.stateMap(contentMediaType).set(target, value);
123
+ };
124
+ export function getContentMediaType(program, target) {
125
+ return program.stateMap(contentMediaType).get(target);
126
+ }
127
+ const contentSchemaKey = createStateSymbol("JsonSchema.contentSchema");
128
+ export const $contentSchema = (context, target, value) => {
129
+ context.program.stateMap(contentSchemaKey).set(target, value);
130
+ };
131
+ export function getContentSchema(program, target) {
132
+ return program.stateMap(contentSchemaKey).get(target);
133
+ }
134
+ const prefixItemsKey = createStateSymbol("JsonSchema.prefixItems");
135
+ export const $prefixItems = (context, target, value) => {
136
+ context.program.stateMap(prefixItemsKey).set(target, value);
137
+ };
138
+ export function getPrefixItems(program, target) {
139
+ return program.stateMap(prefixItemsKey).get(target);
140
+ }
141
+ const extensionsKey = createStateSymbol("JsonSchema.extension");
142
+ export const $extension = (context, target, key, value) => {
143
+ setExtension(context.program, target, key, value);
144
+ };
145
+ export function getExtensions(program, target) {
146
+ return program.stateMap(extensionsKey).get(target) ?? [];
147
+ }
148
+ export function setExtension(program, target, key, value) {
149
+ const stateMap = program.stateMap(extensionsKey);
150
+ const extensions = stateMap.has(target)
151
+ ? stateMap.get(target)
152
+ : stateMap.set(target, []).get(target);
153
+ // Check if we were handed the `Json` template model
154
+ if (isJsonTemplateType(value)) {
155
+ extensions.push({
156
+ key,
157
+ value: typespecTypeToJson(value.properties.get("value").type, target)[0],
158
+ });
159
+ }
160
+ else {
161
+ extensions.push({ key, value });
162
+ }
163
+ }
164
+ function isJsonTemplateType(value) {
165
+ return (typeof value === "object" &&
166
+ value !== null &&
167
+ isType(value) &&
168
+ value.kind === "Model" &&
169
+ value.name === "Json" &&
170
+ value.namespace?.name === "JsonSchema");
171
+ }
172
+ export const $validatesRawJson = (context, target, value) => {
173
+ const [_, diagnostics] = typespecTypeToJson(value, target);
174
+ if (diagnostics.length > 0) {
175
+ context.program.reportDiagnostics(diagnostics);
176
+ }
177
+ };
178
+ setTypeSpecNamespace("Private", $validatesRawJson);
179
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
@@ -1,52 +1,5 @@
1
- import { EmitContext, Enum, Model, Namespace, Numeric, Program, Scalar, Tuple, Type, Union } from "@typespec/compiler";
2
- import { ValidatesRawJsonDecorator } from "../generated-defs/TypeSpec.JsonSchema.Private.js";
3
- import { BaseUriDecorator, ContainsDecorator, ContentEncodingDecorator, ContentMediaTypeDecorator, ContentSchemaDecorator, ExtensionDecorator, IdDecorator, JsonSchemaDecorator, MaxContainsDecorator, MaxPropertiesDecorator, MinContainsDecorator, MinPropertiesDecorator, MultipleOfDecorator, OneOfDecorator, PrefixItemsDecorator, UniqueItemsDecorator } from "../generated-defs/TypeSpec.JsonSchema.js";
4
- import { JSONSchemaEmitterOptions } from "./lib.js";
5
1
  export { JsonSchemaEmitter } from "./json-schema-emitter.js";
6
2
  export { $flags, $lib, EmitterOptionsSchema, JSONSchemaEmitterOptions } from "./lib.js";
7
- export declare const namespace = "TypeSpec.JsonSchema";
8
- export type JsonSchemaDeclaration = Model | Union | Enum | Scalar;
9
- export declare function $onEmit(context: EmitContext<JSONSchemaEmitterOptions>): Promise<void>;
10
- export declare const $jsonSchema: JsonSchemaDecorator;
11
- export declare const $baseUri: BaseUriDecorator;
12
- export declare function getBaseUri(program: Program, target: Type): any;
13
- export declare function findBaseUri(program: Program, target: JsonSchemaDeclaration | Namespace): string | undefined;
14
- export declare function isJsonSchemaDeclaration(program: Program, target: JsonSchemaDeclaration): boolean;
15
- export declare function getJsonSchemaTypes(program: Program): (Namespace | Model)[];
16
- export declare function getJsonSchema(program: Program, target: Type): boolean;
17
- export declare const $multipleOf: MultipleOfDecorator;
18
- export declare function getMultipleOfAsNumeric(program: Program, target: Type): Numeric | undefined;
19
- export declare function getMultipleOf(program: Program, target: Type): number | undefined;
20
- export declare const $id: IdDecorator;
21
- export declare function getId(program: Program, target: Type): any;
22
- export declare const $oneOf: OneOfDecorator;
23
- export declare function isOneOf(program: Program, target: Type): boolean;
24
- export declare const $contains: ContainsDecorator;
25
- export declare function getContains(program: Program, target: Type): any;
26
- export declare const $minContains: MinContainsDecorator;
27
- export declare function getMinContains(program: Program, target: Type): any;
28
- export declare const $maxContains: MaxContainsDecorator;
29
- export declare function getMaxContains(program: Program, target: Type): any;
30
- export declare const $uniqueItems: UniqueItemsDecorator;
31
- export declare function getUniqueItems(program: Program, target: Type): any;
32
- export declare const $minProperties: MinPropertiesDecorator;
33
- export declare function getMinProperties(program: Program, target: Type): any;
34
- export declare const $maxProperties: MaxPropertiesDecorator;
35
- export declare function getMaxProperties(program: Program, target: Type): any;
36
- export declare const $contentEncoding: ContentEncodingDecorator;
37
- export declare function getContentEncoding(program: Program, target: Type): string;
38
- export declare const $contentMediaType: ContentMediaTypeDecorator;
39
- export declare function getContentMediaType(program: Program, target: Type): string;
40
- export declare const $contentSchema: ContentSchemaDecorator;
41
- export declare function getContentSchema(program: Program, target: Type): any;
42
- export declare const $prefixItems: PrefixItemsDecorator;
43
- export declare function getPrefixItems(program: Program, target: Type): Tuple | undefined;
44
- export interface ExtensionRecord {
45
- key: string;
46
- value: Type | unknown;
47
- }
48
- export declare const $extension: ExtensionDecorator;
49
- export declare function getExtensions(program: Program, target: Type): ExtensionRecord[];
50
- export declare function setExtension(program: Program, target: Type, key: string, value: unknown): void;
51
- export declare const $validatesRawJson: ValidatesRawJsonDecorator;
3
+ export * from "./decorators.js";
4
+ export { $onEmit } from "./on-emit.js";
52
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAKxF,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,196 +1,9 @@
1
- import { isType, setTypeSpecNamespace, typespecTypeToJson, } from "@typespec/compiler";
2
- import { createAssetEmitter } from "@typespec/compiler/emitter-framework";
3
- import { JsonSchemaEmitter } from "./json-schema-emitter.js";
4
- import { createStateSymbol } from "./lib.js";
5
1
  export { JsonSchemaEmitter } from "./json-schema-emitter.js";
6
2
  export { $flags, $lib, EmitterOptionsSchema } from "./lib.js";
3
+ /** @internal */
7
4
  export const namespace = "TypeSpec.JsonSchema";
8
- const jsonSchemaKey = createStateSymbol("JsonSchema");
9
- export async function $onEmit(context) {
10
- const emitter = createAssetEmitter(context.program, JsonSchemaEmitter, context);
11
- if (emitter.getOptions().emitAllModels) {
12
- emitter.emitProgram({ emitTypeSpecNamespace: false });
13
- }
14
- else {
15
- for (const item of getJsonSchemaTypes(context.program)) {
16
- emitter.emitType(item);
17
- }
18
- }
19
- await emitter.writeOutput();
20
- }
21
- export const $jsonSchema = (context, target, baseUriOrId) => {
22
- context.program.stateSet(jsonSchemaKey).add(target);
23
- if (baseUriOrId) {
24
- if (target.kind === "Namespace") {
25
- context.call($baseUri, target, baseUriOrId);
26
- }
27
- else {
28
- context.call($id, target, baseUriOrId);
29
- }
30
- }
31
- };
32
- const baseUriKey = createStateSymbol("JsonSchema.baseURI");
33
- export const $baseUri = (context, target, baseUri) => {
34
- context.program.stateMap(baseUriKey).set(target, baseUri);
35
- };
36
- export function getBaseUri(program, target) {
37
- return program.stateMap(baseUriKey).get(target);
38
- }
39
- export function findBaseUri(program, target) {
40
- let baseUrl;
41
- let current = target;
42
- do {
43
- baseUrl = getBaseUri(program, current);
44
- current = current.namespace;
45
- } while (!baseUrl && current);
46
- return baseUrl;
47
- }
48
- export function isJsonSchemaDeclaration(program, target) {
49
- let current = target;
50
- do {
51
- if (getJsonSchema(program, current)) {
52
- return true;
53
- }
54
- current = current.namespace;
55
- } while (current);
56
- return false;
57
- }
58
- export function getJsonSchemaTypes(program) {
59
- return [...(program.stateSet(jsonSchemaKey) || [])];
60
- }
61
- export function getJsonSchema(program, target) {
62
- return program.stateSet(jsonSchemaKey).has(target);
63
- }
64
- const multipleOfKey = createStateSymbol("JsonSchema.multipleOf");
65
- export const $multipleOf = (context, target, value) => {
66
- context.program.stateMap(multipleOfKey).set(target, value);
67
- };
68
- export function getMultipleOfAsNumeric(program, target) {
69
- return program.stateMap(multipleOfKey).get(target);
70
- }
71
- export function getMultipleOf(program, target) {
72
- return getMultipleOfAsNumeric(program, target)?.asNumber() ?? undefined;
73
- }
74
- const idKey = createStateSymbol("JsonSchema.id");
75
- export const $id = (context, target, value) => {
76
- context.program.stateMap(idKey).set(target, value);
77
- };
78
- export function getId(program, target) {
79
- return program.stateMap(idKey).get(target);
80
- }
81
- const oneOfKey = createStateSymbol("JsonSchema.oneOf");
82
- export const $oneOf = (context, target) => {
83
- context.program.stateMap(oneOfKey).set(target, true);
84
- };
85
- export function isOneOf(program, target) {
86
- return program.stateMap(oneOfKey).has(target);
87
- }
88
- const containsKey = createStateSymbol("JsonSchema.contains");
89
- export const $contains = (context, target, value) => {
90
- context.program.stateMap(containsKey).set(target, value);
91
- };
92
- export function getContains(program, target) {
93
- return program.stateMap(containsKey).get(target);
94
- }
95
- const minContainsKey = createStateSymbol("JsonSchema.minContains");
96
- export const $minContains = (context, target, value) => {
97
- context.program.stateMap(minContainsKey).set(target, value);
98
- };
99
- export function getMinContains(program, target) {
100
- return program.stateMap(minContainsKey).get(target);
101
- }
102
- const maxContainsKey = createStateSymbol("JsonSchema.maxContains");
103
- export const $maxContains = (context, target, value) => {
104
- context.program.stateMap(maxContainsKey).set(target, value);
105
- };
106
- export function getMaxContains(program, target) {
107
- return program.stateMap(maxContainsKey).get(target);
108
- }
109
- const uniqueItemsKey = createStateSymbol("JsonSchema.uniqueItems");
110
- export const $uniqueItems = (context, target) => {
111
- context.program.stateMap(uniqueItemsKey).set(target, true);
112
- };
113
- export function getUniqueItems(program, target) {
114
- return program.stateMap(uniqueItemsKey).get(target);
115
- }
116
- const minPropertiesKey = createStateSymbol("JsonSchema.minProperties");
117
- export const $minProperties = (context, target, value) => {
118
- context.program.stateMap(minPropertiesKey).set(target, value);
119
- };
120
- export function getMinProperties(program, target) {
121
- return program.stateMap(minPropertiesKey).get(target);
122
- }
123
- const maxPropertiesKey = createStateSymbol("JsonSchema.maxProperties");
124
- export const $maxProperties = (context, target, value) => {
125
- context.program.stateMap(maxPropertiesKey).set(target, value);
126
- };
127
- export function getMaxProperties(program, target) {
128
- return program.stateMap(maxPropertiesKey).get(target);
129
- }
130
- const contentEncodingKey = createStateSymbol("JsonSchema.contentEncoding");
131
- export const $contentEncoding = (context, target, value) => {
132
- context.program.stateMap(contentEncodingKey).set(target, value);
133
- };
134
- export function getContentEncoding(program, target) {
135
- return program.stateMap(contentEncodingKey).get(target);
136
- }
137
- const contentMediaType = createStateSymbol("JsonSchema.contentMediaType");
138
- export const $contentMediaType = (context, target, value) => {
139
- context.program.stateMap(contentMediaType).set(target, value);
140
- };
141
- export function getContentMediaType(program, target) {
142
- return program.stateMap(contentMediaType).get(target);
143
- }
144
- const contentSchemaKey = createStateSymbol("JsonSchema.contentSchema");
145
- export const $contentSchema = (context, target, value) => {
146
- context.program.stateMap(contentSchemaKey).set(target, value);
147
- };
148
- export function getContentSchema(program, target) {
149
- return program.stateMap(contentSchemaKey).get(target);
150
- }
151
- const prefixItemsKey = createStateSymbol("JsonSchema.prefixItems");
152
- export const $prefixItems = (context, target, value) => {
153
- context.program.stateMap(prefixItemsKey).set(target, value);
154
- };
155
- export function getPrefixItems(program, target) {
156
- return program.stateMap(prefixItemsKey).get(target);
157
- }
158
- const extensionsKey = createStateSymbol("JsonSchema.extension");
159
- export const $extension = (context, target, key, value) => {
160
- setExtension(context.program, target, key, value);
161
- };
162
- export function getExtensions(program, target) {
163
- return program.stateMap(extensionsKey).get(target) ?? [];
164
- }
165
- export function setExtension(program, target, key, value) {
166
- const stateMap = program.stateMap(extensionsKey);
167
- const extensions = stateMap.has(target)
168
- ? stateMap.get(target)
169
- : stateMap.set(target, []).get(target);
170
- // Check if we were handed the `Json` template model
171
- if (isJsonTemplateType(value)) {
172
- extensions.push({
173
- key,
174
- value: typespecTypeToJson(value.properties.get("value").type, target)[0],
175
- });
176
- }
177
- else {
178
- extensions.push({ key, value });
179
- }
180
- }
181
- function isJsonTemplateType(value) {
182
- return (typeof value === "object" &&
183
- value !== null &&
184
- isType(value) &&
185
- value.kind === "Model" &&
186
- value.name === "Json" &&
187
- value.namespace?.name === "JsonSchema");
188
- }
189
- export const $validatesRawJson = (context, target, value) => {
190
- const [_, diagnostics] = typespecTypeToJson(value, target);
191
- if (diagnostics.length > 0) {
192
- context.program.reportDiagnostics(diagnostics);
193
- }
194
- };
195
- setTypeSpecNamespace("Private", $validatesRawJson);
5
+ export * from "./decorators.js";
6
+ export { $onEmit } from "./on-emit.js";
7
+ /** @internal */
8
+ export { $decorators } from "./tsp-index.js";
196
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAA4B,MAAM,UAAU,CAAC;AAExF,gBAAgB;AAChB,MAAM,CAAC,MAAM,SAAS,GAAG,qBAAqB,CAAC;AAE/C,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,gBAAgB;AAChB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { EmitContext, Enum, Model, Scalar, Union } from "@typespec/compiler";
2
+ import { JSONSchemaEmitterOptions } from "./lib.js";
3
+ export { JsonSchemaEmitter } from "./json-schema-emitter.js";
4
+ export { $flags, $lib, EmitterOptionsSchema, JSONSchemaEmitterOptions } from "./lib.js";
5
+ export declare const namespace = "TypeSpec.JsonSchema";
6
+ export type JsonSchemaDeclaration = Model | Union | Enum | Scalar;
7
+ export declare function $onEmit(context: EmitContext<JSONSchemaEmitterOptions>): Promise<void>;
8
+ //# sourceMappingURL=on-emit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"on-emit.d.ts","sourceRoot":"","sources":["../../src/on-emit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAI7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAExF,eAAO,MAAM,SAAS,wBAAwB,CAAC;AAC/C,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;AAElE,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,wBAAwB,CAAC,iBAY3E"}
@@ -0,0 +1,19 @@
1
+ import { createAssetEmitter } from "@typespec/compiler/emitter-framework";
2
+ import { getJsonSchemaTypes } from "./decorators.js";
3
+ import { JsonSchemaEmitter } from "./json-schema-emitter.js";
4
+ export { JsonSchemaEmitter } from "./json-schema-emitter.js";
5
+ export { $flags, $lib, EmitterOptionsSchema } from "./lib.js";
6
+ export const namespace = "TypeSpec.JsonSchema";
7
+ export async function $onEmit(context) {
8
+ const emitter = createAssetEmitter(context.program, JsonSchemaEmitter, context);
9
+ if (emitter.getOptions().emitAllModels) {
10
+ emitter.emitProgram({ emitTypeSpecNamespace: false });
11
+ }
12
+ else {
13
+ for (const item of getJsonSchemaTypes(context.program)) {
14
+ emitter.emitType(item);
15
+ }
16
+ }
17
+ await emitter.writeOutput();
18
+ }
19
+ //# sourceMappingURL=on-emit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"on-emit.js","sourceRoot":"","sources":["../../src/on-emit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAA4B,MAAM,UAAU,CAAC;AAExF,MAAM,CAAC,MAAM,SAAS,GAAG,qBAAqB,CAAC;AAG/C,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAA8C;IAC1E,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,iBAAwB,EAAE,OAAO,CAAC,CAAC;IAEvF,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,CAAC;QACvC,OAAO,CAAC,WAAW,CAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,IAAI,IAAI,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACvD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { $flags, $lib } from "./lib.js";
2
+ //# sourceMappingURL=tsp-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsp-index.d.ts","sourceRoot":"","sources":["../../src/tsp-index.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { $baseUri, $contains, $contentEncoding, $contentMediaType, $contentSchema, $extension, $id, $jsonSchema, $maxContains, $maxProperties, $minContains, $minProperties, $multipleOf, $oneOf, $prefixItems, $uniqueItems, $validatesRawJson, } from "./decorators.js";
2
+ export { $flags, $lib } from "./lib.js";
3
+ /** @internal */
4
+ export const $decorators = {
5
+ "TypeSpec.JsonSchema": {
6
+ jsonSchema: $jsonSchema,
7
+ baseUri: $baseUri,
8
+ id: $id,
9
+ oneOf: $oneOf,
10
+ multipleOf: $multipleOf,
11
+ contains: $contains,
12
+ minContains: $minContains,
13
+ maxContains: $maxContains,
14
+ uniqueItems: $uniqueItems,
15
+ minProperties: $minProperties,
16
+ maxProperties: $maxProperties,
17
+ contentEncoding: $contentEncoding,
18
+ prefixItems: $prefixItems,
19
+ contentMediaType: $contentMediaType,
20
+ contentSchema: $contentSchema,
21
+ extension: $extension,
22
+ },
23
+ "TypeSpec.JsonSchema.Private": {
24
+ validatesRawJson: $validatesRawJson,
25
+ },
26
+ };
27
+ //# sourceMappingURL=tsp-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsp-index.js","sourceRoot":"","sources":["../../src/tsp-index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,GAAG,EACH,WAAW,EACX,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,cAAc,EACd,WAAW,EACX,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAExC,gBAAgB;AAChB,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,qBAAqB,EAAE;QACrB,UAAU,EAAE,WAAW;QACvB,OAAO,EAAE,QAAQ;QACjB,EAAE,EAAE,GAAG;QACP,KAAK,EAAE,MAAM;QACb,UAAU,EAAE,WAAW;QACvB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE,YAAY;QACzB,aAAa,EAAE,cAAc;QAC7B,aAAa,EAAE,cAAc;QAC7B,eAAe,EAAE,gBAAgB;QACjC,WAAW,EAAE,YAAY;QACzB,gBAAgB,EAAE,iBAAiB;QACnC,aAAa,EAAE,cAAc;QAC7B,SAAS,EAAE,UAAU;KACiB;IACxC,6BAA6B,EAAE;QAC7B,gBAAgB,EAAE,iBAAiB;KACU;CAChD,CAAC"}
package/lib/main.tsp CHANGED
@@ -1,4 +1,4 @@
1
- import "../dist/src/index.js";
1
+ import "../dist/src/tsp-index.js";
2
2
 
3
3
  namespace TypeSpec.JsonSchema;
4
4
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/json-schema",
3
- "version": "0.59.0",
3
+ "version": "0.60.0-dev.1",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "TypeSpec library for emitting TypeSpec to JSON Schema and converting JSON Schema to TypeSpec",
6
6
  "homepage": "https://github.com/microsoft/typespec",
@@ -39,10 +39,13 @@
39
39
  "!dist/test/**"
40
40
  ],
41
41
  "peerDependencies": {
42
- "@typespec/compiler": "~0.59.0"
42
+ "@typespec/compiler": "~0.59.0 || >=0.60.0-dev <0.60.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/node": "~18.11.19",
46
+ "@typespec/compiler": "~0.59.0 || >=0.60.0-dev <0.60.0",
47
+ "@typespec/internal-build-utils": "~0.59.0 || >=0.60.0-dev <0.60.0",
48
+ "@typespec/library-linter": "~0.59.0 || >=0.60.0-dev <0.60.0",
46
49
  "@vitest/coverage-v8": "^2.0.4",
47
50
  "@vitest/ui": "^2.0.4",
48
51
  "ajv": "~8.17.1",
@@ -51,10 +54,7 @@
51
54
  "rimraf": "~6.0.1",
52
55
  "typescript": "~5.5.4",
53
56
  "vitest": "^2.0.4",
54
- "@typespec/internal-build-utils": "~0.59.0",
55
- "@typespec/library-linter": "~0.59.0",
56
- "@typespec/tspd": "~0.46.0",
57
- "@typespec/compiler": "~0.59.0"
57
+ "@typespec/tspd": "~0.46.0"
58
58
  },
59
59
  "dependencies": {
60
60
  "yaml": "~2.4.5"