@techspokes/typescript-wsdl-client 1.1.3 → 1.1.5

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.
Files changed (360) hide show
  1. package/README.md +50 -1
  2. package/dist/app/generateApp.d.ts.map +1 -1
  3. package/dist/app/generateApp.js +8 -6
  4. package/dist/cli.js +49 -5
  5. package/dist/client/checkedDirectRuntime.d.ts +59 -0
  6. package/dist/client/checkedDirectRuntime.d.ts.map +1 -0
  7. package/dist/client/checkedDirectRuntime.js +23 -0
  8. package/dist/client/directClientRuntime.d.ts +49 -0
  9. package/dist/client/directClientRuntime.d.ts.map +1 -0
  10. package/dist/client/directClientRuntime.js +112 -0
  11. package/dist/client/directClientVersion.d.ts +4 -0
  12. package/dist/client/directClientVersion.d.ts.map +1 -0
  13. package/dist/client/directClientVersion.js +3 -0
  14. package/dist/client/generateClient.d.ts.map +1 -1
  15. package/dist/client/generateClient.js +22 -9
  16. package/dist/client/generateDirectClient.d.ts +14 -0
  17. package/dist/client/generateDirectClient.d.ts.map +1 -0
  18. package/dist/client/generateDirectClient.js +136 -0
  19. package/dist/compiler/buildCanonicalGraph.d.ts +7 -0
  20. package/dist/compiler/buildCanonicalGraph.d.ts.map +1 -0
  21. package/dist/compiler/buildCanonicalGraph.js +381 -0
  22. package/dist/compiler/canonicalGraph.d.ts +198 -0
  23. package/dist/compiler/canonicalGraph.d.ts.map +1 -0
  24. package/dist/compiler/canonicalGraph.js +37 -0
  25. package/dist/compiler/catalogErrors.d.ts +18 -0
  26. package/dist/compiler/catalogErrors.d.ts.map +1 -0
  27. package/dist/compiler/catalogErrors.js +86 -0
  28. package/dist/compiler/catalogProvenance.d.ts +15 -0
  29. package/dist/compiler/catalogProvenance.d.ts.map +1 -0
  30. package/dist/compiler/catalogProvenance.js +229 -0
  31. package/dist/compiler/checkedAssessment.d.ts +91 -0
  32. package/dist/compiler/checkedAssessment.d.ts.map +1 -0
  33. package/dist/compiler/checkedAssessment.js +300 -0
  34. package/dist/compiler/checkedSourcePreparation.d.ts +35 -0
  35. package/dist/compiler/checkedSourcePreparation.d.ts.map +1 -0
  36. package/dist/compiler/checkedSourcePreparation.js +131 -0
  37. package/dist/compiler/complexTypeContent.d.ts +59 -0
  38. package/dist/compiler/complexTypeContent.d.ts.map +1 -0
  39. package/dist/compiler/complexTypeContent.js +558 -0
  40. package/dist/compiler/composeCanonicalGraph.d.ts +69 -0
  41. package/dist/compiler/composeCanonicalGraph.d.ts.map +1 -0
  42. package/dist/compiler/composeCanonicalGraph.js +252 -0
  43. package/dist/compiler/dataOwnership.d.ts +22 -0
  44. package/dist/compiler/dataOwnership.d.ts.map +1 -0
  45. package/dist/compiler/dataOwnership.js +157 -0
  46. package/dist/compiler/datatypeValues.d.ts +47 -0
  47. package/dist/compiler/datatypeValues.d.ts.map +1 -0
  48. package/dist/compiler/datatypeValues.js +275 -0
  49. package/dist/compiler/directCodec.d.ts +59 -0
  50. package/dist/compiler/directCodec.d.ts.map +1 -0
  51. package/dist/compiler/directCodec.js +192 -0
  52. package/dist/compiler/directExecutionPolicy.d.ts +10 -0
  53. package/dist/compiler/directExecutionPolicy.d.ts.map +1 -0
  54. package/dist/compiler/directExecutionPolicy.js +17 -0
  55. package/dist/compiler/directOperation.d.ts +72 -0
  56. package/dist/compiler/directOperation.d.ts.map +1 -0
  57. package/dist/compiler/directOperation.js +282 -0
  58. package/dist/compiler/directSoap.d.ts +42 -0
  59. package/dist/compiler/directSoap.d.ts.map +1 -0
  60. package/dist/compiler/directSoap.js +298 -0
  61. package/dist/compiler/directSoapSource.d.ts +15 -0
  62. package/dist/compiler/directSoapSource.d.ts.map +1 -0
  63. package/dist/compiler/directSoapSource.js +86 -0
  64. package/dist/compiler/directSourceCapsule.d.ts +97 -0
  65. package/dist/compiler/directSourceCapsule.d.ts.map +1 -0
  66. package/dist/compiler/directSourceCapsule.js +305 -0
  67. package/dist/compiler/directStructure.d.ts +51 -0
  68. package/dist/compiler/directStructure.d.ts.map +1 -0
  69. package/dist/compiler/directStructure.js +252 -0
  70. package/dist/compiler/directStructurePlan.d.ts +16 -0
  71. package/dist/compiler/directStructurePlan.d.ts.map +1 -0
  72. package/dist/compiler/directStructurePlan.js +58 -0
  73. package/dist/compiler/directValues.d.ts +69 -0
  74. package/dist/compiler/directValues.d.ts.map +1 -0
  75. package/dist/compiler/directValues.js +282 -0
  76. package/dist/compiler/finiteRe01Verification.d.ts +140 -0
  77. package/dist/compiler/finiteRe01Verification.d.ts.map +1 -0
  78. package/dist/compiler/finiteRe01Verification.js +830 -0
  79. package/dist/compiler/graphTraversal.d.ts +11 -0
  80. package/dist/compiler/graphTraversal.d.ts.map +1 -0
  81. package/dist/compiler/graphTraversal.js +37 -0
  82. package/dist/compiler/hypotheticalScopedIdentity.d.ts +23 -0
  83. package/dist/compiler/hypotheticalScopedIdentity.d.ts.map +1 -0
  84. package/dist/compiler/hypotheticalScopedIdentity.js +81 -0
  85. package/dist/compiler/occurrenceAnalysis.d.ts +65 -0
  86. package/dist/compiler/occurrenceAnalysis.d.ts.map +1 -0
  87. package/dist/compiler/occurrenceAnalysis.js +300 -0
  88. package/dist/compiler/originalSourceMembership.d.ts +6 -0
  89. package/dist/compiler/originalSourceMembership.d.ts.map +1 -0
  90. package/dist/compiler/originalSourceMembership.js +31 -0
  91. package/dist/compiler/particleAttribution.d.ts +17 -0
  92. package/dist/compiler/particleAttribution.d.ts.map +1 -0
  93. package/dist/compiler/particleAttribution.js +474 -0
  94. package/dist/compiler/particleDeclarationConsistency.d.ts +24 -0
  95. package/dist/compiler/particleDeclarationConsistency.d.ts.map +1 -0
  96. package/dist/compiler/particleDeclarationConsistency.js +197 -0
  97. package/dist/compiler/particleExtension.d.ts +22 -0
  98. package/dist/compiler/particleExtension.d.ts.map +1 -0
  99. package/dist/compiler/particleExtension.js +119 -0
  100. package/dist/compiler/particleLocalAssessment.d.ts +20 -0
  101. package/dist/compiler/particleLocalAssessment.d.ts.map +1 -0
  102. package/dist/compiler/particleLocalAssessment.js +92 -0
  103. package/dist/compiler/particleRestriction.d.ts +24 -0
  104. package/dist/compiler/particleRestriction.d.ts.map +1 -0
  105. package/dist/compiler/particleRestriction.js +489 -0
  106. package/dist/compiler/particleSemanticView.d.ts +50 -0
  107. package/dist/compiler/particleSemanticView.d.ts.map +1 -0
  108. package/dist/compiler/particleSemanticView.js +297 -0
  109. package/dist/compiler/particleWildcardRelation.d.ts +88 -0
  110. package/dist/compiler/particleWildcardRelation.d.ts.map +1 -0
  111. package/dist/compiler/particleWildcardRelation.js +143 -0
  112. package/dist/compiler/re01CandidateCorrespondence.d.ts +64 -0
  113. package/dist/compiler/re01CandidateCorrespondence.d.ts.map +1 -0
  114. package/dist/compiler/re01CandidateCorrespondence.js +572 -0
  115. package/dist/compiler/re01TypeProperties.d.ts +71 -0
  116. package/dist/compiler/re01TypeProperties.d.ts.map +1 -0
  117. package/dist/compiler/re01TypeProperties.js +120 -0
  118. package/dist/compiler/re01TypePropertyValidation.d.ts +23 -0
  119. package/dist/compiler/re01TypePropertyValidation.d.ts.map +1 -0
  120. package/dist/compiler/re01TypePropertyValidation.js +161 -0
  121. package/dist/compiler/resolveCanonicalGraph.d.ts +38 -0
  122. package/dist/compiler/resolveCanonicalGraph.d.ts.map +1 -0
  123. package/dist/compiler/resolveCanonicalGraph.js +170 -0
  124. package/dist/compiler/scalarSchemaAssessment.d.ts +425 -0
  125. package/dist/compiler/scalarSchemaAssessment.d.ts.map +1 -0
  126. package/dist/compiler/scalarSchemaAssessment.js +5198 -0
  127. package/dist/compiler/schemaAttributeGroupProperties.d.ts +17 -0
  128. package/dist/compiler/schemaAttributeGroupProperties.d.ts.map +1 -0
  129. package/dist/compiler/schemaAttributeGroupProperties.js +53 -0
  130. package/dist/compiler/schemaAttributeProperties.d.ts +10 -0
  131. package/dist/compiler/schemaAttributeProperties.d.ts.map +1 -0
  132. package/dist/compiler/schemaAttributeProperties.js +11 -0
  133. package/dist/compiler/schemaAttributeUses.d.ts +90 -0
  134. package/dist/compiler/schemaAttributeUses.d.ts.map +1 -0
  135. package/dist/compiler/schemaAttributeUses.js +725 -0
  136. package/dist/compiler/schemaBinaryWordReconstruction.d.ts +10 -0
  137. package/dist/compiler/schemaBinaryWordReconstruction.d.ts.map +1 -0
  138. package/dist/compiler/schemaBinaryWordReconstruction.js +33 -0
  139. package/dist/compiler/schemaBuiltinFacets.d.ts +14 -0
  140. package/dist/compiler/schemaBuiltinFacets.d.ts.map +1 -0
  141. package/dist/compiler/schemaBuiltinFacets.js +51 -0
  142. package/dist/compiler/schemaCalendarImages.d.ts +8 -0
  143. package/dist/compiler/schemaCalendarImages.d.ts.map +1 -0
  144. package/dist/compiler/schemaCalendarImages.js +204 -0
  145. package/dist/compiler/schemaCalendarLanguage.d.ts +11 -0
  146. package/dist/compiler/schemaCalendarLanguage.d.ts.map +1 -0
  147. package/dist/compiler/schemaCalendarLanguage.js +227 -0
  148. package/dist/compiler/schemaComponentEquality.d.ts +28 -0
  149. package/dist/compiler/schemaComponentEquality.d.ts.map +1 -0
  150. package/dist/compiler/schemaComponentEquality.js +446 -0
  151. package/dist/compiler/schemaConstructionAssessment.d.ts +46 -0
  152. package/dist/compiler/schemaConstructionAssessment.d.ts.map +1 -0
  153. package/dist/compiler/schemaConstructionAssessment.js +663 -0
  154. package/dist/compiler/schemaDatatypeValues.d.ts +4 -0
  155. package/dist/compiler/schemaDatatypeValues.d.ts.map +1 -0
  156. package/dist/compiler/schemaDatatypeValues.js +2 -0
  157. package/dist/compiler/schemaDecimalLanguage.d.ts +7 -0
  158. package/dist/compiler/schemaDecimalLanguage.d.ts.map +1 -0
  159. package/dist/compiler/schemaDecimalLanguage.js +102 -0
  160. package/dist/compiler/schemaDeclarationPrimitives.d.ts +34 -0
  161. package/dist/compiler/schemaDeclarationPrimitives.d.ts.map +1 -0
  162. package/dist/compiler/schemaDeclarationPrimitives.js +194 -0
  163. package/dist/compiler/schemaDocumentSyntax.d.ts +55 -0
  164. package/dist/compiler/schemaDocumentSyntax.d.ts.map +1 -0
  165. package/dist/compiler/schemaDocumentSyntax.js +294 -0
  166. package/dist/compiler/schemaDurationLanguage.d.ts +11 -0
  167. package/dist/compiler/schemaDurationLanguage.d.ts.map +1 -0
  168. package/dist/compiler/schemaDurationLanguage.js +170 -0
  169. package/dist/compiler/schemaElementProperties.d.ts +16 -0
  170. package/dist/compiler/schemaElementProperties.d.ts.map +1 -0
  171. package/dist/compiler/schemaElementProperties.js +23 -0
  172. package/dist/compiler/schemaEndpointWordCapacity.d.ts +36 -0
  173. package/dist/compiler/schemaEndpointWordCapacity.d.ts.map +1 -0
  174. package/dist/compiler/schemaEndpointWordCapacity.js +39 -0
  175. package/dist/compiler/schemaExactCalendar.d.ts +73 -0
  176. package/dist/compiler/schemaExactCalendar.d.ts.map +1 -0
  177. package/dist/compiler/schemaExactCalendar.js +264 -0
  178. package/dist/compiler/schemaFacetAnnotation.d.ts +32 -0
  179. package/dist/compiler/schemaFacetAnnotation.d.ts.map +1 -0
  180. package/dist/compiler/schemaFacetAnnotation.js +199 -0
  181. package/dist/compiler/schemaGeneratedScalarShape.d.ts +35 -0
  182. package/dist/compiler/schemaGeneratedScalarShape.d.ts.map +1 -0
  183. package/dist/compiler/schemaGeneratedScalarShape.js +176 -0
  184. package/dist/compiler/schemaIdentityConstraints.d.ts +73 -0
  185. package/dist/compiler/schemaIdentityConstraints.d.ts.map +1 -0
  186. package/dist/compiler/schemaIdentityConstraints.js +362 -0
  187. package/dist/compiler/schemaIeeeLanguage.d.ts +43 -0
  188. package/dist/compiler/schemaIeeeLanguage.d.ts.map +1 -0
  189. package/dist/compiler/schemaIeeeLanguage.js +759 -0
  190. package/dist/compiler/schemaIntegerImages.d.ts +11 -0
  191. package/dist/compiler/schemaIntegerImages.d.ts.map +1 -0
  192. package/dist/compiler/schemaIntegerImages.js +113 -0
  193. package/dist/compiler/schemaLexicalPredicates.d.ts +29 -0
  194. package/dist/compiler/schemaLexicalPredicates.d.ts.map +1 -0
  195. package/dist/compiler/schemaLexicalPredicates.js +63 -0
  196. package/dist/compiler/schemaNotationProperties.d.ts +32 -0
  197. package/dist/compiler/schemaNotationProperties.d.ts.map +1 -0
  198. package/dist/compiler/schemaNotationProperties.js +84 -0
  199. package/dist/compiler/schemaNumericImageConditions.d.ts +24 -0
  200. package/dist/compiler/schemaNumericImageConditions.d.ts.map +1 -0
  201. package/dist/compiler/schemaNumericImageConditions.js +66 -0
  202. package/dist/compiler/schemaParticleWildcardProperties.d.ts +20 -0
  203. package/dist/compiler/schemaParticleWildcardProperties.d.ts.map +1 -0
  204. package/dist/compiler/schemaParticleWildcardProperties.js +43 -0
  205. package/dist/compiler/schemaPattern.d.ts +1062 -0
  206. package/dist/compiler/schemaPattern.d.ts.map +1 -0
  207. package/dist/compiler/schemaPattern.js +581 -0
  208. package/dist/compiler/schemaRegularLanguage.d.ts +67 -0
  209. package/dist/compiler/schemaRegularLanguage.d.ts.map +1 -0
  210. package/dist/compiler/schemaRegularLanguage.js +1166 -0
  211. package/dist/compiler/schemaScalarContext.d.ts +81 -0
  212. package/dist/compiler/schemaScalarContext.d.ts.map +1 -0
  213. package/dist/compiler/schemaScalarContext.js +78 -0
  214. package/dist/compiler/schemaScalarKernel.d.ts +182 -0
  215. package/dist/compiler/schemaScalarKernel.d.ts.map +1 -0
  216. package/dist/compiler/schemaScalarKernel.js +391 -0
  217. package/dist/compiler/schemaScalarWitnesses.d.ts +6 -0
  218. package/dist/compiler/schemaScalarWitnesses.d.ts.map +1 -0
  219. package/dist/compiler/schemaScalarWitnesses.js +118 -0
  220. package/dist/compiler/schemaSimpleTypeProperties.d.ts +95 -0
  221. package/dist/compiler/schemaSimpleTypeProperties.d.ts.map +1 -0
  222. package/dist/compiler/schemaSimpleTypeProperties.js +103 -0
  223. package/dist/compiler/schemaSourceGrammar.d.ts +27 -0
  224. package/dist/compiler/schemaSourceGrammar.d.ts.map +1 -0
  225. package/dist/compiler/schemaSourceGrammar.js +290 -0
  226. package/dist/compiler/schemaSourceLexical.d.ts +4 -0
  227. package/dist/compiler/schemaSourceLexical.d.ts.map +1 -0
  228. package/dist/compiler/schemaSourceLexical.js +12 -0
  229. package/dist/compiler/schemaSourceValues.d.ts +51 -0
  230. package/dist/compiler/schemaSourceValues.d.ts.map +1 -0
  231. package/dist/compiler/schemaSourceValues.js +225 -0
  232. package/dist/compiler/schemaSourceWildcards.d.ts +28 -0
  233. package/dist/compiler/schemaSourceWildcards.d.ts.map +1 -0
  234. package/dist/compiler/schemaSourceWildcards.js +247 -0
  235. package/dist/compiler/schemaSymbolicSequences.d.ts +16 -0
  236. package/dist/compiler/schemaSymbolicSequences.d.ts.map +1 -0
  237. package/dist/compiler/schemaSymbolicSequences.js +99 -0
  238. package/dist/compiler/schemaSymbolicValueSets.d.ts +32 -0
  239. package/dist/compiler/schemaSymbolicValueSets.d.ts.map +1 -0
  240. package/dist/compiler/schemaSymbolicValueSets.js +149 -0
  241. package/dist/compiler/schemaSyntaxAssessment.d.ts +25 -0
  242. package/dist/compiler/schemaSyntaxAssessment.d.ts.map +1 -0
  243. package/dist/compiler/schemaSyntaxAssessment.js +361 -0
  244. package/dist/compiler/schemaTemporalAliases.d.ts +6 -0
  245. package/dist/compiler/schemaTemporalAliases.d.ts.map +1 -0
  246. package/dist/compiler/schemaTemporalAliases.js +195 -0
  247. package/dist/compiler/schemaTokenImages.d.ts +9 -0
  248. package/dist/compiler/schemaTokenImages.d.ts.map +1 -0
  249. package/dist/compiler/schemaTokenImages.js +142 -0
  250. package/dist/compiler/schemaTypeIdentity.d.ts +39 -0
  251. package/dist/compiler/schemaTypeIdentity.d.ts.map +1 -0
  252. package/dist/compiler/schemaTypeIdentity.js +78 -0
  253. package/dist/compiler/schemaTypeRelations.d.ts +38 -0
  254. package/dist/compiler/schemaTypeRelations.d.ts.map +1 -0
  255. package/dist/compiler/schemaTypeRelations.js +576 -0
  256. package/dist/compiler/schemaUri.d.ts +13 -0
  257. package/dist/compiler/schemaUri.d.ts.map +1 -0
  258. package/dist/compiler/schemaUri.js +103 -0
  259. package/dist/compiler/schemaValueContext.d.ts +26 -0
  260. package/dist/compiler/schemaValueContext.d.ts.map +1 -0
  261. package/dist/compiler/schemaValueContext.js +1 -0
  262. package/dist/compiler/schemaValueImages.d.ts +10 -0
  263. package/dist/compiler/schemaValueImages.d.ts.map +1 -0
  264. package/dist/compiler/schemaValueImages.js +142 -0
  265. package/dist/compiler/schemaValueSequences.d.ts +15 -0
  266. package/dist/compiler/schemaValueSequences.d.ts.map +1 -0
  267. package/dist/compiler/schemaValueSequences.js +19 -0
  268. package/dist/compiler/semanticBudget.d.ts +50 -0
  269. package/dist/compiler/semanticBudget.d.ts.map +1 -0
  270. package/dist/compiler/semanticBudget.js +178 -0
  271. package/dist/compiler/semanticCatalog.d.ts +122 -0
  272. package/dist/compiler/semanticCatalog.d.ts.map +1 -0
  273. package/dist/compiler/semanticCatalog.js +160 -0
  274. package/dist/compiler/semanticContext.d.ts +172 -0
  275. package/dist/compiler/semanticContext.d.ts.map +1 -0
  276. package/dist/compiler/semanticContext.js +1168 -0
  277. package/dist/compiler/semanticTypeDependencies.d.ts +8 -0
  278. package/dist/compiler/semanticTypeDependencies.d.ts.map +1 -0
  279. package/dist/compiler/semanticTypeDependencies.js +64 -0
  280. package/dist/compiler/semanticTypeReference.d.ts +24 -0
  281. package/dist/compiler/semanticTypeReference.d.ts.map +1 -0
  282. package/dist/compiler/semanticTypeReference.js +36 -0
  283. package/dist/compiler/shapeResolver.d.ts +1 -0
  284. package/dist/compiler/shapeResolver.d.ts.map +1 -1
  285. package/dist/compiler/shapeResolver.js +7 -9
  286. package/dist/compiler/sourceSchemaBinding.d.ts +26 -0
  287. package/dist/compiler/sourceSchemaBinding.d.ts.map +1 -0
  288. package/dist/compiler/sourceSchemaBinding.js +39 -0
  289. package/dist/compiler/structuralCompanions.d.ts +16 -0
  290. package/dist/compiler/structuralCompanions.d.ts.map +1 -0
  291. package/dist/compiler/structuralCompanions.js +232 -0
  292. package/dist/compiler/validateSemanticGraph.d.ts +5 -0
  293. package/dist/compiler/validateSemanticGraph.d.ts.map +1 -0
  294. package/dist/compiler/validateSemanticGraph.js +376 -0
  295. package/dist/compiler/wildcardAlgebra.d.ts +26 -0
  296. package/dist/compiler/wildcardAlgebra.d.ts.map +1 -0
  297. package/dist/compiler/wildcardAlgebra.js +155 -0
  298. package/dist/gateway/generateGateway.d.ts.map +1 -1
  299. package/dist/gateway/generateGateway.js +2 -2
  300. package/dist/index.d.ts +3 -0
  301. package/dist/index.d.ts.map +1 -1
  302. package/dist/index.js +2 -0
  303. package/dist/loader/orderedSyntax.d.ts +77 -0
  304. package/dist/loader/orderedSyntax.d.ts.map +1 -0
  305. package/dist/loader/orderedSyntax.js +202 -0
  306. package/dist/loader/resolutionDepth.d.ts +7 -0
  307. package/dist/loader/resolutionDepth.d.ts.map +1 -0
  308. package/dist/loader/resolutionDepth.js +65 -0
  309. package/dist/loader/schemaInput.d.ts +53 -0
  310. package/dist/loader/schemaInput.d.ts.map +1 -0
  311. package/dist/loader/schemaInput.js +212 -0
  312. package/dist/loader/schemaResources.d.ts +59 -0
  313. package/dist/loader/schemaResources.d.ts.map +1 -0
  314. package/dist/loader/schemaResources.js +292 -0
  315. package/dist/openapi/generateOpenAPI.d.ts.map +1 -1
  316. package/dist/openapi/generateOpenAPI.js +2 -2
  317. package/dist/test/generateTests.d.ts.map +1 -1
  318. package/dist/test/generateTests.js +2 -2
  319. package/dist/util/xmlWhitespace.d.ts +3 -0
  320. package/dist/util/xmlWhitespace.d.ts.map +1 -0
  321. package/dist/util/xmlWhitespace.js +4 -0
  322. package/docs/README.md +14 -1
  323. package/docs/architecture.md +9 -0
  324. package/docs/cli-reference.md +21 -1
  325. package/docs/content-model-analysis.md +92 -0
  326. package/docs/content-model-baseline.md +121 -0
  327. package/docs/content-model-catalog.md +116 -0
  328. package/docs/content-model-companions.md +90 -0
  329. package/docs/content-model-composition.md +103 -0
  330. package/docs/content-model-decisions.md +79 -0
  331. package/docs/content-model-gateway-feasibility.md +169 -0
  332. package/docs/content-model-graph.md +121 -0
  333. package/docs/content-model-loading.md +163 -0
  334. package/docs/content-model-matching.md +85 -0
  335. package/docs/content-model-readiness.md +144 -0
  336. package/docs/content-model-resolution.md +81 -0
  337. package/docs/content-model-s02-handoff.md +98 -0
  338. package/docs/content-model-s06-au-01.md +425 -0
  339. package/docs/content-model-s06-dt-01.md +386 -0
  340. package/docs/content-model-s06-pw-01.md +350 -0
  341. package/docs/content-model-s06-re-01-resolver-implementation.md +869 -0
  342. package/docs/content-model-s06-re-01-resolver.md +513 -0
  343. package/docs/content-model-s06-re-01-scalar-witnesses.md +1423 -0
  344. package/docs/content-model-s06-re-01-support-reconstruction.md +6337 -0
  345. package/docs/content-model-s06-re-01.md +7477 -0
  346. package/docs/content-model-s06-research-handoff.md +909 -0
  347. package/docs/content-model-shipped-fix.md +83 -0
  348. package/docs/content-model-soap-feasibility.md +165 -0
  349. package/docs/decisions/002-streamable-responses.md +2 -0
  350. package/docs/decisions/003-content-model-contracts.md +280 -0
  351. package/docs/direct-values.md +311 -0
  352. package/docs/generated-code.md +4 -0
  353. package/docs/reference-validation.md +243 -0
  354. package/docs/releases/v1.1.4.md +36 -0
  355. package/docs/releases/v1.1.5.md +38 -0
  356. package/docs/roadmap/README.md +2 -2
  357. package/docs/supported-patterns.md +13 -5
  358. package/package.json +27 -13
  359. package/src/generation/preambles/direct-client/typescript.preamble +3 -0
  360. package/src/runtime/clientStreamMethods.tpl.txt +1 -1
@@ -0,0 +1,83 @@
1
+ # Shipped Occurrence Fix Reconciliation
2
+
3
+ S01 integration record for the delivered contributor correction and remaining content-model limits. See the root [README.md](../README.md) for documentation navigation.
4
+
5
+ ## Delivered behavior and attribution
6
+
7
+ [BCsabaEngine](https://github.com/BCsabaEngine) diagnosed the dropped enclosing-sequence bounds in [#141](https://github.com/TechSpokes/typescript-wsdl-client/issues/141) and supplied [PR #145](https://github.com/TechSpokes/typescript-wsdl-client/pull/145). The landed maintainer integration narrows propagation to uninterrupted, nonzero sequence ancestry; it preserves the earlier choice, all, disabled-content and wildcard boundaries.
8
+
9
+ PR #145 merged on September 25, 2026 at `8385d9dd3cb0f8fdd45ad99df340783a6ea220c3`. Subsequent [PR #210](https://github.com/TechSpokes/typescript-wsdl-client/pull/210) merged at `86f8bc81a4a9a3985595f337281713e107b2527e` and normalized singleton SOAP responses using the corrected catalog metadata.
10
+
11
+ [v1.1.2](releases/v1.1.2.md) published on September 25 and shipped both changes, including the correction from the abandoned v1.1.1 candidate. Its release notes credit the original contribution; later v1.1.3/v1.1.4 publication and maintenance #209/#217 do not change that attribution or delivery version.
12
+
13
+ #141 is closed; [epic #147](https://github.com/TechSpokes/typescript-wsdl-client/issues/147) remains open for the broader content-model architecture. Reproducing the focused shipped correction does not complete that architecture.
14
+
15
+ ## Cause, correction and runtime adaptation
16
+
17
+ The reported pattern places repetition on an enclosing `xs:sequence`, while the old compiler read only the child element's local occurrences. The sanitized [occurrence fixture](../test/conformance/fixtures/xsd/sequences/sequence-occurrence-wrappers.wsdl) preserves the reported `maxOccurs="2"` sequence around `address` and optional finite/unbounded sequence cases.
18
+
19
+ The [compiler traversal](../src/compiler/schemaCompiler.ts) now combines uninterrupted sequence bounds with the child element's bounds. `Addresses.address` receives `1..2` and becomes `AddressType[]`; `OptionalAddresses.address` receives `0..5` and becomes optional. This correction concerns metadata and generated shape, not an exact particle validator.
20
+
21
+ node-soap may decode a singleton repeated element as an object even when the generated contract requires an array. The [metadata generator](../src/client/generateUtils.ts) supplies the optional `RepeatedElements` map, and the [client conversion](../src/client/generateClient.ts) wraps non-null singleton repeated properties before gateway serialization; arrays retain their values and order.
22
+
23
+ The existing regression covers inherited and aliased type metadata, absent/undefined/null values, false/zero/empty-string singleton primitives, unchanged scalar properties, attributes and `$value`. Metadata without `RepeatedElements` retains its legacy behavior. This adaptation preserves response array shape; it does not independently certify XML-instance validity.
24
+
25
+ ## Independent evidence consumed from #166
26
+
27
+ [PR #221](https://github.com/TechSpokes/typescript-wsdl-client/pull/221) delivered the authoritative [manifest](../test/conformance/semantic-baseline.json) and [reference setup/runner documentation](content-model-baseline.md). Its tested head was `94340c89b384831b411edce61c1e9994119b51d6`; merged main is `b86c653dfa0672231ca9b7cbc56d15ef6ae18bae`, with the same Git tree `bf3d8e7caa18a12ac204b061ad0ccc6e8563c6fb`.
28
+
29
+ The production source baseline is `b633cd1561ccb2689134a7289cf48bb097b0d1f1`. Independent qualification uses committed public fixtures on current code, not the private vendor WSDL or an old permanent planning revision. The PR/issue acceptance records identify final checked heads and hosted check runs for this documentation delivery.
30
+
31
+ The `original-sequence` entry accepts one or two addresses and rejects zero or three. Catalog and scoped TypeScript/OpenAPI assertions demonstrate the enclosing-bound correction; the existing [transport test](../test/integration/sequence-occurrence-transport.test.ts) and [shared harness](../test/helpers/occurrenceTransport.mjs) demonstrate downstream behavior against real local SOAP exchanges.
32
+
33
+ That harness sends omitted optional fields and two-item bounded/unbounded requests, checks actual request XML, and returns singleton/two-item complex and primitive responses. Both wrapped and flattened gateways preserve their expected JSON response bytes without the singleton HTTP 500 mismatch; an optional response wrapper is omitted in one case and contains one address in another.
34
+
35
+ The #166 full local CI passed 670 tests in 55 files, all conformance stages, pipeline smoke and installed-package consumer checks covering 73 TypeScript artifacts. The installed consumer invokes the same transport harness outside the checkout. Its independent full reference qualification passed 14 cases and 40 primary instance checks, with the documented secondary disagreement check; the required subset passed six cases and 15 instances.
36
+
37
+ This task consumes that manifest and requalifies it after a bounded test-tool correction. GitHub identified lxml's CVE-2026-41066 update in [PR #222](https://github.com/TechSpokes/typescript-wsdl-client/pull/222); the follow-up pins lxml 6.1.0 with the same libxml2 2.14.6 engine instead of 6.0.2. The adapter already disables external entities explicitly, but handing off a known vulnerable tool pin is unnecessary.
38
+
39
+ Fresh setup, full reference qualification and full local CI verify the corrected tool pin; the corpus and literal semantic expectations remain unchanged. Historical commits and the private production environment are not rerun, and no new SOAP coverage for other manifest boundaries is claimed. Package publication, release tags, metadata bumps and S02 feasibility probes are outside this delivery.
40
+
41
+ ### Historical checks and contributor report
42
+
43
+ PR #145 records focused regressions, conformance and consumer checks around the compiler change. PR #210 records the singleton regressions, real SOAP tests and v1.1.2 release qualification. Those records are historical evidence; they are not substituted for the independently executed #166 checks on current main.
44
+
45
+ On September 26, [BCsabaEngine reported](https://github.com/TechSpokes/typescript-wsdl-client/issues/141#issuecomment-5843833294) that behavior met requirements, all tests passed and generated sources were in order. This is contributor production acceptance, distinct from repository fixture qualification; the private environment and its test suite were not reproduced during S01.
46
+
47
+ ## Remaining owned limitations
48
+
49
+ The [manifest](../test/conformance/semantic-baseline.json) remains the only case baseline. Its stable IDs and dispositions link each gap to CM findings and concrete issue owners; this record supplies integration context without duplicating those expected-output tables.
50
+
51
+ ### Local versus inherited occurrences
52
+
53
+ `original-sequence` and `optional-sequence` preserve the delivered local/inherited array and optionality correction. Finite array lengths remain unchecked. Regenerate from original WSDL/XSD before relying on corrected metadata; an old flattened catalog cannot recover lost enclosing occurrences.
54
+
55
+ `choice-boundary` and `optional-all` record preserved compatibility boundaries, not support for inherited group semantics. `zero-group-unbounded` wrongly retains a required scalar child, while `zero-element-unbounded` preserves catalog zero but emits an optional scalar that can admit prohibited data; CM-01/CM-03 remain with #178/#179/#180 and projection/validation consumers.
56
+
57
+ ### Choices, order and count gaps
58
+
59
+ `simple-choice`, `required-single`, `required-multiple` and `empty-alternative` distinguish single nonempty branches, repeated selections and invisible empty realizations. Current default and union expectations are separate: default output actually requires scalar branch fields in these fixtures, while opt-in union expresses one exclusive scalar selection; neither expresses every repeated or empty case.
60
+
61
+ `sequence-order` loses repeated pair order/correlation in independent arrays, and `finite-count-gap` shows why `2..4` does not enforce only two or four items. CM-02/CM-03/CM-04/CM-05 lead to analysis/matching #178/#180, projection #182, codec #188 and HTTP validation #198.
62
+
63
+ ### Wildcards and schema legality
64
+
65
+ `wildcard-sequence` retains local wildcard metadata but omits enclosing repetition and ordered wildcard values from generated TypeScript/OpenAPI. No real wildcard transport claim was added. The legal optional-all case is distinct from `invalid-all-sequence`, which is rejected at independent schema compilation even though the legacy compiler accepts it; #179 owns legality/support diagnostics.
66
+
67
+ The disabled-element instance is an explicit CM-15 oracle disagreement: libxml2 2.14.6 accepts it, while xmlschema 4.2.0 rejects it. The full runner preserves both outcomes, and #181 owns investigation; primary acceptance does not establish intended validity. S01 closes with this bounded, reproducible disposition rather than repairing the production architecture.
68
+
69
+ ## S02 decisions and starting artifacts
70
+
71
+ [#168](https://github.com/TechSpokes/typescript-wsdl-client/issues/168) starts from the delivered manifest, adapter, current characterization suite, integration record, public support registry and [ADR-002](decisions/002-streamable-responses.md). The [S02 session](https://github.com/TechSpokes/typescript-wsdl-client/issues/149) must resolve the following questions through its reviewed decision register.
72
+
73
+ 1. Which value representations preserve repeated pair order, branch identity and repeated choices reversibly?
74
+ 2. What equivalence is promised when group history or an empty branch is invisible in XML?
75
+ 3. Which XSD/datatype/wildcard constraints are supported, and where are legality, matching and scalar rules enforced?
76
+ 4. How do validation, intentional conversion, normalization and serialization preserve caller data and reject invalid input?
77
+ 5. How do buffered and streaming SOAP paths share semantics while retaining transport/security and completion guarantees?
78
+ 6. Which old-catalog/source/new-bundle/mixed-artifact combinations require regeneration or rejection before activation?
79
+ 7. Which numeric resource limits apply, with what units, failure categories and enforcement owners?
80
+
81
+ The decisions about representations, bundles, transport and compatibility are foundational gates for S03. Draft #168 is the next entry task after S01 closure; #169/#170 remain blocked until its reviewed ADR draft exists. This handoff starts no S02 implementation and activates no new public behavior.
82
+
83
+ The subsequent [S02 handoff](content-model-s02-handoff.md) records ADR-003 and the independently reviewed draft/probe gates. This section preserves S01's historical starting state; current decisions and readiness belong to that later record and #149.
@@ -0,0 +1,165 @@
1
+ # Content Model SOAP Adapter Feasibility
2
+
3
+ Executed local SOAP evidence for S02, #169, and the adapter consumers #190/#192/#193. See the root [README](../README.md).
4
+
5
+ ## P3.5 original-byte qualification
6
+
7
+ The historical buffered `response` event described below exposes decoded text, not original HTTP entity bytes. Its event ordering and namespace-content observations remain useful, but it supplies no original encoding, BOM or byte-digest provenance. P3.5 supersedes that byte-provenance inference with an executed request-local hook in the locked `soap` 1.13.3 HTTP client.
8
+
9
+ The [seam probe](../test/integration/direct-soap-seams.test.ts) bootstraps the original Forecast WSDL text with its original source URI, explicitly selects `ForecastService.ForecastPort.GetForecast`, supplies one literal `_xml` body and sets SOAPAction in per-call extra headers. It uses the dependency's existing `HttpClient.request` with `responseType: arraybuffer`, `decompress: false`, `maxRedirects: 0` and a response-byte cap. The captured BOM-qualified UTF-16LE response equals independently supplied server bytes; a decoded UTF-8 reconstruction would fail this assertion. The production adapter separately validates fresh values and its final envelope before dispatch.
10
+
11
+ The [internal adapter](../src/compiler/directSoap.ts) wraps only the existing dependency callback. A private completion error without response data prevents node-soap's name-keyed parser, including its error-response parser, from running. The normal dependency HTTP stack still owns dispatch and bounded native buffering; no replacement HTTP or SOAP stack is introduced. Captured bytes reach the existing ordered parser before any text conversion.
12
+
13
+ ### Source authority and exact dispatch
14
+
15
+ The semantic source loader privately retains its original policy-authorized resource bytes by native `SchemaInput` identity. The adapter obtains a precharged owned copy from that snapshot through [the source bridge](../src/loader/schemaInput.ts), never through a digest, caller-supplied report, regenerated WSDL or source refetch. Tests delete a renamed original WSDL after operation selection and still complete the actual exchange.
16
+
17
+ This first bootstrap accepts one original UTF-8 WSDL resource, matching the current dated direct schema grammar's absence of include/import. Resource graphs, import/include/redefine triggers even in foreign syntax, unsupported WSDL extensions, dependency-reserved names and unsafe namespace interpolation are refused before dependency bootstrap. An import-location hook also prohibits dependency fetching. Arbitrary resource-graph support is not claimed.
18
+
19
+ The caller explicitly names the service expanded name and port. Source syntax must bind that exact port to the authentic operation binding; dispatch uses only the corresponding own dependency method and immutable per-call action. The adapter checks the final dependency envelope, body, action, content type and endpoint before HTTP I/O using the same codec/parser/matcher/scalar chain. It never mutates global SOAPAction or selects the first port.
20
+
21
+ ### Buffered protocol and capability scope
22
+
23
+ `exchangeDirectSoap` is internal and accepts one authentic operation/input mapping, fresh application values and closed request-local configuration. Dispatch requires an explicit endpoint override and an allow callback for that exact endpoint. This packet accepts only explicitly owned ephemeral IPv4 loopback HTTP servers; the fixture's port 1 metadata grants no authority and is never contacted.
24
+
25
+ Input validation precedes dependency bootstrap and network execution. Response success requires HTTP EOF, allowed status and content type, encoding agreement, a complete SOAP 1.1 Envelope with one Body payload and successful shared direct validation. An absent or empty Header is accepted; every populated SOAP Header and protocol attribute is refused before application normalization. The envelope has explicit prefixed namespace bindings, so unqualified application children retain their namespace.
26
+
27
+ HTTP 200 and 500 declared Faults return `soap-fault` with typed detail, the observed expanded faultcode QName and its immutable original `codeNode` with namespace context and coordinates. The separate protocol layer checks Fault child order, cardinality, namespace, optional actor, textual code/string and exactly one declared detail. It resolves faultcode using the actual observed node's inherited bindings and the shared QName owner. Unknown/ambiguous detail, malformed protocol, unbound codes and HTTP 500 ordinary bodies fail without partial values.
28
+
29
+ The adapter refuses requested SOAP 1.2, HTTPS/TLS/mTLS, authentication, WS-Security, signing, arbitrary HTTP/SOAP headers, attachments, redirects, compression and streaming. Response redirects are never followed; compression and populated SOAP headers cannot become successful application results. Legacy transport capabilities and defaults remain unchanged; this internal unauthenticated slice does not qualify those wider combinations.
30
+
31
+ ### Lifetime, accounting and evidence
32
+
33
+ The original operation budget remains inclusive and sticky across source preparation, encoding, original-byte copies, dependency bootstrap, final-envelope validation, HTTP buffering, parsing, direct decoding and publication. Native bootstrap receives conservative source-size work and syntax-node reservations before entry. The complete configured response-buffer/copy capacity is reserved before dispatch; retained response bytes are copied only within that reservation. Default XML limits remain 1 MiB, depth 256, 100,000 syntax nodes and 1 MiB text, without raising semantic defaults.
34
+
35
+ The work/node counters are the existing engineering accounting model, not a V8 heap ceiling or instruction-level preemption. Axios may receive one native incoming chunk before rejecting a response that exceeds its configured byte cap; no oversized response is parsed, published or returned. Native buffers and decoder/parser intrinsics retain their actual scope. The existing intrinsic bulk-key-vector qualification also applies to closed internal option records: valid option keys are reserved before enumeration, but a malformed record can cause a larger temporary key vector before its unknown fields are rejected. Exhaustion never becomes invalidity or usable partial success.
36
+
37
+ The adapter owns one nonpersistent HTTP agent, AbortController and deadline per call. Cancellation and terminal failures abort pending I/O and destroy that agent in `finally`; listeners and deadline handlers are removed. Tests own and close their ephemeral servers and sockets. Transport, protocol, XML, value/scalar, unsupported, cancellation and exhaustion results remain distinct; diagnostics do not retain raw HTTP errors or payload text.
38
+
39
+ The [real-wire acceptance suite](../test/integration/direct-soap.test.ts) consumes the actual Forecast fixtures and independently asserts captured outgoing expanded names, order, counts, headers and literal content, with external validation of the actual captured request subtree. It covers native receipts and byte digests, renamed source/operation/service/port/members/faults, namespace aliases, UTF-16 response bytes, HTTP 200/500 Faults, no-request controls, malformed envelopes/entities, limits, inclusive sticky work/node boundaries and cancellation. Independent nonauthor transport controls and exact delivery/check identities are recorded in [#388](https://github.com/TechSpokes/typescript-wsdl-client/issues/388).
40
+
41
+ Admission remains `false`; package version remains 1.1.4. This packet adds no public API, generated client, persistent bundle, activation, release or production endpoint qualification. The subsequent generated-client/compatibility packet belongs to #185/#186/#195/#201 and requires a separate execution request.
42
+
43
+ ## Decision and scope
44
+
45
+ The SOAP 1.1 document/literal HTTP minimum in [ADR-003](decisions/003-content-model-contracts.md#soap-adapters-and-security-ordering-s02-d07) is feasible through bounded adapters. One pre-encoded body reaches both actual generated execution paths, and raw response bytes preserve the context that a shared decoder needs before name-keyed materialization. These tests activate no faithful production mode and make no new shipped support claim.
46
+
47
+ Retain [ADR-002](decisions/002-streamable-responses.md)'s dedicated streaming transport, opt-in behavior, backpressure direction and terminal-error policy. Its measured node-soap buffering reason remains valid; this probe does not remeasure dependency streaming alternatives. Supersede the hand-built name-keyed payload and record conversion on the future faithful path with the #188 encoder and #189 decoder, while preserving the legacy path under ADR-003's compatibility contract.
48
+
49
+ The minimum is established by executed seams, not by accepting current omissions. Explicit binding/action dispatch, raw decoding, fault detection and consumption-bound cancellation have concrete small correction points. Authentication, signing, TLS and SOAP 1.2 remain separately qualified streaming capabilities; #192 must reject every required combination before dispatch until its adapter has executed qualification.
50
+
51
+ ## Reproduce and evidence identity
52
+
53
+ The [Vitest probe](../test/integration/content-model-soap-feasibility.test.ts) generates a client from the committed [WSDL](../test/conformance/fixtures/soap/content-model/probe.wsdl) using the current pipeline. Its [test helper](../test/helpers/contentModelSoapProbe.ts) starts HTTP/HTTPS listeners on loopback, owns generated files under `tmp/conformance/`, and closes listeners and generated directories after testing.
54
+
55
+ ```bash
56
+ npm ci --cache tmp/cache/npm
57
+ npm run reference:setup
58
+ npx vitest run test/integration/content-model-soap-feasibility.test.ts --reporter=verbose
59
+ npm run typecheck:integration
60
+ npm run test:conformance
61
+ npm run docs:validate
62
+ npm run smoke:pipeline
63
+ ```
64
+
65
+ Normal `npm ci` supplies the pinned Node/WASM dependency. Missing or mismatched dependencies fail the probe; required validation is never silently skipped.
66
+
67
+ The historical starting revision is `2f88ec81f77f4fc5a06b78f2d507ae8e20fe7a7c`, tested with Node 24.19.0, Python 3.12.14, soap 1.13.3, saxes 6.0.0, Axios 1.20.0, Vitest 5.0.3 and TypeScript 6.0.3. Current signature verification retains the locked transitive xml-crypto 6.3.3 and @xmldom/xmldom 0.8.15; no dependency is added.
68
+
69
+ Local validation passed eleven probe tests, 138 conformance tests, integration TypeScript checking, documentation validation and the pipeline smoke check. The signing test emits an upstream xml-crypto deprecation warning from node-soap's existing signature implementation; the signature verification and tamper rejection still pass.
70
+
71
+ The [independent capture helper](../test/helpers/contentModelSoapReference.ts) validates actual captured bytes using `libxml2-wasm@0.7.2`/libxml2 2.15.1 and a separately named scoped fixture grammar under [NT-CONT-01](reference-validation.md). Historical lxml/xmlschema results remain historical; no production model supplies expected validity. Inherited QName namespaces survive payload extraction, and external resources, DTDs and ambiguous Body boundaries are prohibited.
72
+
73
+ ## Payload and incoming context
74
+
75
+ The [ordered fixture](../test/conformance/fixtures/soap/content-model/ordered.xml) contains repeated choice `(a,b)|c`, repeated `(p,q)`, invisible token grouping, a QName and a nil element retaining `id="7"`. Historical engines, the current primary and scoped grammar accept it and reject the [grouped-by-name fixture](../test/conformance/fixtures/soap/content-model/name-keyed-invalid.xml).
76
+
77
+ Captured generated legacy requests group sibling values as `a,a,b,b,c` and `p,p,q,q`. The buffered request is schema-invalid; the streaming request also lacks the namespace declaration needed by its manually supplied `xsi:nil` attribute. The faithful pre-encoded body preserves `a,b,c,a,b`, `p,q,p,q`, namespace context and nil attributes on both paths, and the captured outbound envelopes independently validate.
78
+
79
+ The node-soap `_xml` document hook preserves the complete body element, byte-for-byte within its envelope. The documented `$xml` child hook preserves ordered pre-encoded children, including their explicit namespace declarations. The generated `toSoapArgs` already forwards these test inputs; generated public request types do not yet expose a faithful codec API.
80
+
81
+ Buffered incoming XML is captured from the dependency's `response` event before `wsdl.xmlToObject` runs. The test asserts event order and the preserved expanded names, QName prefix binding, nil state and `id` attribute from actual response bytes. The normal generated `responseRaw` also matches the captured response, but its callback arrives after name-keyed parsing; faithful verification/decoding must use the earlier boundary.
82
+
83
+ On streaming calls, a test-only override of the generated `webStreamToAsyncIterable` hook feeds each actual HTTP chunk through namespace-aware saxes before yielding those same bytes into shipped `parseRecords`. Ordered records and attributes are available before that parser merges repeated siblings or reduces nil-with-attributes to `null`. A response using `p:record` and an alternate nil prefix remains fully visible to the raw tap, while the shipped lexical-name record matcher yields zero records.
84
+
85
+ The raw syntax capture does not match particles, assess scalar values, validate the SOAP wrapper grammar, or invent grouping history. Its bounded retention of the complete small response is evidence instrumentation, not a production buffering recommendation.
86
+
87
+ ### Invisible boundaries
88
+
89
+ Grouping `[x],[y,z]` and grouping `[x,y],[z]` produce the same three `token` nodes. Neither HTTP transport can recover which grouping was supplied. Normalize both to the same ordered token value under #182/#189; independent name-keyed arrays cannot preserve observable interleaving for the other sections.
90
+
91
+ ## Capability matrix
92
+
93
+ `Executed success` means the stated behavior was asserted against local HTTP bytes or TLS authentication. `Executed failure` means an assertion characterizes a current omission; tests passing do not turn that omission into support. Test-only seams are identified separately from generated behavior.
94
+
95
+ | Capability | Buffered generated path | Dedicated generated streaming path | Tested seam or first owner |
96
+ |---|---|---|---|
97
+ | Shared ordered body | Success with `_xml` or `$xml` input seam | Legacy encoder fails ordered semantics | `buildSoapEnvelope` body hook succeeds; #188/#192 |
98
+ | Raw response before name-keying | Dependency response event succeeds | Original chunk source is available | Namespace-aware chunk tap succeeds; #190/#192 |
99
+ | Namespace/QName/nil attributes | Raw bytes retain context | Raw bytes retain context; parsed records lose it | Ordered tap including prefix aliases succeeds; #189 |
100
+ | SOAP 1.1 document/literal | Envelope succeeds | Envelope succeeds | Explicit body/action fixture; #190/#192 |
101
+ | Explicit service/port | Selected buffered port endpoint succeeds | Overrides ignored; first port selected | Buffered port method pin succeeds; #190/#192 |
102
+ | SOAP action | Shared-port-type action overwrite fails | Compiler action sent for first binding | Per-call buffered HTTP action override succeeds; #190 |
103
+ | Endpoint option/setEndpoint | Both succeed | Both ignored | Dedicated resolver requires selected binding; #192 |
104
+ | SOAP 1.2 | Explicit port plus forceSoap12Headers succeeds | Option ignored; SOAP 1.1 sent | #192 rejects pending independent qualification |
105
+ | HTTP request headers | Configured header delivered | Configured node-soap header omitted | #192 envelope/HTTP capability boundary |
106
+ | HTTP response headers | Dependency exposes headers | Generated result exposes headers | Streaming `x-probe` asserted; #190/#192 |
107
+ | SOAP request/response headers | Both delivered/returned | Request header omitted; result contains HTTP headers | #192/#193 parse and enforce SOAP headers |
108
+ | HTTP Basic | Authenticated local request succeeds | Credentials omitted; protected listener returns 401 | #192 rejects until auth adapter is qualified |
109
+ | WS-Security UsernameToken | PasswordText token delivered | Token omitted | No server token verification claim; #192 |
110
+ | WS-Security outgoing signature | Body signature verifies locally | Signature omitted | Final-body signing preserved buffered; #192 |
111
+ | TLS client authentication | Server authenticates test certificate | Configured trust/client credentials not transferred; fetch fails | #192 rejects until TLS transport is qualified |
112
+ | HTTP 500 failure | Promise rejects | Promise rejects before record result | HTTP status handling retained; #190/#192 |
113
+ | SOAP fault with HTTP 200 | Promise rejects with fault | Fault silently appears as empty records | Namespace-aware fault tap rejects; #192/#193 |
114
+ | First record before HTTP EOF | Buffered by design | Actual generated iterator yields before gated EOF | Ordered tap also available before EOF; #192 |
115
+ | Malformed EOF after a record | Not a success contract | Provisional record then iterator rejection | Tap records terminal failure; #193 |
116
+ | Early consumer return | Not applicable to buffered result | Reader lock released, upstream input not cancelled | `reader.cancel()` seam succeeds; #193 |
117
+ | Buffered user abort | Public generated method exposes no signal | Not applicable | Per-call node-soap signal forwarding succeeds; #190 |
118
+
119
+ ### Binding/action correction and concurrency
120
+
121
+ The fixture intentionally places SOAP 1.1 and SOAP 1.2 bindings on one port type. In soap 1.13.3, the later SOAP 1.2 method action overwrites the action observed through the earlier SOAP 1.1 port. The test asserts this failure before correcting it; a single-binding fixture would hide it.
122
+
123
+ The bounded correction pins the selected service/port operation and forwards `SOAPAction` as a per-call HTTP header through the existing node-soap method's extra-header argument. It does not mutate `setSOAPAction` between requests. #190 must dispatch from immutable operation/binding metadata and keep per-call action/options isolated; using the mutable global setter for concurrent operations is rejected.
124
+
125
+ SOAP 1.2 is executed with its selected port, SOAP 1.2 envelope namespace and `application/soap+xml` action parameter. That executed case does not qualify every multi-binding action override or streaming SOAP 1.2 combination. #190 must emit the selected action in the version-appropriate per-call convention, and #192 must reject an unqualified version.
126
+
127
+ ## Lifecycle and security boundaries
128
+
129
+ The streaming test uses a server-controlled gate after its first complete record. `next()` returns that record while the server has not ended the response; the tap's outcome remains `pending`. Further consumption and well-formed XML EOF produce the tap's syntax outcome `success`, while malformed EOF and SOAP fault detection produce `failure`.
130
+
131
+ This is a consumption/completion seam, not whole-response semantic certification. #193 adds the selected SOAP grammar, wrapper/trailing policy, record/scalar and aggregate validation before reporting faithful completion. A companion record schema alone cannot certify an opaque wrapper.
132
+
133
+ Current generated early return only releases the web reader lock and leaves the gated response open. The small test-only reader override calls `reader.cancel()` on return, observes the upstream connection close, and records `cancelled` rather than `success`. #193 must additionally own cancellation before iteration starts, abort while a read is pending, deadlines, resource limits and an explicit terminal result.
134
+
135
+ Buffered cancellation succeeds when its existing operation-call hook forwards an `AbortSignal` to node-soap's HTTP request. The current generated public method omits that argument, so native generated cancellation is not claimed. #190 must expose operation-local cancellation without sharing mutable options.
136
+
137
+ Outgoing body signing is separately executed: node-soap signs the pre-encoded body, xml-crypto verifies the captured request, and changing an `a` value invalidates that signature. This proves the final-body request seam retains signing; it does not prove incoming response verification or streaming signing.
138
+
139
+ Incoming signed responses, encrypted responses, UsernameToken server verification, PasswordDigest, timestamp/replay validation, `mustUnderstand`, certificate rotation, remote production endpoints and combined auth/security modes remain unverified. No node-soap callback or raw syntax tap is assumed to authenticate them.
140
+
141
+ If incoming signature verification requires EOF, #190 uses bounded verification before semantic decoding and #192/#193 reject record yielding until an independently qualified incremental verification protocol exists. Raw bytes remain available at the security boundary; normalization after signing or before verification is forbidden. No signature failure or consumer cancellation can certify successful completion.
142
+
143
+ ## Adapter recommendation and downstream gates
144
+
145
+ #190 should receive one already validated/encoded body from #188, select a declared port/version/action, use the proven `_xml` or `$xml` seam, and retain node-soap's envelope/header/security/HTTP responsibilities. Its raw response interception precedes name-keyed parsing and any required security verification precedes #189 decoding. It must correct the shared-port action collision and expose cancellation per call.
146
+
147
+ #192 should retain dedicated incremental HTTP I/O, inject that same body through its envelope boundary, and pass namespace-aware raw chunks to #189 instead of the legacy `parseRecords` projection. Its selected binding boundary owns endpoint, version, action, HTTP/SOAP headers and HTTP security options; its security stage signs the final envelope. It cannot infer compatibility from the presence of a node-soap security object that the dedicated fetch never uses.
148
+
149
+ #193 owns faults, SOAP/wrapper completion, cancellation and bounded consumption. The fault/cancellation tap proves small seams exist; production fault detail, fault timing, post-record faults and aggregate constraints still need independent implementing fixtures. The tap's namespace alias behavior is proof of access, not the production decoder implementation.
150
+
151
+ Before any dispatch, #190/#192 must compare the requested bundle capabilities against an executed adapter capability set. A required capability without qualification must fail with `unsupported-capability` before sending any request; dropping credentials, signatures or headers is prohibited. When a newly required combination lacks an evidenced seam, it blocks S02's foundational decision or the affected implementation instead of becoming an incidental limitation.
152
+
153
+ The demonstrated base seams remove the raw ordered body/response feasibility blocker. The remaining auth/version combinations block faithful dispatch in #192 until qualification, and incoming signature verification blocks authenticated yielding in #190/#192/#193. Those consumer gates cannot be represented as verified support or waived by a matrix label.
154
+
155
+ ## Rejected alternatives and primary evidence
156
+
157
+ Reusing parsed name-keyed results loses interleaving and nil attributes. Replacing node-soap buffered transport with unsigned raw fetch would discard the executed Basic/header/UsernameToken/signing/TLS surface. Inferring grouping history invents information absent from XML, and reporting iterator exhaustion alone as successful completion accepts current fault omissions.
158
+
159
+ Do not mutate the envelope after node-soap's signature stage. Installed `lib/client.js` calls security `postProcess` before optional operation `postProcess`; the latter can invalidate a signature. The proven raw-body hook enters before security, and the local signature tampering assertion makes that boundary falsifiable.
160
+
161
+ The installed-version [node-soap README](https://github.com/vpulim/node-soap/blob/v1.13.3/Readme.md) documents `$xml`, raw XML inputs, explicit service/port methods, endpoint options, extra HTTP headers, response events, security and SOAP 1.2 options. The inspected tag is `081be002518c0bae165b79c7dfbff0976b302df7`.
162
+
163
+ Installed `lib/wsdl/index.js` implements `_xml` in `objectToDocumentXML` and `$xml` in `objectToXML`; installed `lib/client.js` emits the buffered response event before `xmlToObject` and applies security after assembling the body. The tag's [client source](https://github.com/vpulim/node-soap/blob/v1.13.3/src/client.ts) and [WSDL source](https://github.com/vpulim/node-soap/blob/v1.13.3/src/wsdl/index.ts) are primary references, alongside [the generated client source](../src/client/generateClient.ts) and [dedicated streaming template](../src/runtime/clientStreamMethods.tpl.txt).
164
+
165
+ `arrayWithChoiceTag`, `stream` and `returnSaxStream` are upstream-documented dependency interfaces; they are not executed alternatives in this probe. Adopting one would require new local evidence for order, namespace context, incremental delivery and security rather than superseding ADR-002 from documentation alone.
@@ -314,6 +314,8 @@ Companion catalogs are required for vendors that split stream wrappers and concr
314
314
 
315
315
  ## Implementation Notes
316
316
 
317
+ [ADR-003](003-content-model-contracts.md) retains the dedicated streaming boundary and adds shared ordered encoding/decoding, explicit binding/security capabilities, verification-before-yield and declared completion scope. [S02's SOAP probe](../content-model-soap-feasibility.md) supplies current-path evidence and owned corrections; the phase-0 measurements above remain historical provenance.
318
+
317
319
  Captured after the 0.17.0 ship for future maintainers:
318
320
 
319
321
  - `--stream-config` is wired onto the `compile`, `client`, and `pipeline` CLI commands. It is intentionally not accepted on `openapi`, `gateway`, or `app` because those commands consume a pre-compiled `catalog.json` that already carries the normalized `OperationStreamMetadata`. The original proposal text that listed the flag on every command reflected the design intent; the shipped surface is narrower for that reason.