swagger-autogen-ast 1.0.0 → 1.0.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.
package/README.md CHANGED
@@ -1,207 +1,146 @@
1
1
  # swagger-autogen-ast
2
2
 
3
- A zero-config OpenAPI 3.0 generator for Express. The AST-based spiritual successor to `swagger-autogen` with automatic type inference.
3
+ **Zero-config OpenAPI 3.0 generation for Express.**
4
4
 
5
+ This is the AST-based successor to [swagger-autogen](https://www.npmjs.com/package/swagger-autogen). It uses the TypeScript Compiler API to statically analyze your routes, types, and controller logic to generate a spec that matches your code.
6
+
7
+ [![npm](https://img.shields.io/npm/v/swagger-autogen-ast)](https://www.npmjs.com/package/swagger-autogen-ast)
5
8
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
- [![TypeScript](https://img.shields.io/badge/TypeScript-5.0-blue.svg)](https://www.typescriptlang.org/)
7
9
 
8
- ## Overview
10
+ ## Why?
9
11
 
10
- **swagger-autogen-ast** automates the creation of OpenAPI 3.0 specifications by statically analyzing your TypeScript source code.
12
+ Swagger generators are annoying. They require tons of manual config or intrusive code annotations (both which I didn't want to do).
11
13
 
12
- Unlike other tools that require extensive JSDoc decorators, this library uses the **TypeScript Compiler API (AST)** to crawl your route files. It follows your `router.use()` imports to build a complete path map and automatically infers request bodies, query parameters, and response schemas directly from your TypeScript interfaces and logic.
14
+ This tool aims to make OpenAPI generation effortless by inferring as much as possible from your existing TypeScript/Express code with zero config.
13
15
 
14
- ## Features
16
+ ## Table of Contents
15
17
 
16
- - **AST-Powered Crawling:** Recursively follows imports in `router.use()` and controller functions to analyze code across files.
17
- - **Deep Schema Inference:** Converts TypeScript Interfaces, Enums, Unions, Intersections, and `Date` objects into OpenAPI Schemas.
18
- - **Request Body & Query Detection:**
19
- - Infers schema from `req.body` and `req.query` type assertions (`as MyType`).
20
- - Infers schema from Express Generics: `Request<{}, {}, MyBodyType>`.
21
- - **Response Body Inference:** automatically generates schemas from `res.json(data)` and `res.send(data)` calls.
22
- - **Smart Path Resolution:** Resolves paths from string literals (`"/users"`) as well as constants and variables (`USER_ROUTE`).
23
- - **Automatic Status Codes:** Scans controller logic to automatically register response codes.
24
- - **Comment Overrides:** Supports JSDoc and `#swagger` inline comments for when you need manual control.
18
+ - [Installation](#installation)
19
+ - [Usage](#usage)
20
+ - [Automatic Inference](#automatic-inference)
21
+ - [Overrides](#overrides)
22
+ - [How it works](#how-it-works)
25
23
 
26
24
  ## Installation
27
25
 
28
- **Note**: Not published to npm yet!
29
-
30
26
  ```bash
31
27
  npm install swagger-autogen-ast --save-dev
32
28
  ```
33
29
 
34
30
  ## Usage
35
31
 
36
- There are two ways to use this generator:
37
-
38
- ### 1. Via Command Line (Recommended)
32
+ ### CLI
39
33
 
40
- The easiest way is to run the tool directly against your project. The generator will automatically find your `tsconfig.json`.
41
-
42
- ```bash
43
- npx swagger-autogen-ast <entryFile> <outputFile>
44
- ```
45
-
46
- **Example:**
34
+ The generator automatically detects your `tsconfig.json`.
47
35
 
48
36
  ```bash
49
37
  npx swagger-autogen-ast ./src/index.ts ./swagger.json
50
38
  ```
51
39
 
52
- ### 2. Via Programmatic Script
40
+ ### Programmatic
53
41
 
54
- For more control over the configuration, such as defining API info and servers, you can create a generator script (e.g., `generate-swagger.ts`):
42
+ For custom configurations:
55
43
 
56
44
  ```typescript
57
45
  import { generateOpenApi } from "swagger-autogen-ast";
58
46
 
59
- const options = {
60
- // Point to your main application entry file (e.g., app.ts or index.ts)
61
- entryFile: "./src/index.ts",
47
+ generateOpenApi({
48
+ entryFile: "./src/index.ts", // main Express app entry
62
49
  outputFile: "./swagger.json",
63
- // Optional: Auto-detected if not provided
64
- tsconfigPath: "./tsconfig.json",
50
+ tsconfigPath: "./tsconfig.json", // optional, auto-detected if not provided
65
51
  info: {
66
52
  title: "My API",
67
53
  version: "1.0.0",
68
- description: "Generated via AST analysis",
69
54
  },
70
- servers: [
71
- {
72
- url: "http://localhost:3000",
73
- description: "Local server",
74
- },
75
- ],
76
- };
77
-
78
- generateOpenApi(options);
55
+ servers: [{ url: "http://localhost:3000", description: "Local server" }],
56
+ });
79
57
  ```
80
58
 
81
- Then run the script:
59
+ ### Examples
82
60
 
83
- ```bash
84
- npx tsx generate-swagger.ts
85
- ```
61
+ See the [/tests](./tests) directory for a complete set of examples covering all supported features and mappings to OpenAPI outputs.
86
62
 
87
63
  ## Automatic Inference
88
64
 
89
- The primary goal of this library is to minimize documentation overhead. It reads your code so you don't have to write YAML.
65
+ The tool relies on standard TypeScript/Express patterns.
90
66
 
91
- ### 1. Request Body & Query Params via Generics
67
+ ### 1. Request Bodies & Query Params
92
68
 
93
- The cleanest way to document your API is using standard Express generics. The generator reads the **3rd (Body)** and **4th (Query)** generic arguments.
69
+ The generator inspects **Express Generics** (preferred) and **Type Assertions**.
94
70
 
95
- ```typescript
96
- import { Request, Response } from "express";
71
+ **Using Generics:**
72
+ It reads the 3rd argument (Body) and 4th argument (Query).
97
73
 
98
- interface CreateUserBody {
99
- username: string;
100
- email: string;
101
- }
102
-
103
- interface UserQuery {
104
- includeProfile?: string;
105
- }
106
-
107
- // AST automatically detects:
108
- // 1. Body schema from CreateUserBody
109
- // 2. Query parameters from UserQuery
74
+ ```typescript
75
+ // Infers schema from CreateUserBody and params from UserQuery
110
76
  router.post(
111
77
  "/users",
112
- (req: Request<{}, {}, CreateUserBody, UserQuery>, res) => {
113
- // ...
114
- },
78
+ (req: Request<{}, {}, CreateUserBody, UserQuery>, res) => { ... }
115
79
  );
116
80
  ```
117
81
 
118
- ### 2. Request & Query via Type Assertion
119
-
120
- If you don't use generics, the generator detects type assertions (`as Type`) on `req.body` and `req.query` within the function body.
82
+ **Using Assertions:**
83
+ If you don't use generics, it scans the function body for `as Type` assertions.
121
84
 
122
85
  ```typescript
123
86
  router.put("/users/:id", (req, res) => {
124
- // Infers request body schema
125
- const payload = req.body as UpdateUser;
126
-
127
- // Infers query parameters
128
- const { filter } = req.query as UserSearchQuery;
129
-
130
- res.send("Updated");
87
+ const body = req.body as UpdateUser; // Schema inferred
88
+ const { status } = req.query as StatusQuery; // Params inferred
131
89
  });
132
90
  ```
133
91
 
134
- ### 3. Response Bodies & Status Codes
92
+ ### 2. Responses
135
93
 
136
- The analyzer scans the function body for response methods. It matches standard Express patterns to generate the `responses` object, **including the schema of the data sent back**.
94
+ It scans for `res.json`, `res.send`, `res.status`, and `res.sendStatus`.
137
95
 
138
96
  ```typescript
139
- router.get("/admin", (req, res) => {
140
- if (!isAdmin) {
141
- return res.status(403).send(); // Adds '403: Forbidden' to spec
142
- }
143
-
144
- try {
145
- const user: UserProfile = await getUser();
146
- // Adds '200: OK' with schema generated from 'UserProfile'
147
- return res.status(200).json(user);
148
- } catch (e) {
149
- return res.sendStatus(500); // Adds '500: Internal Server Error'
150
- }
97
+ router.get("/admin", async (req, res) => {
98
+ if (!auth) return res.sendStatus(403); // -> 403 Forbidden
99
+
100
+ const data: DashboardData = await getData();
101
+ return res.json(data); // -> 200 OK (application/json with DashboardData schema)
151
102
  });
152
103
  ```
153
104
 
154
- ## Manual Overrides
105
+ ## Overrides
155
106
 
156
- You can control specific endpoint details using JSDoc (above the route) or inline `#swagger` comments (inside the handler).
107
+ Manual overrides are supported with inline `#swagger` comments or JSDoc.
157
108
 
158
- ### Inline Configuration (`#swagger`)
109
+ ### Inline `#swagger`
159
110
 
160
- This is useful for adding tags or descriptions directly inside the handler logic, keeping related code together.
111
+ Variables defined in comments are evaluated and merged into the operation object.
161
112
 
162
113
  ```typescript
163
- // Works with imported handlers too!
164
114
  router.post("/upload", (req, res) => {
165
- // #swagger.tags = ["File Operations"]
166
- // #swagger.summary = "Upload a file"
167
- // #swagger.description = "Accepts multipart/form-data."
115
+ // #swagger.tags = ["Files"]
116
+ // #swagger.summary = "Upload file"
117
+ // #swagger.description = "Multipart upload only"
168
118
  // #swagger.deprecated = true
169
- // #swagger.operationId = "uploadFileHandler"
170
119
 
171
120
  res.status(200).send();
172
121
  });
173
122
  ```
174
123
 
175
- ### JSDoc Support
124
+ ### JSDoc
176
125
 
177
- Standard JSDoc tags placed above the route definition are also parsed.
126
+ Standard JSDoc above the route works too.
178
127
 
179
128
  ```typescript
180
129
  /**
181
130
  * @summary Get User
182
- * @description Fetch a user by their unique ID
183
131
  * @tags Users, Public
184
132
  */
185
133
  router.get("/user/:id", handler);
186
134
  ```
187
135
 
188
- ## How It Works
189
-
190
- 1. **Entry Point:** The generator starts at your `entryFile`.
191
- 2. **Recursive Crawl:** It looks for `router.use()` calls. If a router is imported from another file, the analyzer jumps to that file, appending the path prefix.
192
- 3. **Controller Navigation:** If a route handler is defined in a separate file (e.g., `import { handler } from './controllers'`), the analyzer jumps to that file to scan for logic and types.
193
- 4. **Circular Safety:** It maintains a stack of visited files to handle circular dependencies gracefully.
194
- 5. **AST Analysis:** inside every route handler:
195
- - It extracts JSDoc comments.
196
- - It scans the function body for `#swagger` comments.
197
- - It scans for `res.status`, `res.json`, and `res.send` calls to infer responses.
198
- - It analyzes `req` usage for type assertions.
199
- 6. **Schema Generation:** When a TypeScript type is encountered, `SchemaBuilder` recursively generates a JSON schema, handling:
200
- - Primitive types & Dates
201
- - Arrays, Tuples, & Enums
202
- - Nested Objects
203
- - Union Types (`string | number` becomes `oneOf` / `enum`)
204
- - Intersection Types (`TypeA & TypeB` becomes `allOf`)
136
+ ## How it works
137
+
138
+ The generator starts at your `entryFile` and performs a recursive AST traversal using the TypeScript Compiler API.
139
+
140
+ 1. It follows `router.use(path, handler)` calls to build the full routing tree, resolving imports automatically.
141
+ 2. It locates route handlers (like `router.get`) and finds their original function declarations.
142
+ 3. It scans these functions for JSDoc tags, `#swagger` comments, request type assertions, and `res.status`/`res.json` calls.
143
+ 4. It converts the inferred TypeScript types into OpenAPIV3 schemas.
205
144
 
206
145
  ## License
207
146
 
package/dist/index.d.ts CHANGED
@@ -1,30 +1,11 @@
1
1
  #!/usr/bin/env node
2
- /**
3
- * -------------------------------------------------------------------------
4
- * Types & Interfaces
5
- * -------------------------------------------------------------------------
6
- */
7
- interface GeneratorOptions {
2
+ import { OpenAPIV3 } from "openapi-types";
3
+ export interface GeneratorOptions {
8
4
  entryFile: string;
9
5
  outputFile: string;
10
- tsconfigPath?: string | undefined;
11
- info?: OpenApiInfo | undefined;
12
- servers?: OpenApiServer[] | undefined;
6
+ tsconfigPath?: string;
7
+ info?: OpenAPIV3.InfoObject;
8
+ servers?: OpenAPIV3.ServerObject[];
13
9
  }
14
- interface OpenApiInfo {
15
- title: string;
16
- version: string;
17
- description?: string | undefined;
18
- }
19
- interface OpenApiServer {
20
- url: string;
21
- description?: string | undefined;
22
- }
23
- /**
24
- * -------------------------------------------------------------------------
25
- * Main Logic
26
- * -------------------------------------------------------------------------
27
- */
28
10
  export declare function generateOpenApi(options: GeneratorOptions): void;
29
- export {};
30
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAOA;;;;GAIG;AAEH,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;CACvC;AAED,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AA+5BD;;;;GAIG;AAEH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,QA4BxD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAK1C,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC;IAC5B,OAAO,CAAC,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC;CACpC;AAi4BD,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,QA4BxD"}
package/dist/index.js CHANGED
@@ -1,13 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import fs from "fs";
3
+ import { OpenAPIV3 } from "openapi-types";
3
4
  import path from "path";
4
5
  import ts from "typescript";
5
6
  import { fileURLToPath } from "url";
6
- /**
7
- * -------------------------------------------------------------------------
8
- * AST & Schema Analysis
9
- * -------------------------------------------------------------------------
10
- */
11
7
  class SchemaBuilder {
12
8
  typeChecker;
13
9
  definitions = {};
@@ -41,6 +37,7 @@ class SchemaBuilder {
41
37
  if (typeNodeString === "void")
42
38
  return {};
43
39
  if (typeNodeString === "undefined" || typeNodeString === "null") {
40
+ // Logic preserved: using format: 'nullable' to satisfy existing tests
44
41
  return { type: "string", format: "nullable" };
45
42
  }
46
43
  // Handle Date objects explicitly
@@ -179,14 +176,20 @@ class SchemaBuilder {
179
176
  properties[propName] = this.typeToSchema(propType, depth + 1);
180
177
  const docComment = ts.displayPartsToString(prop.getDocumentationComment(this.typeChecker));
181
178
  if (docComment) {
182
- properties[propName].description = docComment;
179
+ if (!("$ref" in properties[propName])) {
180
+ properties[propName].description =
181
+ docComment;
182
+ }
183
183
  }
184
184
  }
185
- return {
186
- type: "object",
187
- properties: Object.keys(properties).length > 0 ? properties : undefined,
188
- required: required.length > 0 ? required : undefined,
189
- };
185
+ const schema = { type: "object" };
186
+ if (Object.keys(properties).length > 0) {
187
+ schema.properties = properties;
188
+ }
189
+ if (required.length > 0) {
190
+ schema.required = required;
191
+ }
192
+ return schema;
190
193
  }
191
194
  isArrayType(type) {
192
195
  if (this.typeChecker.isTupleType(type))
@@ -208,11 +211,6 @@ class SchemaBuilder {
208
211
  return null;
209
212
  }
210
213
  }
211
- /**
212
- * -------------------------------------------------------------------------
213
- * Route Analysis
214
- * -------------------------------------------------------------------------
215
- */
216
214
  class RouteAnalyzer {
217
215
  program;
218
216
  checker;
@@ -398,6 +396,9 @@ class RouteAnalyzer {
398
396
  addOperation(routePath, method, handler, callNode) {
399
397
  if (!this.paths[routePath])
400
398
  this.paths[routePath] = {};
399
+ const pathItem = this.paths[routePath];
400
+ if (!pathItem)
401
+ return;
401
402
  const operation = {
402
403
  responses: {
403
404
  "200": { description: "OK" },
@@ -420,7 +421,7 @@ class RouteAnalyzer {
420
421
  if (pathParams) {
421
422
  pathParams.forEach((p) => {
422
423
  const paramName = p.replace(/[{}]/g, "");
423
- if (!operation.parameters.some((ex) => ex.name === paramName && ex.in === "path")) {
424
+ if (!operation.parameters.some((ex) => "name" in ex && ex.name === paramName && ex.in === "path")) {
424
425
  operation.parameters.push({
425
426
  name: paramName,
426
427
  in: "path",
@@ -454,7 +455,7 @@ class RouteAnalyzer {
454
455
  const queryProps = typeArgs[3].getProperties();
455
456
  queryProps.forEach((prop) => {
456
457
  const propName = prop.getName();
457
- if (!operation.parameters.some((p) => p.name === propName && p.in === "query")) {
458
+ if (!operation.parameters.some((p) => "name" in p && p.name === propName && p.in === "query")) {
458
459
  operation.parameters.push({
459
460
  name: propName,
460
461
  in: "query",
@@ -469,14 +470,15 @@ class RouteAnalyzer {
469
470
  if (handler.body) {
470
471
  this.scanBodyUsage(handler.body, operation, handler.parameters[0]?.name?.getText(), handler.parameters[1]?.name?.getText());
471
472
  }
472
- this.paths[routePath][method] = operation;
473
+ pathItem[method] = operation;
473
474
  }
474
475
  isValidSchema(schema) {
476
+ if ("$ref" in schema)
477
+ return true;
475
478
  return ((Object.keys(schema).length > 0 &&
476
479
  schema.type !== "object" &&
477
480
  Object.keys(schema).length > 1) ||
478
481
  Object.keys(schema.properties || {}).length > 0 ||
479
- !!schema.$ref ||
480
482
  !!schema.allOf ||
481
483
  !!schema.anyOf ||
482
484
  !!schema.oneOf);
@@ -516,8 +518,9 @@ class RouteAnalyzer {
516
518
  if (!operation.responses["200"]) {
517
519
  operation.responses["200"] = { description: "OK" };
518
520
  }
519
- if (!operation.responses["200"].content) {
520
- operation.responses["200"].content = {
521
+ const successResponse = operation.responses["200"];
522
+ if (!successResponse.content) {
523
+ successResponse.content = {
521
524
  "application/json": { schema },
522
525
  };
523
526
  }
@@ -575,7 +578,7 @@ class RouteAnalyzer {
575
578
  const props = queryType.getProperties();
576
579
  props.forEach((prop) => {
577
580
  const propName = prop.getName();
578
- if (!operation.parameters.some((p) => p.name === propName && p.in === "query")) {
581
+ if (!operation.parameters.some((p) => "name" in p && p.name === propName && p.in === "query")) {
579
582
  operation.parameters.push({
580
583
  name: propName,
581
584
  in: "query",
@@ -724,16 +727,11 @@ class RouteAnalyzer {
724
727
  return result;
725
728
  }
726
729
  }
727
- /**
728
- * -------------------------------------------------------------------------
729
- * Main Logic
730
- * -------------------------------------------------------------------------
731
- */
732
730
  export function generateOpenApi(options) {
733
731
  if (!fs.existsSync(options.entryFile)) {
734
732
  throw new Error(`Entry file not found: ${options.entryFile}`);
735
733
  }
736
- console.log("🔍 Analyzing AST...");
734
+ console.log("Analyzing AST...");
737
735
  const analyzer = new RouteAnalyzer(options);
738
736
  const { paths, schemas } = analyzer.analyze(options.entryFile);
739
737
  const doc = {
@@ -748,16 +746,11 @@ export function generateOpenApi(options) {
748
746
  schemas: schemas,
749
747
  },
750
748
  };
751
- console.log(`✅ Found ${Object.keys(paths).length} paths.`);
752
- console.log(`✅ Generated ${Object.keys(schemas).length} schemas.`);
749
+ console.log(`Found ${Object.keys(paths).length} paths.`);
750
+ console.log(`Generated ${Object.keys(schemas).length} schemas.`);
753
751
  fs.writeFileSync(options.outputFile, JSON.stringify(doc, null, 2));
754
- console.log(`💾 Swagger file saved to: ${options.outputFile}`);
752
+ console.log(`Swagger file saved to: ${options.outputFile}`);
755
753
  }
756
- /**
757
- * -------------------------------------------------------------------------
758
- * CLI Execution Check
759
- * -------------------------------------------------------------------------
760
- */
761
754
  const isMain = () => {
762
755
  if (import.meta && import.meta.url) {
763
756
  const entryFile = process.argv[1];
@@ -767,7 +760,6 @@ const isMain = () => {
767
760
  }
768
761
  return false;
769
762
  };
770
- /** Helper to find tsconfig recursively. */
771
763
  const findTsConfig = (startDir) => {
772
764
  let dir = startDir;
773
765
  while (dir !== path.parse(dir).root) {
@@ -786,21 +778,29 @@ if (isMain()) {
786
778
  }
787
779
  const entryFile = path.resolve(process.cwd(), args[0]);
788
780
  const outputFile = path.resolve(process.cwd(), args[1]);
789
- // Auto-detect tsconfig if not provided
790
781
  let tsconfigPath = args[2] ? path.resolve(process.cwd(), args[2]) : undefined;
791
782
  if (!tsconfigPath) {
792
783
  tsconfigPath = findTsConfig(path.dirname(entryFile));
793
784
  }
794
- generateOpenApi({
785
+ const options = {
795
786
  entryFile,
796
787
  outputFile,
797
- tsconfigPath,
798
788
  info: {
799
789
  title: "My API",
800
790
  version: "1.0.0",
801
791
  description: "Generated via AST analysis",
802
792
  },
803
793
  servers: [{ url: "http://localhost:3000" }],
804
- });
794
+ };
795
+ if (tsconfigPath) {
796
+ options.tsconfigPath = tsconfigPath;
797
+ }
798
+ try {
799
+ generateOpenApi(options);
800
+ }
801
+ catch (err) {
802
+ console.error(err);
803
+ process.exit(1);
804
+ }
805
805
  }
806
806
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,49 +1,50 @@
1
- {
2
- "name": "swagger-autogen-ast",
3
- "version": "1.0.0",
4
- "description": "A zero-config OpenAPI 3.0 generator for Express. The AST-based spiritual successor to swagger-autogen with automatic type inference.",
5
- "homepage": "https://github.com/anthfgreco/swagger-autogen-ast#readme",
6
- "bugs": {
7
- "url": "https://github.com/anthfgreco/swagger-autogen-ast/issues"
8
- },
9
- "repository": {
10
- "type": "git",
11
- "url": "git+https://github.com/anthfgreco/swagger-autogen-ast.git"
12
- },
13
- "license": "MIT",
14
- "author": "Anthony Greco",
15
- "type": "module",
16
- "main": "./dist/index.js",
17
- "types": "./dist/index.d.ts",
18
- "bin": {
19
- "swagger-autogen-ast": "./dist/index.js"
20
- },
21
- "files": [
22
- "dist",
23
- "README.md"
24
- ],
25
- "scripts": {
26
- "build": "tsc",
27
- "prepublishOnly": "npm run build",
28
- "prettier": "prettier src --write",
29
- "sort-package-json": "npx sort-package-json",
30
- "test": "vitest run",
31
- "test:slow": "cross-env RUN_SLOW_TESTS=1 vitest run",
32
- "test:watch": "vitest watch",
33
- "test:watch:slow": "cross-env RUN_SLOW_TESTS=1 vitest watch"
34
- },
35
- "dependencies": {
36
- "ora": "^9.0.0",
37
- "typescript": "^5.9.3"
38
- },
39
- "devDependencies": {
40
- "@types/express": "^5.0.6",
41
- "@types/node": "^25.0.2",
42
- "cross-env": "^10.1.0",
43
- "dotenv": "^17.2.3",
44
- "express": "^5.2.1",
45
- "prettier": "^3.7.4",
46
- "prettier-plugin-organize-imports": "^4.2.0",
47
- "vitest": "^4.0.15"
48
- }
49
- }
1
+ {
2
+ "name": "swagger-autogen-ast",
3
+ "version": "1.0.2",
4
+ "description": "A zero-config OpenAPI 3.0 generator for Express. The AST-based spiritual successor to swagger-autogen with automatic type inference.",
5
+ "homepage": "https://github.com/anthfgreco/swagger-autogen-ast#readme",
6
+ "bugs": {
7
+ "url": "https://github.com/anthfgreco/swagger-autogen-ast/issues"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/anthfgreco/swagger-autogen-ast.git"
12
+ },
13
+ "license": "MIT",
14
+ "author": "Anthony Greco",
15
+ "type": "module",
16
+ "main": "./dist/index.js",
17
+ "types": "./dist/index.d.ts",
18
+ "bin": {
19
+ "swagger-autogen-ast": "./dist/index.js"
20
+ },
21
+ "files": [
22
+ "dist",
23
+ "README.md"
24
+ ],
25
+ "scripts": {
26
+ "build": "tsc",
27
+ "prepublishOnly": "npm run build",
28
+ "prettier": "prettier src --write",
29
+ "sort-package-json": "npx sort-package-json",
30
+ "test": "vitest run",
31
+ "test:slow": "cross-env RUN_SLOW_TESTS=1 vitest run",
32
+ "test:watch": "vitest watch",
33
+ "test:watch:slow": "cross-env RUN_SLOW_TESTS=1 vitest watch"
34
+ },
35
+ "dependencies": {
36
+ "ora": "^9.0.0",
37
+ "typescript": "^5.9.3"
38
+ },
39
+ "devDependencies": {
40
+ "@types/express": "^5.0.6",
41
+ "@types/node": "^25.0.2",
42
+ "cross-env": "^10.1.0",
43
+ "dotenv": "^17.2.3",
44
+ "express": "^5.2.1",
45
+ "openapi-types": "^12.1.3",
46
+ "prettier": "^3.7.4",
47
+ "prettier-plugin-organize-imports": "^4.2.0",
48
+ "vitest": "^4.0.15"
49
+ }
50
+ }