@effect/platform 0.66.0 → 0.66.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.
@@ -0,0 +1,469 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as AST from "@effect/schema/AST";
5
+ import * as Arr from "effect/Array";
6
+ import * as Option from "effect/Option";
7
+ import * as Predicate from "effect/Predicate";
8
+ import * as Record from "effect/Record";
9
+ /**
10
+ * @category encoding
11
+ * @since 1.0.0
12
+ */
13
+ export const make = schema => {
14
+ const $defs = {};
15
+ const out = go(schema.ast, $defs, true, []);
16
+ // clean up self-referencing entries
17
+ for (const id in $defs) {
18
+ if ($defs[id]["$ref"] === get$ref(id)) {
19
+ delete $defs[id];
20
+ }
21
+ }
22
+ if (!Record.isEmptyRecord($defs)) {
23
+ out.$defs = $defs;
24
+ }
25
+ return out;
26
+ };
27
+ const constAny = {
28
+ $id: "/schemas/any"
29
+ };
30
+ const constUnknown = {
31
+ $id: "/schemas/unknown"
32
+ };
33
+ const constVoid = {
34
+ $id: "/schemas/void"
35
+ };
36
+ const constAnyObject = {
37
+ "$id": "/schemas/object",
38
+ "anyOf": [{
39
+ "type": "object"
40
+ }, {
41
+ "type": "array"
42
+ }]
43
+ };
44
+ const constEmpty = {
45
+ "$id": "/schemas/{}",
46
+ "anyOf": [{
47
+ "type": "object"
48
+ }, {
49
+ "type": "array"
50
+ }]
51
+ };
52
+ const getJsonSchemaAnnotations = annotated => Record.getSomes({
53
+ description: AST.getDescriptionAnnotation(annotated),
54
+ title: AST.getTitleAnnotation(annotated),
55
+ examples: AST.getExamplesAnnotation(annotated),
56
+ default: AST.getDefaultAnnotation(annotated)
57
+ });
58
+ const pruneUndefinedKeyword = ps => {
59
+ const type = ps.type;
60
+ if (AST.isUnion(type) && Option.isNone(AST.getJSONSchemaAnnotation(type))) {
61
+ const types = type.types.filter(type => !AST.isUndefinedKeyword(type));
62
+ if (types.length < type.types.length) {
63
+ return AST.Union.make(types, type.annotations);
64
+ }
65
+ }
66
+ };
67
+ const DEFINITION_PREFIX = "#/$defs/";
68
+ const get$ref = id => `${DEFINITION_PREFIX}${id}`;
69
+ const getRefinementInnerTransformation = ast => {
70
+ switch (ast.from._tag) {
71
+ case "Transformation":
72
+ return ast.from;
73
+ case "Refinement":
74
+ return getRefinementInnerTransformation(ast.from);
75
+ case "Suspend":
76
+ {
77
+ const from = ast.from.f();
78
+ if (AST.isRefinement(from)) {
79
+ return getRefinementInnerTransformation(from);
80
+ }
81
+ }
82
+ }
83
+ };
84
+ const isParseJsonTransformation = ast => ast.annotations[AST.TypeAnnotationId] === ParseJsonTypeId;
85
+ const isOverrideAnnotation = jsonSchema => {
86
+ return "type" in jsonSchema || "oneOf" in jsonSchema || "anyOf" in jsonSchema || "const" in jsonSchema || "enum" in jsonSchema || "$ref" in jsonSchema;
87
+ };
88
+ const go = (ast, $defs, handleIdentifier, path) => {
89
+ const hook = AST.getJSONSchemaAnnotation(ast);
90
+ if (Option.isSome(hook)) {
91
+ const handler = hook.value;
92
+ if (AST.isRefinement(ast)) {
93
+ const t = getRefinementInnerTransformation(ast);
94
+ if (t === undefined) {
95
+ try {
96
+ return {
97
+ ...go(ast.from, $defs, true, path),
98
+ ...getJsonSchemaAnnotations(ast),
99
+ ...handler
100
+ };
101
+ } catch (e) {
102
+ return {
103
+ ...getJsonSchemaAnnotations(ast),
104
+ ...handler
105
+ };
106
+ }
107
+ } else if (!isOverrideAnnotation(handler)) {
108
+ return {
109
+ ...go(t, $defs, true, path),
110
+ ...getJsonSchemaAnnotations(ast)
111
+ };
112
+ }
113
+ }
114
+ return handler;
115
+ }
116
+ const surrogate = getSurrogateAnnotation(ast);
117
+ if (Option.isSome(surrogate)) {
118
+ return {
119
+ ...(ast._tag === "Transformation" ? getJsonSchemaAnnotations(ast.to) : {}),
120
+ ...go(surrogate.value, $defs, handleIdentifier, path),
121
+ ...getJsonSchemaAnnotations(ast)
122
+ };
123
+ }
124
+ if (handleIdentifier && !AST.isTransformation(ast)) {
125
+ const identifier = getJSONIdentifier(ast);
126
+ if (Option.isSome(identifier)) {
127
+ const id = identifier.value;
128
+ const out = {
129
+ $ref: get$ref(id)
130
+ };
131
+ if (!Record.has($defs, id)) {
132
+ $defs[id] = out;
133
+ $defs[id] = go(ast, $defs, false, path);
134
+ }
135
+ return out;
136
+ }
137
+ }
138
+ switch (ast._tag) {
139
+ case "Declaration":
140
+ throw new Error(getJSONSchemaMissingAnnotationErrorMessage(path, ast));
141
+ case "Literal":
142
+ {
143
+ const literal = ast.literal;
144
+ if (literal === null) {
145
+ return {
146
+ enum: [null],
147
+ ...getJsonSchemaAnnotations(ast)
148
+ };
149
+ } else if (Predicate.isString(literal) || Predicate.isNumber(literal) || Predicate.isBoolean(literal)) {
150
+ return {
151
+ enum: [literal],
152
+ ...getJsonSchemaAnnotations(ast)
153
+ };
154
+ }
155
+ throw new Error(getJSONSchemaMissingAnnotationErrorMessage(path, ast));
156
+ }
157
+ case "UniqueSymbol":
158
+ throw new Error(getJSONSchemaMissingAnnotationErrorMessage(path, ast));
159
+ case "UndefinedKeyword":
160
+ throw new Error(getJSONSchemaMissingAnnotationErrorMessage(path, ast));
161
+ case "VoidKeyword":
162
+ return {
163
+ ...constVoid,
164
+ ...getJsonSchemaAnnotations(ast)
165
+ };
166
+ case "NeverKeyword":
167
+ throw new Error(getJSONSchemaMissingAnnotationErrorMessage(path, ast));
168
+ case "UnknownKeyword":
169
+ return {
170
+ ...constUnknown,
171
+ ...getJsonSchemaAnnotations(ast)
172
+ };
173
+ case "AnyKeyword":
174
+ return {
175
+ ...constAny,
176
+ ...getJsonSchemaAnnotations(ast)
177
+ };
178
+ case "ObjectKeyword":
179
+ return {
180
+ ...constAnyObject,
181
+ ...getJsonSchemaAnnotations(ast)
182
+ };
183
+ case "StringKeyword":
184
+ {
185
+ return ast === AST.stringKeyword ? {
186
+ type: "string"
187
+ } : {
188
+ type: "string",
189
+ ...getJsonSchemaAnnotations(ast)
190
+ };
191
+ }
192
+ case "NumberKeyword":
193
+ {
194
+ return ast === AST.numberKeyword ? {
195
+ type: "number"
196
+ } : {
197
+ type: "number",
198
+ ...getJsonSchemaAnnotations(ast)
199
+ };
200
+ }
201
+ case "BooleanKeyword":
202
+ {
203
+ return ast === AST.booleanKeyword ? {
204
+ type: "boolean"
205
+ } : {
206
+ type: "boolean",
207
+ ...getJsonSchemaAnnotations(ast)
208
+ };
209
+ }
210
+ case "BigIntKeyword":
211
+ throw new Error(getJSONSchemaMissingAnnotationErrorMessage(path, ast));
212
+ case "SymbolKeyword":
213
+ throw new Error(getJSONSchemaMissingAnnotationErrorMessage(path, ast));
214
+ case "TupleType":
215
+ {
216
+ const elements = ast.elements.map((e, i) => ({
217
+ ...go(e.type, $defs, true, path.concat(i)),
218
+ ...getJsonSchemaAnnotations(e)
219
+ }));
220
+ const rest = ast.rest.map(annotatedAST => ({
221
+ ...go(annotatedAST.type, $defs, true, path),
222
+ ...getJsonSchemaAnnotations(annotatedAST)
223
+ }));
224
+ const output = {
225
+ type: "array"
226
+ };
227
+ // ---------------------------------------------
228
+ // handle elements
229
+ // ---------------------------------------------
230
+ const len = ast.elements.length;
231
+ if (len > 0) {
232
+ output.minItems = len - ast.elements.filter(element => element.isOptional).length;
233
+ output.items = elements;
234
+ }
235
+ // ---------------------------------------------
236
+ // handle rest element
237
+ // ---------------------------------------------
238
+ const restLength = rest.length;
239
+ if (restLength > 0) {
240
+ const head = rest[0];
241
+ const isHomogeneous = restLength === 1 && ast.elements.every(e => e.type === ast.rest[0].type);
242
+ if (isHomogeneous) {
243
+ output.items = head;
244
+ } else {
245
+ output.additionalItems = head;
246
+ }
247
+ // ---------------------------------------------
248
+ // handle post rest elements
249
+ // ---------------------------------------------
250
+ if (restLength > 1) {
251
+ throw new Error(getJSONSchemaUnsupportedPostRestElementsErrorMessage(path));
252
+ }
253
+ } else {
254
+ if (len > 0) {
255
+ output.additionalItems = false;
256
+ } else {
257
+ output.maxItems = 0;
258
+ }
259
+ }
260
+ return {
261
+ ...output,
262
+ ...getJsonSchemaAnnotations(ast)
263
+ };
264
+ }
265
+ case "TypeLiteral":
266
+ {
267
+ if (ast.propertySignatures.length === 0 && ast.indexSignatures.length === 0) {
268
+ return {
269
+ ...constEmpty,
270
+ ...getJsonSchemaAnnotations(ast)
271
+ };
272
+ }
273
+ let patternProperties = undefined;
274
+ let propertyNames = undefined;
275
+ for (const is of ast.indexSignatures) {
276
+ const parameter = is.parameter;
277
+ switch (parameter._tag) {
278
+ case "StringKeyword":
279
+ {
280
+ patternProperties = go(is.type, $defs, true, path);
281
+ break;
282
+ }
283
+ case "TemplateLiteral":
284
+ {
285
+ patternProperties = go(is.type, $defs, true, path);
286
+ propertyNames = {
287
+ type: "string",
288
+ pattern: AST.getTemplateLiteralRegExp(parameter).source
289
+ };
290
+ break;
291
+ }
292
+ case "Refinement":
293
+ {
294
+ patternProperties = go(is.type, $defs, true, path);
295
+ propertyNames = go(parameter, $defs, true, path);
296
+ break;
297
+ }
298
+ case "SymbolKeyword":
299
+ throw new Error(getJSONSchemaUnsupportedParameterErrorMessage(path, parameter));
300
+ }
301
+ }
302
+ const output = {
303
+ type: "object",
304
+ required: [],
305
+ properties: {},
306
+ additionalProperties: false
307
+ };
308
+ // ---------------------------------------------
309
+ // handle property signatures
310
+ // ---------------------------------------------
311
+ for (let i = 0; i < ast.propertySignatures.length; i++) {
312
+ const ps = ast.propertySignatures[i];
313
+ const name = ps.name;
314
+ if (Predicate.isString(name)) {
315
+ const pruned = pruneUndefinedKeyword(ps);
316
+ output.properties[name] = {
317
+ ...go(pruned ? pruned : ps.type, $defs, true, path.concat(ps.name)),
318
+ ...getJsonSchemaAnnotations(ps)
319
+ };
320
+ // ---------------------------------------------
321
+ // handle optional property signatures
322
+ // ---------------------------------------------
323
+ if (!ps.isOptional && pruned === undefined) {
324
+ output.required.push(name);
325
+ }
326
+ } else {
327
+ throw new Error(getJSONSchemaUnsupportedKeyErrorMessage(name, path));
328
+ }
329
+ }
330
+ // ---------------------------------------------
331
+ // handle index signatures
332
+ // ---------------------------------------------
333
+ if (patternProperties !== undefined) {
334
+ delete output.additionalProperties;
335
+ output.patternProperties = {
336
+ "": patternProperties
337
+ };
338
+ }
339
+ if (propertyNames !== undefined) {
340
+ output.propertyNames = propertyNames;
341
+ }
342
+ return {
343
+ ...output,
344
+ ...getJsonSchemaAnnotations(ast)
345
+ };
346
+ }
347
+ case "Union":
348
+ {
349
+ const enums = [];
350
+ const anyOf = [];
351
+ for (const type of ast.types) {
352
+ const schema = go(type, $defs, true, path);
353
+ if ("enum" in schema) {
354
+ if (Object.keys(schema).length > 1) {
355
+ anyOf.push(schema);
356
+ } else {
357
+ for (const e of schema.enum) {
358
+ enums.push(e);
359
+ }
360
+ }
361
+ } else {
362
+ anyOf.push(schema);
363
+ }
364
+ }
365
+ if (anyOf.length === 0) {
366
+ return {
367
+ enum: enums,
368
+ ...getJsonSchemaAnnotations(ast)
369
+ };
370
+ } else {
371
+ if (enums.length >= 1) {
372
+ anyOf.push({
373
+ enum: enums
374
+ });
375
+ }
376
+ return {
377
+ anyOf,
378
+ ...getJsonSchemaAnnotations(ast)
379
+ };
380
+ }
381
+ }
382
+ case "Enums":
383
+ {
384
+ return {
385
+ $comment: "/schemas/enums",
386
+ anyOf: ast.enums.map(e => ({
387
+ title: e[0],
388
+ enum: [e[1]]
389
+ })),
390
+ ...getJsonSchemaAnnotations(ast)
391
+ };
392
+ }
393
+ case "Refinement":
394
+ {
395
+ throw new Error(getJSONSchemaMissingAnnotationErrorMessage(path, ast));
396
+ }
397
+ case "TemplateLiteral":
398
+ {
399
+ const regex = AST.getTemplateLiteralRegExp(ast);
400
+ return {
401
+ type: "string",
402
+ description: "a template literal",
403
+ pattern: regex.source,
404
+ ...getJsonSchemaAnnotations(ast)
405
+ };
406
+ }
407
+ case "Suspend":
408
+ {
409
+ const identifier = Option.orElse(getJSONIdentifier(ast), () => getJSONIdentifier(ast.f()));
410
+ if (Option.isNone(identifier)) {
411
+ throw new Error(getJSONSchemaMissingIdentifierAnnotationErrorMessage(path, ast));
412
+ }
413
+ return {
414
+ ...go(ast.f(), $defs, true, path),
415
+ ...getJsonSchemaAnnotations(ast)
416
+ };
417
+ }
418
+ case "Transformation":
419
+ {
420
+ // Properly handle S.parseJson transformations by focusing on
421
+ // the 'to' side of the AST. This approach prevents the generation of useless schemas
422
+ // derived from the 'from' side (type: string), ensuring the output matches the intended
423
+ // complex schema type.
424
+ if (isParseJsonTransformation(ast.from)) {
425
+ return {
426
+ type: "string",
427
+ contentMediaType: "application/json",
428
+ contentSchema: go(ast.to, $defs, true, path),
429
+ ...getJsonSchemaAnnotations(ast)
430
+ };
431
+ }
432
+ return {
433
+ ...getJsonSchemaAnnotations(ast.to),
434
+ ...go(ast.from, $defs, true, path),
435
+ ...getJsonSchemaAnnotations(ast)
436
+ };
437
+ }
438
+ }
439
+ };
440
+ const getJSONSchemaMissingAnnotationErrorMessage = (path, ast) => getMissingAnnotationErrorMessage(`Generating a JSON Schema for this schema requires a "jsonSchema" annotation`, path, ast);
441
+ const getJSONSchemaMissingIdentifierAnnotationErrorMessage = (path, ast) => getMissingAnnotationErrorMessage(`Generating a JSON Schema for this schema requires an "identifier" annotation`, path, ast);
442
+ const getJSONSchemaUnsupportedParameterErrorMessage = (path, parameter) => getErrorMessage("Unsupported index signature parameter", undefined, path, parameter);
443
+ const getJSONSchemaUnsupportedPostRestElementsErrorMessage = path => getErrorMessage("Generating a JSON Schema for post-rest elements is not currently supported. You're welcome to contribute by submitting a Pull Request", undefined, path);
444
+ const getJSONSchemaUnsupportedKeyErrorMessage = (key, path) => getErrorMessage("Unsupported key", `Cannot encode ${formatPropertyKey(key)} key to JSON Schema`, path);
445
+ const getMissingAnnotationErrorMessage = (details, path, ast) => getErrorMessage("Missing annotation", details, path, ast);
446
+ const getErrorMessage = (reason, details, path, ast) => {
447
+ let out = reason;
448
+ if (path && Arr.isNonEmptyReadonlyArray(path)) {
449
+ out += `\nat path: ${formatPath(path)}`;
450
+ }
451
+ if (details !== undefined) {
452
+ out += `\ndetails: ${details}`;
453
+ }
454
+ if (ast) {
455
+ out += `\nschema (${ast._tag}): ${ast}`;
456
+ }
457
+ return out;
458
+ };
459
+ const formatPathKey = key => `[${formatPropertyKey(key)}]`;
460
+ const formatPath = path => isNonEmpty(path) ? path.map(formatPathKey).join("") : formatPathKey(path);
461
+ const isNonEmpty = x => Array.isArray(x);
462
+ const formatPropertyKey = name => typeof name === "string" ? JSON.stringify(name) : String(name);
463
+ const ParseJsonTypeId = /*#__PURE__*/Symbol.for("@effect/schema/TypeId/ParseJson");
464
+ const SurrogateAnnotationId = /*#__PURE__*/Symbol.for("@effect/schema/annotation/Surrogate");
465
+ const JSONIdentifierAnnotationId = /*#__PURE__*/Symbol.for("@effect/schema/annotation/JSONIdentifier");
466
+ const getSurrogateAnnotation = /*#__PURE__*/AST.getAnnotation(SurrogateAnnotationId);
467
+ const getJSONIdentifierAnnotation = /*#__PURE__*/AST.getAnnotation(JSONIdentifierAnnotationId);
468
+ const getJSONIdentifier = annotated => Option.orElse(getJSONIdentifierAnnotation(annotated), () => AST.getIdentifierAnnotation(annotated));
469
+ //# sourceMappingURL=OpenApiJsonSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenApiJsonSchema.js","names":["AST","Arr","Option","Predicate","Record","make","schema","$defs","out","go","ast","id","get$ref","isEmptyRecord","constAny","$id","constUnknown","constVoid","constAnyObject","constEmpty","getJsonSchemaAnnotations","annotated","getSomes","description","getDescriptionAnnotation","title","getTitleAnnotation","examples","getExamplesAnnotation","default","getDefaultAnnotation","pruneUndefinedKeyword","ps","type","isUnion","isNone","getJSONSchemaAnnotation","types","filter","isUndefinedKeyword","length","Union","annotations","DEFINITION_PREFIX","getRefinementInnerTransformation","from","_tag","f","isRefinement","isParseJsonTransformation","TypeAnnotationId","ParseJsonTypeId","isOverrideAnnotation","jsonSchema","handleIdentifier","path","hook","isSome","handler","value","t","undefined","e","surrogate","getSurrogateAnnotation","to","isTransformation","identifier","getJSONIdentifier","$ref","has","Error","getJSONSchemaMissingAnnotationErrorMessage","literal","enum","isString","isNumber","isBoolean","stringKeyword","numberKeyword","booleanKeyword","elements","map","i","concat","rest","annotatedAST","output","len","minItems","element","isOptional","items","restLength","head","isHomogeneous","every","additionalItems","getJSONSchemaUnsupportedPostRestElementsErrorMessage","maxItems","propertySignatures","indexSignatures","patternProperties","propertyNames","is","parameter","pattern","getTemplateLiteralRegExp","source","getJSONSchemaUnsupportedParameterErrorMessage","required","properties","additionalProperties","name","pruned","push","getJSONSchemaUnsupportedKeyErrorMessage","enums","anyOf","Object","keys","$comment","regex","orElse","getJSONSchemaMissingIdentifierAnnotationErrorMessage","contentMediaType","contentSchema","getMissingAnnotationErrorMessage","getErrorMessage","key","formatPropertyKey","details","reason","isNonEmptyReadonlyArray","formatPath","formatPathKey","isNonEmpty","join","x","Array","isArray","JSON","stringify","String","Symbol","for","SurrogateAnnotationId","JSONIdentifierAnnotationId","getAnnotation","getJSONIdentifierAnnotation","getIdentifierAnnotation"],"sources":["../../src/OpenApiJsonSchema.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -155,6 +155,10 @@ export * as Multipart from "./Multipart.js";
155
155
  * @since 1.0.0
156
156
  */
157
157
  export * as OpenApi from "./OpenApi.js";
158
+ /**
159
+ * @since 1.0.0
160
+ */
161
+ export * as OpenApiJsonSchema from "./OpenApiJsonSchema.js";
158
162
  /**
159
163
  * @since 1.0.0
160
164
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Command","CommandExecutor","Cookies","Effectify","Error","Etag","FetchHttpClient","FileSystem","Headers","HttpApi","HttpApiBuilder","HttpApiClient","HttpApiEndpoint","HttpApiError","HttpApiGroup","HttpApiSchema","HttpApiSecurity","HttpApiSwagger","HttpApp","HttpBody","HttpClient","HttpClientError","HttpClientRequest","HttpClientResponse","HttpIncomingMessage","HttpMethod","HttpMiddleware","HttpMultiplex","HttpPlatform","HttpRouter","HttpServer","HttpServerError","HttpServerRequest","HttpServerRespondable","HttpServerResponse","HttpTraceContext","KeyValueStore","Multipart","OpenApi","Path","PlatformConfigProvider","PlatformLogger","Runtime","Socket","Template","Terminal","Transferable","UrlParams","Worker","WorkerError","WorkerRunner"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Command","CommandExecutor","Cookies","Effectify","Error","Etag","FetchHttpClient","FileSystem","Headers","HttpApi","HttpApiBuilder","HttpApiClient","HttpApiEndpoint","HttpApiError","HttpApiGroup","HttpApiSchema","HttpApiSecurity","HttpApiSwagger","HttpApp","HttpBody","HttpClient","HttpClientError","HttpClientRequest","HttpClientResponse","HttpIncomingMessage","HttpMethod","HttpMiddleware","HttpMultiplex","HttpPlatform","HttpRouter","HttpServer","HttpServerError","HttpServerRequest","HttpServerRespondable","HttpServerResponse","HttpTraceContext","KeyValueStore","Multipart","OpenApi","OpenApiJsonSchema","Path","PlatformConfigProvider","PlatformLogger","Runtime","Socket","Template","Terminal","Transferable","UrlParams","Worker","WorkerError","WorkerRunner"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform",
3
- "version": "0.66.0",
3
+ "version": "0.66.1",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -225,6 +225,11 @@
225
225
  "import": "./dist/esm/OpenApi.js",
226
226
  "default": "./dist/cjs/OpenApi.js"
227
227
  },
228
+ "./OpenApiJsonSchema": {
229
+ "types": "./dist/dts/OpenApiJsonSchema.d.ts",
230
+ "import": "./dist/esm/OpenApiJsonSchema.js",
231
+ "default": "./dist/cjs/OpenApiJsonSchema.js"
232
+ },
228
233
  "./Path": {
229
234
  "types": "./dist/dts/Path.d.ts",
230
235
  "import": "./dist/esm/Path.js",
@@ -405,6 +410,9 @@
405
410
  "OpenApi": [
406
411
  "./dist/dts/OpenApi.d.ts"
407
412
  ],
413
+ "OpenApiJsonSchema": [
414
+ "./dist/dts/OpenApiJsonSchema.d.ts"
415
+ ],
408
416
  "Path": [
409
417
  "./dist/dts/Path.d.ts"
410
418
  ],