@typespec/json-schema 0.46.0-dev.8 → 0.46.0

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 ADDED
@@ -0,0 +1,87 @@
1
+ # TypeSpec JSON Schema Emitter
2
+
3
+ This package provides [TypeSpec](https://github.com/microsoft/TypeSpec) support for emitting JSON Schema version `2020-12` from TypeSpec definitions. It also provides [decorators for adding JSON Schema constraints](https://microsoft.github.io/typespec/standard-library/json-schema/reference/decorators). The emitter supports either YAML or JSON output and can be configured to emit one file per schema or bundle all schemas in to a single file.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @typespec/json-schema
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ Add the `@jsonSchema` decorator to any types or namespaces you want to emit as JSON Schema.
14
+
15
+ ```TypeSpec
16
+ import "@typespec/json-schema";
17
+
18
+ using TypeSpec.JsonSchema;
19
+
20
+ @jsonSchema
21
+ namespace Example;
22
+
23
+ model Car {
24
+ make: string;
25
+ model: string;
26
+ }
27
+ ```
28
+
29
+ To emit JSON Schema, use either of the following:
30
+
31
+ 1. Via the command line
32
+
33
+ ```bash
34
+ tsp compile . --emit @typespec/json-schema
35
+ ```
36
+
37
+ 2. Via the config
38
+
39
+ Add the following to the `tspconfig.yaml` file.
40
+
41
+ ```yaml
42
+ emitters:
43
+ @typespec/json-schema: true
44
+ ```
45
+
46
+ For more information, consult the [JSON Schema documentation](https://microsoft.github.io/typespec/standard-library/json-schema/reference).
47
+
48
+ ## Emitter options
49
+
50
+ ### `file-type`
51
+
52
+ **Type:** `"yaml" | "json"`
53
+
54
+ Serialize the schema as either yaml or json.
55
+
56
+ ### `int64-strategy`
57
+
58
+ **Type:** `"string" | "number"`
59
+
60
+ How to handle 64 bit integers on the wire. Options are:
61
+
62
+ - string: serialize as a string (widely interoperable)
63
+ - number: serialize as a number (not widely interoperable)
64
+
65
+ ### `bundleId`
66
+
67
+ **Type:** `string`
68
+
69
+ When provided, bundle all the schemas into a single json schema document with schemas under $defs. The provided id is the id of the root document and is also used for the file name.
70
+
71
+ ### `emitAllModels`
72
+
73
+ **Type:** `boolean`
74
+
75
+ When true, emit all model declarations to JSON Schema without requiring the @jsonSchema decorator.
76
+
77
+ ### `emitAllRefs`
78
+
79
+ **Type:** `boolean`
80
+
81
+ 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.
82
+
83
+ ## See also
84
+
85
+ - [Json Schema Emitter Documentation](https://microsoft.github.io/typespec/standard-library/json-schema/reference)
86
+ - [TypeSpec Getting Started](https://github.com/microsoft/typespec#getting-started)
87
+ - [TypeSpec Website](https://microsoft.github.io/typespec)
@@ -1,14 +1,17 @@
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
- export { $lib } from "./lib.js";
4
- export declare const namespace = "JsonSchema";
3
+ export { JsonSchemaEmitter } from "./json-schema-emitter.js";
4
+ export { $lib, EmitterOptionsSchema, JSONSchemaEmitterOptions } from "./lib.js";
5
+ export declare const namespace = "TypeSpec.JsonSchema";
5
6
  export type JsonSchemaDeclaration = Model | Union | Enum | Scalar;
6
7
  export declare function $onEmit(context: EmitContext<JSONSchemaEmitterOptions>): Promise<void>;
7
8
  export declare function $jsonSchema(context: DecoratorContext, target: JsonSchemaDeclaration | Namespace, baseUriOrId?: string): void;
8
9
  export declare function $baseUri(context: DecoratorContext, target: Namespace, baseUri: string): void;
9
10
  export declare function getBaseUri(program: Program, target: Type): any;
10
11
  export declare function findBaseUri(program: Program, target: JsonSchemaDeclaration | Namespace): string | undefined;
12
+ export declare function isJsonSchemaDeclaration(program: Program, target: JsonSchemaDeclaration): boolean;
11
13
  export declare function getJsonSchemaTypes(program: Program): (Namespace | Model)[];
14
+ export declare function getJsonSchema(program: Program, target: Type): boolean;
12
15
  export declare function $multipleOf(context: DecoratorContext, target: Model, value: number): void;
13
16
  export declare function getMultipleOf(program: Program, target: Type): any;
14
17
  export declare function $id(context: DecoratorContext, target: Model | Union | Enum | Scalar, value: string): void;
@@ -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":"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"}
package/dist/src/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import { typespecTypeToJson, } from "@typespec/compiler";
2
2
  import { JsonSchemaEmitter } from "./json-schema-emitter.js";
3
3
  import { createStateSymbol } from "./lib.js";
4
- export { $lib } from "./lib.js";
5
- export const namespace = "JsonSchema";
4
+ export { JsonSchemaEmitter } from "./json-schema-emitter.js";
5
+ export { $lib, EmitterOptionsSchema } from "./lib.js";
6
+ export const namespace = "TypeSpec.JsonSchema";
6
7
  const jsonSchemaKey = createStateSymbol("JsonSchema");
7
8
  export async function $onEmit(context) {
8
9
  const emitter = context.getAssetEmitter(JsonSchemaEmitter);
@@ -43,9 +44,22 @@ export function findBaseUri(program, target) {
43
44
  } while (!baseUrl && current);
44
45
  return baseUrl;
45
46
  }
47
+ export function isJsonSchemaDeclaration(program, target) {
48
+ let current = target;
49
+ do {
50
+ if (getJsonSchema(program, current)) {
51
+ return true;
52
+ }
53
+ current = current.namespace;
54
+ } while (current);
55
+ return false;
56
+ }
46
57
  export function getJsonSchemaTypes(program) {
47
58
  return [...(program.stateSet(jsonSchemaKey) || [])];
48
59
  }
60
+ export function getJsonSchema(program, target) {
61
+ return program.stateSet(jsonSchemaKey).has(target);
62
+ }
49
63
  const multipleOfKey = createStateSymbol("JsonSchema.multipleOf");
50
64
  export function $multipleOf(context, target, value) {
51
65
  context.program.stateMap(multipleOfKey).set(target, value);
@@ -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":"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"}
@@ -1,11 +1,11 @@
1
- import { BooleanLiteral, Enum, IntrinsicType, Model, ModelProperty, NumericLiteral, Program, Scalar, StringLiteral, Type, Union, UnionVariant } from "@typespec/compiler";
1
+ import { BooleanLiteral, Enum, EnumMember, IntrinsicType, Model, ModelProperty, NumericLiteral, Program, Scalar, StringLiteral, Type, Union, UnionVariant } from "@typespec/compiler";
2
2
  import { Context, Declaration, EmitEntity, EmittedSourceFile, EmitterOutput, Scope, SourceFile, TypeEmitter } from "@typespec/compiler/emitter-framework";
3
3
  import { JSONSchemaEmitterOptions } from "./lib.js";
4
4
  export declare class JsonSchemaEmitter extends TypeEmitter<Record<string, any>, JSONSchemaEmitterOptions> {
5
5
  #private;
6
6
  modelDeclaration(model: Model, name: string): EmitterOutput<object>;
7
7
  modelLiteral(model: Model): EmitterOutput<object>;
8
- modelInstantiation(model: Model, name: string): EmitterOutput<Record<string, any>>;
8
+ modelInstantiation(model: Model, name: string | undefined): EmitterOutput<Record<string, any>>;
9
9
  arrayDeclaration(array: Model, name: string, elementType: Type): EmitterOutput<object>;
10
10
  arrayLiteral(array: Model, elementType: Type): EmitterOutput<object>;
11
11
  modelProperties(model: Model): EmitterOutput<object>;
@@ -14,6 +14,7 @@ export declare class JsonSchemaEmitter extends TypeEmitter<Record<string, any>,
14
14
  stringLiteral(string: StringLiteral): EmitterOutput<object>;
15
15
  numericLiteral(number: NumericLiteral): EmitterOutput<object>;
16
16
  enumDeclaration(en: Enum, name: string): EmitterOutput<object>;
17
+ enumMemberReference(member: EnumMember): EmitterOutput<Record<string, any>>;
17
18
  unionDeclaration(union: Union, name: string): EmitterOutput<object>;
18
19
  unionLiteral(union: Union): EmitterOutput<object>;
19
20
  unionVariants(union: Union): EmitterOutput<object>;
@@ -22,10 +23,11 @@ export declare class JsonSchemaEmitter extends TypeEmitter<Record<string, any>,
22
23
  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
24
  scalarDeclaration(scalar: Scalar, name: string): EmitterOutput<object>;
24
25
  intrinsic(intrinsic: IntrinsicType, name: string): EmitterOutput<object>;
26
+ writeOutput(sourceFiles: SourceFile<Record<string, any>>[]): Promise<void>;
25
27
  sourceFile(sourceFile: SourceFile<object>): EmittedSourceFile;
26
28
  programContext(program: Program): Context;
27
29
  modelDeclarationContext(model: Model, name: string): Context;
28
- modelInstantiationContext(model: Model): Context;
30
+ modelInstantiationContext(model: Model, name: string | undefined): Context;
29
31
  arrayDeclarationContext(array: Model): Context;
30
32
  enumDeclarationContext(en: Enum): Context;
31
33
  unionDeclarationContext(union: Union): Context;
@@ -1 +1 @@
1
- {"version":3,"file":"json-schema-emitter.d.ts","sourceRoot":"","sources":["../../src/json-schema-emitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-schema-emitter.d.ts","sourceRoot":"","sources":["../../src/json-schema-emitter.ts"],"names":[],"mappings":"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"}
@@ -3,22 +3,24 @@ 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, typespecTypeToJson, } 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, getExtensions, 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) {
19
21
  const schema = new ObjectBuilder({
20
22
  $schema: "https://json-schema.org/draft/2020-12/schema",
21
- $id: __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_getDeclId).call(this, model),
23
+ $id: __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_getDeclId).call(this, model, name),
22
24
  type: "object",
23
25
  properties: this.emitter.emitModelProperties(model),
24
26
  required: __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_requiredModelProperties).call(this, model),
@@ -32,7 +34,7 @@ export class JsonSchemaEmitter extends TypeEmitter {
32
34
  schema.set("additionalProperties", this.emitter.emitTypeReference(model.indexer.value));
33
35
  }
34
36
  __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_applyConstraints).call(this, model, schema);
35
- return this.emitter.result.declaration(name, schema);
37
+ return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_createDeclaration).call(this, model, name, schema);
36
38
  }
37
39
  modelLiteral(model) {
38
40
  const schema = new ObjectBuilder({
@@ -40,20 +42,26 @@ export class JsonSchemaEmitter extends TypeEmitter {
40
42
  properties: this.emitter.emitModelProperties(model),
41
43
  required: __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_requiredModelProperties).call(this, model),
42
44
  });
45
+ if (model.indexer) {
46
+ schema.set("additionalProperties", this.emitter.emitTypeReference(model.indexer.value));
47
+ }
43
48
  return schema;
44
49
  }
45
50
  modelInstantiation(model, name) {
51
+ if (!name) {
52
+ return this.modelLiteral(model);
53
+ }
46
54
  return this.modelDeclaration(model, name);
47
55
  }
48
56
  arrayDeclaration(array, name, elementType) {
49
57
  const schema = new ObjectBuilder({
50
58
  $schema: "https://json-schema.org/draft/2020-12/schema",
51
- $id: __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_getDeclId).call(this, array),
59
+ $id: __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_getDeclId).call(this, array, name),
52
60
  type: "array",
53
61
  items: this.emitter.emitTypeReference(elementType),
54
62
  });
55
63
  __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_applyConstraints).call(this, array, schema);
56
- return this.emitter.result.declaration(name, schema);
64
+ return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_createDeclaration).call(this, array, name, schema);
57
65
  }
58
66
  arrayLiteral(array, elementType) {
59
67
  return new ObjectBuilder({
@@ -99,21 +107,32 @@ export class JsonSchemaEmitter extends TypeEmitter {
99
107
  const enumTypesArray = [...enumTypes];
100
108
  const withConstraints = new ObjectBuilder({
101
109
  $schema: "https://json-schema.org/draft/2020-12/schema",
102
- $id: __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_getDeclId).call(this, en),
110
+ $id: __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_getDeclId).call(this, en, name),
103
111
  type: enumTypesArray.length === 1 ? enumTypesArray[0] : enumTypesArray,
104
112
  enum: [...enumValues],
105
113
  });
106
114
  __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_applyConstraints).call(this, en, withConstraints);
107
- return this.emitter.result.declaration(name, withConstraints);
115
+ return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_createDeclaration).call(this, en, name, withConstraints);
116
+ }
117
+ enumMemberReference(member) {
118
+ // would like to dispatch to the same `literal` codepaths but enum members aren't literal types
119
+ switch (typeof member.value) {
120
+ case "undefined":
121
+ return { type: "string", const: member.name };
122
+ case "string":
123
+ return { type: "string", const: member.value };
124
+ case "number":
125
+ return { type: "number", const: member.value };
126
+ }
108
127
  }
109
128
  unionDeclaration(union, name) {
110
129
  const withConstraints = new ObjectBuilder({
111
130
  $schema: "https://json-schema.org/draft/2020-12/schema",
112
- $id: __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_getDeclId).call(this, union),
131
+ $id: __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_getDeclId).call(this, union, name),
113
132
  anyOf: this.emitter.emitUnionVariants(union),
114
133
  });
115
134
  __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_applyConstraints).call(this, union, withConstraints);
116
- return this.emitter.result.declaration(name, withConstraints);
135
+ return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_createDeclaration).call(this, union, name, withConstraints);
117
136
  }
118
137
  unionLiteral(union) {
119
138
  this.emitter.getProgram().resolveTypeReference("Cadl.Foo");
@@ -148,12 +167,18 @@ export class JsonSchemaEmitter extends TypeEmitter {
148
167
  // I don't think this is possible, confirm.
149
168
  throw new Error("Can't form reference to declaration that hasn't been created yet");
150
169
  }
170
+ // these will be undefined when creating a self-reference
171
+ const currentSfScope = pathUp[pathUp.length - 1];
172
+ const targetSfScope = pathDown[0];
173
+ if (targetSfScope && currentSfScope && !targetSfScope.sourceFile.meta.shouldEmit) {
174
+ currentSfScope.sourceFile.meta.bundledRefs.push(targetDeclaration);
175
+ }
151
176
  if (targetDeclaration.value.$id) {
152
177
  return { $ref: targetDeclaration.value.$id };
153
178
  }
154
179
  if (!commonScope) {
155
- const currentSfScope = pathUp[pathUp.length - 1];
156
- const targetSfScope = pathDown[0];
180
+ // when either targetSfScope or currentSfScope are undefined, we have a common scope
181
+ // (i.e. we are doing a self-reference)
157
182
  const resolved = getRelativePathFromDirectory(getDirectoryPath(currentSfScope.sourceFile.path), targetSfScope.sourceFile.path, false);
158
183
  return { $ref: resolved };
159
184
  }
@@ -259,9 +284,9 @@ export class JsonSchemaEmitter extends TypeEmitter {
259
284
  return builderSchema;
260
285
  }
261
286
  builderSchema.$schema = "https://json-schema.org/draft/2020-12/schema";
262
- builderSchema.$id = __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_getDeclId).call(this, scalar);
287
+ builderSchema.$id = __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_getDeclId).call(this, scalar, name);
263
288
  __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_applyConstraints).call(this, scalar, builderSchema);
264
- return this.emitter.result.declaration(name, builderSchema);
289
+ return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_createDeclaration).call(this, scalar, name, builderSchema);
265
290
  }
266
291
  intrinsic(intrinsic, name) {
267
292
  switch (name) {
@@ -269,9 +294,27 @@ export class JsonSchemaEmitter extends TypeEmitter {
269
294
  return { type: "null" };
270
295
  case "unknown":
271
296
  return {};
297
+ case "never":
298
+ case "void":
299
+ return { not: {} };
272
300
  }
273
301
  throw new Error("Unknown intrinsic type " + name);
274
302
  }
303
+ async writeOutput(sourceFiles) {
304
+ const toEmit = [];
305
+ for (const sf of sourceFiles) {
306
+ const emittedSf = this.emitter.emitSourceFile(sf);
307
+ if (sf.meta.shouldEmit) {
308
+ toEmit.push(emittedSf);
309
+ }
310
+ }
311
+ for (const emittedSf of toEmit) {
312
+ await emitFile(this.emitter.getProgram(), {
313
+ path: emittedSf.path,
314
+ content: emittedSf.contents,
315
+ });
316
+ }
317
+ }
275
318
  sourceFile(sourceFile) {
276
319
  let serializedContent;
277
320
  const decls = sourceFile.globalScope.declarations;
@@ -293,7 +336,19 @@ export class JsonSchemaEmitter extends TypeEmitter {
293
336
  if (decls.length > 1) {
294
337
  throw new Error("Emit error - multiple decls in single schema per file mode");
295
338
  }
296
- content = decls[0].value;
339
+ content = { ...decls[0].value };
340
+ if (sourceFile.meta.bundledRefs.length > 0) {
341
+ // bundle any refs, including refs of refs
342
+ content.$defs = {};
343
+ const refsToBundle = [...sourceFile.meta.bundledRefs];
344
+ while (refsToBundle.length > 0) {
345
+ const decl = refsToBundle.shift();
346
+ content.$defs[decl.name] = decl.value;
347
+ // all scopes are source file scopes in this emitter
348
+ const refSf = decl.scope.sourceFile;
349
+ refsToBundle.push(...refSf.meta.bundledRefs);
350
+ }
351
+ }
297
352
  }
298
353
  if (this.emitter.getOptions()["file-type"] === "json") {
299
354
  serializedContent = JSON.stringify(content, null, 4);
@@ -310,6 +365,7 @@ export class JsonSchemaEmitter extends TypeEmitter {
310
365
  programContext(program) {
311
366
  if (this.emitter.getOptions().bundleId) {
312
367
  const sourceFile = this.emitter.createSourceFile(this.emitter.getOptions().bundleId);
368
+ sourceFile.meta.shouldEmit = true;
313
369
  return { scope: sourceFile.globalScope };
314
370
  }
315
371
  else {
@@ -324,15 +380,18 @@ export class JsonSchemaEmitter extends TypeEmitter {
324
380
  if (__classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_isStdType).call(this, model) && model.name === "object") {
325
381
  return {};
326
382
  }
327
- return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, model.name);
383
+ return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, model);
328
384
  }
329
385
  }
330
- modelInstantiationContext(model) {
386
+ modelInstantiationContext(model, name) {
331
387
  if (this.emitter.getOptions().bundleId) {
332
388
  return {};
333
389
  }
390
+ else if (name === undefined) {
391
+ return {};
392
+ }
334
393
  else {
335
- return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, this.declarationName(model));
394
+ return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, model);
336
395
  }
337
396
  }
338
397
  arrayDeclarationContext(array) {
@@ -340,7 +399,7 @@ export class JsonSchemaEmitter extends TypeEmitter {
340
399
  return {};
341
400
  }
342
401
  else {
343
- return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, array.name);
402
+ return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, array);
344
403
  }
345
404
  }
346
405
  enumDeclarationContext(en) {
@@ -348,7 +407,7 @@ export class JsonSchemaEmitter extends TypeEmitter {
348
407
  return {};
349
408
  }
350
409
  else {
351
- return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, en.name);
410
+ return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, en);
352
411
  }
353
412
  }
354
413
  unionDeclarationContext(union) {
@@ -356,7 +415,7 @@ export class JsonSchemaEmitter extends TypeEmitter {
356
415
  return {};
357
416
  }
358
417
  else {
359
- return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, union.name);
418
+ return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, union);
360
419
  }
361
420
  }
362
421
  scalarDeclarationContext(scalar) {
@@ -367,11 +426,11 @@ export class JsonSchemaEmitter extends TypeEmitter {
367
426
  return {};
368
427
  }
369
428
  else {
370
- return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, scalar.name);
429
+ return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_newFileScope).call(this, scalar);
371
430
  }
372
431
  }
373
432
  }
374
- _JsonSchemaEmitter_seenIds = new WeakMap(), _JsonSchemaEmitter_instances = new WeakSet(), _JsonSchemaEmitter_requiredModelProperties = function _JsonSchemaEmitter_requiredModelProperties(model) {
433
+ _JsonSchemaEmitter_seenIds = new WeakMap(), _JsonSchemaEmitter_typeForSourceFile = new WeakMap(), _JsonSchemaEmitter_refToDecl = new WeakMap(), _JsonSchemaEmitter_instances = new WeakSet(), _JsonSchemaEmitter_requiredModelProperties = function _JsonSchemaEmitter_requiredModelProperties(model) {
375
434
  const requiredProps = [];
376
435
  for (const prop of model.properties.values()) {
377
436
  if (!prop.optional) {
@@ -454,6 +513,13 @@ _JsonSchemaEmitter_seenIds = new WeakMap(), _JsonSchemaEmitter_instances = new W
454
513
  return current;
455
514
  }
456
515
  return null;
516
+ }, _JsonSchemaEmitter_createDeclaration = function _JsonSchemaEmitter_createDeclaration(type, name, schema) {
517
+ const decl = this.emitter.result.declaration(name, schema);
518
+ if (!this.emitter.getOptions().bundleId && !this.emitter.getOptions().emitAllRefs) {
519
+ const declSf = this.emitter.getContext().scope.sourceFile;
520
+ declSf.meta.shouldEmit = isJsonSchemaDeclaration(this.emitter.getProgram(), type);
521
+ }
522
+ return decl;
457
523
  }, _JsonSchemaEmitter_isStdType = function _JsonSchemaEmitter_isStdType(type) {
458
524
  return this.emitter.getProgram().checker.isStdType(type);
459
525
  }, _JsonSchemaEmitter_getCurrentSourceFile = function _JsonSchemaEmitter_getCurrentSourceFile() {
@@ -466,7 +532,7 @@ _JsonSchemaEmitter_seenIds = new WeakMap(), _JsonSchemaEmitter_instances = new W
466
532
  if (!scope)
467
533
  throw new Error("Didn't find source file scope");
468
534
  return scope.sourceFile;
469
- }, _JsonSchemaEmitter_getDeclId = function _JsonSchemaEmitter_getDeclId(type) {
535
+ }, _JsonSchemaEmitter_getDeclId = function _JsonSchemaEmitter_getDeclId(type, name) {
470
536
  const baseUri = findBaseUri(this.emitter.getProgram(), type);
471
537
  const explicitId = getId(this.emitter.getProgram(), type);
472
538
  if (explicitId) {
@@ -477,7 +543,7 @@ _JsonSchemaEmitter_seenIds = new WeakMap(), _JsonSchemaEmitter_instances = new W
477
543
  if (!type.name) {
478
544
  throw new Error("Type needs a name to emit a declaration id");
479
545
  }
480
- return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_checkForDuplicateId).call(this, idWithBaseURI(this.declarationName(type), baseUri));
546
+ return __classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_checkForDuplicateId).call(this, idWithBaseURI(name, baseUri));
481
547
  }
482
548
  else {
483
549
  // generate the ID based on the file path
@@ -505,8 +571,11 @@ _JsonSchemaEmitter_seenIds = new WeakMap(), _JsonSchemaEmitter_instances = new W
505
571
  }
506
572
  __classPrivateFieldGet(this, _JsonSchemaEmitter_seenIds, "f").add(id);
507
573
  return id;
508
- }, _JsonSchemaEmitter_newFileScope = function _JsonSchemaEmitter_newFileScope(name) {
509
- const sourceFile = this.emitter.createSourceFile(`${name}.${__classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_fileExtension).call(this)}`);
574
+ }, _JsonSchemaEmitter_newFileScope = function _JsonSchemaEmitter_newFileScope(type) {
575
+ const sourceFile = this.emitter.createSourceFile(`${this.declarationName(type)}.${__classPrivateFieldGet(this, _JsonSchemaEmitter_instances, "m", _JsonSchemaEmitter_fileExtension).call(this)}`);
576
+ sourceFile.meta.shouldEmit = true;
577
+ sourceFile.meta.bundledRefs = [];
578
+ __classPrivateFieldGet(this, _JsonSchemaEmitter_typeForSourceFile, "f").set(sourceFile, type);
510
579
  return {
511
580
  scope: sourceFile.globalScope,
512
581
  };
@@ -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,7 +25,14 @@ 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
  }
35
+ export declare const EmitterOptionsSchema: JSONSchemaType<JSONSchemaEmitterOptions>;
29
36
  export declare const libDef: {
30
37
  readonly name: "@typespec/json-schema";
31
38
  readonly diagnostics: {};
@@ -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;CACzB;AAqCD,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"}
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;AAED,eAAO,MAAM,oBAAoB,EAAE,cAAc,CAAC,wBAAwB,CAuCzE,CAAC;AAEF,eAAO,MAAM,MAAM;;;;;;CAMT,CAAC;AAEX,eAAO,MAAM,IAAI;;4BAAgC,CAAC;AAElD,eAAO,MAAQ,gBAAgB;;;;mBAAE,iBAAiB,0BAAS,CAAC;AAE5D,MAAM,MAAM,iBAAiB,GAAG,OAAO,IAAI,CAAC"}
package/dist/src/lib.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { createTypeSpecLibrary } from "@typespec/compiler";
2
- const EmitterOptionsSchema = {
2
+ export const EmitterOptionsSchema = {
3
3
  type: "object",
4
4
  additionalProperties: false,
5
5
  properties: {
@@ -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
  };
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAkB,MAAM,oBAAoB,CAAC;AAkC3E,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;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"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAkB,MAAM,oBAAoB,CAAC;AAyC3E,MAAM,CAAC,MAAM,oBAAoB,GAA6C;IAC5E,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;AAElD,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.
@@ -96,7 +96,7 @@ extern dec prefixItems(target: unknown[] | Reflection.ModelProperty, value: unkn
96
96
  /**
97
97
  * Specify the content type of content stored in a string.
98
98
  *
99
- * @param the media type of the string contents
99
+ * @param value the media type of the string contents
100
100
  *
101
101
  */
102
102
  extern dec contentMediaType(target: string | Reflection.ModelProperty, value: valueof string);
@@ -117,10 +117,13 @@ extern dec contentSchema(target: string | Reflection.ModelProperty, value: unkno
117
117
  * emit the raw JSON code `{x: "value"}`.
118
118
  *
119
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>.
120
+ * @param value the value of the keyword. Will be converted to a schema unless wrapped in `Json<T>`.
121
121
  */
122
122
  extern dec extension(target: unknown, key: valueof string, value: unknown);
123
123
 
124
+ /**
125
+ * Well-known JSON Schema formats.
126
+ */
124
127
  enum Format {
125
128
  dateTime: "date-time",
126
129
  date: "date",
@@ -148,6 +151,8 @@ enum Format {
148
151
  * `@extension("x-schema", { x: "value" })` will emit a JSON schema value for `x-schema`,
149
152
  * whereas `@extension("x-schema", Json<{x: "value"}>)` will emit the raw JSON code
150
153
  * `{x: "value"}`.
154
+ *
155
+ * @template T the type to convert to raw JSON
151
156
  */
152
157
  @Private.validatesRawJson(T)
153
158
  model Json<T> {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/json-schema",
3
- "version": "0.46.0-dev.8",
3
+ "version": "0.46.0",
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",
@@ -32,15 +32,15 @@
32
32
  "!dist/test/**"
33
33
  ],
34
34
  "peerDependencies": {
35
- "@typespec/compiler": "~0.45.2 || >=0.46.0-dev <0.46.0"
35
+ "@typespec/compiler": "~0.46.0"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/mocha": "~10.0.1",
39
39
  "@types/node": "~18.11.9",
40
- "@typespec/compiler": "~0.45.2 || >=0.46.0-dev <0.46.0",
41
- "@typespec/library-linter": "~0.45.0 || >=0.46.0-dev <0.46.0",
42
- "@typespec/eslint-plugin": "~0.45.0 || >=0.46.0-dev <0.46.0",
43
- "@typespec/eslint-config-typespec": "~0.7.0 || >=0.8.0-dev <0.8.0",
40
+ "@typespec/compiler": "~0.46.0",
41
+ "@typespec/library-linter": "~0.46.0",
42
+ "@typespec/eslint-plugin": "~0.46.0",
43
+ "@typespec/eslint-config-typespec": "~0.46.0",
44
44
  "eslint": "^8.42.0",
45
45
  "mocha": "~10.2.0",
46
46
  "mocha-junit-reporter": "~2.2.0",
@@ -50,7 +50,7 @@
50
50
  "typescript": "~5.1.3",
51
51
  "ajv": "~8.12.0",
52
52
  "@types/js-yaml": "~4.0.1",
53
- "@typespec/internal-build-utils": "~0.4.2 || >=0.5.0-dev <0.5.0",
53
+ "@typespec/internal-build-utils": "~0.46.0",
54
54
  "js-yaml": "~4.1.0",
55
55
  "ajv-formats": "~2.1.1"
56
56
  },