schemantic 0.2.1 → 0.4.0

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 (144) hide show
  1. package/CHANGELOG.md +196 -159
  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 +186 -62
  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 -6
  21. package/dist/core/schemantic.d.ts.map +1 -1
  22. package/dist/core/schemantic.js +194 -127
  23. package/dist/core/schemantic.js.map +1 -1
  24. package/dist/generators/api-client-generator.d.ts +9 -20
  25. package/dist/generators/api-client-generator.d.ts.map +1 -1
  26. package/dist/generators/api-client-generator.js +364 -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 +390 -268
  96. package/dist/plugins/zod-validation.js.map +1 -1
  97. package/dist/types/core.d.ts +20 -4
  98. package/dist/types/core.d.ts.map +1 -1
  99. package/dist/types/core.js +2 -1
  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 -600
  106. package/docs/AUDIT.md +49 -0
  107. package/docs/CONFIGURATION.md +81 -722
  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 -563
  124. package/dist/__tests__/test-config.js.map +0 -1
  125. package/dist/lib/api/api-client.d.ts +0 -71
  126. package/dist/lib/api/api-client.d.ts.map +0 -1
  127. package/dist/lib/api/api-client.js +0 -238
  128. package/dist/lib/api/api-client.js.map +0 -1
  129. package/dist/lib/api/barrel.d.ts +0 -4
  130. package/dist/lib/api/barrel.d.ts.map +0 -1
  131. package/dist/lib/api/barrel.js +0 -26
  132. package/dist/lib/api/barrel.js.map +0 -1
  133. package/dist/lib/api/hooks.d.ts +0 -36
  134. package/dist/lib/api/hooks.d.ts.map +0 -1
  135. package/dist/lib/api/hooks.js +0 -120
  136. package/dist/lib/api/hooks.js.map +0 -1
  137. package/dist/lib/api/index.d.ts +0 -4
  138. package/dist/lib/api/index.d.ts.map +0 -1
  139. package/dist/lib/api/index.js +0 -8
  140. package/dist/lib/api/index.js.map +0 -1
  141. package/dist/lib/api/types.d.ts +0 -366
  142. package/dist/lib/api/types.d.ts.map +0 -1
  143. package/dist/lib/api/types.js +0 -315
  144. package/dist/lib/api/types.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,159 +1,196 @@
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.2.1] — 2025-10-18
13
-
14
- ### Fixed
15
-
16
- - 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.
17
-
18
- - 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.
19
-
20
- - 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.
21
-
22
- ### Changed
23
-
24
- - 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.
25
-
26
- ### Migration notes
27
-
28
- - If you previously relied on `ValidationError.errors` in generated code, switch to `ValidationError.issues`.
29
-
30
- - 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.
31
-
32
- ---
33
-
34
- ## [0.2.0] — 2025-10-18
35
-
36
- ### Added
37
-
38
- - **Zod Plugin** — Adopted Zod v4 error shape.
39
-
40
- - `ValidationError` now exposes `issues` (Zod issues) and `data` (the invalid input).
41
- - `validateRequest` and `validateResponse` now consume `error.issues` rather than the deprecated `error.errors`.
42
-
43
- ### Changed
44
-
45
- - `validate<Type>` now returns structured results — `{ success: true | false, data | errors }` — for more predictable downstream handling.
46
- - Improved internal transform typing (`transform((val: Record<string, unknown>) => ...)`) to ensure consistent inference during schema generation.
47
- - **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.
48
-
49
- ### Fixed
50
-
51
- - Respected empty `typePrefix` by default — no automatic `"API"` prefix. Added integration test to prevent regressions.
52
- - Made CLI `--config` flag usable without an explicit path and standardized the configuration filename to `schemantic.config.json`.
53
- - Prevented the generator from importing TypeScript built-ins (e.g. `Record`, `Promise`) from generated `./types`.
54
- - Ensured `buildObjectSchema` always returns a base schema (no missing return paths).
55
- - Corrected a mismatched brace bug introduced in prior edits.
56
- - Filtered out TypeScript built-in names in `hook-generator.ts` to prevent invalid imports.
57
- - Emitted generated type declarations in dependency-resolved order so declarations appear before helper / validation code.
58
-
59
- ### Migration Notes
60
-
61
- - If you previously accessed `ValidationError.errors`, switch to `ValidationError.issues`.
62
- - React Hooks plugin is temporarily unavailable as of this release — no action required if unused.
63
- - No other breaking changes are expected for consumers.
64
-
65
- ---
66
-
67
- **Release summary:**
68
-
69
- > ✨ Zod v4 error shape support, generator fixes, and CLI improvements. React Hooks plugin temporarily disabled pending refactor.
70
-
71
- ---
72
-
73
- ### Added
74
-
75
- - Add a lightweight CI workflow to run the prefix integration test on push/PR.
76
-
77
- ## [0.1.0] - 2025-09-13
78
-
79
- ### Added
80
-
81
- - First-party React hooks generator with `createApiHooks(client)` factory, enabled via `--hooks` or `generateHooks: true`.
82
- - Top-level exports for `HookGenerator` and `GeneratedHooksFile`.
83
-
84
- ### Changed
85
-
86
- - Standardized generated client filename to `api-client.ts`; index now re-exports the client and hooks consistently.
87
- - Improved naming normalization for types and client methods (sanitize invalid characters; PascalCase for type identifiers).
88
-
89
- ### Fixed
90
-
91
- - Corrected index re-export path for CLI to avoid `.js` resolution type issues.
92
- - Aligned generated hook call signatures with client method arity and parameter ordering.
93
-
94
- ### Added
95
-
96
- - Initial release of Schemantic
97
- - OpenAPI 3.0+ schema parsing and validation
98
- - TypeScript type generation from OpenAPI schemas
99
- - API client generation with proper typing
100
- - Extensible plugin system
101
- - CLI interface with comprehensive options
102
- - Built-in plugins for JSDoc, validation, React hooks, and strict mode
103
- - Support for multiple naming conventions (camelCase, snake_case, PascalCase)
104
- - Custom type mappings and schema transformations
105
- - Path and schema filtering capabilities
106
- - Comprehensive documentation and examples
107
- - Full test coverage with Jest
108
-
109
- ### Features
110
-
111
- - **Schema Parsing**: Parse OpenAPI schemas from URLs, files, or data objects
112
- - **Type Generation**: Generate TypeScript interfaces, enums, and type aliases
113
- - **API Client Generation**: Generate fully typed API client classes
114
- - **Plugin System**: Extensible plugin architecture for custom functionality
115
- - **CLI Interface**: Command-line interface with rich configuration options
116
- - **Validation**: Built-in OpenAPI schema validation
117
- - **Customization**: Flexible configuration for naming, filtering, and transformations
118
- - **FastAPI Integration**: Optimized for FastAPI applications
119
- - **React Support**: Generate React hooks and query builders
120
- - **TypeScript Strict Mode**: Full TypeScript strict mode support
121
-
122
- ### Technical Details
123
-
124
- - **Zero Dependencies**: No runtime dependencies on external libraries
125
- - **Modular Architecture**: Clean separation of concerns with extensible design
126
- - **Type Safety**: Comprehensive TypeScript types with no `any` usage
127
- - **Performance**: Optimized for large schemas and complex APIs
128
- - **Error Handling**: Graceful error handling with detailed error messages
129
- - **Testing**: Comprehensive test suite with 100% coverage goals
130
-
131
- ## [0.1.0] - 2024-09-12
132
-
133
- ### Added
134
-
135
- - Initial release
136
- - Core functionality for OpenAPI schema parsing and TypeScript generation
137
- - Plugin system architecture
138
- - CLI interface
139
- - Documentation and examples
140
-
141
- ### Changed
142
-
143
- - N/A (initial release)
144
-
145
- ### Deprecated
146
-
147
- - N/A (initial release)
148
-
149
- ### Removed
150
-
151
- - N/A (initial release)
152
-
153
- ### Fixed
154
-
155
- - N/A (initial release)
156
-
157
- ### Security
158
-
159
- - 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.0] — 2026-10-18
11
+
12
+ ### Fixed
13
+
14
+ - 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.
15
+ - Fresh output supports composed schemas, aliases, arrays, dictionaries, nullable values, safe identifiers, literal enums and runtime exports.
16
+ - 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.
17
+ - Generation validates references and output collisions, applies filters and plugins, isolates repeated runs and executes custom generators.
18
+ - Hooks share client metadata, honor prefixes/custom filenames, stabilize equivalent query inputs and ignore stale query responses.
19
+ - Zod validation preserves all payload fields, supports lazy references and validates numeric enums, unions, nullable values and dictionaries.
20
+ - CLI failures return nonzero status; config overrides and types-only output work; local watch mode regenerates changes.
21
+ - Release builds exclude test helpers; build/prepack clean and compile fresh output; CI targets Node 20, 22 and 24.
22
+ - 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.
23
+ - 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.
24
+
25
+ ### Compatibility
26
+
27
+ - Node 20+ is required by Commander 14.
28
+ - `validation` now aliases Zod validation; class-validator decorators cannot be emitted into interfaces. Consumers must install Zod 4.
29
+ - Invalid references, duplicate exports and unsafe output filenames now fail explicitly. `--fix` reports that automatic repair is unimplemented.
30
+ - 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).
31
+ - 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.
32
+ - Branded guards now use schema-backed Zod validation; branded output requires Zod 4. Optional plugin helpers remain explicit integrations.
33
+
34
+ ## [0.3.0] — 2025-10-18
35
+
36
+ ### Removed
37
+
38
+ - Removed `barrel.ts` generation and the `generateBarrelExports` configuration option.
39
+
40
+ - Exports are now consolidated into `index.ts` by default. This reduces duplication and simplifies generated output.
41
+
42
+ ### Migration notes
43
+
44
+ - 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';`).
45
+ - 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.
46
+
47
+ ---
48
+
49
+ ## [0.2.1] — 2025-10-18
50
+
51
+ ### Fixed
52
+
53
+ - 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.
54
+
55
+ - 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.
56
+
57
+ - 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.
58
+
59
+ ### Changed
60
+
61
+ - 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.
62
+
63
+ ### Migration notes
64
+
65
+ - If you previously relied on `ValidationError.errors` in generated code, switch to `ValidationError.issues`.
66
+
67
+ - 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.
68
+
69
+ ---
70
+
71
+ ## [0.2.0] — 2025-10-18
72
+
73
+ ### Added
74
+
75
+ - **Zod Plugin** — Adopted Zod v4 error shape.
76
+
77
+ - `ValidationError` now exposes `issues` (Zod issues) and `data` (the invalid input).
78
+ - `validateRequest` and `validateResponse` now consume `error.issues` rather than the deprecated `error.errors`.
79
+
80
+ ### Changed
81
+
82
+ - `validate<Type>` now returns structured results — `{ success: true | false, data | errors }` — for more predictable downstream handling.
83
+ - Improved internal transform typing (`transform((val: Record<string, unknown>) => ...)`) to ensure consistent inference during schema generation.
84
+ - **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.
85
+
86
+ ### Fixed
87
+
88
+ - Respected empty `typePrefix` by default — no automatic `"API"` prefix. Added integration test to prevent regressions.
89
+ - Made CLI `--config` flag usable without an explicit path and standardized the configuration filename to `schemantic.config.json`.
90
+ - Prevented the generator from importing TypeScript built-ins (e.g. `Record`, `Promise`) from generated `./types`.
91
+ - Ensured `buildObjectSchema` always returns a base schema (no missing return paths).
92
+ - Corrected a mismatched brace bug introduced in prior edits.
93
+ - Filtered out TypeScript built-in names in `hook-generator.ts` to prevent invalid imports.
94
+ - Emitted generated type declarations in dependency-resolved order so declarations appear before helper / validation code.
95
+
96
+ ### Migration Notes
97
+
98
+ - If you previously accessed `ValidationError.errors`, switch to `ValidationError.issues`.
99
+ - React Hooks plugin is temporarily unavailable as of this release — no action required if unused.
100
+ - No other breaking changes are expected for consumers.
101
+
102
+ ---
103
+
104
+ **Release summary:**
105
+
106
+ > ✨ Zod v4 error shape support, generator fixes, and CLI improvements. React Hooks plugin temporarily disabled pending refactor.
107
+
108
+ ---
109
+
110
+ ### Added
111
+
112
+ - Add a lightweight CI workflow to run the prefix integration test on push/PR.
113
+
114
+ ## [0.1.0] - 2025-09-13
115
+
116
+ ### Added
117
+
118
+ - First-party React hooks generator with `createApiHooks(client)` factory, enabled via `--hooks` or `generateHooks: true`.
119
+ - Top-level exports for `HookGenerator` and `GeneratedHooksFile`.
120
+
121
+ ### Changed
122
+
123
+ - Standardized generated client filename to `api-client.ts`; index now re-exports the client and hooks consistently.
124
+ - Improved naming normalization for types and client methods (sanitize invalid characters; PascalCase for type identifiers).
125
+
126
+ ### Fixed
127
+
128
+ - Corrected index re-export path for CLI to avoid `.js` resolution type issues.
129
+ - Aligned generated hook call signatures with client method arity and parameter ordering.
130
+
131
+ ### Added
132
+
133
+ - Initial release of Schemantic
134
+ - OpenAPI 3.0+ schema parsing and validation
135
+ - TypeScript type generation from OpenAPI schemas
136
+ - API client generation with proper typing
137
+ - Extensible plugin system
138
+ - CLI interface with comprehensive options
139
+ - Built-in plugins for JSDoc, validation, React hooks, and strict mode
140
+ - Support for multiple naming conventions (camelCase, snake_case, PascalCase)
141
+ - Custom type mappings and schema transformations
142
+ - Path and schema filtering capabilities
143
+ - Comprehensive documentation and examples
144
+ - Full test coverage with Jest
145
+
146
+ ### Features
147
+
148
+ - **Schema Parsing**: Parse OpenAPI schemas from URLs, files, or data objects
149
+ - **Type Generation**: Generate TypeScript interfaces, enums, and type aliases
150
+ - **API Client Generation**: Generate fully typed API client classes
151
+ - **Plugin System**: Extensible plugin architecture for custom functionality
152
+ - **CLI Interface**: Command-line interface with rich configuration options
153
+ - **Validation**: Built-in OpenAPI schema validation
154
+ - **Customization**: Flexible configuration for naming, filtering, and transformations
155
+ - **FastAPI Integration**: Optimized for FastAPI applications
156
+ - **React Support**: Generate React hooks and query builders
157
+ - **TypeScript Strict Mode**: Full TypeScript strict mode support
158
+
159
+ ### Technical Details
160
+
161
+ - **Zero Dependencies**: No runtime dependencies on external libraries
162
+ - **Modular Architecture**: Clean separation of concerns with extensible design
163
+ - **Type Safety**: Comprehensive TypeScript types with no `any` usage
164
+ - **Performance**: Optimized for large schemas and complex APIs
165
+ - **Error Handling**: Graceful error handling with detailed error messages
166
+ - **Testing**: Comprehensive test suite with 100% coverage goals
167
+
168
+ ## [0.1.0] - 2024-09-12
169
+
170
+ ### Added
171
+
172
+ - Initial release
173
+ - Core functionality for OpenAPI schema parsing and TypeScript generation
174
+ - Plugin system architecture
175
+ - CLI interface
176
+ - Documentation and examples
177
+
178
+ ### Changed
179
+
180
+ - N/A (initial release)
181
+
182
+ ### Deprecated
183
+
184
+ - N/A (initial release)
185
+
186
+ ### Removed
187
+
188
+ - N/A (initial release)
189
+
190
+ ### Fixed
191
+
192
+ - N/A (initial release)
193
+
194
+ ### Security
195
+
196
+ - 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.