schemantic 0.3.0 → 0.4.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 (124) hide show
  1. package/CHANGELOG.md +204 -174
  2. package/LICENSE +21 -21
  3. package/README.md +88 -830
  4. package/dist/cli/index.d.ts +4 -1
  5. package/dist/cli/index.d.ts.map +1 -1
  6. package/dist/cli/index.js +185 -61
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/core/configuration.d.ts +6 -0
  9. package/dist/core/configuration.d.ts.map +1 -0
  10. package/dist/core/configuration.js +64 -0
  11. package/dist/core/configuration.js.map +1 -0
  12. package/dist/core/index.d.ts +1 -0
  13. package/dist/core/index.d.ts.map +1 -1
  14. package/dist/core/index.js +1 -0
  15. package/dist/core/index.js.map +1 -1
  16. package/dist/core/output-writer.d.ts +7 -0
  17. package/dist/core/output-writer.d.ts.map +1 -0
  18. package/dist/core/output-writer.js +255 -0
  19. package/dist/core/output-writer.js.map +1 -0
  20. package/dist/core/schemantic.d.ts +8 -2
  21. package/dist/core/schemantic.d.ts.map +1 -1
  22. package/dist/core/schemantic.js +196 -71
  23. package/dist/core/schemantic.js.map +1 -1
  24. package/dist/generators/api-client-generator.d.ts +10 -20
  25. package/dist/generators/api-client-generator.d.ts.map +1 -1
  26. package/dist/generators/api-client-generator.js +374 -424
  27. package/dist/generators/api-client-generator.js.map +1 -1
  28. package/dist/generators/base.d.ts.map +1 -1
  29. package/dist/generators/base.js +7 -25
  30. package/dist/generators/base.js.map +1 -1
  31. package/dist/generators/enum-generator.d.ts.map +1 -1
  32. package/dist/generators/enum-generator.js +30 -3
  33. package/dist/generators/enum-generator.js.map +1 -1
  34. package/dist/generators/hook-generator.d.ts +3 -17
  35. package/dist/generators/hook-generator.d.ts.map +1 -1
  36. package/dist/generators/hook-generator.js +51 -445
  37. package/dist/generators/hook-generator.js.map +1 -1
  38. package/dist/generators/naming.d.ts +10 -0
  39. package/dist/generators/naming.d.ts.map +1 -0
  40. package/dist/generators/naming.js +331 -0
  41. package/dist/generators/naming.js.map +1 -0
  42. package/dist/generators/object-generator.d.ts +0 -4
  43. package/dist/generators/object-generator.d.ts.map +1 -1
  44. package/dist/generators/object-generator.js +13 -101
  45. package/dist/generators/object-generator.js.map +1 -1
  46. package/dist/generators/primitive-generator.d.ts +1 -13
  47. package/dist/generators/primitive-generator.d.ts.map +1 -1
  48. package/dist/generators/primitive-generator.js +11 -76
  49. package/dist/generators/primitive-generator.js.map +1 -1
  50. package/dist/generators/projections.d.ts +10 -0
  51. package/dist/generators/projections.d.ts.map +1 -0
  52. package/dist/generators/projections.js +65 -0
  53. package/dist/generators/projections.js.map +1 -0
  54. package/dist/generators/schema-type.d.ts +23 -0
  55. package/dist/generators/schema-type.d.ts.map +1 -0
  56. package/dist/generators/schema-type.js +233 -0
  57. package/dist/generators/schema-type.js.map +1 -0
  58. package/dist/parsers/base.d.ts +2 -0
  59. package/dist/parsers/base.d.ts.map +1 -1
  60. package/dist/parsers/base.js +12 -2
  61. package/dist/parsers/base.js.map +1 -1
  62. package/dist/parsers/factory.d.ts.map +1 -1
  63. package/dist/parsers/factory.js +2 -1
  64. package/dist/parsers/factory.js.map +1 -1
  65. package/dist/parsers/openapi.d.ts +4 -0
  66. package/dist/parsers/openapi.d.ts.map +1 -1
  67. package/dist/parsers/openapi.js +107 -20
  68. package/dist/parsers/openapi.js.map +1 -1
  69. package/dist/plugins/branded-types.d.ts.map +1 -1
  70. package/dist/plugins/branded-types.js +231 -365
  71. package/dist/plugins/branded-types.js.map +1 -1
  72. package/dist/plugins/builtin.d.ts.map +1 -1
  73. package/dist/plugins/builtin.js +6 -141
  74. package/dist/plugins/builtin.js.map +1 -1
  75. package/dist/plugins/index.d.ts +4 -0
  76. package/dist/plugins/index.d.ts.map +1 -1
  77. package/dist/plugins/index.js +17 -0
  78. package/dist/plugins/index.js.map +1 -1
  79. package/dist/plugins/loader.d.ts +5 -1
  80. package/dist/plugins/loader.d.ts.map +1 -1
  81. package/dist/plugins/loader.js +42 -5
  82. package/dist/plugins/loader.js.map +1 -1
  83. package/dist/plugins/manager.d.ts.map +1 -1
  84. package/dist/plugins/manager.js +7 -7
  85. package/dist/plugins/manager.js.map +1 -1
  86. package/dist/plugins/performance-monitoring.d.ts +31 -1
  87. package/dist/plugins/performance-monitoring.d.ts.map +1 -1
  88. package/dist/plugins/performance-monitoring.js +146 -207
  89. package/dist/plugins/performance-monitoring.js.map +1 -1
  90. package/dist/plugins/request-deduplication.d.ts.map +1 -1
  91. package/dist/plugins/request-deduplication.js +151 -586
  92. package/dist/plugins/request-deduplication.js.map +1 -1
  93. package/dist/plugins/zod-validation.d.ts +23 -15
  94. package/dist/plugins/zod-validation.d.ts.map +1 -1
  95. package/dist/plugins/zod-validation.js +392 -268
  96. package/dist/plugins/zod-validation.js.map +1 -1
  97. package/dist/types/core.d.ts +20 -3
  98. package/dist/types/core.d.ts.map +1 -1
  99. package/dist/types/core.js +2 -0
  100. package/dist/types/core.js.map +1 -1
  101. package/dist/types/openapi.d.ts +14 -1
  102. package/dist/types/openapi.d.ts.map +1 -1
  103. package/docs/ADVANCED_PLUGINS_IMPLEMENTATION.md +24 -355
  104. package/docs/ADVANCED_PLUGIN_DEVELOPMENT.md +33 -309
  105. package/docs/API.md +80 -601
  106. package/docs/AUDIT.md +49 -0
  107. package/docs/CONFIGURATION.md +81 -715
  108. package/docs/FASTAPI_TUTORIAL.md +109 -1497
  109. package/docs/NAMING_MIGRATION.md +59 -0
  110. package/docs/PLUGINS.md +49 -687
  111. package/docs/PLUGIN_DEVELOPMENT.md +53 -720
  112. package/docs/REAUDIT.md +399 -0
  113. package/docs/RELEASING.md +88 -0
  114. package/docs/REMEDIATION.md +58 -0
  115. package/docs/superpowers/plans/2026-10-10-audit-remediation.md +113 -0
  116. package/package.json +114 -95
  117. package/dist/__tests__/setup.d.ts +0 -6
  118. package/dist/__tests__/setup.d.ts.map +0 -1
  119. package/dist/__tests__/setup.js +0 -30
  120. package/dist/__tests__/setup.js.map +0 -1
  121. package/dist/__tests__/test-config.d.ts +0 -36
  122. package/dist/__tests__/test-config.d.ts.map +0 -1
  123. package/dist/__tests__/test-config.js +0 -562
  124. package/dist/__tests__/test-config.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,174 +1,204 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- Got it — here’s your updated, clean and complete **`CHANGELOG.md`** entry reflecting that as well:
9
-
10
- ---
11
-
12
- ## [0.3.0] — 2025-10-18
13
-
14
- ### Removed
15
-
16
- - Removed `barrel.ts` generation and the `generateBarrelExports` configuration option.
17
-
18
- - Exports are now consolidated into `index.ts` by default. This reduces duplication and simplifies generated output.
19
-
20
- ### Migration notes
21
-
22
- - If you previously relied on a generated `barrel.ts`, update your code to import from the generated `index.ts` (e.g., `import { MyApiClient } from './generated';`).
23
- - The `generateBarrelExports` option has been removed; there is no replacement flag. If you require a custom barrel file, create it in your project outside of the generated files.
24
-
25
- ---
26
-
27
- ## [0.2.1] — 2025-10-18
28
-
29
- ### Fixed
30
-
31
- - CLI: Respect `outputDir` from `schemantic.config.json` when provided. The CLI no longer forces the generator to write to `./src/generated` when an output directory is specified in the configuration file or via the `--output` flag. This fixes cases where generation ignored a project's configured destination.
32
-
33
- - Zod validation generator: Updated generated validation helpers and client middleware to follow Zod v4 error shape. Generated code now uses `result.error?.issues` and types validation issues as `z.core.$ZodIssue` where appropriate. A typed `ValidationError` wrapper is emitted by the generator so consumers can rely on a stable `issues` shape.
34
-
35
- - Generator hygiene: Avoid emitting unused imports in generated outputs. The hooks generator now imports only the React hooks actually used by the generated hooks. The API client generator and plugins only import `z` when the generated client references `z.`. These changes reduce spurious TypeScript diagnostics in downstream projects.
36
-
37
- ### Changed
38
-
39
- - Generation behavior: The generator was made more conservative about emitted imports and helper declarations so generated code compiles cleanly in a wider range of consuming projects.
40
-
41
- ### Migration notes
42
-
43
- - If you previously relied on `ValidationError.errors` in generated code, switch to `ValidationError.issues`.
44
-
45
- - If your consuming project reported unused-import diagnostics for generated files (for example `z` or React hook imports), regenerate after updating to this version; the generator will emit only the imports that are actually used.
46
-
47
- ---
48
-
49
- ## [0.2.0] — 2025-10-18
50
-
51
- ### Added
52
-
53
- - **Zod Plugin** — Adopted Zod v4 error shape.
54
-
55
- - `ValidationError` now exposes `issues` (Zod issues) and `data` (the invalid input).
56
- - `validateRequest` and `validateResponse` now consume `error.issues` rather than the deprecated `error.errors`.
57
-
58
- ### Changed
59
-
60
- - `validate<Type>` now returns structured results — `{ success: true | false, data | errors }` — for more predictable downstream handling.
61
- - Improved internal transform typing (`transform((val: Record<string, unknown>) => ...)`) to ensure consistent inference during schema generation.
62
- - **React Hooks plugin temporarily disabled** while migration to the new generator pipeline is in progress. It will be re-enabled in a future minor release.
63
-
64
- ### Fixed
65
-
66
- - Respected empty `typePrefix` by default — no automatic `"API"` prefix. Added integration test to prevent regressions.
67
- - Made CLI `--config` flag usable without an explicit path and standardized the configuration filename to `schemantic.config.json`.
68
- - Prevented the generator from importing TypeScript built-ins (e.g. `Record`, `Promise`) from generated `./types`.
69
- - Ensured `buildObjectSchema` always returns a base schema (no missing return paths).
70
- - Corrected a mismatched brace bug introduced in prior edits.
71
- - Filtered out TypeScript built-in names in `hook-generator.ts` to prevent invalid imports.
72
- - Emitted generated type declarations in dependency-resolved order so declarations appear before helper / validation code.
73
-
74
- ### Migration Notes
75
-
76
- - If you previously accessed `ValidationError.errors`, switch to `ValidationError.issues`.
77
- - React Hooks plugin is temporarily unavailable as of this release — no action required if unused.
78
- - No other breaking changes are expected for consumers.
79
-
80
- ---
81
-
82
- **Release summary:**
83
-
84
- > ✨ Zod v4 error shape support, generator fixes, and CLI improvements. React Hooks plugin temporarily disabled pending refactor.
85
-
86
- ---
87
-
88
- ### Added
89
-
90
- - Add a lightweight CI workflow to run the prefix integration test on push/PR.
91
-
92
- ## [0.1.0] - 2025-09-13
93
-
94
- ### Added
95
-
96
- - First-party React hooks generator with `createApiHooks(client)` factory, enabled via `--hooks` or `generateHooks: true`.
97
- - Top-level exports for `HookGenerator` and `GeneratedHooksFile`.
98
-
99
- ### Changed
100
-
101
- - Standardized generated client filename to `api-client.ts`; index now re-exports the client and hooks consistently.
102
- - Improved naming normalization for types and client methods (sanitize invalid characters; PascalCase for type identifiers).
103
-
104
- ### Fixed
105
-
106
- - Corrected index re-export path for CLI to avoid `.js` resolution type issues.
107
- - Aligned generated hook call signatures with client method arity and parameter ordering.
108
-
109
- ### Added
110
-
111
- - Initial release of Schemantic
112
- - OpenAPI 3.0+ schema parsing and validation
113
- - TypeScript type generation from OpenAPI schemas
114
- - API client generation with proper typing
115
- - Extensible plugin system
116
- - CLI interface with comprehensive options
117
- - Built-in plugins for JSDoc, validation, React hooks, and strict mode
118
- - Support for multiple naming conventions (camelCase, snake_case, PascalCase)
119
- - Custom type mappings and schema transformations
120
- - Path and schema filtering capabilities
121
- - Comprehensive documentation and examples
122
- - Full test coverage with Jest
123
-
124
- ### Features
125
-
126
- - **Schema Parsing**: Parse OpenAPI schemas from URLs, files, or data objects
127
- - **Type Generation**: Generate TypeScript interfaces, enums, and type aliases
128
- - **API Client Generation**: Generate fully typed API client classes
129
- - **Plugin System**: Extensible plugin architecture for custom functionality
130
- - **CLI Interface**: Command-line interface with rich configuration options
131
- - **Validation**: Built-in OpenAPI schema validation
132
- - **Customization**: Flexible configuration for naming, filtering, and transformations
133
- - **FastAPI Integration**: Optimized for FastAPI applications
134
- - **React Support**: Generate React hooks and query builders
135
- - **TypeScript Strict Mode**: Full TypeScript strict mode support
136
-
137
- ### Technical Details
138
-
139
- - **Zero Dependencies**: No runtime dependencies on external libraries
140
- - **Modular Architecture**: Clean separation of concerns with extensible design
141
- - **Type Safety**: Comprehensive TypeScript types with no `any` usage
142
- - **Performance**: Optimized for large schemas and complex APIs
143
- - **Error Handling**: Graceful error handling with detailed error messages
144
- - **Testing**: Comprehensive test suite with 100% coverage goals
145
-
146
- ## [0.1.0] - 2024-09-12
147
-
148
- ### Added
149
-
150
- - Initial release
151
- - Core functionality for OpenAPI schema parsing and TypeScript generation
152
- - Plugin system architecture
153
- - CLI interface
154
- - Documentation and examples
155
-
156
- ### Changed
157
-
158
- - N/A (initial release)
159
-
160
- ### Deprecated
161
-
162
- - N/A (initial release)
163
-
164
- ### Removed
165
-
166
- - N/A (initial release)
167
-
168
- ### Fixed
169
-
170
- - N/A (initial release)
171
-
172
- ### Security
173
-
174
- - N/A (initial release)
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.4.1] — 2026-10-18
11
+
12
+ ### Fixed
13
+
14
+ - Generated API clients omit imports used only by thrown error-response metadata, avoiding `noUnusedLocals` failures in strict consumers while retaining types used by request and successful/default response signatures.
15
+ - Generated `ApiClientError` and Zod `ValidationError` use explicit fields and assignments instead of constructor parameter properties, supporting `erasableSyntaxOnly` without changing their runtime error data.
16
+ - CI now checks unused declarations throughout the fixture matrix and enables Vite's erasable-syntax restriction for installed-package and live FastAPI consumers, with regression coverage for both property naming modes and Zod validation.
17
+
18
+ ## [0.4.0] — 2026-10-18
19
+
20
+ ### Fixed
21
+
22
+ - Multipart uploads recognize both legacy `format: binary` and current FastAPI `contentMediaType` schemas. JSON representations and explicitly encoded content remain strings; live CI covers legacy and current FastAPI.
23
+ - Fresh output supports composed schemas, aliases, arrays, dictionaries, nullable values, safe identifiers, literal enums and runtime exports.
24
+ - Clients resolve inherited/component parameters, encode paths, merge headers, serialize array queries and URL-encoded forms, decode response media, and restrict retries to transient idempotent requests.
25
+ - Generation validates references and output collisions, applies filters and plugins, isolates repeated runs and executes custom generators.
26
+ - Hooks share client metadata, honor prefixes/custom filenames, stabilize equivalent query inputs and ignore stale query responses.
27
+ - Zod validation preserves all payload fields, supports lazy references and validates numeric enums, unions, nullable values and dictionaries.
28
+ - CLI failures return nonzero status; config overrides and types-only output work; local watch mode regenerates changes.
29
+ - Release builds exclude test helpers; build/prepack clean and compile fresh output; CI targets Node 20, 22 and 24.
30
+ - Release preparation updates versions and changelog locally; GitHub Releases trigger complete verification and publish the exact tested archive using npm trusted publishing, with integrity checks and safe retries.
31
+ - CI includes cross-platform compatibility, generated fixture compilation, installed-package and live FastAPI consumers, dependency auditing, and separate CodeQL analysis. Tests no longer overwrite tracked output fixtures.
32
+
33
+ ### Compatibility
34
+
35
+ - Node 20+ is required by Commander 14.
36
+ - `validation` now aliases Zod validation; class-validator decorators cannot be emitted into interfaces. Consumers must install Zod 4.
37
+ - Invalid references, duplicate exports and unsafe output filenames now fail explicitly. `--fix` reports that automatic repair is unimplemented.
38
+ - Generated application properties now default to camelCase with schema-aware JSON/form request conversion and JSON response conversion. Set `propertyNaming: 'preserve'` to retain wire-shaped types. Types-only camelCase output includes public converters. See [naming migration](docs/NAMING_MIGRATION.md).
39
+ - Client generation includes required types even when `generateTypes` is false. Unsupported query generation, strict-mode plugin output, content-encoded parameters and per-property request encodings fail explicitly.
40
+ - Branded guards now use schema-backed Zod validation; branded output requires Zod 4. Optional plugin helpers remain explicit integrations.
41
+
42
+ ## [0.3.0] — 2025-10-18
43
+
44
+ ### Removed
45
+
46
+ - Removed `barrel.ts` generation and the `generateBarrelExports` configuration option.
47
+
48
+ - Exports are now consolidated into `index.ts` by default. This reduces duplication and simplifies generated output.
49
+
50
+ ### Migration notes
51
+
52
+ - If you previously relied on a generated `barrel.ts`, update your code to import from the generated `index.ts` (e.g., `import { MyApiClient } from './generated';`).
53
+ - The `generateBarrelExports` option has been removed; there is no replacement flag. If you require a custom barrel file, create it in your project outside of the generated files.
54
+
55
+ ---
56
+
57
+ ## [0.2.1] — 2025-10-18
58
+
59
+ ### Fixed
60
+
61
+ - CLI: Respect `outputDir` from `schemantic.config.json` when provided. The CLI no longer forces the generator to write to `./src/generated` when an output directory is specified in the configuration file or via the `--output` flag. This fixes cases where generation ignored a project's configured destination.
62
+
63
+ - Zod validation generator: Updated generated validation helpers and client middleware to follow Zod v4 error shape. Generated code now uses `result.error?.issues` and types validation issues as `z.core.$ZodIssue` where appropriate. A typed `ValidationError` wrapper is emitted by the generator so consumers can rely on a stable `issues` shape.
64
+
65
+ - Generator hygiene: Avoid emitting unused imports in generated outputs. The hooks generator now imports only the React hooks actually used by the generated hooks. The API client generator and plugins only import `z` when the generated client references `z.`. These changes reduce spurious TypeScript diagnostics in downstream projects.
66
+
67
+ ### Changed
68
+
69
+ - Generation behavior: The generator was made more conservative about emitted imports and helper declarations so generated code compiles cleanly in a wider range of consuming projects.
70
+
71
+ ### Migration notes
72
+
73
+ - If you previously relied on `ValidationError.errors` in generated code, switch to `ValidationError.issues`.
74
+
75
+ - If your consuming project reported unused-import diagnostics for generated files (for example `z` or React hook imports), regenerate after updating to this version; the generator will emit only the imports that are actually used.
76
+
77
+ ---
78
+
79
+ ## [0.2.0] — 2025-10-18
80
+
81
+ ### Added
82
+
83
+ - **Zod Plugin** — Adopted Zod v4 error shape.
84
+
85
+ - `ValidationError` now exposes `issues` (Zod issues) and `data` (the invalid input).
86
+ - `validateRequest` and `validateResponse` now consume `error.issues` rather than the deprecated `error.errors`.
87
+
88
+ ### Changed
89
+
90
+ - `validate<Type>` now returns structured results — `{ success: true | false, data | errors }` — for more predictable downstream handling.
91
+ - Improved internal transform typing (`transform((val: Record<string, unknown>) => ...)`) to ensure consistent inference during schema generation.
92
+ - **React Hooks plugin temporarily disabled** while migration to the new generator pipeline is in progress. It will be re-enabled in a future minor release.
93
+
94
+ ### Fixed
95
+
96
+ - Respected empty `typePrefix` by default — no automatic `"API"` prefix. Added integration test to prevent regressions.
97
+ - Made CLI `--config` flag usable without an explicit path and standardized the configuration filename to `schemantic.config.json`.
98
+ - Prevented the generator from importing TypeScript built-ins (e.g. `Record`, `Promise`) from generated `./types`.
99
+ - Ensured `buildObjectSchema` always returns a base schema (no missing return paths).
100
+ - Corrected a mismatched brace bug introduced in prior edits.
101
+ - Filtered out TypeScript built-in names in `hook-generator.ts` to prevent invalid imports.
102
+ - Emitted generated type declarations in dependency-resolved order so declarations appear before helper / validation code.
103
+
104
+ ### Migration Notes
105
+
106
+ - If you previously accessed `ValidationError.errors`, switch to `ValidationError.issues`.
107
+ - React Hooks plugin is temporarily unavailable as of this release — no action required if unused.
108
+ - No other breaking changes are expected for consumers.
109
+
110
+ ---
111
+
112
+ **Release summary:**
113
+
114
+ > ✨ Zod v4 error shape support, generator fixes, and CLI improvements. React Hooks plugin temporarily disabled pending refactor.
115
+
116
+ ---
117
+
118
+ ### Added
119
+
120
+ - Add a lightweight CI workflow to run the prefix integration test on push/PR.
121
+
122
+ ## [0.1.0] - 2025-09-13
123
+
124
+ ### Added
125
+
126
+ - First-party React hooks generator with `createApiHooks(client)` factory, enabled via `--hooks` or `generateHooks: true`.
127
+ - Top-level exports for `HookGenerator` and `GeneratedHooksFile`.
128
+
129
+ ### Changed
130
+
131
+ - Standardized generated client filename to `api-client.ts`; index now re-exports the client and hooks consistently.
132
+ - Improved naming normalization for types and client methods (sanitize invalid characters; PascalCase for type identifiers).
133
+
134
+ ### Fixed
135
+
136
+ - Corrected index re-export path for CLI to avoid `.js` resolution type issues.
137
+ - Aligned generated hook call signatures with client method arity and parameter ordering.
138
+
139
+ ### Added
140
+
141
+ - Initial release of Schemantic
142
+ - OpenAPI 3.0+ schema parsing and validation
143
+ - TypeScript type generation from OpenAPI schemas
144
+ - API client generation with proper typing
145
+ - Extensible plugin system
146
+ - CLI interface with comprehensive options
147
+ - Built-in plugins for JSDoc, validation, React hooks, and strict mode
148
+ - Support for multiple naming conventions (camelCase, snake_case, PascalCase)
149
+ - Custom type mappings and schema transformations
150
+ - Path and schema filtering capabilities
151
+ - Comprehensive documentation and examples
152
+ - Full test coverage with Jest
153
+
154
+ ### Features
155
+
156
+ - **Schema Parsing**: Parse OpenAPI schemas from URLs, files, or data objects
157
+ - **Type Generation**: Generate TypeScript interfaces, enums, and type aliases
158
+ - **API Client Generation**: Generate fully typed API client classes
159
+ - **Plugin System**: Extensible plugin architecture for custom functionality
160
+ - **CLI Interface**: Command-line interface with rich configuration options
161
+ - **Validation**: Built-in OpenAPI schema validation
162
+ - **Customization**: Flexible configuration for naming, filtering, and transformations
163
+ - **FastAPI Integration**: Optimized for FastAPI applications
164
+ - **React Support**: Generate React hooks and query builders
165
+ - **TypeScript Strict Mode**: Full TypeScript strict mode support
166
+
167
+ ### Technical Details
168
+
169
+ - **Zero Dependencies**: No runtime dependencies on external libraries
170
+ - **Modular Architecture**: Clean separation of concerns with extensible design
171
+ - **Type Safety**: Comprehensive TypeScript types with no `any` usage
172
+ - **Performance**: Optimized for large schemas and complex APIs
173
+ - **Error Handling**: Graceful error handling with detailed error messages
174
+ - **Testing**: Comprehensive test suite with 100% coverage goals
175
+
176
+ ## [0.1.0] - 2024-09-12
177
+
178
+ ### Added
179
+
180
+ - Initial release
181
+ - Core functionality for OpenAPI schema parsing and TypeScript generation
182
+ - Plugin system architecture
183
+ - CLI interface
184
+ - Documentation and examples
185
+
186
+ ### Changed
187
+
188
+ - N/A (initial release)
189
+
190
+ ### Deprecated
191
+
192
+ - N/A (initial release)
193
+
194
+ ### Removed
195
+
196
+ - N/A (initial release)
197
+
198
+ ### Fixed
199
+
200
+ - N/A (initial release)
201
+
202
+ ### Security
203
+
204
+ - N/A (initial release)
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2024 Schemantic
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Schemantic
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.