@techspokes/typescript-wsdl-client 0.30.3 → 0.31.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/dist/compiler/schemaCompiler.d.ts.map +1 -1
- package/dist/compiler/schemaCompiler.js +74 -0
- package/docs/releases/v0.31.0.md +33 -0
- package/docs/roadmap/README.md +7 -7
- package/docs/roadmap/v1.0-capability-conformance-framework.md +33 -9
- package/docs/roadmap/v1.0-wsdl-coverage-matrix.md +50 -11
- package/docs/supported-patterns.md +6 -6
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemaCompiler.d.ts","sourceRoot":"","sources":["../../src/compiler/schemaCompiler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"schemaCompiler.d.ts","sourceRoot":"","sources":["../../src/compiler/schemaCompiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -143,6 +143,79 @@ function extractAnnotationDocumentation(node) {
|
|
|
143
143
|
.join(" ");
|
|
144
144
|
return normalizeDocText(merged);
|
|
145
145
|
}
|
|
146
|
+
function localName(name) {
|
|
147
|
+
return name.includes(":") ? name.split(":").pop() : name;
|
|
148
|
+
}
|
|
149
|
+
function isTruthyXmlBoolean(value) {
|
|
150
|
+
return String(value).trim().toLowerCase() === "true" || String(value).trim() === "1";
|
|
151
|
+
}
|
|
152
|
+
function getAttributeByLocalName(node, name) {
|
|
153
|
+
if (!node || typeof node !== "object") {
|
|
154
|
+
return undefined;
|
|
155
|
+
}
|
|
156
|
+
for (const [key, value] of Object.entries(node)) {
|
|
157
|
+
if (key.startsWith("@_") && localName(key.slice(2)) === name) {
|
|
158
|
+
return value;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return undefined;
|
|
162
|
+
}
|
|
163
|
+
function hasAttributeByLocalName(node, name) {
|
|
164
|
+
if (Array.isArray(node)) {
|
|
165
|
+
return node.some(child => hasAttributeByLocalName(child, name));
|
|
166
|
+
}
|
|
167
|
+
if (!node || typeof node !== "object") {
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
if (getAttributeByLocalName(node, name) !== undefined) {
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
return Object.entries(node)
|
|
174
|
+
.filter(([key]) => !key.startsWith("@_"))
|
|
175
|
+
.some(([, value]) => hasAttributeByLocalName(value, name));
|
|
176
|
+
}
|
|
177
|
+
function rejectUnsupportedSchemaConstructs(cat) {
|
|
178
|
+
for (const schema of cat.schemas) {
|
|
179
|
+
for (const element of getChildrenWithLocalName(schema.xml, "element")) {
|
|
180
|
+
const substitutionGroup = getAttributeByLocalName(element, "substitutionGroup");
|
|
181
|
+
if (substitutionGroup) {
|
|
182
|
+
throw new WsdlCompilationError(`Unsupported XSD substitution group on element "${element["@_name"] ?? "(anonymous)"}".`, {
|
|
183
|
+
element: String(element["@_name"] ?? ""),
|
|
184
|
+
namespace: schema.targetNS,
|
|
185
|
+
file: cat.wsdlUri,
|
|
186
|
+
suggestion: "Substitution groups require polymorphic element expansion. Remove the substitution group or model the accepted concrete element explicitly before generation.",
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
for (const complexType of getChildrenWithLocalName(schema.xml, "complexType")) {
|
|
191
|
+
if (isTruthyXmlBoolean(getAttributeByLocalName(complexType, "abstract"))) {
|
|
192
|
+
throw new WsdlCompilationError(`Unsupported abstract complex type "${complexType["@_name"] ?? "(anonymous)"}".`, {
|
|
193
|
+
element: String(complexType["@_name"] ?? ""),
|
|
194
|
+
namespace: schema.targetNS,
|
|
195
|
+
file: cat.wsdlUri,
|
|
196
|
+
suggestion: "Abstract complex types require polymorphic instance handling. Use a concrete type or add support for explicit abstract type diagnostics before generation.",
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
for (const element of getChildrenWithLocalName(schema.xml, "element")) {
|
|
201
|
+
if (isTruthyXmlBoolean(getAttributeByLocalName(element, "abstract"))) {
|
|
202
|
+
throw new WsdlCompilationError(`Unsupported abstract element "${element["@_name"] ?? "(anonymous)"}".`, {
|
|
203
|
+
element: String(element["@_name"] ?? ""),
|
|
204
|
+
namespace: schema.targetNS,
|
|
205
|
+
file: cat.wsdlUri,
|
|
206
|
+
suggestion: "Abstract elements require substitution or polymorphic element handling. Use a concrete element before generation.",
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
if (hasAttributeByLocalName(schema.xml, "expectedContentTypes")) {
|
|
211
|
+
throw new WsdlCompilationError("Unsupported MTOM/XOP or XML MIME attachment metadata.", {
|
|
212
|
+
namespace: schema.targetNS,
|
|
213
|
+
file: cat.wsdlUri,
|
|
214
|
+
suggestion: "Attachment payloads require MIME or binary transport semantics that are outside the typed SOAP-to-REST generation contract.",
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
146
219
|
/**
|
|
147
220
|
* Compile a WSDL catalog into an internal representation (CompiledCatalog).
|
|
148
221
|
* Steps:
|
|
@@ -154,6 +227,7 @@ function extractAnnotationDocumentation(node) {
|
|
|
154
227
|
* portType reference, then enumerate operations and their soapAction URIs.
|
|
155
228
|
*/
|
|
156
229
|
export function compileCatalog(cat, options, streamConfig) {
|
|
230
|
+
rejectUnsupportedSchemaConstructs(cat);
|
|
157
231
|
// symbol tables discovered across all schemas
|
|
158
232
|
const complexTypes = new Map();
|
|
159
233
|
const simpleTypes = new Map();
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# TypeScript WSDL Client v0.31.0
|
|
2
|
+
|
|
3
|
+
## Conformance Evidence Moves Downstream
|
|
4
|
+
|
|
5
|
+
This release extends the WSDL capability conformance framework beyond compile-only checks and adds diagnostics for unsupported schema constructs that previously risked silent miscompilation.
|
|
6
|
+
|
|
7
|
+
## What This Improves
|
|
8
|
+
|
|
9
|
+
Maintainers can now prove supported and partial WSDL capability rows through generated TypeScript clients and validated OpenAPI specs, not only through catalog compilation. This makes the support matrix more trustworthy and gives future gateway-runtime work a stronger base.
|
|
10
|
+
|
|
11
|
+
Unsupported abstract types, substitution groups, and MTOM/XOP-style attachment metadata now fail with structured diagnostics instead of compiling into misleading contracts.
|
|
12
|
+
|
|
13
|
+
## Highlights
|
|
14
|
+
|
|
15
|
+
- Adds generated client type-check evidence for supported and partial WSDL conformance rows.
|
|
16
|
+
- Adds OpenAPI validation and targeted schema assertions for supported and partial WSDL conformance rows.
|
|
17
|
+
- Rejects abstract complex types, substitution groups, and XML MIME attachment metadata with diagnostics.
|
|
18
|
+
- Updates the roadmap so the next 1.0 slice is gateway runtime conformance evidence.
|
|
19
|
+
|
|
20
|
+
## Upgrade Notes
|
|
21
|
+
|
|
22
|
+
WSDLs that declare abstract complex types, substitution groups, or XML MIME attachment metadata now fail during compilation with a diagnostic. This is intentional because those constructs require polymorphic or attachment transport semantics that are not part of the current typed SOAP-to-REST contract.
|
|
23
|
+
|
|
24
|
+
## Validation
|
|
25
|
+
|
|
26
|
+
- CI passed.
|
|
27
|
+
- NPM package contents were validated.
|
|
28
|
+
- Agent skill artifact was validated and packaged.
|
|
29
|
+
- Release preflight passed against the target tag.
|
|
30
|
+
|
|
31
|
+
## Notes
|
|
32
|
+
|
|
33
|
+
Release tag: `v0.31.0`.
|
package/docs/roadmap/README.md
CHANGED
|
@@ -18,8 +18,8 @@ The plan is optimized for preserving quality. The contract and compatibility bas
|
|
|
18
18
|
| OpenAPI compatibility | [OpenAPI Fastify Compatibility](v1.0-openapi-fastify-compatibility.md) | baseline complete | Schema strategy is proven |
|
|
19
19
|
| Choice union mode | [Choice Union Mode](v1.0-choice-union-mode.md) | complete | Implemented in `0.26.0` |
|
|
20
20
|
| JSON array streaming | [JSON Array Streaming](v1.0-json-array-streaming.md) | complete | Implemented in `0.28.0` |
|
|
21
|
-
| Conformance framework | [Capability Conformance Framework](v1.0-capability-conformance-framework.md) |
|
|
22
|
-
| WSDL coverage matrix | [WSDL Coverage Matrix](v1.0-wsdl-coverage-matrix.md) |
|
|
21
|
+
| Conformance framework | [Capability Conformance Framework](v1.0-capability-conformance-framework.md) | phase 2 shipped | Pipeline claims are test-backed |
|
|
22
|
+
| WSDL coverage matrix | [WSDL Coverage Matrix](v1.0-wsdl-coverage-matrix.md) | client and OpenAPI evidence shipped | Feature support is test-backed |
|
|
23
23
|
| Release candidate | [Release Candidate Gates](v1.0-release-candidate-gates.md) | remaining | 1.0 release is repeatable |
|
|
24
24
|
|
|
25
25
|
## Execution Order
|
|
@@ -42,11 +42,11 @@ JSON array streaming is complete in `0.28.0`. The default `ndjson` format remain
|
|
|
42
42
|
|
|
43
43
|
### Slice 5: Capability Conformance Framework
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
The registry, fixture strategy, compile runner, client evidence, OpenAPI evidence, documentation drift check, and generated support matrix are shipped. The next work is to extend relevant rows into gateway runtime evidence without expanding public APIs.
|
|
46
46
|
|
|
47
47
|
### Slice 6: WSDL Coverage Matrix
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
The first WSDL matrix rows now exist as conformance registry entries with compile, client, OpenAPI, and documentation evidence. The next work is to prove relevant rows through generated gateway runtime artifacts.
|
|
50
50
|
|
|
51
51
|
### Slice 7: Release Candidate Gates
|
|
52
52
|
|
|
@@ -54,9 +54,9 @@ Run the release candidate gates after feature work and documentation have conver
|
|
|
54
54
|
|
|
55
55
|
## Remaining Before 1.0
|
|
56
56
|
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
- Turn unsupported or partial matrix rows into diagnostics, documentation, or scoped fixes.
|
|
57
|
+
- Extend the capability registry beyond OpenAPI evidence into gateway runtime evidence.
|
|
58
|
+
- Add generated gateway checks for supported and partial WSDL rows where HTTP behavior is part of the contract.
|
|
59
|
+
- Turn remaining unsupported, diagnostic, or partial matrix rows into diagnostics, documentation, or scoped fixes.
|
|
60
60
|
- Confirm `docs/supported-patterns.md` matches the matrix.
|
|
61
61
|
- Run the release-candidate gates.
|
|
62
62
|
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
# Version 1.0 Capability Conformance Framework
|
|
2
2
|
|
|
3
|
-
Status:
|
|
3
|
+
Status: Phase 2 shipped; gateway runtime evidence remaining before `1.0.0`.
|
|
4
4
|
|
|
5
5
|
Plan for turning SOAP, WSDL, OpenAPI, gateway, app, generated-test, and documentation support claims into fixture-backed conformance evidence.
|
|
6
6
|
|
|
7
|
+
Phase 1 shipped a TypeScript registry, reusable WSDL fixtures, compile-stage runner, documentation drift tests, and generated public support matrix. Phase 2 added generated client type-checking, OpenAPI validation, and executable diagnostics for terminal rows. The next slice should extend relevant rows into gateway runtime evidence before adding more feature rows.
|
|
8
|
+
|
|
7
9
|
See the root [README.md](../../README.md) for project overview and [Version 1.0 Roadmap Plan](README.md) for the complete 1.0 route.
|
|
8
10
|
|
|
9
11
|
## Goal
|
|
@@ -172,6 +174,8 @@ When full support is clearly local, deterministic, and representable, implement
|
|
|
172
174
|
|
|
173
175
|
## Phase 1 Decisions
|
|
174
176
|
|
|
177
|
+
Phase 1 shipped in the `0.30.x` line. Keep this section as the historical baseline and as guardrails for future registry changes.
|
|
178
|
+
|
|
175
179
|
Phase 1 is internal test infrastructure. It must not add exports from `src/index.ts`, new public CLI commands, or new consumer-facing APIs.
|
|
176
180
|
|
|
177
181
|
The first registry should live under `test/conformance/registry.ts`. It should export types and data for repository tests only. Public package exports can be reconsidered after the inspector has a stable use case.
|
|
@@ -188,19 +192,21 @@ The public evidence matrix should be generated from the registry with `npm run d
|
|
|
188
192
|
|
|
189
193
|
## Phase 1 File Map
|
|
190
194
|
|
|
191
|
-
|
|
195
|
+
The Phase 1 file map is implemented. Keep these ownership boundaries in place while extending the framework.
|
|
192
196
|
|
|
193
|
-
|
|
197
|
+
`test/conformance/types.ts` owns shared registry types. Keep these types out of `src/` until a public API is justified.
|
|
194
198
|
|
|
195
|
-
|
|
199
|
+
`test/conformance/registry.ts` owns the initial capability rows. Include new priority features from the WSDL coverage matrix here before changing generator behavior.
|
|
196
200
|
|
|
197
|
-
|
|
201
|
+
`test/conformance/runner.ts` owns compile-stage execution helpers. Resolve fixture paths relative to `test/conformance/fixtures/` and create one temporary output directory per case under the OS temp directory.
|
|
198
202
|
|
|
199
|
-
|
|
203
|
+
`test/conformance/conformance.test.ts` owns manifest-driven compile tests. Supported and partial rows should compile successfully; diagnostic rows should assert the error shape or explicit warning behavior.
|
|
200
204
|
|
|
201
|
-
|
|
205
|
+
`test/conformance/docs.test.ts` owns registry-to-docs alignment. It should validate existing heading anchors and prove that the public evidence matrix matches generated registry output.
|
|
202
206
|
|
|
203
|
-
|
|
207
|
+
`test/conformance/fixtures/` contains minimal WSDL fixtures. Keep each fixture synthetic, deterministic, and scoped to one capability.
|
|
208
|
+
|
|
209
|
+
`package.json` exposes `test:conformance` with `vitest run test/conformance`.
|
|
204
210
|
|
|
205
211
|
Modify `docs/supported-patterns.md` only when the registry reveals a real mismatch. Generate only the evidence matrix from the registry in Phase 1; do not rewrite the explanatory sections from registry data.
|
|
206
212
|
|
|
@@ -299,7 +305,7 @@ The inspector should not be treated as proof that generation will succeed. It is
|
|
|
299
305
|
|
|
300
306
|
## Phase 1: Registry And Compile Matrix
|
|
301
307
|
|
|
302
|
-
|
|
308
|
+
The capability registry, fixture directory, and Vitest runner for compile-stage expectations are implemented. Keep unsupported rows diagnostic or research-only until behavior is proven.
|
|
303
309
|
|
|
304
310
|
Start with these capability IDs:
|
|
305
311
|
|
|
@@ -327,6 +333,8 @@ Acceptance criteria:
|
|
|
327
333
|
|
|
328
334
|
## Phase 2: Client And OpenAPI Evidence
|
|
329
335
|
|
|
336
|
+
Phase 2 is implemented for the current supported and partial WSDL rows. Keep this section as the baseline for future client and OpenAPI evidence.
|
|
337
|
+
|
|
330
338
|
Extend supported rows to generate clients and OpenAPI specs. Add type-check verification for generated clients and schema assertions for OpenAPI output.
|
|
331
339
|
|
|
332
340
|
Acceptance criteria:
|
|
@@ -336,6 +344,22 @@ Acceptance criteria:
|
|
|
336
344
|
- Capability-specific schema strategies are asserted where they matter.
|
|
337
345
|
- Diagnostic rows stop before downstream stages.
|
|
338
346
|
|
|
347
|
+
Recommended scope:
|
|
348
|
+
|
|
349
|
+
- Add optional `client` and `openapi` expectation blocks to `CapabilityCase`.
|
|
350
|
+
- Generate artifacts into a temporary directory owned by each capability row.
|
|
351
|
+
- Emit a temporary `tsconfig.json` that includes generated client artifacts and uses repository NodeNext settings.
|
|
352
|
+
- Validate OpenAPI documents through the same validator used by existing OpenAPI tests.
|
|
353
|
+
- Assert public schema contracts for rows that already claim support or partial support.
|
|
354
|
+
|
|
355
|
+
Skeptical review notes:
|
|
356
|
+
|
|
357
|
+
- A `supported` status should not rely on compile-only evidence after this phase.
|
|
358
|
+
- `diagnostic` rows currently using `research` compile expectations need either real diagnostics or clearer deferral language.
|
|
359
|
+
- Whole-file snapshots would make conformance brittle; prefer targeted assertions on generated types, schemas, paths, and operation metadata.
|
|
360
|
+
- The support matrix generator should remain limited to the public evidence table, not the human-authored explanatory sections.
|
|
361
|
+
- Keep the inspector out of this slice unless the stage evidence reveals a stable detection model.
|
|
362
|
+
|
|
339
363
|
## Phase 3: Gateway Runtime Evidence
|
|
340
364
|
|
|
341
365
|
Extend relevant rows to generate gateways and test Fastify runtime behavior through `fastify.inject`. Add mock operations clients and request/response fixtures as part of the registry.
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
# Version 1.0 WSDL Coverage Matrix
|
|
2
2
|
|
|
3
|
-
Status: remaining before `1.0.0`.
|
|
3
|
+
Status: client and OpenAPI evidence shipped; gateway runtime evidence remaining before `1.0.0`.
|
|
4
4
|
|
|
5
5
|
Plan for turning WSDL and XSD support claims into automated, fixture-backed evidence before 1.0. This is the first domain under the [Capability Conformance Framework](v1.0-capability-conformance-framework.md).
|
|
6
6
|
|
|
7
|
+
The initial fixture-backed compile matrix shipped in `0.30.2` and `0.30.3`. Client and OpenAPI evidence now prove the current supported and partial rows, and terminal rows have executable diagnostics. The remaining work is to prove generated gateway runtime artifacts and keep public support claims tied to registry rows.
|
|
8
|
+
|
|
7
9
|
See the root [README.md](../../README.md) for project overview and [Version 1.0 Roadmap Plan](README.md) for the complete 1.0 route.
|
|
8
10
|
|
|
9
11
|
## Goal
|
|
@@ -14,19 +16,31 @@ The project should have an automated WSDL and XSD feature matrix that proves whi
|
|
|
14
16
|
|
|
15
17
|
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.
|
|
16
18
|
|
|
17
|
-
##
|
|
19
|
+
## Shipped Baseline
|
|
20
|
+
|
|
21
|
+
- `test/conformance/fixtures/` contains the first priority WSDL fixture set.
|
|
22
|
+
- `test/conformance/registry.ts` lists priority rows with status, decision, provenance, and public contract text.
|
|
23
|
+
- `test/conformance/conformance.test.ts` runs compile-stage expectations for runnable rows.
|
|
24
|
+
- Supported and partial rows generate client artifacts that type-check.
|
|
25
|
+
- Supported and partial rows generate validated OpenAPI specs with targeted contract assertions.
|
|
26
|
+
- Diagnostic and unsupported rows have executable compiler error expectations.
|
|
27
|
+
- `docs/supported-patterns.md` includes a generated capability evidence matrix.
|
|
28
|
+
- `npm run docs:support-matrix:check` prevents support matrix drift.
|
|
29
|
+
|
|
30
|
+
## Remaining Scope
|
|
18
31
|
|
|
19
|
-
- Add
|
|
20
|
-
- Add
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
32
|
+
- Add stage expectations for generated gateway output and runtime behavior.
|
|
33
|
+
- Add generated request and response fixtures where HTTP behavior is part of a capability contract.
|
|
34
|
+
- Keep diagnostics executable as more unsupported rows are added.
|
|
35
|
+
- Keep fixture metadata useful for a future public conformance fixture corpus.
|
|
36
|
+
- Preserve the weather smoke fixture as the canonical end-to-end happy path.
|
|
24
37
|
|
|
25
38
|
## Out Of Scope
|
|
26
39
|
|
|
27
40
|
- Do not implement every unsupported WSDL feature in this slice.
|
|
28
41
|
- Do not replace the existing weather fixture for smoke tests.
|
|
29
|
-
- Do not
|
|
42
|
+
- Do not generate the explanatory supported-pattern sections from the registry.
|
|
43
|
+
- Do not add public CLI commands for the inspector until the registry evidence model stabilizes.
|
|
30
44
|
|
|
31
45
|
## Priority Feature Rows
|
|
32
46
|
|
|
@@ -63,16 +77,20 @@ The manifest should be small and reviewable. A JSON or TypeScript manifest is ac
|
|
|
63
77
|
|
|
64
78
|
### Matrix Runner
|
|
65
79
|
|
|
66
|
-
|
|
80
|
+
The existing Vitest suite reads the TypeScript registry and runs compile expectations through programmatic APIs. The next runner should generate artifacts into per-case temporary directories and avoid shelling out where direct generator APIs give better diagnostics.
|
|
67
81
|
|
|
68
82
|
### Supported Feature Tests
|
|
69
83
|
|
|
70
84
|
For supported rows, assert successful compilation, generated TypeScript type-checking, OpenAPI validation, and gateway schema generation when applicable.
|
|
71
85
|
|
|
86
|
+
Generated client checks should verify that emitted `client.ts`, `types.ts`, `utils.ts`, and `operations.ts` type-check together. OpenAPI checks should validate the full spec and assert capability-specific schema shapes only where the shape is part of the public contract.
|
|
87
|
+
|
|
72
88
|
### Diagnostic Feature Tests
|
|
73
89
|
|
|
74
90
|
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.
|
|
75
91
|
|
|
92
|
+
Rows marked `diagnostic` should not remain permanent `research` placeholders. If full diagnostics are not implemented in the next slice, the row should say `defer` or carry a clear unresolved decision rather than implying that diagnostic behavior already exists.
|
|
93
|
+
|
|
76
94
|
### Documentation Tests
|
|
77
95
|
|
|
78
96
|
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`.
|
|
@@ -80,12 +98,33 @@ Ensure every documented unsupported or partial feature has a corresponding matri
|
|
|
80
98
|
## Acceptance Criteria
|
|
81
99
|
|
|
82
100
|
- The matrix includes every roadmap priority feature.
|
|
83
|
-
- Supported rows have
|
|
84
|
-
- Unsupported rows fail with clear diagnostics.
|
|
101
|
+
- Supported rows have compile, client, and OpenAPI evidence when those stages apply.
|
|
102
|
+
- Unsupported or diagnostic rows fail with clear diagnostics, or are explicitly deferred without support claims.
|
|
85
103
|
- `docs/supported-patterns.md` reflects the matrix.
|
|
86
104
|
- No known feature silently miscompiles in matrix coverage.
|
|
87
105
|
- The matrix can run in CI or release preflight without network access.
|
|
88
106
|
|
|
107
|
+
## Next Slice
|
|
108
|
+
|
|
109
|
+
The next slice should implement Phase 3 gateway runtime evidence for the current registry rows before adding more feature rows. This keeps the matrix honest: support claims become pipeline evidence, while diagnostic and unsupported claims remain stopped before downstream generation.
|
|
110
|
+
|
|
111
|
+
Work items:
|
|
112
|
+
|
|
113
|
+
- Add optional `gateway` expectations to the conformance type model.
|
|
114
|
+
- Generate gateway artifacts from each relevant row's OpenAPI document.
|
|
115
|
+
- Type-check generated gateway artifacts with the generated client artifacts.
|
|
116
|
+
- Add mock operations clients and `fastify.inject` assertions where request or response behavior is part of the contract.
|
|
117
|
+
- Leave diagnostic and unsupported rows stopped at compile.
|
|
118
|
+
- Update the generated public support matrix only when a row status or public contract changes.
|
|
119
|
+
|
|
120
|
+
Gotchas:
|
|
121
|
+
|
|
122
|
+
- Do not overclaim `supported` when gateway behavior is relevant but unproven.
|
|
123
|
+
- Do not snapshot whole generated files for conformance rows; assert stable contract surfaces instead.
|
|
124
|
+
- Do not share temporary output directories across rows.
|
|
125
|
+
- Do not let diagnostic or unsupported rows proceed to client, OpenAPI, or gateway generation.
|
|
126
|
+
- Do not add a public inspector command in this slice.
|
|
127
|
+
|
|
89
128
|
## Release Implications
|
|
90
129
|
|
|
91
130
|
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.
|
|
@@ -11,13 +11,13 @@ The rows below are backed by committed conformance fixtures under `test/conforma
|
|
|
11
11
|
|---|---|---|
|
|
12
12
|
| `choice-union-simple` | supported | `xs:choice` union mode retains choice metadata and drives generated TypeScript/OpenAPI constraints. |
|
|
13
13
|
| `xs-union-simple-type` | supported | Simple `xs:union` aliases compile to TypeScript unions and OpenAPI `oneOf` schemas. |
|
|
14
|
-
| `abstract-complex-type` | diagnostic | Abstract complex
|
|
15
|
-
| `substitution-group-element` | diagnostic | Substitution groups are
|
|
14
|
+
| `abstract-complex-type` | diagnostic | Abstract complex types are rejected with a diagnostic instead of being treated as concrete. |
|
|
15
|
+
| `substitution-group-element` | diagnostic | Substitution groups are rejected with a diagnostic instead of being silently omitted. |
|
|
16
16
|
| `multi-binding-first-soap` | partial | Multiple bindings are deterministic: the first SOAP binding is selected and all ports are documented. |
|
|
17
17
|
| `external-policy-reference` | partial | Inline policy hints are detected; external `PolicyReference` documents are not fetched or resolved. |
|
|
18
18
|
| `deep-composition-sequence` | supported | Deep nested sequences compile into deterministic type metadata. |
|
|
19
19
|
| `xs-anyattribute` | partial | `xs:anyAttribute` is retained as catalog metadata, but generated wildcard attributes are not emitted. |
|
|
20
|
-
| `mtom-xop-attachment` | unsupported | MTOM/XOP binary attachment transport is outside the 1.0 typed SOAP-to-REST contract. |
|
|
20
|
+
| `mtom-xop-attachment` | unsupported | MTOM/XOP binary attachment metadata is rejected because attachment transport is outside the 1.0 typed SOAP-to-REST contract. |
|
|
21
21
|
<!-- support-matrix:end -->
|
|
22
22
|
|
|
23
23
|
## Fully Supported
|
|
@@ -97,9 +97,9 @@ Attribute wildcards are retained as catalog metadata on the enclosing compiled t
|
|
|
97
97
|
These features are not currently handled. Contributions are welcome.
|
|
98
98
|
|
|
99
99
|
- Full `xs:any` serialization: arbitrary wildcard content is not emitted as a typed contract
|
|
100
|
-
- Abstract types:
|
|
101
|
-
- Substitution groups:
|
|
102
|
-
- MTOM/XOP binary attachments:
|
|
100
|
+
- Abstract types: rejected with a diagnostic; no polymorphic instance handling
|
|
101
|
+
- Substitution groups: rejected with a diagnostic; no polymorphic element expansion
|
|
102
|
+
- MTOM/XOP binary attachments: rejected with a diagnostic; no binary part handling
|
|
103
103
|
- WS-ReliableMessaging, WS-Addressing beyond basic headers
|
|
104
104
|
- Custom serialization hooks for non-standard XML patterns
|
|
105
105
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@techspokes/typescript-wsdl-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.31.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",
|