@typespec/json-schema 0.46.0-dev.1 → 0.46.0-dev.10
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/dist/src/index.d.ts +13 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +34 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/json-schema-emitter.d.ts +1 -0
- package/dist/src/json-schema-emitter.d.ts.map +1 -1
- package/dist/src/json-schema-emitter.js +88 -21
- package/dist/src/json-schema-emitter.js.map +1 -1
- package/dist/src/lib.d.ts +6 -0
- package/dist/src/lib.d.ts.map +1 -1
- package/dist/src/lib.js +5 -0
- package/dist/src/lib.js.map +1 -1
- package/lib/main.tsp +29 -1
- package/package.json +13 -14
package/dist/src/index.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { DecoratorContext, EmitContext, Enum, Model, ModelProperty, Namespace, Program, Scalar, StringLiteral, Tuple, Type, Union } from "@typespec/compiler";
|
|
2
2
|
import { JSONSchemaEmitterOptions } from "./lib.js";
|
|
3
3
|
export { $lib } from "./lib.js";
|
|
4
|
-
export declare const namespace = "JsonSchema";
|
|
4
|
+
export declare const namespace = "TypeSpec.JsonSchema";
|
|
5
5
|
export type JsonSchemaDeclaration = Model | Union | Enum | Scalar;
|
|
6
6
|
export declare function $onEmit(context: EmitContext<JSONSchemaEmitterOptions>): Promise<void>;
|
|
7
7
|
export declare function $jsonSchema(context: DecoratorContext, target: JsonSchemaDeclaration | Namespace, baseUriOrId?: string): void;
|
|
8
8
|
export declare function $baseUri(context: DecoratorContext, target: Namespace, baseUri: string): void;
|
|
9
9
|
export declare function getBaseUri(program: Program, target: Type): any;
|
|
10
10
|
export declare function findBaseUri(program: Program, target: JsonSchemaDeclaration | Namespace): string | undefined;
|
|
11
|
+
export declare function isJsonSchemaDeclaration(program: Program, target: JsonSchemaDeclaration): boolean;
|
|
11
12
|
export declare function getJsonSchemaTypes(program: Program): (Namespace | Model)[];
|
|
13
|
+
export declare function getJsonSchema(program: Program, target: Type): boolean;
|
|
12
14
|
export declare function $multipleOf(context: DecoratorContext, target: Model, value: number): void;
|
|
13
15
|
export declare function getMultipleOf(program: Program, target: Type): any;
|
|
14
16
|
export declare function $id(context: DecoratorContext, target: Model | Union | Enum | Scalar, value: string): void;
|
|
@@ -33,4 +35,14 @@ export declare function $contentSchema(context: DecoratorContext, target: String
|
|
|
33
35
|
export declare function getContentSchema(program: Program, target: Type): any;
|
|
34
36
|
export declare function $prefixItems(context: DecoratorContext, target: Model | ModelProperty, value: Tuple): void;
|
|
35
37
|
export declare function getPrefixItems(program: Program, target: Type): Tuple | undefined;
|
|
38
|
+
export interface ExtensionRecord {
|
|
39
|
+
key: string;
|
|
40
|
+
value: Type;
|
|
41
|
+
}
|
|
42
|
+
export declare function $extension(context: DecoratorContext, target: Type, key: string, value: Type): void;
|
|
43
|
+
export declare function getExtensions(program: Program, target: Type): ExtensionRecord[];
|
|
44
|
+
export declare function $validatesRawJson(context: DecoratorContext, target: Model, value: Type): void;
|
|
45
|
+
export declare namespace $validatesRawJson {
|
|
46
|
+
var namespace: string;
|
|
47
|
+
}
|
|
36
48
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,IAAI,EACJ,KAAK,EACL,aAAa,EACb,SAAS,EACT,OAAO,EACP,MAAM,EACN,aAAa,EACb,KAAK,EACL,IAAI,EACJ,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { typespecTypeToJson, } from "@typespec/compiler";
|
|
1
2
|
import { JsonSchemaEmitter } from "./json-schema-emitter.js";
|
|
2
3
|
import { createStateSymbol } from "./lib.js";
|
|
3
4
|
export { $lib } from "./lib.js";
|
|
4
|
-
export const namespace = "JsonSchema";
|
|
5
|
+
export const namespace = "TypeSpec.JsonSchema";
|
|
5
6
|
const jsonSchemaKey = createStateSymbol("JsonSchema");
|
|
6
7
|
export async function $onEmit(context) {
|
|
7
8
|
const emitter = context.getAssetEmitter(JsonSchemaEmitter);
|
|
@@ -42,9 +43,22 @@ export function findBaseUri(program, target) {
|
|
|
42
43
|
} while (!baseUrl && current);
|
|
43
44
|
return baseUrl;
|
|
44
45
|
}
|
|
46
|
+
export function isJsonSchemaDeclaration(program, target) {
|
|
47
|
+
let current = target;
|
|
48
|
+
do {
|
|
49
|
+
if (getJsonSchema(program, current)) {
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
current = current.namespace;
|
|
53
|
+
} while (current);
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
45
56
|
export function getJsonSchemaTypes(program) {
|
|
46
57
|
return [...(program.stateSet(jsonSchemaKey) || [])];
|
|
47
58
|
}
|
|
59
|
+
export function getJsonSchema(program, target) {
|
|
60
|
+
return program.stateSet(jsonSchemaKey).has(target);
|
|
61
|
+
}
|
|
48
62
|
const multipleOfKey = createStateSymbol("JsonSchema.multipleOf");
|
|
49
63
|
export function $multipleOf(context, target, value) {
|
|
50
64
|
context.program.stateMap(multipleOfKey).set(target, value);
|
|
@@ -129,4 +143,23 @@ export function $prefixItems(context, target, value) {
|
|
|
129
143
|
export function getPrefixItems(program, target) {
|
|
130
144
|
return program.stateMap(prefixItemsKey).get(target);
|
|
131
145
|
}
|
|
146
|
+
const extensionsKey = createStateSymbol("JsonSchema.extension");
|
|
147
|
+
export function $extension(context, target, key, value) {
|
|
148
|
+
const stateMap = context.program.stateMap(extensionsKey);
|
|
149
|
+
const extensions = stateMap.has(target)
|
|
150
|
+
? stateMap.get(target)
|
|
151
|
+
: stateMap.set(target, []).get(target);
|
|
152
|
+
extensions.push({ key, value });
|
|
153
|
+
}
|
|
154
|
+
export function getExtensions(program, target) {
|
|
155
|
+
var _a;
|
|
156
|
+
return (_a = program.stateMap(extensionsKey).get(target)) !== null && _a !== void 0 ? _a : [];
|
|
157
|
+
}
|
|
158
|
+
export function $validatesRawJson(context, target, value) {
|
|
159
|
+
const [_, diagnostics] = typespecTypeToJson(value, target);
|
|
160
|
+
if (diagnostics.length > 0) {
|
|
161
|
+
context.program.reportDiagnostics(diagnostics);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
$validatesRawJson.namespace = "Private";
|
|
132
165
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAaL,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAA4B,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEvE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,MAAM,CAAC,MAAM,SAAS,GAAG,qBAAqB,CAAC;AAG/C,MAAM,aAAa,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAA8C;IAC1E,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAE3D,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE;QACtC,OAAO,CAAC,WAAW,CAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC;KACvD;SAAM;QACL,KAAK,MAAM,IAAI,IAAI,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACtD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACxB;KACF;IAED,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,OAAyB,EACzB,MAAyC,EACzC,WAAoB;IAEpB,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,WAAW,EAAE;QACf,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE;YAC/B,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;SAC7C;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;SACxC;KACF;AACH,CAAC;AAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;AAC3D,MAAM,UAAU,QAAQ,CAAC,OAAyB,EAAE,MAAiB,EAAE,OAAe;IACpF,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAgB,EAAE,MAAY;IACvD,OAAO,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,OAAgB,EAChB,MAAyC;IAEzC,IAAI,OAA2B,CAAC;IAChC,IAAI,OAAO,GAAkD,MAAM,CAAC;IACpE,GAAG;QACD,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACvC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;KAC7B,QAAQ,CAAC,OAAO,IAAI,OAAO,EAAE;IAE9B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB,EAAE,MAA6B;IACrF,IAAI,OAAO,GAAkD,MAAM,CAAC;IACpE,GAAG;QACD,IAAI,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;YACnC,OAAO,IAAI,CAAC;SACb;QAED,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;KAC7B,QAAQ,OAAO,EAAE;IAElB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAA0B,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,MAAY;IAC1D,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,aAAa,GAAG,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;AACjE,MAAM,UAAU,WAAW,CAAC,OAAyB,EAAE,MAAa,EAAE,KAAa;IACjF,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,MAAY;IAC1D,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;AACjD,MAAM,UAAU,GAAG,CACjB,OAAyB,EACzB,MAAqC,EACrC,KAAa;IAEb,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,OAAgB,EAAE,MAAY;IAClD,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;AAC7D,MAAM,UAAU,SAAS,CAAC,OAAyB,EAAE,MAA6B,EAAE,KAAW;IAC7F,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAgB,EAAE,MAAY;IACxD,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,CAAC;AACnE,MAAM,UAAU,YAAY,CAC1B,OAAyB,EACzB,MAA6B,EAC7B,KAAa;IAEb,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAgB,EAAE,MAAY;IAC3D,OAAO,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,CAAC;AACnE,MAAM,UAAU,YAAY,CAC1B,OAAyB,EACzB,MAA6B,EAC7B,KAAa;IAEb,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAgB,EAAE,MAAY;IAC3D,OAAO,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,CAAC;AACnE,MAAM,UAAU,YAAY,CAAC,OAAyB,EAAE,MAA6B;IACnF,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAgB,EAAE,MAAY;IAC3D,OAAO,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,CAAC;AACvE,MAAM,UAAU,cAAc,CAC5B,OAAyB,EACzB,MAA6B,EAC7B,KAAa;IAEb,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,MAAY;IAC7D,OAAO,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,CAAC;AACvE,MAAM,UAAU,cAAc,CAC5B,OAAyB,EACzB,MAA6B,EAC7B,KAAa;IAEb,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,MAAY;IAC7D,OAAO,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,4BAA4B,CAAC,CAAC;AAC3E,MAAM,UAAU,gBAAgB,CAC9B,OAAyB,EACzB,MAAqC,EACrC,KAAa;IAEb,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB,EAAE,MAAY;IAC/D,OAAO,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,6BAA6B,CAAC,CAAC;AAC1E,MAAM,UAAU,iBAAiB,CAC/B,OAAyB,EACzB,MAAqC,EACrC,KAAa;IAEb,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAgB,EAAE,MAAY;IAChE,OAAO,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,CAAC;AACvE,MAAM,UAAU,cAAc,CAC5B,OAAyB,EACzB,MAAqC,EACrC,KAAW;IAEX,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,MAAY;IAC7D,OAAO,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,CAAC;AACnE,MAAM,UAAU,YAAY,CAC1B,OAAyB,EACzB,MAA6B,EAC7B,KAAY;IAEZ,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAgB,EAAE,MAAY;IAC3D,OAAO,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC;AAOD,MAAM,aAAa,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;AAChE,MAAM,UAAU,UAAU,CAAC,OAAyB,EAAE,MAAY,EAAE,GAAW,EAAE,KAAW;IAC1F,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC,CAAC;IACzF,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;QACrC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAE;QACvB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;IAE1C,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,MAAY;;IAC1D,OAAO,MAAA,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,mCAAI,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAyB,EAAE,MAAa,EAAE,KAAW;IACrF,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;QAC1B,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;KAChD;AACH,CAAC;AACD,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC"}
|
|
@@ -22,6 +22,7 @@ export declare class JsonSchemaEmitter extends TypeEmitter<Record<string, any>,
|
|
|
22
22
|
reference(targetDeclaration: Declaration<Record<string, unknown>>, pathUp: Scope<Record<string, unknown>>[], pathDown: Scope<Record<string, unknown>>[], commonScope: Scope<Record<string, unknown>> | null): object | EmitEntity<Record<string, unknown>>;
|
|
23
23
|
scalarDeclaration(scalar: Scalar, name: string): EmitterOutput<object>;
|
|
24
24
|
intrinsic(intrinsic: IntrinsicType, name: string): EmitterOutput<object>;
|
|
25
|
+
writeOutput(sourceFiles: SourceFile<Record<string, any>>[]): Promise<void>;
|
|
25
26
|
sourceFile(sourceFile: SourceFile<object>): EmittedSourceFile;
|
|
26
27
|
programContext(program: Program): Context;
|
|
27
28
|
modelDeclarationContext(model: Model, name: string): Context;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-schema-emitter.d.ts","sourceRoot":"","sources":["../../src/json-schema-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,
|
|
1
|
+
{"version":3,"file":"json-schema-emitter.d.ts","sourceRoot":"","sources":["../../src/json-schema-emitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,16 +3,18 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
3
3
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4
4
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
5
|
};
|
|
6
|
-
var _JsonSchemaEmitter_instances, _JsonSchemaEmitter_seenIds, _JsonSchemaEmitter_requiredModelProperties, _JsonSchemaEmitter_applyConstraints, _JsonSchemaEmitter_scalarBuiltinBaseType, _JsonSchemaEmitter_isStdType, _JsonSchemaEmitter_getCurrentSourceFile, _JsonSchemaEmitter_getDeclId, _JsonSchemaEmitter_checkForDuplicateId, _JsonSchemaEmitter_newFileScope, _JsonSchemaEmitter_fileExtension;
|
|
7
|
-
import { getDeprecated, getDirectoryPath, getDoc, getFormat, getMaxItems, getMaxLength, getMaxValue, getMaxValueExclusive, getMinItems, getMinLength, getMinValue, getMinValueExclusive, getPattern, getRelativePathFromDirectory, getSummary, } from "@typespec/compiler";
|
|
6
|
+
var _JsonSchemaEmitter_instances, _JsonSchemaEmitter_seenIds, _JsonSchemaEmitter_typeForSourceFile, _JsonSchemaEmitter_refToDecl, _JsonSchemaEmitter_requiredModelProperties, _JsonSchemaEmitter_applyConstraints, _JsonSchemaEmitter_scalarBuiltinBaseType, _JsonSchemaEmitter_createDeclaration, _JsonSchemaEmitter_isStdType, _JsonSchemaEmitter_getCurrentSourceFile, _JsonSchemaEmitter_getDeclId, _JsonSchemaEmitter_checkForDuplicateId, _JsonSchemaEmitter_newFileScope, _JsonSchemaEmitter_fileExtension;
|
|
7
|
+
import { emitFile, getDeprecated, getDirectoryPath, getDoc, getFormat, getMaxItems, getMaxLength, getMaxValue, getMaxValueExclusive, getMinItems, getMinLength, getMinValue, getMinValueExclusive, getPattern, getRelativePathFromDirectory, getSummary, typespecTypeToJson, } from "@typespec/compiler";
|
|
8
8
|
import { ArrayBuilder, ObjectBuilder, Placeholder, TypeEmitter, } from "@typespec/compiler/emitter-framework";
|
|
9
9
|
import yaml from "js-yaml";
|
|
10
|
-
import { findBaseUri, getContains, getContentEncoding, getContentMediaType, getContentSchema, getId, getMaxContains, getMaxProperties, getMinContains, getMinProperties, getMultipleOf, getPrefixItems, getUniqueItems, } from "./index.js";
|
|
10
|
+
import { findBaseUri, getContains, getContentEncoding, getContentMediaType, getContentSchema, getExtensions, getId, getMaxContains, getMaxProperties, getMinContains, getMinProperties, getMultipleOf, getPrefixItems, getUniqueItems, isJsonSchemaDeclaration, } from "./index.js";
|
|
11
11
|
export class JsonSchemaEmitter extends TypeEmitter {
|
|
12
12
|
constructor() {
|
|
13
13
|
super(...arguments);
|
|
14
14
|
_JsonSchemaEmitter_instances.add(this);
|
|
15
15
|
_JsonSchemaEmitter_seenIds.set(this, new Set());
|
|
16
|
+
_JsonSchemaEmitter_typeForSourceFile.set(this, new Map());
|
|
17
|
+
_JsonSchemaEmitter_refToDecl.set(this, new Map());
|
|
16
18
|
// #endregion
|
|
17
19
|
}
|
|
18
20
|
modelDeclaration(model, name) {
|
|
@@ -28,8 +30,11 @@ export class JsonSchemaEmitter extends TypeEmitter {
|
|
|
28
30
|
allOf.push(this.emitter.emitTypeReference(model.baseModel));
|
|
29
31
|
schema.set("allOf", allOf);
|
|
30
32
|
}
|
|
33
|
+
if (model.indexer) {
|
|
34
|
+
schema.set("additionalProperties", this.emitter.emitTypeReference(model.indexer.value));
|
|
35
|
+
}
|
|
31
36
|
__classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_applyConstraints).call(this, model, schema);
|
|
32
|
-
return this.
|
|
37
|
+
return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_createDeclaration).call(this, model, name, schema);
|
|
33
38
|
}
|
|
34
39
|
modelLiteral(model) {
|
|
35
40
|
const schema = new ObjectBuilder({
|
|
@@ -50,7 +55,7 @@ export class JsonSchemaEmitter extends TypeEmitter {
|
|
|
50
55
|
items: this.emitter.emitTypeReference(elementType),
|
|
51
56
|
});
|
|
52
57
|
__classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_applyConstraints).call(this, array, schema);
|
|
53
|
-
return this.
|
|
58
|
+
return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_createDeclaration).call(this, array, name, schema);
|
|
54
59
|
}
|
|
55
60
|
arrayLiteral(array, elementType) {
|
|
56
61
|
return new ObjectBuilder({
|
|
@@ -94,19 +99,23 @@ export class JsonSchemaEmitter extends TypeEmitter {
|
|
|
94
99
|
enumValues.add((_a = member.value) !== null && _a !== void 0 ? _a : member.name);
|
|
95
100
|
}
|
|
96
101
|
const enumTypesArray = [...enumTypes];
|
|
97
|
-
|
|
102
|
+
const withConstraints = new ObjectBuilder({
|
|
98
103
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
99
104
|
$id: __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_getDeclId).call(this, en),
|
|
100
105
|
type: enumTypesArray.length === 1 ? enumTypesArray[0] : enumTypesArray,
|
|
101
106
|
enum: [...enumValues],
|
|
102
|
-
})
|
|
107
|
+
});
|
|
108
|
+
__classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_applyConstraints).call(this, en, withConstraints);
|
|
109
|
+
return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_createDeclaration).call(this, en, name, withConstraints);
|
|
103
110
|
}
|
|
104
111
|
unionDeclaration(union, name) {
|
|
105
|
-
|
|
112
|
+
const withConstraints = new ObjectBuilder({
|
|
106
113
|
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
107
114
|
$id: __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_getDeclId).call(this, union),
|
|
108
115
|
anyOf: this.emitter.emitUnionVariants(union),
|
|
109
|
-
})
|
|
116
|
+
});
|
|
117
|
+
__classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_applyConstraints).call(this, union, withConstraints);
|
|
118
|
+
return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_createDeclaration).call(this, union, name, withConstraints);
|
|
110
119
|
}
|
|
111
120
|
unionLiteral(union) {
|
|
112
121
|
this.emitter.getProgram().resolveTypeReference("Cadl.Foo");
|
|
@@ -141,12 +150,18 @@ export class JsonSchemaEmitter extends TypeEmitter {
|
|
|
141
150
|
// I don't think this is possible, confirm.
|
|
142
151
|
throw new Error("Can't form reference to declaration that hasn't been created yet");
|
|
143
152
|
}
|
|
153
|
+
// these will be undefined when creating a self-reference
|
|
154
|
+
const currentSfScope = pathUp[pathUp.length - 1];
|
|
155
|
+
const targetSfScope = pathDown[0];
|
|
156
|
+
if (targetSfScope && currentSfScope && !targetSfScope.sourceFile.meta.shouldEmit) {
|
|
157
|
+
currentSfScope.sourceFile.meta.bundledRefs.push(targetDeclaration);
|
|
158
|
+
}
|
|
144
159
|
if (targetDeclaration.value.$id) {
|
|
145
160
|
return { $ref: targetDeclaration.value.$id };
|
|
146
161
|
}
|
|
147
162
|
if (!commonScope) {
|
|
148
|
-
|
|
149
|
-
|
|
163
|
+
// when either targetSfScope or currentSfScope are undefined, we have a common scope
|
|
164
|
+
// (i.e. we are doing a self-reference)
|
|
150
165
|
const resolved = getRelativePathFromDirectory(getDirectoryPath(currentSfScope.sourceFile.path), targetSfScope.sourceFile.path, false);
|
|
151
166
|
return { $ref: resolved };
|
|
152
167
|
}
|
|
@@ -254,7 +269,7 @@ export class JsonSchemaEmitter extends TypeEmitter {
|
|
|
254
269
|
builderSchema.$schema = "https://json-schema.org/draft/2020-12/schema";
|
|
255
270
|
builderSchema.$id = __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_getDeclId).call(this, scalar);
|
|
256
271
|
__classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_applyConstraints).call(this, scalar, builderSchema);
|
|
257
|
-
return this.
|
|
272
|
+
return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_createDeclaration).call(this, scalar, name, builderSchema);
|
|
258
273
|
}
|
|
259
274
|
intrinsic(intrinsic, name) {
|
|
260
275
|
switch (name) {
|
|
@@ -265,6 +280,21 @@ export class JsonSchemaEmitter extends TypeEmitter {
|
|
|
265
280
|
}
|
|
266
281
|
throw new Error("Unknown intrinsic type " + name);
|
|
267
282
|
}
|
|
283
|
+
async writeOutput(sourceFiles) {
|
|
284
|
+
const toEmit = [];
|
|
285
|
+
for (const sf of sourceFiles) {
|
|
286
|
+
const emittedSf = this.emitter.emitSourceFile(sf);
|
|
287
|
+
if (sf.meta.shouldEmit) {
|
|
288
|
+
toEmit.push(emittedSf);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
for (const emittedSf of toEmit) {
|
|
292
|
+
await emitFile(this.emitter.getProgram(), {
|
|
293
|
+
path: emittedSf.path,
|
|
294
|
+
content: emittedSf.contents,
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
}
|
|
268
298
|
sourceFile(sourceFile) {
|
|
269
299
|
let serializedContent;
|
|
270
300
|
const decls = sourceFile.globalScope.declarations;
|
|
@@ -287,6 +317,18 @@ export class JsonSchemaEmitter extends TypeEmitter {
|
|
|
287
317
|
throw new Error("Emit error - multiple decls in single schema per file mode");
|
|
288
318
|
}
|
|
289
319
|
content = decls[0].value;
|
|
320
|
+
if (sourceFile.meta.bundledRefs.length > 0) {
|
|
321
|
+
// bundle any refs, including refs of refs
|
|
322
|
+
content.$defs = {};
|
|
323
|
+
const refsToBundle = [...sourceFile.meta.bundledRefs];
|
|
324
|
+
while (refsToBundle.length > 0) {
|
|
325
|
+
const decl = refsToBundle.shift();
|
|
326
|
+
content.$defs[decl.name] = decl.value;
|
|
327
|
+
// all scopes are source file scopes in this emitter
|
|
328
|
+
const refSf = decl.scope.sourceFile;
|
|
329
|
+
refsToBundle.push(...refSf.meta.bundledRefs);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
290
332
|
}
|
|
291
333
|
if (this.emitter.getOptions()["file-type"] === "json") {
|
|
292
334
|
serializedContent = JSON.stringify(content, null, 4);
|
|
@@ -303,6 +345,7 @@ export class JsonSchemaEmitter extends TypeEmitter {
|
|
|
303
345
|
programContext(program) {
|
|
304
346
|
if (this.emitter.getOptions().bundleId) {
|
|
305
347
|
const sourceFile = this.emitter.createSourceFile(this.emitter.getOptions().bundleId);
|
|
348
|
+
sourceFile.meta.shouldEmit = true;
|
|
306
349
|
return { scope: sourceFile.globalScope };
|
|
307
350
|
}
|
|
308
351
|
else {
|
|
@@ -317,7 +360,7 @@ export class JsonSchemaEmitter extends TypeEmitter {
|
|
|
317
360
|
if (__classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_isStdType).call(this, model) && model.name === "object") {
|
|
318
361
|
return {};
|
|
319
362
|
}
|
|
320
|
-
return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, model
|
|
363
|
+
return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, model);
|
|
321
364
|
}
|
|
322
365
|
}
|
|
323
366
|
modelInstantiationContext(model) {
|
|
@@ -325,7 +368,7 @@ export class JsonSchemaEmitter extends TypeEmitter {
|
|
|
325
368
|
return {};
|
|
326
369
|
}
|
|
327
370
|
else {
|
|
328
|
-
return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this,
|
|
371
|
+
return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, model);
|
|
329
372
|
}
|
|
330
373
|
}
|
|
331
374
|
arrayDeclarationContext(array) {
|
|
@@ -333,7 +376,7 @@ export class JsonSchemaEmitter extends TypeEmitter {
|
|
|
333
376
|
return {};
|
|
334
377
|
}
|
|
335
378
|
else {
|
|
336
|
-
return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, array
|
|
379
|
+
return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, array);
|
|
337
380
|
}
|
|
338
381
|
}
|
|
339
382
|
enumDeclarationContext(en) {
|
|
@@ -341,7 +384,7 @@ export class JsonSchemaEmitter extends TypeEmitter {
|
|
|
341
384
|
return {};
|
|
342
385
|
}
|
|
343
386
|
else {
|
|
344
|
-
return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, en
|
|
387
|
+
return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, en);
|
|
345
388
|
}
|
|
346
389
|
}
|
|
347
390
|
unionDeclarationContext(union) {
|
|
@@ -349,7 +392,7 @@ export class JsonSchemaEmitter extends TypeEmitter {
|
|
|
349
392
|
return {};
|
|
350
393
|
}
|
|
351
394
|
else {
|
|
352
|
-
return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, union
|
|
395
|
+
return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, union);
|
|
353
396
|
}
|
|
354
397
|
}
|
|
355
398
|
scalarDeclarationContext(scalar) {
|
|
@@ -360,11 +403,11 @@ export class JsonSchemaEmitter extends TypeEmitter {
|
|
|
360
403
|
return {};
|
|
361
404
|
}
|
|
362
405
|
else {
|
|
363
|
-
return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, scalar
|
|
406
|
+
return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, scalar);
|
|
364
407
|
}
|
|
365
408
|
}
|
|
366
409
|
}
|
|
367
|
-
_JsonSchemaEmitter_seenIds = new WeakMap(), _JsonSchemaEmitter_instances = new WeakSet(), _JsonSchemaEmitter_requiredModelProperties = function _JsonSchemaEmitter_requiredModelProperties(model) {
|
|
410
|
+
_JsonSchemaEmitter_seenIds = new WeakMap(), _JsonSchemaEmitter_typeForSourceFile = new WeakMap(), _JsonSchemaEmitter_refToDecl = new WeakMap(), _JsonSchemaEmitter_instances = new WeakSet(), _JsonSchemaEmitter_requiredModelProperties = function _JsonSchemaEmitter_requiredModelProperties(model) {
|
|
368
411
|
const requiredProps = [];
|
|
369
412
|
for (const prop of model.properties.values()) {
|
|
370
413
|
if (!prop.optional) {
|
|
@@ -373,6 +416,7 @@ _JsonSchemaEmitter_seenIds = new WeakMap(), _JsonSchemaEmitter_instances = new W
|
|
|
373
416
|
}
|
|
374
417
|
return requiredProps.length > 0 ? requiredProps : undefined;
|
|
375
418
|
}, _JsonSchemaEmitter_applyConstraints = function _JsonSchemaEmitter_applyConstraints(type, schema) {
|
|
419
|
+
var _a;
|
|
376
420
|
const applyConstraint = (fn, key) => {
|
|
377
421
|
const value = fn(this.emitter.getProgram(), type);
|
|
378
422
|
if (value !== undefined) {
|
|
@@ -424,6 +468,19 @@ _JsonSchemaEmitter_seenIds = new WeakMap(), _JsonSchemaEmitter_instances = new W
|
|
|
424
468
|
}
|
|
425
469
|
schema.set("prefixItems", prefixItemsSchema);
|
|
426
470
|
}
|
|
471
|
+
const extensions = getExtensions(this.emitter.getProgram(), type);
|
|
472
|
+
for (const extension of extensions) {
|
|
473
|
+
// todo: fix up when we have an authoritative way to ask "am I an instantiation of that template"
|
|
474
|
+
if (extension.value.kind === "Model" &&
|
|
475
|
+
extension.value.name === "Json" &&
|
|
476
|
+
((_a = extension.value.namespace) === null || _a === void 0 ? void 0 : _a.name) === "JsonSchema") {
|
|
477
|
+
// we check in a decorator
|
|
478
|
+
schema.set(extension.key, typespecTypeToJson(extension.value.properties.get("value").type, null)[0]);
|
|
479
|
+
}
|
|
480
|
+
else {
|
|
481
|
+
schema.set(extension.key, this.emitter.emitTypeReference(extension.value));
|
|
482
|
+
}
|
|
483
|
+
}
|
|
427
484
|
}, _JsonSchemaEmitter_scalarBuiltinBaseType = function _JsonSchemaEmitter_scalarBuiltinBaseType(scalar) {
|
|
428
485
|
let current = scalar;
|
|
429
486
|
while (current.baseScalar && !__classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_isStdType).call(this, current)) {
|
|
@@ -433,6 +490,13 @@ _JsonSchemaEmitter_seenIds = new WeakMap(), _JsonSchemaEmitter_instances = new W
|
|
|
433
490
|
return current;
|
|
434
491
|
}
|
|
435
492
|
return null;
|
|
493
|
+
}, _JsonSchemaEmitter_createDeclaration = function _JsonSchemaEmitter_createDeclaration(type, name, schema) {
|
|
494
|
+
const decl = this.emitter.result.declaration(name, schema);
|
|
495
|
+
if (!this.emitter.getOptions().bundleId && !this.emitter.getOptions().emitAllRefs) {
|
|
496
|
+
const declSf = this.emitter.getContext().scope.sourceFile;
|
|
497
|
+
declSf.meta.shouldEmit = isJsonSchemaDeclaration(this.emitter.getProgram(), type);
|
|
498
|
+
}
|
|
499
|
+
return decl;
|
|
436
500
|
}, _JsonSchemaEmitter_isStdType = function _JsonSchemaEmitter_isStdType(type) {
|
|
437
501
|
return this.emitter.getProgram().checker.isStdType(type);
|
|
438
502
|
}, _JsonSchemaEmitter_getCurrentSourceFile = function _JsonSchemaEmitter_getCurrentSourceFile() {
|
|
@@ -484,8 +548,11 @@ _JsonSchemaEmitter_seenIds = new WeakMap(), _JsonSchemaEmitter_instances = new W
|
|
|
484
548
|
}
|
|
485
549
|
__classPrivateFieldGet(this, _JsonSchemaEmitter_seenIds, "f").add(id);
|
|
486
550
|
return id;
|
|
487
|
-
}, _JsonSchemaEmitter_newFileScope = function _JsonSchemaEmitter_newFileScope(
|
|
488
|
-
const sourceFile = this.emitter.createSourceFile(`${
|
|
551
|
+
}, _JsonSchemaEmitter_newFileScope = function _JsonSchemaEmitter_newFileScope(type) {
|
|
552
|
+
const sourceFile = this.emitter.createSourceFile(`${this.declarationName(type)}.${__classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_fileExtension).call(this)}`);
|
|
553
|
+
sourceFile.meta.shouldEmit = true;
|
|
554
|
+
sourceFile.meta.bundledRefs = [];
|
|
555
|
+
__classPrivateFieldGet(this, _JsonSchemaEmitter_typeForSourceFile, "f").set(sourceFile, type);
|
|
489
556
|
return {
|
|
490
557
|
scope: sourceFile.globalScope,
|
|
491
558
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-schema-emitter.js","sourceRoot":"","sources":["../../src/json-schema-emitter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"json-schema-emitter.js","sourceRoot":"","sources":["../../src/json-schema-emitter.ts"],"names":[],"mappings":"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"}
|
package/dist/src/lib.d.ts
CHANGED
|
@@ -25,6 +25,12 @@ export interface JSONSchemaEmitterOptions {
|
|
|
25
25
|
* the @jsonSchema decorator.
|
|
26
26
|
*/
|
|
27
27
|
emitAllModels?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* When true, emit all references as json schema files, even if the referenced
|
|
30
|
+
* type does not have the `@jsonSchema` decorator or is not within a namespace
|
|
31
|
+
* with the `@jsonSchema` decorator.
|
|
32
|
+
*/
|
|
33
|
+
emitAllRefs?: boolean;
|
|
28
34
|
}
|
|
29
35
|
export declare const libDef: {
|
|
30
36
|
readonly name: "@typespec/json-schema";
|
package/dist/src/lib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE3E,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AACvC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEhD,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAC;IAEvB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,aAAa,CAAC;IAEjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE3E,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AACvC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEhD,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAC;IAEvB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,aAAa,CAAC;IAEjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA2CD,eAAO,MAAM,MAAM;;;;;;CAMT,CAAC;AAEX,eAAO,MAAM,IAAI;;4BAAgC,CAAC;AAClD,eAAO,MAAQ,gBAAgB;;;;mBAAE,iBAAiB,0BAAS,CAAC;AAE5D,MAAM,MAAM,iBAAiB,GAAG,OAAO,IAAI,CAAC"}
|
package/dist/src/lib.js
CHANGED
|
@@ -28,6 +28,11 @@ const EmitterOptionsSchema = {
|
|
|
28
28
|
nullable: true,
|
|
29
29
|
description: "When true, emit all model declarations to JSON Schema without requiring the @jsonSchema decorator.",
|
|
30
30
|
},
|
|
31
|
+
emitAllRefs: {
|
|
32
|
+
type: "boolean",
|
|
33
|
+
nullable: true,
|
|
34
|
+
description: "When true, emit all references as json schema files, even if the referenced type does not have the `@jsonSchema` decorator or is not within a namespace with the `@jsonSchema` decorator.",
|
|
35
|
+
},
|
|
31
36
|
},
|
|
32
37
|
required: [],
|
|
33
38
|
};
|
package/dist/src/lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAkB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAkB,MAAM,oBAAoB,CAAC;AAyC3E,MAAM,oBAAoB,GAA6C;IACrE,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,KAAK;IAC3B,UAAU,EAAE;QACV,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;YACtB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,8CAA8C;SAC5D;QACD,gBAAgB,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAC1B,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE;;;2DAGwC;SACtD;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EACT,uLAAuL;SAC1L;QACD,aAAa,EAAE;YACb,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,IAAI;YACd,WAAW,EACT,oGAAoG;SACvG;QACD,WAAW,EAAE;YACX,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,IAAI;YACd,WAAW,EACT,2LAA2L;SAC9L;KACF;IACD,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,EAAE;IACf,OAAO,EAAE;QACP,OAAO,EAAE,oBAAgE;KAC1E;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC"}
|
package/lib/main.tsp
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "../dist/src/index.js";
|
|
2
2
|
|
|
3
|
-
namespace JsonSchema;
|
|
3
|
+
namespace TypeSpec.JsonSchema;
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Add to namespaces to emit models within that namespace to JSON schema.
|
|
@@ -109,6 +109,18 @@ extern dec contentMediaType(target: string | Reflection.ModelProperty, value: va
|
|
|
109
109
|
*/
|
|
110
110
|
extern dec contentSchema(target: string | Reflection.ModelProperty, value: unknown);
|
|
111
111
|
|
|
112
|
+
/**
|
|
113
|
+
* Specify a custom property to add to the emitted schema. Useful for adding custom keywords
|
|
114
|
+
* and other vendor-specific extensions. The value will be converted to a schema unless the parameter
|
|
115
|
+
* is wrapped in the `Json<T>` template. For example, `@extension("x-schema", { x: "value" })` will
|
|
116
|
+
* emit a JSON schema value for `x-schema`, whereas `@extension("x-schema", Json<{x: "value"}>)` will
|
|
117
|
+
* emit the raw JSON code `{x: "value"}`.
|
|
118
|
+
*
|
|
119
|
+
* @param key the name of the keyword of vendor extension, e.g. `x-custom`.
|
|
120
|
+
* @param value the value of the keyword. Will be converted to a schema unless wrapped in Json<T>.
|
|
121
|
+
*/
|
|
122
|
+
extern dec extension(target: unknown, key: valueof string, value: unknown);
|
|
123
|
+
|
|
112
124
|
enum Format {
|
|
113
125
|
dateTime: "date-time",
|
|
114
126
|
date: "date",
|
|
@@ -129,3 +141,19 @@ enum Format {
|
|
|
129
141
|
relativeJsonPointer: "relative-json-pointer",
|
|
130
142
|
regex: "regex",
|
|
131
143
|
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Specify that the provided template argument should be emitted as raw JSON or YAML
|
|
147
|
+
* as opposed to a schema. Use in combination with the @extension decorator. For example,
|
|
148
|
+
* `@extension("x-schema", { x: "value" })` will emit a JSON schema value for `x-schema`,
|
|
149
|
+
* whereas `@extension("x-schema", Json<{x: "value"}>)` will emit the raw JSON code
|
|
150
|
+
* `{x: "value"}`.
|
|
151
|
+
*/
|
|
152
|
+
@Private.validatesRawJson(T)
|
|
153
|
+
model Json<T> {
|
|
154
|
+
value: T;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
namespace Private {
|
|
158
|
+
extern dec validatesRawJson(target: Reflection.Model, value: unknown);
|
|
159
|
+
}
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typespec/json-schema",
|
|
3
|
-
"version": "0.46.0-dev.
|
|
3
|
+
"version": "0.46.0-dev.10",
|
|
4
4
|
"author": "Microsoft Corporation",
|
|
5
5
|
"description": "TypeSpec library for emitting TypeSpec to JSON Schema and converting JSON Schema to TypeSpec",
|
|
6
|
-
"homepage": "https://github.com/
|
|
7
|
-
"readme": "https://github.com/
|
|
6
|
+
"homepage": "https://github.com/microsoft/typespec",
|
|
7
|
+
"readme": "https://github.com/microsoft/typespec/blob/master/README.md",
|
|
8
8
|
"license": "MIT",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
|
-
"url": "git+https://github.com/
|
|
11
|
+
"url": "git+https://github.com/microsoft/typespec.git"
|
|
12
12
|
},
|
|
13
13
|
"bugs": {
|
|
14
|
-
"url": "https://github.com/
|
|
14
|
+
"url": "https://github.com/microsoft/typespec/issues"
|
|
15
15
|
},
|
|
16
16
|
"keywords": [
|
|
17
17
|
"TypeSpec",
|
|
@@ -32,22 +32,22 @@
|
|
|
32
32
|
"!dist/test/**"
|
|
33
33
|
],
|
|
34
34
|
"peerDependencies": {
|
|
35
|
-
"@typespec/compiler": "~0.45.
|
|
35
|
+
"@typespec/compiler": "~0.45.2 || >=0.46.0-dev <0.46.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@types/mocha": "~10.0.
|
|
38
|
+
"@types/mocha": "~10.0.1",
|
|
39
39
|
"@types/node": "~18.11.9",
|
|
40
|
-
"@typespec/compiler": "~0.45.
|
|
40
|
+
"@typespec/compiler": "~0.45.2 || >=0.46.0-dev <0.46.0",
|
|
41
41
|
"@typespec/library-linter": "~0.45.0 || >=0.46.0-dev <0.46.0",
|
|
42
42
|
"@typespec/eslint-plugin": "~0.45.0 || >=0.46.0-dev <0.46.0",
|
|
43
43
|
"@typespec/eslint-config-typespec": "~0.7.0 || >=0.8.0-dev <0.8.0",
|
|
44
|
-
"eslint": "^8.
|
|
44
|
+
"eslint": "^8.42.0",
|
|
45
45
|
"mocha": "~10.2.0",
|
|
46
46
|
"mocha-junit-reporter": "~2.2.0",
|
|
47
47
|
"mocha-multi-reporters": "~1.5.1",
|
|
48
|
-
"c8": "~
|
|
49
|
-
"rimraf": "~5.0.
|
|
50
|
-
"typescript": "~5.
|
|
48
|
+
"c8": "~8.0.0",
|
|
49
|
+
"rimraf": "~5.0.1",
|
|
50
|
+
"typescript": "~5.1.3",
|
|
51
51
|
"ajv": "~8.12.0",
|
|
52
52
|
"@types/js-yaml": "~4.0.1",
|
|
53
53
|
"@typespec/internal-build-utils": "~0.4.2 || >=0.5.0-dev <0.5.0",
|
|
@@ -65,7 +65,6 @@
|
|
|
65
65
|
"test": "mocha",
|
|
66
66
|
"test-official": "c8 mocha --forbid-only --reporter mocha-multi-reporters",
|
|
67
67
|
"lint": "eslint . --ext .ts --max-warnings=0",
|
|
68
|
-
"lint:fix": "eslint . --fix --ext .ts"
|
|
69
|
-
"compile-samples": "tsp compile "
|
|
68
|
+
"lint:fix": "eslint . --fix --ext .ts"
|
|
70
69
|
}
|
|
71
70
|
}
|