@techspokes/typescript-wsdl-client 0.32.0 → 0.34.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.
@@ -1 +1 @@
1
- {"version":3,"file":"generateApp.d.ts","sourceRoot":"","sources":["../../src/app/generateApp.ts"],"names":[],"mappings":"AAgCA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAmpBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDzE"}
1
+ {"version":3,"file":"generateApp.d.ts","sourceRoot":"","sources":["../../src/app/generateApp.ts"],"names":[],"mappings":"AAgCA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAuqBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDzE"}
@@ -92,6 +92,22 @@ function isUrl(value) {
92
92
  function toPosix(filePath) {
93
93
  return filePath.split(path.sep).join("/");
94
94
  }
95
+ function commonPathPrefix(paths) {
96
+ if (paths.length === 0)
97
+ return ".";
98
+ const [first, ...rest] = paths.map(filePath => path.resolve(filePath).split(path.sep));
99
+ let prefixLength = first.length;
100
+ for (const parts of rest) {
101
+ prefixLength = Math.min(prefixLength, parts.length);
102
+ for (let index = 0; index < prefixLength; index += 1) {
103
+ if (parts[index] !== first[index]) {
104
+ prefixLength = index;
105
+ break;
106
+ }
107
+ }
108
+ }
109
+ return first.slice(0, prefixLength).join(path.sep) || path.parse(paths[0]).root;
110
+ }
95
111
  /**
96
112
  * Resolves a WSDL source path relative to the app directory.
97
113
  * URLs are returned as-is. File paths are computed relative to appDir.
@@ -536,6 +552,7 @@ function generateTsConfig(appDir, opts, force) {
536
552
  // Compute include paths relative to app directory
537
553
  const clientInclude = toPosix(path.relative(appDir, opts.clientDir)) + "/**/*.ts";
538
554
  const gatewayInclude = toPosix(path.relative(appDir, opts.gatewayDir)) + "/**/*.ts";
555
+ const rootDir = toPosix(path.relative(appDir, commonPathPrefix([appDir, opts.clientDir, opts.gatewayDir]))) || ".";
539
556
  const tsconfig = {
540
557
  compilerOptions: {
541
558
  module: "NodeNext",
@@ -546,7 +563,7 @@ function generateTsConfig(appDir, opts, force) {
546
563
  skipLibCheck: true,
547
564
  types: ["node"],
548
565
  outDir: "dist",
549
- rootDir: ".",
566
+ rootDir,
550
567
  },
551
568
  include: [
552
569
  "*.ts",
@@ -1 +1 @@
1
- {"version":3,"file":"mockData.d.ts","sourceRoot":"","sources":["../../src/test/mockData.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mockData.d.ts","sourceRoot":"","sources":["../../src/test/mockData.ts"],"names":[],"mappings":"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"}
@@ -117,6 +117,11 @@ export function generateMockData(typeName, catalog, opts, visited, depth) {
117
117
  const value = generateMockPrimitive(propType, propName);
118
118
  result[propName] = isArray ? [value] : value;
119
119
  }
120
+ else if (catalog.aliases?.some(alias => alias.name === propType)) {
121
+ const alias = catalog.aliases.find(entry => entry.name === propType);
122
+ const value = generateMockPrimitive(alias.tsType, propName);
123
+ result[propName] = isArray ? [value] : value;
124
+ }
120
125
  else {
121
126
  // Complex type — recurse
122
127
  const childData = generateMockData(propType, catalog, opts, newVisited, currentDepth + 1);
@@ -0,0 +1,34 @@
1
+ # TypeScript WSDL Client v0.33.0
2
+
3
+ ## Generated Artifact Conformance
4
+
5
+ This release extends the WSDL capability conformance framework into generated test suites and generated app scaffolds for the current supported and partial capability rows.
6
+
7
+ ## What This Improves
8
+
9
+ Maintainers can now verify that documented WSDL support survives the full generated artifact path: compile, client, OpenAPI, gateway runtime, generated tests, and generated app scaffolds. This makes the support matrix more useful as a 1.0 readiness gate because it proves consumer-facing generated files work together instead of only proving internal compiler behavior.
10
+
11
+ Generated app scaffolds now emit a `tsconfig.json` root that covers sibling client and gateway folders. Generated test mocks also produce valid primitive values for request properties backed by simple type aliases, including `xs:union` aliases.
12
+
13
+ ## Highlights
14
+
15
+ - Adds generated-test conformance evidence for supported and partial WSDL capability rows.
16
+ - Adds generated app scaffold conformance evidence for supported and partial WSDL capability rows.
17
+ - Fixes generated app `tsconfig.json` roots for sibling client and gateway artifacts.
18
+ - Fixes generated mock payloads for alias-backed request properties.
19
+ - Updates the roadmap so the next 1.0 slice is validation-gate wiring.
20
+
21
+ ## Upgrade Notes
22
+
23
+ No special upgrade steps.
24
+
25
+ ## Validation
26
+
27
+ - CI passed.
28
+ - NPM package contents were validated.
29
+ - Agent skill artifact was validated and packaged.
30
+ - Release preflight passed against the target tag.
31
+
32
+ ## Notes
33
+
34
+ Release tag: `v0.33.0`.
@@ -0,0 +1,30 @@
1
+ # TypeScript WSDL Client v0.34.0
2
+
3
+ ## Conformance Gate Readiness
4
+
5
+ This release makes WSDL conformance coverage explicit in the release preflight path without adding a duplicate full test run.
6
+
7
+ ## What This Improves
8
+
9
+ Maintainers can now see whether the focused conformance command, broad Vitest discovery, and CI script still line up before a release tag is created. The roadmap also now treats conformance gate wiring as shipped, which moves the 1.0 plan toward resolving remaining explicit deferrals and running release-candidate gates.
10
+
11
+ ## Highlights
12
+
13
+ - Adds a release preflight `conformance-gate` check for `test:conformance`, `npm test`, and `npm run ci` wiring.
14
+ - Documents `npm run test:conformance` as the focused command for WSDL capability rows and fixtures.
15
+ - Updates the 1.0 roadmap so validation-gate wiring is no longer an open decision.
16
+
17
+ ## Upgrade Notes
18
+
19
+ No special upgrade steps.
20
+
21
+ ## Validation
22
+
23
+ - CI passed.
24
+ - NPM package contents were validated.
25
+ - Agent skill artifact was validated and packaged.
26
+ - Release preflight passed against the target tag.
27
+
28
+ ## Notes
29
+
30
+ Release tag: `v0.34.0`.
@@ -8,7 +8,7 @@ See the root [README.md](../../README.md) for project overview and the root [ROA
8
8
 
9
9
  This plan turns the 1.0 roadmap into implementation slices that can be picked up independently. Each slice has its own plan document with scope, testing strategy, acceptance gates, and release implications.
10
10
 
11
- The plan is optimized for preserving quality. The contract and compatibility baselines now exist, choice union mode is shipped, and JSON array streaming is shipped. The remaining readiness work is the capability conformance framework, WSDL coverage evidence, and the final release candidate gate pass.
11
+ The plan is optimized for preserving quality. The contract and compatibility baselines now exist, choice union mode is shipped, JSON array streaming is shipped, and the conformance framework is wired into validation gates. The remaining readiness work is to resolve any explicit conformance deferrals and run the final release candidate gate pass.
12
12
 
13
13
  ## Route Summary
14
14
 
@@ -18,9 +18,9 @@ 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) | phase 3 shipped | Pipeline claims are test-backed |
22
- | WSDL coverage matrix | [WSDL Coverage Matrix](v1.0-wsdl-coverage-matrix.md) | gateway evidence shipped | Feature support is test-backed |
23
- | Release candidate | [Release Candidate Gates](v1.0-release-candidate-gates.md) | remaining | 1.0 release is repeatable |
21
+ | Conformance framework | [Capability Conformance Framework](v1.0-capability-conformance-framework.md) | gate wired | Pipeline claims are test-backed |
22
+ | WSDL coverage matrix | [WSDL Coverage Matrix](v1.0-wsdl-coverage-matrix.md) | gate wired | Feature support is test-backed |
23
+ | Release candidate | [Release Candidate Gates](v1.0-release-candidate-gates.md) | next | 1.0 release is repeatable |
24
24
 
25
25
  ## Execution Order
26
26
 
@@ -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
- The registry, fixture strategy, compile runner, client evidence, OpenAPI evidence, gateway runtime evidence, documentation drift check, and generated support matrix are shipped. The next work is to extend relevant rows into generated-test and app evidence without expanding public APIs.
45
+ The registry, fixture strategy, compile runner, client evidence, OpenAPI evidence, gateway runtime evidence, generated-test evidence, app evidence, documentation drift check, generated support matrix, and validation-gate wiring are shipped. Keep `npm run test:conformance` as the focused local command while broad Vitest discovery covers conformance in `npm test`, `npm run ci`, and release preflight.
46
46
 
47
47
  ### Slice 6: WSDL Coverage Matrix
48
48
 
49
- The first WSDL matrix rows now exist as conformance registry entries with compile, client, OpenAPI, gateway runtime, and documentation evidence. The next work is to prove relevant rows through generated-test and app artifacts where those stages apply.
49
+ The first WSDL matrix rows now exist as conformance registry entries with compile, client, OpenAPI, gateway runtime, generated-test, app, documentation, and release-gate evidence. The next work is to keep those rows current while release candidate gates are prepared.
50
50
 
51
51
  ### Slice 7: Release Candidate Gates
52
52
 
@@ -54,8 +54,6 @@ Run the release candidate gates after feature work and documentation have conver
54
54
 
55
55
  ## Remaining Before 1.0
56
56
 
57
- - Extend the capability registry beyond gateway runtime evidence into generated-test and app evidence.
58
- - Add generated-test and app checks for supported and partial WSDL rows where those surfaces are part of the contract.
59
57
  - Turn remaining unsupported, diagnostic, or partial matrix rows into diagnostics, documentation, or scoped fixes.
60
58
  - Confirm `docs/supported-patterns.md` matches the matrix.
61
59
  - Run the release-candidate gates.
@@ -85,7 +83,8 @@ Run the release candidate gates after feature work and documentation have conver
85
83
 
86
84
  ### Coverage Gate
87
85
 
88
- - A capability conformance matrix runs under test automation.
86
+ - A capability conformance matrix runs under broad Vitest test automation.
87
+ - Release preflight verifies the focused conformance command and CI wiring.
89
88
  - Each matrix entry has a fixture, status, and stage expectations.
90
89
  - Unsupported features fail loudly or are documented as deliberately unsupported.
91
90
 
@@ -1,10 +1,10 @@
1
1
  # Version 1.0 Capability Conformance Framework
2
2
 
3
- Status: Phase 3 shipped; generated-test and app evidence remaining before `1.0.0`.
3
+ Status: Phase 5 shipped; release-candidate gate pass 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. Phase 3 added generated gateway type-checking and Fastify runtime evidence for current supported and partial rows.
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. Phase 3 added generated gateway type-checking and Fastify runtime evidence for current supported and partial rows. Phase 4 added generated-test and app scaffold evidence for those rows. Phase 5 wired conformance into validation gates through broad Vitest discovery and release preflight script verification.
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
 
@@ -528,23 +528,32 @@ Run `npm run smoke:pipeline` as a final end-to-end guard if gateway generator be
528
528
 
529
529
  ## Phase 4: Generated Test And App Evidence
530
530
 
531
+ Phase 4 is implemented for the current supported and partial WSDL rows. Keep this section as the baseline for future generated-test and app conformance rows.
532
+
531
533
  Extend relevant rows to generate `--test-dir` output and app scaffolds. Run generated tests only for rows where generated-test behavior is part of the capability contract.
532
534
 
535
+ Generated-test and app evidence must consume generated artifacts as a consumer would. Route paths, operation IDs, schemas, and app wiring must come from generated OpenAPI, gateway, test, and app files. Do not add conformance-only route overrides or fixture-specific route maps to make generated tests pass.
536
+
533
537
  Acceptance criteria:
534
538
 
535
539
  - Generated tests pass for supported rows that request them.
536
540
  - Generated validation tests include capability-specific invalid cases.
537
541
  - App scaffolds type-check when the capability affects app wiring.
538
542
  - Runtime dependency assumptions stay aligned with `package.json`.
543
+ - Generated app `tsconfig.json` covers sibling client and gateway artifacts when those folders are outside the app directory.
544
+ - Diagnostic and unsupported rows remain compile-terminal.
539
545
 
540
546
  ## Phase 5: Documentation And Release Gates
541
547
 
542
- Wire the conformance framework into docs validation, CI, or release preflight once runtime cost is acceptable. Keep a focused command for maintainers who want only conformance checks.
548
+ Phase 5 is implemented. Keep this section as the baseline for conformance gate ownership.
549
+
550
+ `npm run test:conformance` remains the focused maintainer command for WSDL capability rows. `npm test` and `npm run ci` cover conformance through broad Vitest discovery, so release preflight does not run a duplicate full conformance pass. Release preflight instead runs a cheap `conformance-gate` script check that fails if the focused command disappears, if `npm test` becomes scoped away from `test/conformance`, or if `npm run ci` stops running the broad test command.
543
551
 
544
552
  Acceptance criteria:
545
553
 
546
554
  - `docs/supported-patterns.md` cannot drift from the registry.
547
- - CI or release preflight runs the selected conformance subset.
555
+ - CI runs conformance through broad Vitest discovery.
556
+ - Release preflight verifies conformance command and CI wiring.
548
557
  - Full conformance can run locally before `1.0.0`.
549
558
  - Release notes can cite capability IDs for behavior changes.
550
559
 
@@ -561,7 +570,6 @@ Acceptance criteria:
561
570
 
562
571
  ## Open Decisions
563
572
 
564
- - Decide how much generated output type-checking is acceptable in CI runtime.
565
573
  - Decide which inspector output format becomes public before `1.0.0`.
566
574
  - Decide whether docs should remain manually maintained or eventually generated from the registry.
567
575
 
@@ -33,7 +33,11 @@ Run `npm run docs:validate`. Confirm README, CLI reference, API reference, confi
33
33
 
34
34
  ### Test Gate
35
35
 
36
- Run `npm test`. Confirm unit, snapshot, and integration suites cover the 1.0 contract.
36
+ Run `npm test`. Confirm unit, snapshot, integration, and conformance suites cover the 1.0 contract.
37
+
38
+ ### Conformance Gate
39
+
40
+ Run `npm run test:conformance` when changing capability rows or fixture-backed behavior. Confirm `npm test` and `npm run ci` keep broad Vitest discovery so `test/conformance` stays covered, and confirm release preflight reports a passing `conformance-gate` script check.
37
41
 
38
42
  ### Smoke Gate
39
43
 
@@ -53,7 +57,7 @@ Run the supported Node.js floor and the newest active Node.js line in CI before
53
57
 
54
58
  ### Release Gate
55
59
 
56
- Run `npm run release:preflight -- v1.0.0` during release preparation. Confirm release notes, changelog, dependency pins, generated examples, CI, and skill packaging pass.
60
+ Run `npm run release:preflight -- v1.0.0` during release preparation. Confirm release notes, changelog, dependency pins, conformance wiring, generated examples, CI, and skill packaging pass.
57
61
 
58
62
  ## Documentation Checklist
59
63
 
@@ -62,6 +66,7 @@ Run `npm run release:preflight -- v1.0.0` during release preparation. Confirm re
62
66
  - API reference lists implemented options only.
63
67
  - Configuration docs describe both stream formats.
64
68
  - Supported patterns reflects the WSDL matrix.
69
+ - The conformance gate documents `npm run test:conformance`, broad Vitest discovery, and release preflight wiring.
65
70
  - Production docs describe terminal-error behavior for both stream formats.
66
71
  - Migration docs explain any behavior changes since `0.x`.
67
72
 
@@ -1,10 +1,10 @@
1
1
  # Version 1.0 WSDL Coverage Matrix
2
2
 
3
- Status: gateway runtime evidence shipped; generated-test and app evidence remaining before `1.0.0`.
3
+ Status: generated-test, 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, and gateway runtime evidence now prove the current supported and partial rows, and terminal rows have executable diagnostics. The remaining work is to prove generated-test and app artifacts where those surfaces are part of the contract.
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.
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
 
@@ -30,8 +30,6 @@ Each matrix row should have a minimal fixture, an expected support status, and a
30
30
 
31
31
  ## Remaining Scope
32
32
 
33
- - Add stage expectations for generated tests and app scaffolds where those surfaces are part of a capability contract.
34
- - Add generated request and response fixtures for generated-test coverage where HTTP behavior is part of a capability contract.
35
33
  - Keep diagnostics executable as more unsupported rows are added.
36
34
  - Keep fixture metadata useful for a future public conformance fixture corpus.
37
35
  - Preserve the weather smoke fixture as the canonical end-to-end happy path.
@@ -154,14 +152,14 @@ Partial rows must prove only the documented subset. `xs:anyAttribute` should not
154
152
 
155
153
  ### Next Slice
156
154
 
157
- The next slice is Phase 4 generated-test and app evidence. Implement it before adding more feature rows unless a production bug requires a focused diagnostic or support decision.
155
+ The next slice is release-candidate preparation. Run it before adding more feature rows unless a production bug requires a focused diagnostic or support decision.
158
156
 
159
157
  Work items:
160
158
 
161
- - Add optional generated-test expectations for rows where `--test-dir` behavior is part of the contract.
162
- - Generate app scaffolds for rows where app wiring is affected by the capability.
163
- - Type-check generated app artifacts when an app expectation is present.
164
- - Run generated tests only for rows that request generated-test evidence.
159
+ - Keep `npm run test:conformance` as the focused command for maintainers who want only conformance checks.
160
+ - Keep `npm test` and `npm run ci` broad enough for Vitest to discover `test/conformance`.
161
+ - Keep release preflight's `conformance-gate` script check aligned with the package scripts.
162
+ - Confirm release preflight runtime remains acceptable.
165
163
  - Keep diagnostic and unsupported rows stopped at compile.
166
164
  - Update public docs only when a row status or public contract changes.
167
165
 
package/docs/testing.md CHANGED
@@ -21,6 +21,7 @@ npm test # All Vitest tests
21
21
  npm run test:unit # Unit tests only
22
22
  npm run test:snap # Snapshot tests only
23
23
  npm run test:integration # Integration tests only
24
+ npm run test:conformance # WSDL capability conformance tests only
24
25
  npm run test:watch # Watch mode for development
25
26
  ```
26
27
 
@@ -169,6 +170,16 @@ import { pathToFileURL } from "node:url";
169
170
  const pluginModule = await import(pathToFileURL(join(outDir, "gateway", "plugin.ts")).href);
170
171
  ```
171
172
 
173
+ ## Conformance Tests
174
+
175
+ Conformance tests live under `test/conformance/` and prove WSDL capability claims through committed fixtures, registry rows, generated artifacts, diagnostics, and documentation alignment. Use the focused command when changing capability rows or fixture-backed behavior:
176
+
177
+ ```bash
178
+ npm run test:conformance
179
+ ```
180
+
181
+ `npm test` includes the conformance suite through normal Vitest discovery. `npm run ci` and release preflight cover conformance through that broad test command, while release preflight also checks that the focused command and broad CI discovery remain wired.
182
+
172
183
  ## Known Issues
173
184
 
174
185
  ### ArrayOf* Schema-Type Mismatch (Resolved)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@techspokes/typescript-wsdl-client",
3
- "version": "0.32.0",
3
+ "version": "0.34.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",