@automatons/parser 0.0.263 → 1.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.
- package/README.md +7 -45
- package/index.d.ts +206 -3
- package/index.js +633 -18
- package/index.js.map +1 -1
- package/package.json +39 -35
- package/converters/allOf.d.ts +0 -4
- package/converters/allOf.d.ts.map +0 -1
- package/converters/allOf.js +0 -11
- package/converters/allOf.js.map +0 -1
- package/converters/array.d.ts +0 -4
- package/converters/array.d.ts.map +0 -1
- package/converters/array.js +0 -14
- package/converters/array.js.map +0 -1
- package/converters/boolean.d.ts +0 -4
- package/converters/boolean.d.ts.map +0 -1
- package/converters/boolean.js +0 -10
- package/converters/boolean.js.map +0 -1
- package/converters/map.d.ts +0 -7
- package/converters/map.d.ts.map +0 -1
- package/converters/map.js +0 -6
- package/converters/map.js.map +0 -1
- package/converters/model.d.ts +0 -3
- package/converters/model.d.ts.map +0 -1
- package/converters/model.js +0 -12
- package/converters/model.js.map +0 -1
- package/converters/number.d.ts +0 -4
- package/converters/number.d.ts.map +0 -1
- package/converters/number.js +0 -12
- package/converters/number.js.map +0 -1
- package/converters/object.d.ts +0 -4
- package/converters/object.d.ts.map +0 -1
- package/converters/object.js +0 -11
- package/converters/object.js.map +0 -1
- package/converters/oneOf.d.ts +0 -4
- package/converters/oneOf.d.ts.map +0 -1
- package/converters/oneOf.js +0 -11
- package/converters/oneOf.js.map +0 -1
- package/converters/schema.d.ts +0 -4
- package/converters/schema.d.ts.map +0 -1
- package/converters/schema.js +0 -14
- package/converters/schema.js.map +0 -1
- package/converters/schemaModel.d.ts +0 -4
- package/converters/schemaModel.d.ts.map +0 -1
- package/converters/schemaModel.js +0 -12
- package/converters/schemaModel.js.map +0 -1
- package/converters/security.d.ts +0 -4
- package/converters/security.d.ts.map +0 -1
- package/converters/security.js +0 -19
- package/converters/security.js.map +0 -1
- package/converters/server.d.ts +0 -4
- package/converters/server.d.ts.map +0 -1
- package/converters/server.js +0 -12
- package/converters/server.js.map +0 -1
- package/converters/string.d.ts +0 -4
- package/converters/string.d.ts.map +0 -1
- package/converters/string.js +0 -12
- package/converters/string.js.map +0 -1
- package/extractors/index.d.ts +0 -4
- package/extractors/index.d.ts.map +0 -1
- package/extractors/index.js +0 -20
- package/extractors/index.js.map +0 -1
- package/extractors/model/allOf.d.ts +0 -4
- package/extractors/model/allOf.d.ts.map +0 -1
- package/extractors/model/allOf.js +0 -12
- package/extractors/model/allOf.js.map +0 -1
- package/extractors/model/array.d.ts +0 -4
- package/extractors/model/array.d.ts.map +0 -1
- package/extractors/model/array.js +0 -16
- package/extractors/model/array.js.map +0 -1
- package/extractors/model/index.d.ts +0 -4
- package/extractors/model/index.d.ts.map +0 -1
- package/extractors/model/index.js +0 -42
- package/extractors/model/index.js.map +0 -1
- package/extractors/model/object.d.ts +0 -4
- package/extractors/model/object.d.ts.map +0 -1
- package/extractors/model/object.js +0 -23
- package/extractors/model/object.js.map +0 -1
- package/extractors/model/of.d.ts +0 -8
- package/extractors/model/of.d.ts.map +0 -1
- package/extractors/model/of.js +0 -15
- package/extractors/model/of.js.map +0 -1
- package/extractors/model/oneOf.d.ts +0 -6
- package/extractors/model/oneOf.d.ts.map +0 -1
- package/extractors/model/oneOf.js +0 -12
- package/extractors/model/oneOf.js.map +0 -1
- package/extractors/model/ref.d.ts +0 -4
- package/extractors/model/ref.d.ts.map +0 -1
- package/extractors/model/ref.js +0 -14
- package/extractors/model/ref.js.map +0 -1
- package/extractors/model/type.d.ts +0 -6
- package/extractors/model/type.d.ts.map +0 -1
- package/extractors/model/type.js +0 -3
- package/extractors/model/type.js.map +0 -1
- package/extractors/path/index.d.ts +0 -8
- package/extractors/path/index.d.ts.map +0 -1
- package/extractors/path/index.js +0 -18
- package/extractors/path/index.js.map +0 -1
- package/extractors/path/mediaType.d.ts +0 -3
- package/extractors/path/mediaType.d.ts.map +0 -1
- package/extractors/path/mediaType.js +0 -11
- package/extractors/path/mediaType.js.map +0 -1
- package/extractors/path/method.d.ts +0 -4
- package/extractors/path/method.d.ts.map +0 -1
- package/extractors/path/method.js +0 -76
- package/extractors/path/method.js.map +0 -1
- package/extractors/path/parameter.d.ts +0 -4
- package/extractors/path/parameter.d.ts.map +0 -1
- package/extractors/path/parameter.js +0 -84
- package/extractors/path/parameter.js.map +0 -1
- package/extractors/path/requestBody.d.ts +0 -8
- package/extractors/path/requestBody.d.ts.map +0 -1
- package/extractors/path/requestBody.js +0 -35
- package/extractors/path/requestBody.js.map +0 -1
- package/extractors/path/response.d.ts +0 -5
- package/extractors/path/response.d.ts.map +0 -1
- package/extractors/path/response.js +0 -20
- package/extractors/path/response.js.map +0 -1
- package/extractors/path/security.d.ts +0 -4
- package/extractors/path/security.d.ts.map +0 -1
- package/extractors/path/security.js +0 -11
- package/extractors/path/security.js.map +0 -1
- package/extractors/path/status.d.ts +0 -3
- package/extractors/path/status.d.ts.map +0 -1
- package/extractors/path/status.js +0 -12
- package/extractors/path/status.js.map +0 -1
- package/extractors/path/type.d.ts +0 -20
- package/extractors/path/type.d.ts.map +0 -1
- package/extractors/path/type.js +0 -3
- package/extractors/path/type.js.map +0 -1
- package/extractors/schema/allOf.d.ts +0 -7
- package/extractors/schema/allOf.d.ts.map +0 -1
- package/extractors/schema/allOf.js +0 -17
- package/extractors/schema/allOf.js.map +0 -1
- package/extractors/schema/array.d.ts +0 -12
- package/extractors/schema/array.d.ts.map +0 -1
- package/extractors/schema/array.js +0 -31
- package/extractors/schema/array.js.map +0 -1
- package/extractors/schema/boolean.d.ts +0 -11
- package/extractors/schema/boolean.d.ts.map +0 -1
- package/extractors/schema/boolean.js +0 -16
- package/extractors/schema/boolean.js.map +0 -1
- package/extractors/schema/index.d.ts +0 -9
- package/extractors/schema/index.d.ts.map +0 -1
- package/extractors/schema/index.js +0 -41
- package/extractors/schema/index.js.map +0 -1
- package/extractors/schema/number.d.ts +0 -11
- package/extractors/schema/number.d.ts.map +0 -1
- package/extractors/schema/number.js +0 -16
- package/extractors/schema/number.js.map +0 -1
- package/extractors/schema/object.d.ts +0 -7
- package/extractors/schema/object.d.ts.map +0 -1
- package/extractors/schema/object.js +0 -17
- package/extractors/schema/object.js.map +0 -1
- package/extractors/schema/oneOf.d.ts +0 -7
- package/extractors/schema/oneOf.d.ts.map +0 -1
- package/extractors/schema/oneOf.js +0 -17
- package/extractors/schema/oneOf.js.map +0 -1
- package/extractors/schema/ref.d.ts +0 -7
- package/extractors/schema/ref.d.ts.map +0 -1
- package/extractors/schema/ref.js +0 -17
- package/extractors/schema/ref.js.map +0 -1
- package/extractors/schema/string.d.ts +0 -11
- package/extractors/schema/string.d.ts.map +0 -1
- package/extractors/schema/string.js +0 -16
- package/extractors/schema/string.js.map +0 -1
- package/index.d.ts.map +0 -1
- package/parser.d.ts +0 -8
- package/parser.d.ts.map +0 -1
- package/parser.js +0 -16
- package/parser.js.map +0 -1
- package/parsers/api.d.ts +0 -7
- package/parsers/api.d.ts.map +0 -1
- package/parsers/api.js +0 -30
- package/parsers/api.js.map +0 -1
- package/parsers/model.d.ts +0 -4
- package/parsers/model.d.ts.map +0 -1
- package/parsers/model.js +0 -12
- package/parsers/model.js.map +0 -1
- package/types/api.d.ts +0 -105
- package/types/api.d.ts.map +0 -1
- package/types/api.js +0 -3
- package/types/api.js.map +0 -1
- package/types/index.d.ts +0 -3
- package/types/index.d.ts.map +0 -1
- package/types/index.js +0 -19
- package/types/index.js.map +0 -1
- package/types/model.d.ts +0 -94
- package/types/model.d.ts.map +0 -1
- package/types/model.js +0 -3
- package/types/model.js.map +0 -1
- package/utils/method.d.ts +0 -4
- package/utils/method.d.ts.map +0 -1
- package/utils/method.js +0 -6
- package/utils/method.js.map +0 -1
- package/utils/omitCopy.d.ts +0 -2
- package/utils/omitCopy.d.ts.map +0 -1
- package/utils/omitCopy.js +0 -7
- package/utils/omitCopy.js.map +0 -1
- package/utils/overwrite.d.ts +0 -2
- package/utils/overwrite.d.ts.map +0 -1
- package/utils/overwrite.js +0 -6
- package/utils/overwrite.js.map +0 -1
- package/utils/sort.d.ts +0 -6
- package/utils/sort.d.ts.map +0 -1
- package/utils/sort.js +0 -6
- package/utils/sort.js.map +0 -1
- package/utils/uniq.d.ts +0 -2
- package/utils/uniq.d.ts.map +0 -1
- package/utils/uniq.js +0 -6
- package/utils/uniq.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,47 +1,9 @@
|
|
|
1
|
-
#
|
|
2
|
-
[](https://github.com/semantic-release/semantic-release)
|
|
5
|
-
[](https://www.npmjs.com/package/openapi-automatons)
|
|
1
|
+
# @automatons/parser
|
|
2
|
+
[](https://github.com/openapi-automatons/parser/actions/workflows/ci-cd.yml)
|
|
3
|
+
[](https://www.npmjs.com/package/@automatons/parser)
|
|
6
4
|
|
|
7
|
-
## What
|
|
8
|
-
This
|
|
5
|
+
## What is @automatons/parser
|
|
6
|
+
This is the OpenAPI parser used by openapi-automatons generators.
|
|
7
|
+
Only use via [openapi-automatons](https://github.com/openapi-automatons/openapi-automatons).
|
|
9
8
|
|
|
10
|
-
|
|
11
|
-
| name | language | type | example |
|
|
12
|
-
| ---- | -------- | ---- | ------- |
|
|
13
|
-
| @automatons/typescript-axios | typescript | client | [example](https://github.com/openapi-automatons/openapi-automatons/tree/main/examples/typescript/clients/axios "example") |
|
|
14
|
-
|
|
15
|
-
## Get Started
|
|
16
|
-
1. Install library to your project
|
|
17
|
-
```shell script
|
|
18
|
-
yarn add -D openapi-automatons @automatons/typescript-axios
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
2. Create settings in your project root
|
|
22
|
-
```json:automatons.json
|
|
23
|
-
{
|
|
24
|
-
"openapi": "openapi.yml",
|
|
25
|
-
"automatons": [{
|
|
26
|
-
"automaton": "@automatons/typescript-axios",
|
|
27
|
-
"outDir": "src/clients"
|
|
28
|
-
}]
|
|
29
|
-
}
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
3. Add generate command your package.json
|
|
33
|
-
```json:package.json
|
|
34
|
-
{
|
|
35
|
-
"scripts": {
|
|
36
|
-
"generate": "openapi-automatons"
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Automatons.json
|
|
42
|
-
| property | | type | required | description |
|
|
43
|
-
| -------- | --- | ---- | -------- | ----------- |
|
|
44
|
-
| openapi | | string | true | This is openapi path. It can be relative or absolute. Also, there is no problem with the url format.|
|
|
45
|
-
| automatons | | array | true | This is the property that contains the module. |
|
|
46
|
-
| automatons | automaton | string | true | This is the module name. You can embed your own module. It is also possible to include it with a relative path. |
|
|
47
|
-
| automatons | outDir | string | true | This is the output directory of module. |
|
|
9
|
+
Since v1 this package is **ESM-only** and requires **Node.js >= 22**.
|
package/index.d.ts
CHANGED
|
@@ -1,3 +1,206 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { Openapi, AutomatonSettings } from '@automatons/tools';
|
|
2
|
+
|
|
3
|
+
type Schema = StringSchema | IntegerSchema | NumberSchema | BooleanSchema | ArraySchema | ObjectSchema | AllOfSchema | OneOfSchema | ModelSchema;
|
|
4
|
+
interface Model {
|
|
5
|
+
filename: string;
|
|
6
|
+
title: string;
|
|
7
|
+
imports: Model[];
|
|
8
|
+
schema: Schema;
|
|
9
|
+
}
|
|
10
|
+
interface SchemaCommon {
|
|
11
|
+
description?: string;
|
|
12
|
+
nullable?: boolean;
|
|
13
|
+
readOnly?: boolean;
|
|
14
|
+
writeOnly?: boolean;
|
|
15
|
+
deprecated?: boolean;
|
|
16
|
+
example?: any;
|
|
17
|
+
defaultValue?: any;
|
|
18
|
+
}
|
|
19
|
+
interface StringSchema extends SchemaCommon {
|
|
20
|
+
type: 'string';
|
|
21
|
+
format?: 'date' | 'date-time' | 'password' | 'byte' | 'binary' | 'url' | string;
|
|
22
|
+
enum?: string[];
|
|
23
|
+
examples?: Example<string>[];
|
|
24
|
+
default?: string;
|
|
25
|
+
minLength?: number;
|
|
26
|
+
maxLength?: number;
|
|
27
|
+
pattern?: string;
|
|
28
|
+
}
|
|
29
|
+
interface IntegerSchema extends SchemaCommon {
|
|
30
|
+
type: 'integer';
|
|
31
|
+
format?: 'int32' | 'int64' | 'float' | 'double';
|
|
32
|
+
enum?: number[];
|
|
33
|
+
examples?: Example<number>[];
|
|
34
|
+
default?: number;
|
|
35
|
+
maximum?: number;
|
|
36
|
+
exclusiveMaximum?: boolean;
|
|
37
|
+
minimum?: number;
|
|
38
|
+
exclusiveMinimum?: boolean;
|
|
39
|
+
multipleOf?: number;
|
|
40
|
+
}
|
|
41
|
+
interface NumberSchema extends SchemaCommon {
|
|
42
|
+
type: 'number';
|
|
43
|
+
format?: 'float' | 'double' | string;
|
|
44
|
+
enum?: number[];
|
|
45
|
+
examples?: Example<number>[];
|
|
46
|
+
default?: number;
|
|
47
|
+
maximum?: number;
|
|
48
|
+
exclusiveMaximum?: boolean;
|
|
49
|
+
minimum?: number;
|
|
50
|
+
exclusiveMinimum?: boolean;
|
|
51
|
+
multipleOf?: number;
|
|
52
|
+
}
|
|
53
|
+
interface BooleanSchema extends SchemaCommon {
|
|
54
|
+
type: 'boolean';
|
|
55
|
+
default?: boolean;
|
|
56
|
+
}
|
|
57
|
+
interface ObjectSchema extends SchemaCommon {
|
|
58
|
+
type: 'object';
|
|
59
|
+
discriminate?: string;
|
|
60
|
+
properties?: Property[];
|
|
61
|
+
examples?: Example<object>[];
|
|
62
|
+
default?: object;
|
|
63
|
+
}
|
|
64
|
+
interface Property {
|
|
65
|
+
name: string;
|
|
66
|
+
required: boolean;
|
|
67
|
+
schema: Schema;
|
|
68
|
+
}
|
|
69
|
+
interface ArraySchema extends SchemaCommon {
|
|
70
|
+
type: 'array';
|
|
71
|
+
uniqueItems?: boolean;
|
|
72
|
+
minItems?: number;
|
|
73
|
+
maxItems?: number;
|
|
74
|
+
items?: Schema;
|
|
75
|
+
examples?: Example<any[]>[];
|
|
76
|
+
}
|
|
77
|
+
interface AllOfSchema extends SchemaCommon {
|
|
78
|
+
type: 'allOf';
|
|
79
|
+
examples?: Example[];
|
|
80
|
+
schemas: Schema[];
|
|
81
|
+
}
|
|
82
|
+
interface OneOfSchema extends SchemaCommon {
|
|
83
|
+
type: 'oneOf';
|
|
84
|
+
examples?: Example[];
|
|
85
|
+
schemas: Schema[];
|
|
86
|
+
}
|
|
87
|
+
interface ModelSchema extends SchemaCommon {
|
|
88
|
+
type: 'model';
|
|
89
|
+
name: string;
|
|
90
|
+
}
|
|
91
|
+
type Example<T = any> = {
|
|
92
|
+
name: string;
|
|
93
|
+
value: T;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
interface Api {
|
|
97
|
+
title: string;
|
|
98
|
+
filename: string;
|
|
99
|
+
servers: Server[];
|
|
100
|
+
imports: Model[];
|
|
101
|
+
paths: Path[];
|
|
102
|
+
}
|
|
103
|
+
type Path = ReceivePath | AffectPath;
|
|
104
|
+
type ReceiveMethod = 'get' | 'head' | 'delete' | 'options' | 'trace';
|
|
105
|
+
type ReceivePath = {
|
|
106
|
+
name: string;
|
|
107
|
+
method: ReceiveMethod;
|
|
108
|
+
path: string;
|
|
109
|
+
servers: Server[];
|
|
110
|
+
parameters?: PathParameter[];
|
|
111
|
+
queries?: QueryParameter[];
|
|
112
|
+
headers?: HeaderParameter[];
|
|
113
|
+
cookies?: CookieParameter[];
|
|
114
|
+
schema?: Schema;
|
|
115
|
+
securities?: Security[];
|
|
116
|
+
};
|
|
117
|
+
type AffectMethod = 'post' | 'put' | 'patch';
|
|
118
|
+
type AffectPath = {
|
|
119
|
+
name: string;
|
|
120
|
+
method: AffectMethod;
|
|
121
|
+
path: string;
|
|
122
|
+
servers: Server[];
|
|
123
|
+
forms?: Form[];
|
|
124
|
+
parameters?: PathParameter[];
|
|
125
|
+
queries?: QueryParameter[];
|
|
126
|
+
headers?: HeaderParameter[];
|
|
127
|
+
cookies?: CookieParameter[];
|
|
128
|
+
schema?: Schema;
|
|
129
|
+
securities?: Security[];
|
|
130
|
+
};
|
|
131
|
+
type Form = {
|
|
132
|
+
types: string[];
|
|
133
|
+
required?: boolean;
|
|
134
|
+
schema: Schema;
|
|
135
|
+
};
|
|
136
|
+
type Server = {
|
|
137
|
+
name: string;
|
|
138
|
+
url: string;
|
|
139
|
+
values?: ServerValue[];
|
|
140
|
+
};
|
|
141
|
+
type ServerValue = {
|
|
142
|
+
name: string;
|
|
143
|
+
defaultValue: string;
|
|
144
|
+
enums: string[];
|
|
145
|
+
};
|
|
146
|
+
type PathParameter = {
|
|
147
|
+
name: string;
|
|
148
|
+
schema: Schema;
|
|
149
|
+
style: 'simple' | 'label' | 'matrix';
|
|
150
|
+
explode?: boolean;
|
|
151
|
+
};
|
|
152
|
+
type QueryParameter = {
|
|
153
|
+
name: string;
|
|
154
|
+
schema: Schema;
|
|
155
|
+
style: 'form' | 'spaceDelimited' | 'pipeDelimited' | 'deepObject';
|
|
156
|
+
required?: boolean;
|
|
157
|
+
explode?: boolean;
|
|
158
|
+
};
|
|
159
|
+
type HeaderParameter = {
|
|
160
|
+
name: string;
|
|
161
|
+
schema: Schema;
|
|
162
|
+
style: 'simple';
|
|
163
|
+
required?: boolean;
|
|
164
|
+
explode?: boolean;
|
|
165
|
+
};
|
|
166
|
+
type CookieParameter = {
|
|
167
|
+
name: string;
|
|
168
|
+
schema: Schema;
|
|
169
|
+
style: 'form';
|
|
170
|
+
required?: boolean;
|
|
171
|
+
explode?: boolean;
|
|
172
|
+
};
|
|
173
|
+
type Security = ApiKeySecurity | HttpSecurity | Oauth2Security | OpenIdConnectSecurity;
|
|
174
|
+
type ApiKeySecurity = {
|
|
175
|
+
name: string;
|
|
176
|
+
type: 'apiKey';
|
|
177
|
+
key: string;
|
|
178
|
+
in: 'query' | 'header' | 'cookie';
|
|
179
|
+
description?: string;
|
|
180
|
+
};
|
|
181
|
+
type HttpSecurity = {
|
|
182
|
+
name: string;
|
|
183
|
+
type: 'http';
|
|
184
|
+
scheme: 'basic' | 'bearer';
|
|
185
|
+
description?: string;
|
|
186
|
+
};
|
|
187
|
+
type Oauth2Security = {
|
|
188
|
+
name: string;
|
|
189
|
+
type: 'oauth2';
|
|
190
|
+
scopes: string[];
|
|
191
|
+
description?: string;
|
|
192
|
+
};
|
|
193
|
+
type OpenIdConnectSecurity = {
|
|
194
|
+
name: string;
|
|
195
|
+
type: 'openIdConnect';
|
|
196
|
+
scopes: string[];
|
|
197
|
+
description?: string;
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
declare const parser: (openapi: Openapi, settings: AutomatonSettings) => Promise<{
|
|
201
|
+
models: Model[];
|
|
202
|
+
apis: Api[];
|
|
203
|
+
securities: Security[];
|
|
204
|
+
}>;
|
|
205
|
+
|
|
206
|
+
export { type AffectMethod, type AffectPath, type AllOfSchema, type Api, type ApiKeySecurity, type ArraySchema, type BooleanSchema, type CookieParameter, type Form, type HeaderParameter, type HttpSecurity, type IntegerSchema, type Model, type ModelSchema, type NumberSchema, type Oauth2Security, type ObjectSchema, type OneOfSchema, type OpenIdConnectSecurity, type Path, type PathParameter, type Property, type QueryParameter, type ReceiveMethod, type ReceivePath, type Schema, type SchemaCommon, type Security, type Server, type ServerValue, type StringSchema, parser };
|