@techspokes/typescript-wsdl-client 0.34.0 → 0.36.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.
@@ -318,7 +318,7 @@ Start with these capability IDs:
318
318
  | `multi-binding-first-soap` | partial | success with documented behavior |
319
319
  | `external-policy-reference` | partial | success with documented limitation |
320
320
  | `deep-composition-sequence` | supported | success |
321
- | `xs-anyattribute` | partial | success with metadata retention |
321
+ | `xs-anyattribute` | supported | success with wildcard attribute bag evidence |
322
322
  | `mtom-xop-attachment` | unsupported | error or research |
323
323
 
324
324
  Acceptance criteria:
@@ -481,7 +481,7 @@ Every row with a `gateway` expectation should at least prove plugin import and r
481
481
 
482
482
  For supported rows, prefer one accepted request with a SOAP-wrapper-shaped mock response and an assertion on the generated success envelope. Add one rejected request only when the generated OpenAPI schema can express a meaningful invalid payload for that capability.
483
483
 
484
- For partial rows, prove the documented subset and avoid implying full support. For `xs-anyattribute`, gateway evidence should prove generation and runtime do not emit or require wildcard attribute bags. For external `PolicyReference`, gateway evidence should prove no generated inbound security requirement appears unless configured elsewhere.
484
+ For partial rows, prove the documented subset and avoid implying full support. External `PolicyReference` should not imply fetched or enforced external policy. The `xs-anyattribute` row is supported once generated TypeScript, OpenAPI, gateway, generated-test, and app evidence prove the configured wildcard attribute bag.
485
485
 
486
486
  For multi-binding rows, assert that the gateway route calls the operation selected by the deterministic first SOAP binding behavior. Do not implement explicit binding selection in this slice.
487
487
 
@@ -41,7 +41,7 @@ This slice prevents later work from building on ambiguous behavior. Choice union
41
41
 
42
42
  ### Roadmap State
43
43
 
44
- `ROADMAP.md` must reflect the current released `0.30.x` line. Choice union mode and JSON array streaming must be treated as shipped work, while capability conformance, WSDL coverage, and release-candidate gates remain the active 1.0 work.
44
+ `ROADMAP.md` must reflect the current released `0.35.x` line. Choice union mode, JSON array streaming, conformance gate wiring, and baseline WSDL coverage must be treated as shipped work, while final release-candidate gates remain the active 1.0 work.
45
45
 
46
46
  ### Release Metadata
47
47
 
@@ -63,7 +63,7 @@ Add negative tests only for newly identified contract gaps that a follow-up slic
63
63
 
64
64
  ## Acceptance Criteria
65
65
 
66
- - `ROADMAP.md` names released `0.30.x` work accurately.
66
+ - `ROADMAP.md` names released `0.35.x` work accurately.
67
67
  - `docs/roadmap/README.md` links every 1.0 slice.
68
68
  - CLI, API, and configuration docs agree on required 1.0 behavior.
69
69
  - Known contract gaps are linked to implementation slices.
@@ -29,7 +29,7 @@ The release candidate gates define what must be true before tagging `v1.0.0`. Th
29
29
 
30
30
  ### Documentation Gate
31
31
 
32
- Run `npm run docs:validate`. Confirm README, CLI reference, API reference, configuration docs, supported patterns, production docs, and roadmap agree on choice union mode and JSON array streaming.
32
+ Run `npm run docs:validate`. Confirm README, CLI reference, API reference, configuration docs, supported patterns, production docs, and roadmap agree on choice union mode, JSON array streaming, baseline conformance coverage, and Node support.
33
33
 
34
34
  ### Test Gate
35
35
 
@@ -53,7 +53,7 @@ Run the generated example freshness check through release preflight. Confirm com
53
53
 
54
54
  ### Node Gate
55
55
 
56
- Run the supported Node.js floor and the newest active Node.js line in CI before the release candidate is accepted.
56
+ Run Node 24 as the supported Node.js floor and Node 26 as the current line in CI before the release candidate is accepted. Release workflows should run on Node 24, and release preflight should fail if CI stops covering either line.
57
57
 
58
58
  ### Release Gate
59
59
 
@@ -67,7 +67,9 @@ Run `npm run release:preflight -- v1.0.0` during release preparation. Confirm re
67
67
  - Configuration docs describe both stream formats.
68
68
  - Supported patterns reflects the WSDL matrix.
69
69
  - The conformance gate documents `npm run test:conformance`, broad Vitest discovery, and release preflight wiring.
70
+ - The Node gate documents Node 24 as the package floor and Node 26 as the current-line CI check.
70
71
  - Production docs describe terminal-error behavior for both stream formats.
72
+ - Release docs include release-preflight validation as a consumer-facing outcome.
71
73
  - Migration docs explain any behavior changes since `0.x`.
72
74
 
73
75
  ## Acceptance Criteria
@@ -1,25 +1,25 @@
1
1
  # Version 1.0 WSDL Coverage Matrix
2
2
 
3
- Status: generated-test, app evidence, and validation-gate wiring shipped before `1.0.0`.
3
+ Status: baseline support registry expanded through `0.35.0`; generated-test evidence, app evidence, and validation-gate wiring shipped 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, OpenAPI, gateway runtime, generated-test, and app evidence now prove the current supported and partial rows, and terminal rows have executable diagnostics. `npm test` and `npm run ci` cover the conformance suite through broad Vitest discovery, and release preflight verifies that the script wiring remains intact.
7
+ The initial fixture-backed compile matrix shipped in `0.30.2` and `0.30.3`, with the baseline support corpus expanded in `0.35.0`. Client, OpenAPI, gateway runtime, generated-test, and app evidence now prove the current supported and partial rows, and terminal rows have executable diagnostics. The matrix is now the public baseline support registry. Examples remain demos, while conformance fixtures are the durable support evidence. `npm test` and `npm run ci` cover the conformance suite through broad Vitest discovery, and release preflight verifies that the script wiring remains intact.
8
8
 
9
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.
10
10
 
11
11
  ## Goal
12
12
 
13
- The project should have an automated WSDL and XSD feature matrix that proves which patterns are supported, partially supported, or rejected with diagnostics. The matrix should feed the conformance registry, align with `docs/supported-patterns.md`, and protect 1.0 from silent miscompilation.
13
+ The project should have an automated WSDL and XSD feature matrix that proves which patterns are supported, partially supported, or rejected with diagnostics. The matrix is the conformance registry, aligns with `docs/supported-patterns.md`, and protects 1.0 from silent miscompilation.
14
14
 
15
15
  ## Design Direction
16
16
 
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.
17
+ Each matrix row should have a minimal fixture, an expected support status, and a test that proves the status. A supported or partial feature must compile and generate aligned client, OpenAPI, gateway, generated-test, and app artifacts unless the row documents why a stage is inapplicable. An unsupported, diagnostic, or terminal feature must stop before downstream generation and fail with a clear diagnostic or be documented as intentionally out of scope.
18
18
 
19
19
  ## Shipped Baseline
20
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.
21
+ - `test/conformance/fixtures/` contains the baseline WSDL and XSD support fixture set.
22
+ - `test/conformance/registry.ts` lists baseline support rows with status, decision, provenance, and public contract text.
23
23
  - `test/conformance/conformance.test.ts` runs compile-stage expectations for runnable rows.
24
24
  - Supported and partial rows generate client artifacts that type-check.
25
25
  - Supported and partial rows generate validated OpenAPI specs with targeted contract assertions.
@@ -32,7 +32,7 @@ Each matrix row should have a minimal fixture, an expected support status, and a
32
32
 
33
33
  - Keep diagnostics executable as more unsupported rows are added.
34
34
  - Keep fixture metadata useful for a future public conformance fixture corpus.
35
- - Preserve the weather smoke fixture as the canonical end-to-end happy path.
35
+ - Preserve the weather smoke fixture as the canonical end-to-end demo while the copied conformance fixture proves the baseline support claim.
36
36
 
37
37
  ## Out Of Scope
38
38
 
@@ -45,6 +45,13 @@ Each matrix row should have a minimal fixture, an expected support status, and a
45
45
 
46
46
  | Feature | Expected 1.0 Status | Notes |
47
47
  |----------------------------|-------------------------|---------------------------------------|
48
+ | Weather document-literal baseline | supported | Canonical demo also lives in conformance |
49
+ | Complex sequences | supported | Nested references, repeated fields, and optional wrappers |
50
+ | Simple restrictions | supported | Enumerations, list aliases, and same-name aliases |
51
+ | Simple content attributes | supported | `$value` text content and flattened attributes |
52
+ | Documentation propagation | supported | Catalog, TypeScript, OpenAPI, and gateway comments |
53
+ | SOAP binding detection | supported | SOAP 1.1, SOAP 1.2, and first SOAP binding behavior |
54
+ | Relative XSD imports | supported | Local imports with committed companion XSDs |
48
55
  | `xs:choice` union mode | supported | Implemented in `0.26.0` |
49
56
  | `xs:union` | supported | Simple unions implemented after fixture work |
50
57
  | Abstract types | diagnostic | Avoid silent concrete treatment |
@@ -52,7 +59,7 @@ Each matrix row should have a minimal fixture, an expected support status, and a
52
59
  | Multi-binding WSDLs | documented behavior | First binding or explicit selection |
53
60
  | External `PolicyReference` | partial or diagnostic | Inline policy already exists |
54
61
  | Deep composition | supported | Prove current recursion behavior |
55
- | `xs:anyAttribute` | partial | Metadata retained; generated wildcard attributes deferred |
62
+ | `xs:anyAttribute` | supported | Metadata retained; wildcard attribute bag emitted |
56
63
  | MTOM/XOP attachments | unsupported diagnostic | Keep out of 1.0 scope unless required |
57
64
 
58
65
  ## Manifest Shape
@@ -97,8 +104,8 @@ Ensure every documented unsupported or partial feature has a corresponding matri
97
104
  ## Acceptance Criteria
98
105
 
99
106
  - The matrix includes every roadmap priority feature.
100
- - Supported rows have compile, client, and OpenAPI evidence when those stages apply.
101
- - Unsupported or diagnostic rows fail with clear diagnostics, or are explicitly deferred without support claims.
107
+ - Supported and partial rows have compile, client, OpenAPI, gateway, generated-test, and app evidence when those stages apply.
108
+ - Unsupported, diagnostic, or terminal rows fail with clear diagnostics, or are explicitly deferred without support claims.
102
109
  - `docs/supported-patterns.md` reflects the matrix.
103
110
  - No known feature silently miscompiles in matrix coverage.
104
111
  - The matrix can run in CI or release preflight without network access.
@@ -140,12 +147,12 @@ Rows that should stay compile-terminal:
140
147
 
141
148
  Each gateway-enabled row should prove plugin import, plugin registration, and at least one `fastify.inject` request when route behavior is relevant. Assertions should inspect the generated success or error envelope, not just the existence of generated files.
142
149
 
143
- Partial rows must prove only the documented subset. `xs:anyAttribute` should not imply generated wildcard attribute bags. External `PolicyReference` should not imply fetched or enforced external policy.
150
+ Partial rows must prove only the documented subset. External `PolicyReference` should not imply fetched or enforced external policy. The `xs:anyAttribute` row is supported through generated wildcard attribute bag evidence.
144
151
 
145
152
  ### Phase 3 Gotchas
146
153
 
147
154
  - Do not overclaim `supported` when gateway behavior is relevant but unproven.
148
- - Do not snapshot whole generated files for conformance rows; assert stable contract surfaces instead.
155
+ - Do not snapshoot whole generated files for conformance rows; assert stable contract surfaces instead.
149
156
  - Do not share temporary output directories across rows.
150
157
  - Do not let diagnostic or unsupported rows proceed to client, OpenAPI, or gateway generation.
151
158
  - Do not add a public inspector command in this slice.
@@ -159,8 +166,10 @@ Work items:
159
166
  - Keep `npm run test:conformance` as the focused command for maintainers who want only conformance checks.
160
167
  - Keep `npm test` and `npm run ci` broad enough for Vitest to discover `test/conformance`.
161
168
  - Keep release preflight's `conformance-gate` script check aligned with the package scripts.
169
+ - Keep release preflight's Node gate aligned with the package engine, Node 24 CI coverage, Node 26 CI coverage, and Node 24 release workflows.
162
170
  - Confirm release preflight runtime remains acceptable.
163
171
  - Keep diagnostic and unsupported rows stopped at compile.
172
+ - Decide whether the remaining partial rows stay partial for 1.0 or need one scoped pre-1.0 fix.
164
173
  - Update public docs only when a row status or public contract changes.
165
174
 
166
175
  ### Verification