@techspokes/typescript-wsdl-client 0.24.0 → 0.26.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.
- package/README.md +3 -2
- package/dist/app/generateApp.js +1 -1
- package/dist/client/generateTypes.d.ts.map +1 -1
- package/dist/client/generateTypes.js +136 -65
- package/dist/compiler/schemaCompiler.d.ts +19 -0
- package/dist/compiler/schemaCompiler.d.ts.map +1 -1
- package/dist/compiler/schemaCompiler.js +152 -49
- package/dist/compiler/shapeResolver.js +15 -0
- package/dist/gateway/generators.d.ts.map +1 -1
- package/dist/gateway/generators.js +11 -7
- package/dist/openapi/generateSchemas.d.ts.map +1 -1
- package/dist/openapi/generateSchemas.js +39 -3
- package/dist/test/generateTests.js +1 -1
- package/dist/test/generators.d.ts +2 -2
- package/dist/test/generators.d.ts.map +1 -1
- package/dist/test/generators.js +84 -3
- package/dist/test/mockData.d.ts +19 -0
- package/dist/test/mockData.d.ts.map +1 -1
- package/dist/test/mockData.js +9 -0
- package/docs/README.md +1 -0
- package/docs/api-reference.md +21 -0
- package/docs/cli-reference.md +37 -8
- package/docs/concepts.md +18 -4
- package/docs/generated-code.md +18 -0
- package/docs/migration-playbook.md +1 -1
- package/docs/migration.md +1 -1
- package/docs/output-anatomy.md +1 -1
- package/docs/production.md +3 -3
- package/docs/releases/v0.25.0.md +31 -0
- package/docs/releases/v0.25.2.md +32 -0
- package/docs/releases/v0.26.0.md +32 -0
- package/docs/roadmap/README.md +89 -0
- package/docs/roadmap/v1.0-choice-union-mode.md +90 -0
- package/docs/roadmap/v1.0-contract-audit.md +74 -0
- package/docs/roadmap/v1.0-json-array-streaming.md +99 -0
- package/docs/roadmap/v1.0-openapi-fastify-compatibility.md +97 -0
- package/docs/roadmap/v1.0-release-candidate-gates.md +77 -0
- package/docs/roadmap/v1.0-wsdl-coverage-matrix.md +89 -0
- package/docs/supported-patterns.md +2 -1
- package/package.json +4 -4
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Version 1.0 WSDL Coverage Matrix
|
|
2
|
+
|
|
3
|
+
Plan for turning WSDL and XSD support claims into automated, fixture-backed evidence before 1.0.
|
|
4
|
+
|
|
5
|
+
See the root [README.md](../../README.md) for project overview and [Version 1.0 Roadmap Plan](README.md) for the complete 1.0 route.
|
|
6
|
+
|
|
7
|
+
## Goal
|
|
8
|
+
|
|
9
|
+
The project should have an automated feature matrix that proves which WSDL and XSD patterns are supported, partially supported, or rejected with diagnostics. The matrix should feed `docs/supported-patterns.md` and protect 1.0 from silent miscompilation.
|
|
10
|
+
|
|
11
|
+
## Design Direction
|
|
12
|
+
|
|
13
|
+
Each matrix row should have a minimal fixture, an expected support status, and a test that proves the status. A supported feature must compile and generate aligned client, OpenAPI, and gateway artifacts where applicable. An unsupported feature must fail with a clear diagnostic or be documented as intentionally out of scope.
|
|
14
|
+
|
|
15
|
+
## Scope
|
|
16
|
+
|
|
17
|
+
- Add a fixture directory for WSDL feature coverage.
|
|
18
|
+
- Add a manifest that lists features, status, expected commands, and expected diagnostics.
|
|
19
|
+
- Add Vitest coverage that reads the manifest and runs the relevant generation steps.
|
|
20
|
+
- Update `docs/supported-patterns.md` from the matrix findings.
|
|
21
|
+
- Include priority gaps from the roadmap.
|
|
22
|
+
|
|
23
|
+
## Out Of Scope
|
|
24
|
+
|
|
25
|
+
- Do not implement every unsupported WSDL feature in this slice.
|
|
26
|
+
- Do not replace the existing weather fixture for smoke tests.
|
|
27
|
+
- Do not make docs generated from the manifest unless that is a deliberate later decision.
|
|
28
|
+
|
|
29
|
+
## Priority Feature Rows
|
|
30
|
+
|
|
31
|
+
| Feature | Expected 1.0 Status | Notes |
|
|
32
|
+
|---------|---------------------|-------|
|
|
33
|
+
| `xs:choice` union mode | supported | Implemented in `0.26.0` |
|
|
34
|
+
| `xs:union` | supported or diagnostic | Decide after fixture work |
|
|
35
|
+
| Abstract types | diagnostic | Avoid silent concrete treatment |
|
|
36
|
+
| Substitution groups | diagnostic | Avoid silent omission |
|
|
37
|
+
| Multi-binding WSDLs | documented behavior | First binding or explicit selection |
|
|
38
|
+
| External `PolicyReference` | partial or diagnostic | Inline policy already exists |
|
|
39
|
+
| Deep composition | supported | Prove current recursion behavior |
|
|
40
|
+
| `xs:anyAttribute` | diagnostic | Current support is not full |
|
|
41
|
+
| MTOM/XOP attachments | unsupported diagnostic | Keep out of 1.0 scope unless required |
|
|
42
|
+
|
|
43
|
+
## Manifest Shape
|
|
44
|
+
|
|
45
|
+
The manifest should be small and reviewable. A JSON or TypeScript manifest is acceptable if tests can import it deterministically.
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"features": [
|
|
50
|
+
{
|
|
51
|
+
"id": "choice-union-simple",
|
|
52
|
+
"fixture": "choice-union-simple.wsdl",
|
|
53
|
+
"status": "supported",
|
|
54
|
+
"commands": ["compile", "client", "openapi", "gateway"]
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Testing Approach
|
|
61
|
+
|
|
62
|
+
### Matrix Runner
|
|
63
|
+
|
|
64
|
+
Create a Vitest suite that reads the manifest and executes the requested commands through programmatic APIs where possible. CLI smoke behavior should remain covered by existing smoke scripts.
|
|
65
|
+
|
|
66
|
+
### Supported Feature Tests
|
|
67
|
+
|
|
68
|
+
For supported rows, assert successful compilation, generated TypeScript type-checking, OpenAPI validation, and gateway schema generation when applicable.
|
|
69
|
+
|
|
70
|
+
### Diagnostic Feature Tests
|
|
71
|
+
|
|
72
|
+
For diagnostic rows, assert the exact error class or user-facing message shape. Avoid brittle full-message assertions unless the message is part of the public contract.
|
|
73
|
+
|
|
74
|
+
### Documentation Tests
|
|
75
|
+
|
|
76
|
+
Ensure every documented unsupported or partial feature has a corresponding matrix row. This can be a lightweight consistency test that compares feature IDs with anchors or explicit markers in `docs/supported-patterns.md`.
|
|
77
|
+
|
|
78
|
+
## Acceptance Criteria
|
|
79
|
+
|
|
80
|
+
- The matrix includes every roadmap priority feature.
|
|
81
|
+
- Supported rows have passing fixtures.
|
|
82
|
+
- Unsupported rows fail with clear diagnostics.
|
|
83
|
+
- `docs/supported-patterns.md` reflects the matrix.
|
|
84
|
+
- No known feature silently miscompiles in matrix coverage.
|
|
85
|
+
- The matrix can run in CI or release preflight without network access.
|
|
86
|
+
|
|
87
|
+
## Release Implications
|
|
88
|
+
|
|
89
|
+
This slice may reveal features that should be implemented before 1.0. It may also justify explicit post-1.0 deferrals if diagnostics and documentation are strong enough.
|
|
@@ -12,7 +12,8 @@ These patterns are handled end-to-end: WSDL parsing, TypeScript type generation,
|
|
|
12
12
|
- Type inheritance through `<xs:extension>` and `<xs:restriction>` on both simple and complex content
|
|
13
13
|
- Nested XSD imports across multiple schema files with relative and absolute URI resolution
|
|
14
14
|
- Multiple namespaces with deterministic collision resolution via PascalCase uniqueness
|
|
15
|
-
- `<xs:choice>` elements modeled as parallel optional alternatives
|
|
15
|
+
- `<xs:choice>` elements modeled as parallel optional alternatives by default
|
|
16
|
+
- Opt-in `<xs:choice>` union mode with exclusive TypeScript branch unions and OpenAPI request constraints
|
|
16
17
|
- Optional and nillable fields using `minOccurs`, `maxOccurs`, and `nillable` attributes
|
|
17
18
|
- `ArrayOf*` wrapper types with automatic unwrapping in OpenAPI and runtime bridging in gateway code
|
|
18
19
|
- WSDL/XSD documentation annotations propagated into TypeScript JSDoc comments and OpenAPI descriptions
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@techspokes/typescript-wsdl-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.0",
|
|
4
4
|
"description": "Turn legacy WSDL/SOAP services into typed TypeScript clients, OpenAPI 3.1 specs, and production-ready Fastify REST gateways. Built for enterprise SOAP modernization.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"wsdl",
|
|
@@ -95,14 +95,14 @@
|
|
|
95
95
|
"fastify": "^5.8.5",
|
|
96
96
|
"fastify-plugin": "^5.1.0",
|
|
97
97
|
"rimraf": "^6.1.3",
|
|
98
|
-
"tsx": "^4.22.
|
|
98
|
+
"tsx": "^4.22.4",
|
|
99
99
|
"typescript": "^6.0.3",
|
|
100
|
-
"vitest": "^4.1.
|
|
100
|
+
"vitest": "^4.1.8"
|
|
101
101
|
},
|
|
102
102
|
"dependencies": {
|
|
103
103
|
"@apidevtools/swagger-parser": "^12.1.0",
|
|
104
104
|
"fast-xml-parser": "^5.8.0",
|
|
105
|
-
"js-yaml": "^4.
|
|
105
|
+
"js-yaml": "^4.2.0",
|
|
106
106
|
"saxes": "^6.0.0",
|
|
107
107
|
"soap": "^1.9.3",
|
|
108
108
|
"yargs": "^18.0.0"
|