@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.
- package/README.md +1 -1
- package/dist/client/generateTypes.d.ts.map +1 -1
- package/dist/client/generateTypes.js +20 -0
- package/dist/compiler/schemaCompiler.d.ts +2 -0
- package/dist/compiler/schemaCompiler.d.ts.map +1 -1
- package/dist/compiler/schemaCompiler.js +31 -6
- package/dist/compiler/shapeResolver.js +4 -0
- package/dist/openapi/generateSchemas.d.ts.map +1 -1
- package/dist/openapi/generateSchemas.js +10 -2
- package/dist/test/generators.d.ts.map +1 -1
- package/dist/test/generators.js +19 -12
- package/dist/test/mockData.d.ts +5 -0
- package/dist/test/mockData.d.ts.map +1 -1
- package/dist/test/mockData.js +12 -2
- package/dist/util/attributeWildcards.d.ts +16 -0
- package/dist/util/attributeWildcards.d.ts.map +1 -0
- package/dist/util/attributeWildcards.js +14 -0
- package/docs/migration.md +1 -0
- package/docs/releases/README.md +1 -0
- package/docs/releases/v0.35.0.md +33 -0
- package/docs/releases/v0.36.0.md +32 -0
- package/docs/roadmap/README.md +14 -8
- package/docs/roadmap/v1.0-capability-conformance-framework.md +2 -2
- package/docs/roadmap/v1.0-contract-audit.md +2 -2
- package/docs/roadmap/v1.0-release-candidate-gates.md +4 -2
- package/docs/roadmap/v1.0-wsdl-coverage-matrix.md +21 -12
- package/docs/roadmap/v1.0-xs-anyattribute-wildcard-bag.md +930 -0
- package/docs/supported-patterns.md +17 -6
- package/docs/testing.md +18 -0
- package/package.json +11 -8
- package/src/runtime/clientStreamMethods.tpl.txt +1 -1
|
@@ -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` |
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
22
|
-
- `test/conformance/registry.ts` lists
|
|
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
|
|
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` |
|
|
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
|
|
101
|
-
- Unsupported or
|
|
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. `
|
|
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
|
|
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
|