@shipworthy/openapi-parser 0.0.0-stage → 0.0.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.
Files changed (99) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +361 -2
  3. package/dist/bundle.d.ts +973 -0
  4. package/dist/bundle.js +11 -0
  5. package/dist/codec.d.ts +2188 -0
  6. package/dist/codec.js +42 -0
  7. package/dist/document.d.ts +9 -0
  8. package/dist/document.js +28 -0
  9. package/dist/errors.d.ts +105 -0
  10. package/dist/errors.js +162 -0
  11. package/dist/hoist.d.ts +10 -0
  12. package/dist/hoist.js +444 -0
  13. package/dist/http.d.ts +2 -0
  14. package/dist/http.js +163 -0
  15. package/dist/index.d.ts +3 -0
  16. package/dist/index.js +2 -0
  17. package/dist/load.d.ts +17 -0
  18. package/dist/load.js +128 -0
  19. package/dist/loader.d.ts +11 -0
  20. package/dist/loader.js +89 -0
  21. package/dist/parsers.d.ts +5 -0
  22. package/dist/parsers.js +90 -0
  23. package/dist/pipeline.d.ts +3 -0
  24. package/dist/pipeline.js +446 -0
  25. package/dist/plugins.d.ts +95 -0
  26. package/dist/plugins.js +61 -0
  27. package/dist/pointer.d.ts +7 -0
  28. package/dist/pointer.js +80 -0
  29. package/dist/run.d.ts +17 -0
  30. package/dist/run.js +313 -0
  31. package/dist/schemas/3.1/callback.d.ts +205 -0
  32. package/dist/schemas/3.1/callback.js +4 -0
  33. package/dist/schemas/3.1/components.d.ts +801 -0
  34. package/dist/schemas/3.1/components.js +25 -0
  35. package/dist/schemas/3.1/contact.d.ts +7 -0
  36. package/dist/schemas/3.1/contact.js +7 -0
  37. package/dist/schemas/3.1/document.d.ts +1093 -0
  38. package/dist/schemas/3.1/document.js +25 -0
  39. package/dist/schemas/3.1/encoding.d.ts +14 -0
  40. package/dist/schemas/3.1/encoding.js +11 -0
  41. package/dist/schemas/3.1/example.d.ts +8 -0
  42. package/dist/schemas/3.1/example.js +10 -0
  43. package/dist/schemas/3.1/external-docs.d.ts +6 -0
  44. package/dist/schemas/3.1/external-docs.js +6 -0
  45. package/dist/schemas/3.1/header.d.ts +194 -0
  46. package/dist/schemas/3.1/header.js +29 -0
  47. package/dist/schemas/3.1/http-method.d.ts +4 -0
  48. package/dist/schemas/3.1/http-method.js +12 -0
  49. package/dist/schemas/3.1/index.d.ts +29 -0
  50. package/dist/schemas/3.1/index.js +29 -0
  51. package/dist/schemas/3.1/info.d.ts +19 -0
  52. package/dist/schemas/3.1/info.js +13 -0
  53. package/dist/schemas/3.1/license.d.ts +7 -0
  54. package/dist/schemas/3.1/license.js +9 -0
  55. package/dist/schemas/3.1/link.d.ts +18 -0
  56. package/dist/schemas/3.1/link.js +13 -0
  57. package/dist/schemas/3.1/media-type.d.ts +27 -0
  58. package/dist/schemas/3.1/media-type.js +14 -0
  59. package/dist/schemas/3.1/oauth-flow.d.ts +8 -0
  60. package/dist/schemas/3.1/oauth-flow.js +8 -0
  61. package/dist/schemas/3.1/oauth-flows.d.ts +28 -0
  62. package/dist/schemas/3.1/oauth-flows.js +13 -0
  63. package/dist/schemas/3.1/object.d.ts +5 -0
  64. package/dist/schemas/3.1/object.js +17 -0
  65. package/dist/schemas/3.1/operation.d.ts +1040 -0
  66. package/dist/schemas/3.1/operation.js +25 -0
  67. package/dist/schemas/3.1/parameter.d.ts +101 -0
  68. package/dist/schemas/3.1/parameter.js +33 -0
  69. package/dist/schemas/3.1/path-item.d.ts +127 -0
  70. package/dist/schemas/3.1/path-item.js +22 -0
  71. package/dist/schemas/3.1/paths.d.ts +126 -0
  72. package/dist/schemas/3.1/paths.js +4 -0
  73. package/dist/schemas/3.1/reference.d.ts +13 -0
  74. package/dist/schemas/3.1/reference.js +11 -0
  75. package/dist/schemas/3.1/request-body.d.ts +31 -0
  76. package/dist/schemas/3.1/request-body.js +8 -0
  77. package/dist/schemas/3.1/response.d.ts +149 -0
  78. package/dist/schemas/3.1/response.js +12 -0
  79. package/dist/schemas/3.1/responses.d.ts +152 -0
  80. package/dist/schemas/3.1/responses.js +7 -0
  81. package/dist/schemas/3.1/schema.d.ts +4 -0
  82. package/dist/schemas/3.1/schema.js +6 -0
  83. package/dist/schemas/3.1/security-requirement.d.ts +3 -0
  84. package/dist/schemas/3.1/security-requirement.js +2 -0
  85. package/dist/schemas/3.1/security-scheme.d.ts +49 -0
  86. package/dist/schemas/3.1/security-scheme.js +25 -0
  87. package/dist/schemas/3.1/server-variable.d.ts +7 -0
  88. package/dist/schemas/3.1/server-variable.js +7 -0
  89. package/dist/schemas/3.1/server.d.ts +11 -0
  90. package/dist/schemas/3.1/server.js +8 -0
  91. package/dist/schemas/3.1/tag.d.ts +10 -0
  92. package/dist/schemas/3.1/tag.js +8 -0
  93. package/dist/upgraders/3.0-to-3.1.d.ts +9 -0
  94. package/dist/upgraders/3.0-to-3.1.js +310 -0
  95. package/dist/url.d.ts +29 -0
  96. package/dist/url.js +255 -0
  97. package/dist/yaml.d.ts +6 -0
  98. package/dist/yaml.js +235 -0
  99. package/package.json +50 -4
@@ -0,0 +1,149 @@
1
+ import { Schema } from "effect";
2
+ import { OpenApiHeader } from "./header.ts";
3
+ export declare const OpenApiResponse: Schema.StructWithRest<Schema.Struct<{
4
+ readonly description: Schema.String;
5
+ readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Union<readonly [Schema.StructWithRest<Schema.Struct<{
6
+ readonly $ref: Schema.String;
7
+ readonly summary: Schema.optionalKey<Schema.String>;
8
+ readonly description: Schema.optionalKey<Schema.String>;
9
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>, Schema.StructWithRest<Schema.Struct<{
10
+ description: Schema.optionalKey<Schema.String>;
11
+ required: Schema.optionalKey<Schema.Boolean>;
12
+ deprecated: Schema.optionalKey<Schema.Boolean>;
13
+ style: Schema.optionalKey<Schema.Literal<"simple">>;
14
+ explode: Schema.optionalKey<Schema.Boolean>;
15
+ schema: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.Unknown>, Schema.Boolean]>>;
16
+ content: Schema.optionalKey<Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<{
17
+ readonly [x: string]: unknown;
18
+ readonly schema?: boolean | {
19
+ readonly [x: string]: unknown;
20
+ } | undefined;
21
+ readonly example?: unknown;
22
+ readonly examples?: {
23
+ readonly [x: string]: {
24
+ readonly [x: string]: unknown;
25
+ readonly $ref: string;
26
+ readonly summary?: string | undefined;
27
+ readonly description?: string | undefined;
28
+ } | {
29
+ readonly [x: string]: unknown;
30
+ readonly summary?: string | undefined;
31
+ readonly description?: string | undefined;
32
+ readonly value?: unknown;
33
+ readonly externalValue?: string | undefined;
34
+ };
35
+ } | undefined;
36
+ readonly encoding?: {
37
+ readonly [x: string]: {
38
+ readonly [x: string]: unknown;
39
+ readonly contentType?: string | undefined;
40
+ readonly headers?: {
41
+ readonly [x: string]: OpenApiHeader | {
42
+ readonly [x: string]: unknown;
43
+ readonly $ref: string;
44
+ readonly summary?: string | undefined;
45
+ readonly description?: string | undefined;
46
+ };
47
+ } | undefined;
48
+ readonly style?: "deepObject" | "form" | "pipeDelimited" | "spaceDelimited" | undefined;
49
+ readonly explode?: boolean | undefined;
50
+ readonly allowReserved?: boolean | undefined;
51
+ };
52
+ } | undefined;
53
+ }, {
54
+ readonly [x: string]: unknown;
55
+ readonly schema?: boolean | {
56
+ readonly [x: string]: unknown;
57
+ } | undefined;
58
+ readonly example?: unknown;
59
+ readonly examples?: {
60
+ readonly [x: string]: {
61
+ readonly [x: string]: unknown;
62
+ readonly $ref: string;
63
+ readonly summary?: string | undefined;
64
+ readonly description?: string | undefined;
65
+ } | {
66
+ readonly [x: string]: unknown;
67
+ readonly summary?: string | undefined;
68
+ readonly description?: string | undefined;
69
+ readonly value?: unknown;
70
+ readonly externalValue?: string | undefined;
71
+ };
72
+ } | undefined;
73
+ readonly encoding?: {
74
+ readonly [x: string]: {
75
+ readonly [x: string]: unknown;
76
+ readonly contentType?: string | undefined;
77
+ readonly headers?: {
78
+ readonly [x: string]: OpenApiHeader | {
79
+ readonly [x: string]: unknown;
80
+ readonly $ref: string;
81
+ readonly summary?: string | undefined;
82
+ readonly description?: string | undefined;
83
+ };
84
+ } | undefined;
85
+ readonly style?: "deepObject" | "form" | "pipeDelimited" | "spaceDelimited" | undefined;
86
+ readonly explode?: boolean | undefined;
87
+ readonly allowReserved?: boolean | undefined;
88
+ };
89
+ } | undefined;
90
+ }, never, never>>>>;
91
+ example: Schema.optionalKey<Schema.Unknown>;
92
+ examples: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Union<readonly [Schema.StructWithRest<Schema.Struct<{
93
+ readonly $ref: Schema.String;
94
+ readonly summary: Schema.optionalKey<Schema.String>;
95
+ readonly description: Schema.optionalKey<Schema.String>;
96
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>, Schema.StructWithRest<Schema.Struct<{
97
+ readonly summary: Schema.optionalKey<Schema.String>;
98
+ readonly description: Schema.optionalKey<Schema.String>;
99
+ readonly value: Schema.optionalKey<Schema.Unknown>;
100
+ readonly externalValue: Schema.optionalKey<Schema.String>;
101
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>]>>>;
102
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>]>>>;
103
+ readonly content: Schema.optionalKey<Schema.$Record<Schema.String, Schema.StructWithRest<Schema.Struct<{
104
+ readonly schema: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.Unknown>, Schema.Boolean]>>;
105
+ readonly example: Schema.optionalKey<Schema.Unknown>;
106
+ readonly examples: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Union<readonly [Schema.StructWithRest<Schema.Struct<{
107
+ readonly $ref: Schema.String;
108
+ readonly summary: Schema.optionalKey<Schema.String>;
109
+ readonly description: Schema.optionalKey<Schema.String>;
110
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>, Schema.StructWithRest<Schema.Struct<{
111
+ readonly summary: Schema.optionalKey<Schema.String>;
112
+ readonly description: Schema.optionalKey<Schema.String>;
113
+ readonly value: Schema.optionalKey<Schema.Unknown>;
114
+ readonly externalValue: Schema.optionalKey<Schema.String>;
115
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>]>>>;
116
+ readonly encoding: Schema.optionalKey<Schema.$Record<Schema.String, Schema.StructWithRest<Schema.Struct<{
117
+ readonly contentType: Schema.optionalKey<Schema.String>;
118
+ readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Union<readonly [Schema.StructWithRest<Schema.Struct<{
119
+ readonly $ref: Schema.String;
120
+ readonly summary: Schema.optionalKey<Schema.String>;
121
+ readonly description: Schema.optionalKey<Schema.String>;
122
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>, Schema.suspend<Schema.Codec<OpenApiHeader, OpenApiHeader, never, never>>]>>>;
123
+ readonly style: Schema.optionalKey<Schema.Literals<readonly ["form", "spaceDelimited", "pipeDelimited", "deepObject"]>>;
124
+ readonly explode: Schema.optionalKey<Schema.Boolean>;
125
+ readonly allowReserved: Schema.optionalKey<Schema.Boolean>;
126
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>>>;
127
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>>>;
128
+ readonly links: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Union<readonly [Schema.StructWithRest<Schema.Struct<{
129
+ readonly $ref: Schema.String;
130
+ readonly summary: Schema.optionalKey<Schema.String>;
131
+ readonly description: Schema.optionalKey<Schema.String>;
132
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>, Schema.StructWithRest<Schema.Struct<{
133
+ readonly operationRef: Schema.optionalKey<Schema.String>;
134
+ readonly operationId: Schema.optionalKey<Schema.String>;
135
+ readonly parameters: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>;
136
+ readonly requestBody: Schema.optionalKey<Schema.Unknown>;
137
+ readonly description: Schema.optionalKey<Schema.String>;
138
+ readonly server: Schema.optionalKey<Schema.StructWithRest<Schema.Struct<{
139
+ readonly url: Schema.String;
140
+ readonly description: Schema.optionalKey<Schema.String>;
141
+ readonly variables: Schema.optionalKey<Schema.$Record<Schema.String, Schema.StructWithRest<Schema.Struct<{
142
+ readonly default: Schema.String;
143
+ readonly enum: Schema.optionalKey<Schema.NonEmptyArray<Schema.String>>;
144
+ readonly description: Schema.optionalKey<Schema.String>;
145
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>>>;
146
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>>;
147
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>]>>>;
148
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>;
149
+ export type OpenApiResponse = typeof OpenApiResponse.Type;
@@ -0,0 +1,12 @@
1
+ import { Schema } from "effect";
2
+ import { OpenApiHeader } from "./header.js";
3
+ import { OpenApiLink } from "./link.js";
4
+ import { OpenApiMediaType } from "./media-type.js";
5
+ import { openApiObject } from "./object.js";
6
+ import { withReference } from "./reference.js";
7
+ export const OpenApiResponse = openApiObject({
8
+ description: Schema.String,
9
+ headers: Schema.optionalKey(Schema.Record(Schema.String, withReference(OpenApiHeader))),
10
+ content: Schema.optionalKey(Schema.Record(Schema.String, OpenApiMediaType)),
11
+ links: Schema.optionalKey(Schema.Record(Schema.String, withReference(OpenApiLink))),
12
+ });
@@ -0,0 +1,152 @@
1
+ import { Schema } from "effect";
2
+ export declare const OpenApiResponses: Schema.StructWithRest<Schema.$Record<Schema.String, Schema.Union<readonly [Schema.StructWithRest<Schema.Struct<{
3
+ readonly $ref: Schema.String;
4
+ readonly summary: Schema.optionalKey<Schema.String>;
5
+ readonly description: Schema.optionalKey<Schema.String>;
6
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>, Schema.StructWithRest<Schema.Struct<{
7
+ readonly description: Schema.String;
8
+ readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Union<readonly [Schema.StructWithRest<Schema.Struct<{
9
+ readonly $ref: Schema.String;
10
+ readonly summary: Schema.optionalKey<Schema.String>;
11
+ readonly description: Schema.optionalKey<Schema.String>;
12
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>, Schema.StructWithRest<Schema.Struct<{
13
+ description: Schema.optionalKey<Schema.String>;
14
+ required: Schema.optionalKey<Schema.Boolean>;
15
+ deprecated: Schema.optionalKey<Schema.Boolean>;
16
+ style: Schema.optionalKey<Schema.Literal<"simple">>;
17
+ explode: Schema.optionalKey<Schema.Boolean>;
18
+ schema: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.Unknown>, Schema.Boolean]>>;
19
+ content: Schema.optionalKey<Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<{
20
+ readonly [x: string]: unknown;
21
+ readonly schema?: boolean | {
22
+ readonly [x: string]: unknown;
23
+ } | undefined;
24
+ readonly example?: unknown;
25
+ readonly examples?: {
26
+ readonly [x: string]: {
27
+ readonly [x: string]: unknown;
28
+ readonly summary?: string | undefined;
29
+ readonly description?: string | undefined;
30
+ readonly value?: unknown;
31
+ readonly externalValue?: string | undefined;
32
+ } | {
33
+ readonly [x: string]: unknown;
34
+ readonly $ref: string;
35
+ readonly summary?: string | undefined;
36
+ readonly description?: string | undefined;
37
+ };
38
+ } | undefined;
39
+ readonly encoding?: {
40
+ readonly [x: string]: {
41
+ readonly [x: string]: unknown;
42
+ readonly contentType?: string | undefined;
43
+ readonly headers?: {
44
+ readonly [x: string]: import("./header.ts").OpenApiHeader | {
45
+ readonly [x: string]: unknown;
46
+ readonly $ref: string;
47
+ readonly summary?: string | undefined;
48
+ readonly description?: string | undefined;
49
+ };
50
+ } | undefined;
51
+ readonly style?: "deepObject" | "form" | "pipeDelimited" | "spaceDelimited" | undefined;
52
+ readonly explode?: boolean | undefined;
53
+ readonly allowReserved?: boolean | undefined;
54
+ };
55
+ } | undefined;
56
+ }, {
57
+ readonly [x: string]: unknown;
58
+ readonly schema?: boolean | {
59
+ readonly [x: string]: unknown;
60
+ } | undefined;
61
+ readonly example?: unknown;
62
+ readonly examples?: {
63
+ readonly [x: string]: {
64
+ readonly [x: string]: unknown;
65
+ readonly summary?: string | undefined;
66
+ readonly description?: string | undefined;
67
+ readonly value?: unknown;
68
+ readonly externalValue?: string | undefined;
69
+ } | {
70
+ readonly [x: string]: unknown;
71
+ readonly $ref: string;
72
+ readonly summary?: string | undefined;
73
+ readonly description?: string | undefined;
74
+ };
75
+ } | undefined;
76
+ readonly encoding?: {
77
+ readonly [x: string]: {
78
+ readonly [x: string]: unknown;
79
+ readonly contentType?: string | undefined;
80
+ readonly headers?: {
81
+ readonly [x: string]: import("./header.ts").OpenApiHeader | {
82
+ readonly [x: string]: unknown;
83
+ readonly $ref: string;
84
+ readonly summary?: string | undefined;
85
+ readonly description?: string | undefined;
86
+ };
87
+ } | undefined;
88
+ readonly style?: "deepObject" | "form" | "pipeDelimited" | "spaceDelimited" | undefined;
89
+ readonly explode?: boolean | undefined;
90
+ readonly allowReserved?: boolean | undefined;
91
+ };
92
+ } | undefined;
93
+ }, never, never>>>>;
94
+ example: Schema.optionalKey<Schema.Unknown>;
95
+ examples: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Union<readonly [Schema.StructWithRest<Schema.Struct<{
96
+ readonly $ref: Schema.String;
97
+ readonly summary: Schema.optionalKey<Schema.String>;
98
+ readonly description: Schema.optionalKey<Schema.String>;
99
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>, Schema.StructWithRest<Schema.Struct<{
100
+ readonly summary: Schema.optionalKey<Schema.String>;
101
+ readonly description: Schema.optionalKey<Schema.String>;
102
+ readonly value: Schema.optionalKey<Schema.Unknown>;
103
+ readonly externalValue: Schema.optionalKey<Schema.String>;
104
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>]>>>;
105
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>]>>>;
106
+ readonly content: Schema.optionalKey<Schema.$Record<Schema.String, Schema.StructWithRest<Schema.Struct<{
107
+ readonly schema: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.Unknown>, Schema.Boolean]>>;
108
+ readonly example: Schema.optionalKey<Schema.Unknown>;
109
+ readonly examples: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Union<readonly [Schema.StructWithRest<Schema.Struct<{
110
+ readonly $ref: Schema.String;
111
+ readonly summary: Schema.optionalKey<Schema.String>;
112
+ readonly description: Schema.optionalKey<Schema.String>;
113
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>, Schema.StructWithRest<Schema.Struct<{
114
+ readonly summary: Schema.optionalKey<Schema.String>;
115
+ readonly description: Schema.optionalKey<Schema.String>;
116
+ readonly value: Schema.optionalKey<Schema.Unknown>;
117
+ readonly externalValue: Schema.optionalKey<Schema.String>;
118
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>]>>>;
119
+ readonly encoding: Schema.optionalKey<Schema.$Record<Schema.String, Schema.StructWithRest<Schema.Struct<{
120
+ readonly contentType: Schema.optionalKey<Schema.String>;
121
+ readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Union<readonly [Schema.StructWithRest<Schema.Struct<{
122
+ readonly $ref: Schema.String;
123
+ readonly summary: Schema.optionalKey<Schema.String>;
124
+ readonly description: Schema.optionalKey<Schema.String>;
125
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>, Schema.suspend<Schema.Codec<import("./header.ts").OpenApiHeader, import("./header.ts").OpenApiHeader, never, never>>]>>>;
126
+ readonly style: Schema.optionalKey<Schema.Literals<readonly ["form", "spaceDelimited", "pipeDelimited", "deepObject"]>>;
127
+ readonly explode: Schema.optionalKey<Schema.Boolean>;
128
+ readonly allowReserved: Schema.optionalKey<Schema.Boolean>;
129
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>>>;
130
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>>>;
131
+ readonly links: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Union<readonly [Schema.StructWithRest<Schema.Struct<{
132
+ readonly $ref: Schema.String;
133
+ readonly summary: Schema.optionalKey<Schema.String>;
134
+ readonly description: Schema.optionalKey<Schema.String>;
135
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>, Schema.StructWithRest<Schema.Struct<{
136
+ readonly operationRef: Schema.optionalKey<Schema.String>;
137
+ readonly operationId: Schema.optionalKey<Schema.String>;
138
+ readonly parameters: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Unknown>>;
139
+ readonly requestBody: Schema.optionalKey<Schema.Unknown>;
140
+ readonly description: Schema.optionalKey<Schema.String>;
141
+ readonly server: Schema.optionalKey<Schema.StructWithRest<Schema.Struct<{
142
+ readonly url: Schema.String;
143
+ readonly description: Schema.optionalKey<Schema.String>;
144
+ readonly variables: Schema.optionalKey<Schema.$Record<Schema.String, Schema.StructWithRest<Schema.Struct<{
145
+ readonly default: Schema.String;
146
+ readonly enum: Schema.optionalKey<Schema.NonEmptyArray<Schema.String>>;
147
+ readonly description: Schema.optionalKey<Schema.String>;
148
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>>>;
149
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>>;
150
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>]>>>;
151
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>]>>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>;
152
+ export type OpenApiResponses = typeof OpenApiResponses.Type;
@@ -0,0 +1,7 @@
1
+ import { Schema } from "effect";
2
+ import { openApiMap } from "./object.js";
3
+ import { withReference } from "./reference.js";
4
+ import { OpenApiResponse } from "./response.js";
5
+ export const OpenApiResponses = openApiMap(Schema.String.check(Schema.isPattern(/^(?:default|[1-5](?:\d{2}|XX))$/)), withReference(OpenApiResponse)).check(Schema.makeFilter((value) => Object.keys(value).some((key) => !key.startsWith("x-"))
6
+ ? undefined
7
+ : "Responses must contain at least one response"));
@@ -0,0 +1,4 @@
1
+ import { Schema } from "effect";
2
+ /** Keep JSON Schema keywords and dialects intact; validate only the schema's object/boolean shape. */
3
+ export declare const OpenApiSchema: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.Unknown>, Schema.Boolean]>;
4
+ export type OpenApiSchema = typeof OpenApiSchema.Type;
@@ -0,0 +1,6 @@
1
+ import { Schema } from "effect";
2
+ /** Keep JSON Schema keywords and dialects intact; validate only the schema's object/boolean shape. */
3
+ export const OpenApiSchema = Schema.Union([
4
+ Schema.Record(Schema.String, Schema.Unknown),
5
+ Schema.Boolean,
6
+ ]);
@@ -0,0 +1,3 @@
1
+ import { Schema } from "effect";
2
+ export declare const OpenApiSecurityRequirement: Schema.$Record<Schema.String, Schema.$Array<Schema.String>>;
3
+ export type OpenApiSecurityRequirement = typeof OpenApiSecurityRequirement.Type;
@@ -0,0 +1,2 @@
1
+ import { Schema } from "effect";
2
+ export const OpenApiSecurityRequirement = Schema.Record(Schema.String, Schema.Array(Schema.String));
@@ -0,0 +1,49 @@
1
+ import { Schema } from "effect";
2
+ export declare const OpenApiSecurityScheme: Schema.Union<readonly [Schema.StructWithRest<Schema.Struct<{
3
+ readonly type: Schema.Literal<"apiKey">;
4
+ readonly name: Schema.String;
5
+ readonly in: Schema.Literals<readonly ["query", "header", "cookie"]>;
6
+ readonly description: Schema.optionalKey<Schema.String>;
7
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>, Schema.StructWithRest<Schema.Struct<{
8
+ readonly type: Schema.Literal<"http">;
9
+ readonly scheme: Schema.String;
10
+ readonly bearerFormat: Schema.optionalKey<Schema.String>;
11
+ readonly description: Schema.optionalKey<Schema.String>;
12
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>, Schema.StructWithRest<Schema.Struct<{
13
+ readonly type: Schema.Literal<"oauth2">;
14
+ readonly flows: Schema.StructWithRest<Schema.Struct<{
15
+ readonly implicit: Schema.optionalKey<Schema.StructWithRest<Schema.Struct<{
16
+ readonly tokenUrl: Schema.optionalKey<Schema.String>;
17
+ readonly refreshUrl: Schema.optionalKey<Schema.String>;
18
+ readonly scopes: Schema.$Record<Schema.String, Schema.String>;
19
+ readonly authorizationUrl: Schema.String;
20
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>>;
21
+ readonly password: Schema.optionalKey<Schema.StructWithRest<Schema.Struct<{
22
+ readonly authorizationUrl: Schema.optionalKey<Schema.String>;
23
+ readonly refreshUrl: Schema.optionalKey<Schema.String>;
24
+ readonly scopes: Schema.$Record<Schema.String, Schema.String>;
25
+ readonly tokenUrl: Schema.String;
26
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>>;
27
+ readonly clientCredentials: Schema.optionalKey<Schema.StructWithRest<Schema.Struct<{
28
+ readonly authorizationUrl: Schema.optionalKey<Schema.String>;
29
+ readonly refreshUrl: Schema.optionalKey<Schema.String>;
30
+ readonly scopes: Schema.$Record<Schema.String, Schema.String>;
31
+ readonly tokenUrl: Schema.String;
32
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>>;
33
+ readonly authorizationCode: Schema.optionalKey<Schema.StructWithRest<Schema.Struct<{
34
+ readonly refreshUrl: Schema.optionalKey<Schema.String>;
35
+ readonly scopes: Schema.$Record<Schema.String, Schema.String>;
36
+ readonly authorizationUrl: Schema.String;
37
+ readonly tokenUrl: Schema.String;
38
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>>;
39
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>;
40
+ readonly description: Schema.optionalKey<Schema.String>;
41
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>, Schema.StructWithRest<Schema.Struct<{
42
+ readonly type: Schema.Literal<"openIdConnect">;
43
+ readonly openIdConnectUrl: Schema.String;
44
+ readonly description: Schema.optionalKey<Schema.String>;
45
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>, Schema.StructWithRest<Schema.Struct<{
46
+ readonly type: Schema.Literal<"mutualTLS">;
47
+ readonly description: Schema.optionalKey<Schema.String>;
48
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>]>;
49
+ export type OpenApiSecurityScheme = typeof OpenApiSecurityScheme.Type;
@@ -0,0 +1,25 @@
1
+ import { Schema } from "effect";
2
+ import { OpenApiOAuthFlows } from "./oauth-flows.js";
3
+ import { openApiObject } from "./object.js";
4
+ const description = Schema.optionalKey(Schema.String);
5
+ export const OpenApiSecurityScheme = Schema.Union([
6
+ openApiObject({
7
+ type: Schema.Literal("apiKey"),
8
+ name: Schema.String,
9
+ in: Schema.Literals(["query", "header", "cookie"]),
10
+ description,
11
+ }),
12
+ openApiObject({
13
+ type: Schema.Literal("http"),
14
+ scheme: Schema.String,
15
+ bearerFormat: Schema.optionalKey(Schema.String),
16
+ description,
17
+ }),
18
+ openApiObject({ type: Schema.Literal("oauth2"), flows: OpenApiOAuthFlows, description }),
19
+ openApiObject({
20
+ type: Schema.Literal("openIdConnect"),
21
+ openIdConnectUrl: Schema.String,
22
+ description,
23
+ }),
24
+ openApiObject({ type: Schema.Literal("mutualTLS"), description }),
25
+ ]);
@@ -0,0 +1,7 @@
1
+ import { Schema } from "effect";
2
+ export declare const OpenApiServerVariable: Schema.StructWithRest<Schema.Struct<{
3
+ readonly default: Schema.String;
4
+ readonly enum: Schema.optionalKey<Schema.NonEmptyArray<Schema.String>>;
5
+ readonly description: Schema.optionalKey<Schema.String>;
6
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>;
7
+ export type OpenApiServerVariable = typeof OpenApiServerVariable.Type;
@@ -0,0 +1,7 @@
1
+ import { Schema } from "effect";
2
+ import { openApiObject } from "./object.js";
3
+ export const OpenApiServerVariable = openApiObject({
4
+ default: Schema.String,
5
+ enum: Schema.optionalKey(Schema.NonEmptyArray(Schema.String)),
6
+ description: Schema.optionalKey(Schema.String),
7
+ });
@@ -0,0 +1,11 @@
1
+ import { Schema } from "effect";
2
+ export declare const OpenApiServer: Schema.StructWithRest<Schema.Struct<{
3
+ readonly url: Schema.String;
4
+ readonly description: Schema.optionalKey<Schema.String>;
5
+ readonly variables: Schema.optionalKey<Schema.$Record<Schema.String, Schema.StructWithRest<Schema.Struct<{
6
+ readonly default: Schema.String;
7
+ readonly enum: Schema.optionalKey<Schema.NonEmptyArray<Schema.String>>;
8
+ readonly description: Schema.optionalKey<Schema.String>;
9
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>>>;
10
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>;
11
+ export type OpenApiServer = typeof OpenApiServer.Type;
@@ -0,0 +1,8 @@
1
+ import { Schema } from "effect";
2
+ import { openApiObject } from "./object.js";
3
+ import { OpenApiServerVariable } from "./server-variable.js";
4
+ export const OpenApiServer = openApiObject({
5
+ url: Schema.String,
6
+ description: Schema.optionalKey(Schema.String),
7
+ variables: Schema.optionalKey(Schema.Record(Schema.String, OpenApiServerVariable)),
8
+ });
@@ -0,0 +1,10 @@
1
+ import { Schema } from "effect";
2
+ export declare const OpenApiTag: Schema.StructWithRest<Schema.Struct<{
3
+ readonly name: Schema.String;
4
+ readonly description: Schema.optionalKey<Schema.String>;
5
+ readonly externalDocs: Schema.optionalKey<Schema.StructWithRest<Schema.Struct<{
6
+ readonly url: Schema.String;
7
+ readonly description: Schema.optionalKey<Schema.String>;
8
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>>;
9
+ }>, readonly [Schema.$Record<Schema.String, Schema.Unknown>]>;
10
+ export type OpenApiTag = typeof OpenApiTag.Type;
@@ -0,0 +1,8 @@
1
+ import { Schema } from "effect";
2
+ import { OpenApiExternalDocs } from "./external-docs.js";
3
+ import { openApiObject } from "./object.js";
4
+ export const OpenApiTag = openApiObject({
5
+ name: Schema.String,
6
+ description: Schema.optionalKey(Schema.String),
7
+ externalDocs: Schema.optionalKey(OpenApiExternalDocs),
8
+ });
@@ -0,0 +1,9 @@
1
+ export interface Slot {
2
+ parent: Record<string, unknown>;
3
+ key: string;
4
+ }
5
+ export declare function isOpenApi3(document: unknown): document is Record<string, unknown>;
6
+ export declare function isOpenApi3_0(document: unknown): boolean;
7
+ export declare function upgradeOpenApi3_0(document: Record<string, unknown>): void;
8
+ export declare function schemaSlots(document: Record<string, unknown>, includeComponentSchemas?: boolean): Slot[];
9
+ export declare function componentSchemas(document: Record<string, unknown>): Slot[];