@techspokes/typescript-wsdl-client 0.35.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/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/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/releases/README.md +1 -0
- package/docs/releases/v0.36.0.md +32 -0
- package/docs/roadmap/README.md +11 -6
- 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 +2 -1
- package/docs/roadmap/v1.0-wsdl-coverage-matrix.md +6 -5
- package/docs/roadmap/v1.0-xs-anyattribute-wildcard-bag.md +930 -0
- package/docs/supported-patterns.md +9 -6
- package/package.json +4 -1
|
@@ -24,7 +24,7 @@ The rows below are backed by committed conformance fixtures under `test/conforma
|
|
|
24
24
|
| `multi-binding-first-soap` | partial | Multiple bindings are deterministic: the first SOAP binding is selected and all ports are documented. |
|
|
25
25
|
| `external-policy-reference` | partial | Inline policy hints are detected; external `PolicyReference` documents are not fetched or resolved. |
|
|
26
26
|
| `deep-composition-sequence` | supported | Deep nested sequences compile into deterministic type metadata. |
|
|
27
|
-
| `xs-anyattribute` |
|
|
27
|
+
| `xs-anyattribute` | supported | `xs:anyAttribute` is retained as catalog metadata and emitted as an optional wildcard attribute bag named by the configured attributes key. |
|
|
28
28
|
| `mtom-xop-attachment` | unsupported | MTOM/XOP binary attachment metadata is rejected because attachment transport is outside the 1.0 typed SOAP-to-REST contract. |
|
|
29
29
|
<!-- support-matrix:end -->
|
|
30
30
|
|
|
@@ -49,6 +49,13 @@ These patterns are handled end-to-end: WSDL parsing, TypeScript type generation,
|
|
|
49
49
|
- SOAP 1.1 and SOAP 1.2 binding detection
|
|
50
50
|
- Streamable SOAP responses, opt-in per operation via `--stream-config` (ADR-002): client exposes `AsyncIterable<RecordType>`, gateway emits NDJSON or JSON array streams with backpressure, OpenAPI advertises the record schema via `x-wsdl-tsc-stream`
|
|
51
51
|
- `xs:any` wildcard particles retained on compiled types for stream-candidate detection and companion-catalog shape resolution
|
|
52
|
+
- `xs:anyAttribute` wildcard attributes emitted as an optional configured attribute bag, defaulting to `$attributes`
|
|
53
|
+
|
|
54
|
+
### xs:anyAttribute
|
|
55
|
+
|
|
56
|
+
Attribute wildcards are retained as catalog metadata and emitted as an optional wildcard attribute bag on the enclosing generated type. The bag property uses the configured client attributes key, defaulting to `$attributes`, and maps arbitrary wildcard attribute names to string values.
|
|
57
|
+
|
|
58
|
+
Known XML attributes remain flattened as peer properties. Wildcard attributes stay inside the bag so unknown names do not collide with child elements or known attributes.
|
|
52
59
|
|
|
53
60
|
### Named simple types and same-name elements
|
|
54
61
|
|
|
@@ -96,15 +103,11 @@ List types with an `itemType` attribute are detected and generate array types (`
|
|
|
96
103
|
|
|
97
104
|
Union types with `memberTypes` or inline simple type members are detected and generate TypeScript alias unions. Mixed primitive and literal unions generate OpenAPI `oneOf` schemas.
|
|
98
105
|
|
|
99
|
-
### xs:anyAttribute
|
|
100
|
-
|
|
101
|
-
Attribute wildcards are retained as catalog metadata on the enclosing compiled type. They are not emitted as typed attribute properties in generated TypeScript or OpenAPI schemas.
|
|
102
|
-
|
|
103
106
|
## Not Yet Supported
|
|
104
107
|
|
|
105
108
|
These features are not currently handled. Contributions are welcome.
|
|
106
109
|
|
|
107
|
-
- Full `xs:any` serialization: arbitrary wildcard content is not emitted as a typed contract
|
|
110
|
+
- Full `xs:any` element serialization: arbitrary wildcard element content is not emitted as a typed contract
|
|
108
111
|
- Abstract types: rejected with a diagnostic; no polymorphic instance handling
|
|
109
112
|
- Substitution groups: rejected with a diagnostic; no polymorphic element expansion
|
|
110
113
|
- MTOM/XOP binary attachments: rejected with a diagnostic; no binary part handling
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@techspokes/typescript-wsdl-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.36.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",
|
|
@@ -70,6 +70,7 @@
|
|
|
70
70
|
"test:unit": "vitest run test/unit",
|
|
71
71
|
"test:snap": "vitest run test/snapshot",
|
|
72
72
|
"test:integration": "vitest run test/integration",
|
|
73
|
+
"test:github": "vitest run test/unit test/snapshot test/integration",
|
|
73
74
|
"test:conformance": "vitest run test/conformance",
|
|
74
75
|
"test:watch": "vitest",
|
|
75
76
|
"prepublishOnly": "npm run clean && npm run build && npm run package:validate",
|
|
@@ -89,6 +90,8 @@
|
|
|
89
90
|
"package:validate": "node scripts/validate-npm-package.mjs",
|
|
90
91
|
"release:preflight": "node scripts/release-preflight.mjs",
|
|
91
92
|
"ci": "npm run clean && npm run build && npm run typecheck && npm run skill:validate && npm run package:validate && npm run docs:validate && vitest run && npm run smoke:pipeline",
|
|
93
|
+
"ci:github": "npm run clean && npm run build && npm run typecheck && npm run skill:validate && npm run package:validate && npm run docs:validate && npm run test:github && npm run smoke:pipeline",
|
|
94
|
+
"ci:github:node26": "npm run clean && npm run build && npm run typecheck && npm run test:unit && npm run smoke:pipeline",
|
|
92
95
|
"examples:regenerate": "tsx src/cli.ts pipeline --wsdl-source examples/minimal/weather.wsdl --client-dir examples/generated-output/client --openapi-file examples/generated-output/openapi.json --gateway-dir examples/generated-output/gateway --gateway-service-name weather --gateway-version-prefix v1 --openapi-format json"
|
|
93
96
|
},
|
|
94
97
|
"devDependencies": {
|