@effect/platform 0.66.0 → 0.66.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,482 @@
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 removeDefaultJsonSchemaAnnotations = (jsonSchemaAnnotations, ast) => {
59
+ if (jsonSchemaAnnotations["title"] === ast.annotations[AST.TitleAnnotationId]) {
60
+ delete jsonSchemaAnnotations["title"];
61
+ }
62
+ if (jsonSchemaAnnotations["description"] === ast.annotations[AST.DescriptionAnnotationId]) {
63
+ delete jsonSchemaAnnotations["description"];
64
+ }
65
+ return jsonSchemaAnnotations;
66
+ };
67
+ const getASTJsonSchemaAnnotations = ast => {
68
+ const jsonSchemaAnnotations = getJsonSchemaAnnotations(ast);
69
+ switch (ast._tag) {
70
+ case "StringKeyword":
71
+ return removeDefaultJsonSchemaAnnotations(jsonSchemaAnnotations, AST.stringKeyword);
72
+ case "NumberKeyword":
73
+ return removeDefaultJsonSchemaAnnotations(jsonSchemaAnnotations, AST.numberKeyword);
74
+ case "BooleanKeyword":
75
+ return removeDefaultJsonSchemaAnnotations(jsonSchemaAnnotations, AST.booleanKeyword);
76
+ default:
77
+ return jsonSchemaAnnotations;
78
+ }
79
+ };
80
+ const pruneUndefinedKeyword = ps => {
81
+ const type = ps.type;
82
+ if (AST.isUnion(type) && Option.isNone(AST.getJSONSchemaAnnotation(type))) {
83
+ const types = type.types.filter(type => !AST.isUndefinedKeyword(type));
84
+ if (types.length < type.types.length) {
85
+ return AST.Union.make(types, type.annotations);
86
+ }
87
+ }
88
+ };
89
+ const DEFINITION_PREFIX = "#/$defs/";
90
+ const get$ref = id => `${DEFINITION_PREFIX}${id}`;
91
+ const getRefinementInnerTransformation = ast => {
92
+ switch (ast.from._tag) {
93
+ case "Transformation":
94
+ return ast.from;
95
+ case "Refinement":
96
+ return getRefinementInnerTransformation(ast.from);
97
+ case "Suspend":
98
+ {
99
+ const from = ast.from.f();
100
+ if (AST.isRefinement(from)) {
101
+ return getRefinementInnerTransformation(from);
102
+ }
103
+ }
104
+ }
105
+ };
106
+ const isParseJsonTransformation = ast => ast.annotations[AST.TypeAnnotationId] === ParseJsonTypeId;
107
+ const isOverrideAnnotation = jsonSchema => {
108
+ return "type" in jsonSchema || "oneOf" in jsonSchema || "anyOf" in jsonSchema || "const" in jsonSchema || "enum" in jsonSchema || "$ref" in jsonSchema;
109
+ };
110
+ const go = (ast, $defs, handleIdentifier, path) => {
111
+ const hook = AST.getJSONSchemaAnnotation(ast);
112
+ if (Option.isSome(hook)) {
113
+ const handler = hook.value;
114
+ if (AST.isRefinement(ast)) {
115
+ const t = getRefinementInnerTransformation(ast);
116
+ if (t === undefined) {
117
+ try {
118
+ return {
119
+ ...go(ast.from, $defs, true, path),
120
+ ...getJsonSchemaAnnotations(ast),
121
+ ...handler
122
+ };
123
+ } catch (e) {
124
+ return {
125
+ ...getJsonSchemaAnnotations(ast),
126
+ ...handler
127
+ };
128
+ }
129
+ } else if (!isOverrideAnnotation(handler)) {
130
+ return {
131
+ ...go(t, $defs, true, path),
132
+ ...getJsonSchemaAnnotations(ast)
133
+ };
134
+ }
135
+ }
136
+ return handler;
137
+ }
138
+ const surrogate = getSurrogateAnnotation(ast);
139
+ if (Option.isSome(surrogate)) {
140
+ return {
141
+ ...(ast._tag === "Transformation" ? getJsonSchemaAnnotations(ast.to) : {}),
142
+ ...go(surrogate.value, $defs, handleIdentifier, path),
143
+ ...getJsonSchemaAnnotations(ast)
144
+ };
145
+ }
146
+ if (handleIdentifier && !AST.isTransformation(ast) && !AST.isRefinement(ast)) {
147
+ const identifier = getJSONIdentifier(ast);
148
+ if (Option.isSome(identifier)) {
149
+ const id = identifier.value;
150
+ const out = {
151
+ $ref: get$ref(id)
152
+ };
153
+ if (!Record.has($defs, id)) {
154
+ $defs[id] = out;
155
+ $defs[id] = go(ast, $defs, false, path);
156
+ }
157
+ return out;
158
+ }
159
+ }
160
+ switch (ast._tag) {
161
+ case "Declaration":
162
+ throw new Error(getJSONSchemaMissingAnnotationErrorMessage(path, ast));
163
+ case "Literal":
164
+ {
165
+ const literal = ast.literal;
166
+ if (literal === null) {
167
+ return {
168
+ enum: [null],
169
+ ...getJsonSchemaAnnotations(ast)
170
+ };
171
+ } else if (Predicate.isString(literal) || Predicate.isNumber(literal) || Predicate.isBoolean(literal)) {
172
+ return {
173
+ enum: [literal],
174
+ ...getJsonSchemaAnnotations(ast)
175
+ };
176
+ }
177
+ throw new Error(getJSONSchemaMissingAnnotationErrorMessage(path, ast));
178
+ }
179
+ case "UniqueSymbol":
180
+ throw new Error(getJSONSchemaMissingAnnotationErrorMessage(path, ast));
181
+ case "UndefinedKeyword":
182
+ throw new Error(getJSONSchemaMissingAnnotationErrorMessage(path, ast));
183
+ case "VoidKeyword":
184
+ return {
185
+ ...constVoid,
186
+ ...getJsonSchemaAnnotations(ast)
187
+ };
188
+ case "NeverKeyword":
189
+ throw new Error(getJSONSchemaMissingAnnotationErrorMessage(path, ast));
190
+ case "UnknownKeyword":
191
+ return {
192
+ ...constUnknown,
193
+ ...getJsonSchemaAnnotations(ast)
194
+ };
195
+ case "AnyKeyword":
196
+ return {
197
+ ...constAny,
198
+ ...getJsonSchemaAnnotations(ast)
199
+ };
200
+ case "ObjectKeyword":
201
+ return {
202
+ ...constAnyObject,
203
+ ...getJsonSchemaAnnotations(ast)
204
+ };
205
+ case "StringKeyword":
206
+ return {
207
+ type: "string",
208
+ ...getASTJsonSchemaAnnotations(ast)
209
+ };
210
+ case "NumberKeyword":
211
+ return {
212
+ type: "number",
213
+ ...getASTJsonSchemaAnnotations(ast)
214
+ };
215
+ case "BooleanKeyword":
216
+ return {
217
+ type: "boolean",
218
+ ...getASTJsonSchemaAnnotations(ast)
219
+ };
220
+ case "BigIntKeyword":
221
+ throw new Error(getJSONSchemaMissingAnnotationErrorMessage(path, ast));
222
+ case "SymbolKeyword":
223
+ throw new Error(getJSONSchemaMissingAnnotationErrorMessage(path, ast));
224
+ case "TupleType":
225
+ {
226
+ const elements = ast.elements.map((e, i) => ({
227
+ ...go(e.type, $defs, true, path.concat(i)),
228
+ ...getJsonSchemaAnnotations(e)
229
+ }));
230
+ const rest = ast.rest.map(annotatedAST => ({
231
+ ...go(annotatedAST.type, $defs, true, path),
232
+ ...getJsonSchemaAnnotations(annotatedAST)
233
+ }));
234
+ const output = {
235
+ type: "array"
236
+ };
237
+ // ---------------------------------------------
238
+ // handle elements
239
+ // ---------------------------------------------
240
+ const len = ast.elements.length;
241
+ if (len > 0) {
242
+ output.minItems = len - ast.elements.filter(element => element.isOptional).length;
243
+ output.items = elements;
244
+ }
245
+ // ---------------------------------------------
246
+ // handle rest element
247
+ // ---------------------------------------------
248
+ const restLength = rest.length;
249
+ if (restLength > 0) {
250
+ const head = rest[0];
251
+ const isHomogeneous = restLength === 1 && ast.elements.every(e => e.type === ast.rest[0].type);
252
+ if (isHomogeneous) {
253
+ output.items = head;
254
+ } else {
255
+ output.additionalItems = head;
256
+ }
257
+ // ---------------------------------------------
258
+ // handle post rest elements
259
+ // ---------------------------------------------
260
+ if (restLength > 1) {
261
+ throw new Error(getJSONSchemaUnsupportedPostRestElementsErrorMessage(path));
262
+ }
263
+ } else {
264
+ if (len > 0) {
265
+ output.additionalItems = false;
266
+ } else {
267
+ output.maxItems = 0;
268
+ }
269
+ }
270
+ return {
271
+ ...output,
272
+ ...getJsonSchemaAnnotations(ast)
273
+ };
274
+ }
275
+ case "TypeLiteral":
276
+ {
277
+ if (ast.propertySignatures.length === 0 && ast.indexSignatures.length === 0) {
278
+ return {
279
+ ...constEmpty,
280
+ ...getJsonSchemaAnnotations(ast)
281
+ };
282
+ }
283
+ let patternProperties = undefined;
284
+ let propertyNames = undefined;
285
+ for (const is of ast.indexSignatures) {
286
+ const parameter = is.parameter;
287
+ switch (parameter._tag) {
288
+ case "StringKeyword":
289
+ {
290
+ patternProperties = go(is.type, $defs, true, path);
291
+ break;
292
+ }
293
+ case "TemplateLiteral":
294
+ {
295
+ patternProperties = go(is.type, $defs, true, path);
296
+ propertyNames = {
297
+ type: "string",
298
+ pattern: AST.getTemplateLiteralRegExp(parameter).source
299
+ };
300
+ break;
301
+ }
302
+ case "Refinement":
303
+ {
304
+ patternProperties = go(is.type, $defs, true, path);
305
+ propertyNames = go(parameter, $defs, true, path);
306
+ break;
307
+ }
308
+ case "SymbolKeyword":
309
+ throw new Error(getJSONSchemaUnsupportedParameterErrorMessage(path, parameter));
310
+ }
311
+ }
312
+ const output = {
313
+ type: "object",
314
+ required: [],
315
+ properties: {},
316
+ additionalProperties: false
317
+ };
318
+ // ---------------------------------------------
319
+ // handle property signatures
320
+ // ---------------------------------------------
321
+ for (let i = 0; i < ast.propertySignatures.length; i++) {
322
+ const ps = ast.propertySignatures[i];
323
+ const name = ps.name;
324
+ if (Predicate.isString(name)) {
325
+ const pruned = pruneUndefinedKeyword(ps);
326
+ output.properties[name] = {
327
+ ...go(pruned ? pruned : ps.type, $defs, true, path.concat(ps.name)),
328
+ ...getJsonSchemaAnnotations(ps)
329
+ };
330
+ // ---------------------------------------------
331
+ // handle optional property signatures
332
+ // ---------------------------------------------
333
+ if (!ps.isOptional && pruned === undefined) {
334
+ output.required.push(name);
335
+ }
336
+ } else {
337
+ throw new Error(getJSONSchemaUnsupportedKeyErrorMessage(name, path));
338
+ }
339
+ }
340
+ // ---------------------------------------------
341
+ // handle index signatures
342
+ // ---------------------------------------------
343
+ if (patternProperties !== undefined) {
344
+ delete output.additionalProperties;
345
+ output.patternProperties = {
346
+ "": patternProperties
347
+ };
348
+ }
349
+ if (propertyNames !== undefined) {
350
+ output.propertyNames = propertyNames;
351
+ }
352
+ return {
353
+ ...output,
354
+ ...getJsonSchemaAnnotations(ast)
355
+ };
356
+ }
357
+ case "Union":
358
+ {
359
+ const enums = [];
360
+ const anyOf = [];
361
+ for (const type of ast.types) {
362
+ const schema = go(type, $defs, true, path);
363
+ if ("enum" in schema) {
364
+ if (Object.keys(schema).length > 1) {
365
+ anyOf.push(schema);
366
+ } else {
367
+ for (const e of schema.enum) {
368
+ enums.push(e);
369
+ }
370
+ }
371
+ } else {
372
+ anyOf.push(schema);
373
+ }
374
+ }
375
+ if (anyOf.length === 0) {
376
+ return {
377
+ enum: enums,
378
+ ...getJsonSchemaAnnotations(ast)
379
+ };
380
+ } else {
381
+ if (enums.length >= 1) {
382
+ anyOf.push({
383
+ enum: enums
384
+ });
385
+ }
386
+ return {
387
+ anyOf,
388
+ ...getJsonSchemaAnnotations(ast)
389
+ };
390
+ }
391
+ }
392
+ case "Enums":
393
+ {
394
+ return {
395
+ $comment: "/schemas/enums",
396
+ anyOf: ast.enums.map(e => ({
397
+ title: e[0],
398
+ enum: [e[1]]
399
+ })),
400
+ ...getJsonSchemaAnnotations(ast)
401
+ };
402
+ }
403
+ case "Refinement":
404
+ {
405
+ if (AST.encodedBoundAST(ast) === ast) {
406
+ throw new Error(getJSONSchemaMissingAnnotationErrorMessage(path, ast));
407
+ }
408
+ return go(ast.from, $defs, true, path);
409
+ }
410
+ case "TemplateLiteral":
411
+ {
412
+ const regex = AST.getTemplateLiteralRegExp(ast);
413
+ return {
414
+ type: "string",
415
+ description: "a template literal",
416
+ pattern: regex.source,
417
+ ...getJsonSchemaAnnotations(ast)
418
+ };
419
+ }
420
+ case "Suspend":
421
+ {
422
+ const identifier = Option.orElse(getJSONIdentifier(ast), () => getJSONIdentifier(ast.f()));
423
+ if (Option.isNone(identifier)) {
424
+ throw new Error(getJSONSchemaMissingIdentifierAnnotationErrorMessage(path, ast));
425
+ }
426
+ return {
427
+ ...go(ast.f(), $defs, true, path),
428
+ ...getJsonSchemaAnnotations(ast)
429
+ };
430
+ }
431
+ case "Transformation":
432
+ {
433
+ // Properly handle S.parseJson transformations by focusing on
434
+ // the 'to' side of the AST. This approach prevents the generation of useless schemas
435
+ // derived from the 'from' side (type: string), ensuring the output matches the intended
436
+ // complex schema type.
437
+ if (isParseJsonTransformation(ast.from)) {
438
+ return {
439
+ type: "string",
440
+ contentMediaType: "application/json",
441
+ contentSchema: go(ast.to, $defs, true, path),
442
+ ...getJsonSchemaAnnotations(ast)
443
+ };
444
+ }
445
+ return {
446
+ ...getASTJsonSchemaAnnotations(ast.to),
447
+ ...go(ast.from, $defs, true, path),
448
+ ...getJsonSchemaAnnotations(ast)
449
+ };
450
+ }
451
+ }
452
+ };
453
+ const getJSONSchemaMissingAnnotationErrorMessage = (path, ast) => getMissingAnnotationErrorMessage(`Generating a JSON Schema for this schema requires a "jsonSchema" annotation`, path, ast);
454
+ const getJSONSchemaMissingIdentifierAnnotationErrorMessage = (path, ast) => getMissingAnnotationErrorMessage(`Generating a JSON Schema for this schema requires an "identifier" annotation`, path, ast);
455
+ const getJSONSchemaUnsupportedParameterErrorMessage = (path, parameter) => getErrorMessage("Unsupported index signature parameter", undefined, path, parameter);
456
+ 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);
457
+ const getJSONSchemaUnsupportedKeyErrorMessage = (key, path) => getErrorMessage("Unsupported key", `Cannot encode ${formatPropertyKey(key)} key to JSON Schema`, path);
458
+ const getMissingAnnotationErrorMessage = (details, path, ast) => getErrorMessage("Missing annotation", details, path, ast);
459
+ const getErrorMessage = (reason, details, path, ast) => {
460
+ let out = reason;
461
+ if (path && Arr.isNonEmptyReadonlyArray(path)) {
462
+ out += `\nat path: ${formatPath(path)}`;
463
+ }
464
+ if (details !== undefined) {
465
+ out += `\ndetails: ${details}`;
466
+ }
467
+ if (ast) {
468
+ out += `\nschema (${ast._tag}): ${ast}`;
469
+ }
470
+ return out;
471
+ };
472
+ const formatPathKey = key => `[${formatPropertyKey(key)}]`;
473
+ const formatPath = path => isNonEmpty(path) ? path.map(formatPathKey).join("") : formatPathKey(path);
474
+ const isNonEmpty = x => Array.isArray(x);
475
+ const formatPropertyKey = name => typeof name === "string" ? JSON.stringify(name) : String(name);
476
+ const ParseJsonTypeId = /*#__PURE__*/Symbol.for("@effect/schema/TypeId/ParseJson");
477
+ const SurrogateAnnotationId = /*#__PURE__*/Symbol.for("@effect/schema/annotation/Surrogate");
478
+ const JSONIdentifierAnnotationId = /*#__PURE__*/Symbol.for("@effect/schema/annotation/JSONIdentifier");
479
+ const getSurrogateAnnotation = /*#__PURE__*/AST.getAnnotation(SurrogateAnnotationId);
480
+ const getJSONIdentifierAnnotation = /*#__PURE__*/AST.getAnnotation(JSONIdentifierAnnotationId);
481
+ const getJSONIdentifier = annotated => Option.orElse(getJSONIdentifierAnnotation(annotated), () => AST.getIdentifierAnnotation(annotated));
482
+ //# 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","removeDefaultJsonSchemaAnnotations","jsonSchemaAnnotations","annotations","TitleAnnotationId","DescriptionAnnotationId","getASTJsonSchemaAnnotations","_tag","stringKeyword","numberKeyword","booleanKeyword","pruneUndefinedKeyword","ps","type","isUnion","isNone","getJSONSchemaAnnotation","types","filter","isUndefinedKeyword","length","Union","DEFINITION_PREFIX","getRefinementInnerTransformation","from","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","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","encodedBoundAST","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.2",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -14,8 +14,8 @@
14
14
  "multipasta": "^0.2.5"
15
15
  },
16
16
  "peerDependencies": {
17
- "@effect/schema": "^0.74.0",
18
- "effect": "^3.8.3"
17
+ "@effect/schema": "^0.74.1",
18
+ "effect": "^3.8.4"
19
19
  },
20
20
  "publishConfig": {
21
21
  "provenance": true
@@ -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
  ],