@techspokes/typescript-wsdl-client 1.1.5 → 1.1.8

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 (480) hide show
  1. package/README.md +64 -66
  2. package/dist/app/generateApp.d.ts +0 -1
  3. package/dist/app/generateApp.js +1 -1
  4. package/dist/app/generateCheckedApp.d.ts +38 -0
  5. package/dist/app/generateCheckedApp.js +108 -0
  6. package/dist/checkedPipeline.d.ts +155 -0
  7. package/dist/checkedPipeline.js +448 -0
  8. package/dist/checkedPlanning.d.ts +123 -0
  9. package/dist/checkedPlanning.js +245 -0
  10. package/dist/cli.d.ts +0 -1
  11. package/dist/cli.js +75 -1
  12. package/dist/client/checkedDirectRuntime.d.ts +40 -3
  13. package/dist/client/checkedDirectRuntime.js +28 -8
  14. package/dist/client/directClientRuntime.d.ts +27 -2
  15. package/dist/client/directClientRuntime.js +142 -89
  16. package/dist/client/directClientVersion.d.ts +3 -1
  17. package/dist/client/directClientVersion.js +3 -0
  18. package/dist/client/generateClient.d.ts +0 -1
  19. package/dist/client/generateClient.js +26 -12
  20. package/dist/client/generateDirectClient.d.ts +21 -3
  21. package/dist/client/generateDirectClient.js +138 -6
  22. package/dist/client/generateOperations.d.ts +0 -1
  23. package/dist/client/generateTypes.d.ts +0 -1
  24. package/dist/client/generateUtils.d.ts +0 -1
  25. package/dist/client/generateUtils.js +3 -1
  26. package/dist/compiler/applicationGroups.d.ts +53 -0
  27. package/dist/compiler/applicationGroups.js +403 -0
  28. package/dist/compiler/buildCanonicalGraph.d.ts +0 -1
  29. package/dist/compiler/canonicalGraph.d.ts +0 -1
  30. package/dist/compiler/catalogErrors.d.ts +0 -1
  31. package/dist/compiler/catalogProvenance.d.ts +0 -1
  32. package/dist/compiler/checkedAssessment.d.ts +0 -1
  33. package/dist/compiler/checkedAssessment.js +1 -1
  34. package/dist/compiler/checkedComponentSource.d.ts +16 -0
  35. package/dist/compiler/checkedComponentSource.js +31 -0
  36. package/dist/compiler/checkedSourcePreparation.d.ts +38 -1
  37. package/dist/compiler/checkedSourcePreparation.js +71 -0
  38. package/dist/compiler/complexTypeContent.d.ts +5 -6
  39. package/dist/compiler/complexTypeContent.js +2 -2
  40. package/dist/compiler/componentCorrespondence.d.ts +32 -0
  41. package/dist/compiler/componentCorrespondence.js +140 -0
  42. package/dist/compiler/componentRecordProjection.d.ts +109 -0
  43. package/dist/compiler/componentRecordProjection.js +319 -0
  44. package/dist/compiler/componentSoapPreparation.d.ts +20 -0
  45. package/dist/compiler/componentSoapPreparation.js +36 -0
  46. package/dist/compiler/composeCanonicalGraph.d.ts +0 -1
  47. package/dist/compiler/dataOwnership.d.ts +0 -1
  48. package/dist/compiler/dataOwnership.js +14 -4
  49. package/dist/compiler/datatypeValues.d.ts +0 -1
  50. package/dist/compiler/directCodec.d.ts +59 -2
  51. package/dist/compiler/directCodec.js +275 -90
  52. package/dist/compiler/directExecutionPolicy.d.ts +0 -1
  53. package/dist/compiler/directOperation.d.ts +46 -4
  54. package/dist/compiler/directOperation.js +105 -14
  55. package/dist/compiler/directSoap.d.ts +29 -5
  56. package/dist/compiler/directSoap.js +130 -37
  57. package/dist/compiler/directSoapSource.d.ts +24 -1
  58. package/dist/compiler/directSoapSource.js +166 -19
  59. package/dist/compiler/directSourceCapsule.d.ts +74 -2
  60. package/dist/compiler/directSourceCapsule.js +428 -6
  61. package/dist/compiler/directStructure.d.ts +83 -6
  62. package/dist/compiler/directStructure.js +349 -58
  63. package/dist/compiler/directStructurePlan.d.ts +135 -2
  64. package/dist/compiler/directStructurePlan.js +594 -29
  65. package/dist/compiler/directValues.d.ts +63 -4
  66. package/dist/compiler/directValues.js +950 -116
  67. package/dist/compiler/finiteRe01Construction.d.ts +69 -0
  68. package/dist/compiler/finiteRe01Construction.js +422 -0
  69. package/dist/compiler/finiteRe01Verification.d.ts +81 -3
  70. package/dist/compiler/finiteRe01Verification.js +391 -4
  71. package/dist/compiler/generateCatalog.d.ts +0 -1
  72. package/dist/compiler/graphTraversal.d.ts +0 -1
  73. package/dist/compiler/hypotheticalScopedIdentity.d.ts +0 -1
  74. package/dist/compiler/occurrenceAnalysis.d.ts +2 -1
  75. package/dist/compiler/occurrenceAnalysis.js +23 -7
  76. package/dist/compiler/originalSourceMembership.d.ts +0 -1
  77. package/dist/compiler/particleAttribution.d.ts +0 -1
  78. package/dist/compiler/particleAttribution.js +20 -0
  79. package/dist/compiler/particleDeclarationConsistency.d.ts +0 -1
  80. package/dist/compiler/particleDeclarationConsistency.js +9 -0
  81. package/dist/compiler/particleExtension.d.ts +0 -1
  82. package/dist/compiler/particleExtension.js +5 -1
  83. package/dist/compiler/particleLocalAssessment.d.ts +0 -1
  84. package/dist/compiler/particleRestriction.d.ts +0 -1
  85. package/dist/compiler/particleRestriction.js +6 -1
  86. package/dist/compiler/particleSemanticView.d.ts +2 -1
  87. package/dist/compiler/particleSemanticView.js +16 -3
  88. package/dist/compiler/particleWildcardRelation.d.ts +0 -1
  89. package/dist/compiler/projectionScalar.d.ts +32 -0
  90. package/dist/compiler/projectionScalar.js +184 -0
  91. package/dist/compiler/re01CandidateAssignments.d.ts +95 -0
  92. package/dist/compiler/re01CandidateAssignments.js +341 -0
  93. package/dist/compiler/re01CandidateCorrespondence.d.ts +22 -1
  94. package/dist/compiler/re01CandidateCorrespondence.js +167 -38
  95. package/dist/compiler/re01TypeProperties.d.ts +0 -1
  96. package/dist/compiler/re01TypePropertyValidation.d.ts +0 -1
  97. package/dist/compiler/resolveCanonicalGraph.d.ts +5 -2
  98. package/dist/compiler/resolveCanonicalGraph.js +77 -7
  99. package/dist/compiler/scalarSchemaAssessment.d.ts +0 -1
  100. package/dist/compiler/schemaAttributeGroupProperties.d.ts +0 -1
  101. package/dist/compiler/schemaAttributeProperties.d.ts +0 -1
  102. package/dist/compiler/schemaAttributeUses.d.ts +22 -2
  103. package/dist/compiler/schemaAttributeUses.js +86 -13
  104. package/dist/compiler/schemaBinaryWordReconstruction.d.ts +0 -1
  105. package/dist/compiler/schemaBuiltinFacets.d.ts +0 -1
  106. package/dist/compiler/schemaCalendarImages.d.ts +0 -1
  107. package/dist/compiler/schemaCalendarLanguage.d.ts +0 -1
  108. package/dist/compiler/schemaCompiler.d.ts +0 -1
  109. package/dist/compiler/schemaComponentEquality.d.ts +0 -1
  110. package/dist/compiler/schemaConstructionAssessment.d.ts +34 -1
  111. package/dist/compiler/schemaConstructionAssessment.js +88 -6
  112. package/dist/compiler/schemaDatatypeValues.d.ts +0 -1
  113. package/dist/compiler/schemaDecimalLanguage.d.ts +0 -1
  114. package/dist/compiler/schemaDeclarationPrimitives.d.ts +7 -2
  115. package/dist/compiler/schemaDeclarationPrimitives.js +18 -1
  116. package/dist/compiler/schemaDocumentSyntax.d.ts +0 -1
  117. package/dist/compiler/schemaDurationLanguage.d.ts +0 -1
  118. package/dist/compiler/schemaElementInstance.d.ts +30 -0
  119. package/dist/compiler/schemaElementInstance.js +45 -0
  120. package/dist/compiler/schemaElementProperties.d.ts +0 -1
  121. package/dist/compiler/schemaEndpointWordCapacity.d.ts +0 -1
  122. package/dist/compiler/schemaExactCalendar.d.ts +0 -1
  123. package/dist/compiler/schemaFacetAnnotation.d.ts +0 -1
  124. package/dist/compiler/schemaGeneratedScalarShape.d.ts +0 -1
  125. package/dist/compiler/schemaGeneratedScalarShape.js +2 -0
  126. package/dist/compiler/schemaIdentityConstraints.d.ts +0 -1
  127. package/dist/compiler/schemaIeeeLanguage.d.ts +0 -1
  128. package/dist/compiler/schemaIntegerImages.d.ts +0 -1
  129. package/dist/compiler/schemaLexicalPredicates.d.ts +0 -1
  130. package/dist/compiler/schemaNotationProperties.d.ts +0 -1
  131. package/dist/compiler/schemaNumericImageConditions.d.ts +0 -1
  132. package/dist/compiler/schemaParticleWildcardProperties.d.ts +0 -1
  133. package/dist/compiler/schemaPattern.d.ts +0 -1
  134. package/dist/compiler/schemaRegularLanguage.d.ts +0 -1
  135. package/dist/compiler/schemaScalarContext.d.ts +5 -1
  136. package/dist/compiler/schemaScalarKernel.d.ts +0 -1
  137. package/dist/compiler/schemaScalarWitnesses.d.ts +0 -1
  138. package/dist/compiler/schemaSimpleTypeProperties.d.ts +0 -1
  139. package/dist/compiler/schemaSourceGrammar.d.ts +0 -1
  140. package/dist/compiler/schemaSourceLexical.d.ts +0 -1
  141. package/dist/compiler/schemaSourceValues.d.ts +0 -1
  142. package/dist/compiler/schemaSourceWildcards.d.ts +1 -2
  143. package/dist/compiler/schemaSourceWildcards.js +3 -1
  144. package/dist/compiler/schemaSymbolicSequences.d.ts +0 -1
  145. package/dist/compiler/schemaSymbolicValueSets.d.ts +0 -1
  146. package/dist/compiler/schemaSyntaxAssessment.d.ts +0 -1
  147. package/dist/compiler/schemaTemporalAliases.d.ts +0 -1
  148. package/dist/compiler/schemaTokenImages.d.ts +0 -1
  149. package/dist/compiler/schemaTypeIdentity.d.ts +0 -1
  150. package/dist/compiler/schemaTypeIdentity.js +2 -0
  151. package/dist/compiler/schemaTypeRelations.d.ts +0 -1
  152. package/dist/compiler/schemaUri.d.ts +0 -1
  153. package/dist/compiler/schemaValueContext.d.ts +0 -1
  154. package/dist/compiler/schemaValueImages.d.ts +0 -1
  155. package/dist/compiler/schemaValueSequences.d.ts +0 -1
  156. package/dist/compiler/semanticBudget.d.ts +18 -1
  157. package/dist/compiler/semanticBudget.js +17 -2
  158. package/dist/compiler/semanticCatalog.d.ts +1 -2
  159. package/dist/compiler/semanticContext.d.ts +12 -1
  160. package/dist/compiler/semanticContext.js +39 -0
  161. package/dist/compiler/semanticTypeDependencies.d.ts +0 -1
  162. package/dist/compiler/semanticTypeReference.d.ts +0 -1
  163. package/dist/compiler/shapeResolver.d.ts +0 -1
  164. package/dist/compiler/soapHeaders.d.ts +16 -0
  165. package/dist/compiler/soapHeaders.js +42 -0
  166. package/dist/compiler/sourceSchemaBinding.d.ts +0 -1
  167. package/dist/compiler/standardSchemaComponents.d.ts +71 -0
  168. package/dist/compiler/standardSchemaComponents.js +74 -0
  169. package/dist/compiler/standardSchemaConstruction.d.ts +20 -0
  170. package/dist/compiler/standardSchemaConstruction.js +34 -0
  171. package/dist/compiler/structuralCompanions.d.ts +0 -1
  172. package/dist/compiler/validateSemanticGraph.d.ts +0 -1
  173. package/dist/compiler/wildcardAlgebra.d.ts +0 -1
  174. package/dist/compiler/wsdlPolicyRequirements.d.ts +43 -0
  175. package/dist/compiler/wsdlPolicyRequirements.js +239 -0
  176. package/dist/config.d.ts +0 -1
  177. package/dist/gateway/generateCheckedGateway.d.ts +32 -0
  178. package/dist/gateway/generateCheckedGateway.js +293 -0
  179. package/dist/gateway/generateGateway.d.ts +0 -1
  180. package/dist/gateway/generators.d.ts +0 -1
  181. package/dist/gateway/helpers.d.ts +0 -1
  182. package/dist/generation/componentShape.d.ts +14 -0
  183. package/dist/generation/componentShape.js +269 -0
  184. package/dist/generation/preamble.d.ts +0 -1
  185. package/dist/generation/sourceLayout.d.ts +13 -0
  186. package/dist/generation/sourceLayout.js +40 -0
  187. package/dist/generation/writeGeneratedSource.d.ts +0 -1
  188. package/dist/index.d.ts +7 -2
  189. package/dist/index.js +2 -1
  190. package/dist/loader/fetch.d.ts +0 -1
  191. package/dist/loader/orderedSyntax.d.ts +8 -1
  192. package/dist/loader/orderedSyntax.js +26 -6
  193. package/dist/loader/resolutionDepth.d.ts +0 -1
  194. package/dist/loader/schemaInput.d.ts +28 -1
  195. package/dist/loader/schemaInput.js +41 -4
  196. package/dist/loader/schemaResources.d.ts +2 -1
  197. package/dist/loader/schemaResources.js +45 -4
  198. package/dist/loader/wsdlLoader.d.ts +0 -1
  199. package/dist/openapi/casing.d.ts +0 -1
  200. package/dist/openapi/generateOpenAPI.d.ts +0 -1
  201. package/dist/openapi/generatePaths.d.ts +0 -1
  202. package/dist/openapi/generateSchemas.d.ts +0 -1
  203. package/dist/openapi/security.d.ts +0 -1
  204. package/dist/pipeline.d.ts +6 -2
  205. package/dist/pipeline.js +13 -0
  206. package/dist/test/generateCheckedTests.d.ts +17 -0
  207. package/dist/test/generateCheckedTests.js +60 -0
  208. package/dist/test/generateTests.d.ts +0 -1
  209. package/dist/test/generators.d.ts +0 -1
  210. package/dist/test/mockData.d.ts +0 -1
  211. package/dist/test/mockData.js +20 -14
  212. package/dist/util/attributeWildcards.d.ts +0 -1
  213. package/dist/util/builder.d.ts +0 -1
  214. package/dist/util/catalogMeta.d.ts +0 -1
  215. package/dist/util/checkedCliDiagnostics.d.ts +11 -0
  216. package/dist/util/checkedCliDiagnostics.js +22 -0
  217. package/dist/util/cli.d.ts +0 -1
  218. package/dist/util/errors.d.ts +0 -1
  219. package/dist/util/imports.d.ts +0 -1
  220. package/dist/util/runtimeSource.d.ts +0 -1
  221. package/dist/util/runtimeSource.js +3 -5
  222. package/dist/util/securityConfig.d.ts +0 -1
  223. package/dist/util/streamConfig.d.ts +0 -1
  224. package/dist/util/tools.d.ts +0 -1
  225. package/dist/util/xmlWhitespace.d.ts +0 -1
  226. package/dist/xsd/primitives.d.ts +0 -1
  227. package/docs/agent-skill.md +2 -0
  228. package/docs/api-reference.md +1 -1
  229. package/docs/checked-gateway.md +210 -0
  230. package/docs/checked-generation.md +161 -0
  231. package/docs/cli-reference.md +23 -1
  232. package/docs/concepts.md +136 -1
  233. package/docs/configuration.md +5 -1
  234. package/docs/corpus.md +33 -0
  235. package/docs/direct-values.md +13 -13
  236. package/docs/examples/checked-forecast.wsdl +19 -0
  237. package/docs/gateway-guide.md +1 -1
  238. package/docs/generated-code.md +10 -5
  239. package/docs/mapping-contract.md +114 -0
  240. package/docs/migration-playbook.md +1 -1
  241. package/docs/output-anatomy.md +1 -1
  242. package/docs/start-here.md +8 -2
  243. package/docs/supported-patterns.md +7 -3
  244. package/docs/testing.md +117 -31
  245. package/llms.txt +7 -7
  246. package/package.json +63 -22
  247. package/src/runtime/checkedGatewayHost.tpl.txt +157 -0
  248. package/src/runtime/streamXml.ts +1 -1
  249. package/dist/app/generateApp.d.ts.map +0 -1
  250. package/dist/cli.d.ts.map +0 -1
  251. package/dist/client/checkedDirectRuntime.d.ts.map +0 -1
  252. package/dist/client/directClientRuntime.d.ts.map +0 -1
  253. package/dist/client/directClientVersion.d.ts.map +0 -1
  254. package/dist/client/generateClient.d.ts.map +0 -1
  255. package/dist/client/generateDirectClient.d.ts.map +0 -1
  256. package/dist/client/generateOperations.d.ts.map +0 -1
  257. package/dist/client/generateTypes.d.ts.map +0 -1
  258. package/dist/client/generateUtils.d.ts.map +0 -1
  259. package/dist/compiler/buildCanonicalGraph.d.ts.map +0 -1
  260. package/dist/compiler/canonicalGraph.d.ts.map +0 -1
  261. package/dist/compiler/catalogErrors.d.ts.map +0 -1
  262. package/dist/compiler/catalogProvenance.d.ts.map +0 -1
  263. package/dist/compiler/checkedAssessment.d.ts.map +0 -1
  264. package/dist/compiler/checkedSourcePreparation.d.ts.map +0 -1
  265. package/dist/compiler/complexTypeContent.d.ts.map +0 -1
  266. package/dist/compiler/composeCanonicalGraph.d.ts.map +0 -1
  267. package/dist/compiler/dataOwnership.d.ts.map +0 -1
  268. package/dist/compiler/datatypeValues.d.ts.map +0 -1
  269. package/dist/compiler/directCodec.d.ts.map +0 -1
  270. package/dist/compiler/directExecutionPolicy.d.ts.map +0 -1
  271. package/dist/compiler/directOperation.d.ts.map +0 -1
  272. package/dist/compiler/directSoap.d.ts.map +0 -1
  273. package/dist/compiler/directSoapSource.d.ts.map +0 -1
  274. package/dist/compiler/directSourceCapsule.d.ts.map +0 -1
  275. package/dist/compiler/directStructure.d.ts.map +0 -1
  276. package/dist/compiler/directStructurePlan.d.ts.map +0 -1
  277. package/dist/compiler/directValues.d.ts.map +0 -1
  278. package/dist/compiler/finiteRe01Verification.d.ts.map +0 -1
  279. package/dist/compiler/generateCatalog.d.ts.map +0 -1
  280. package/dist/compiler/graphTraversal.d.ts.map +0 -1
  281. package/dist/compiler/hypotheticalScopedIdentity.d.ts.map +0 -1
  282. package/dist/compiler/occurrenceAnalysis.d.ts.map +0 -1
  283. package/dist/compiler/originalSourceMembership.d.ts.map +0 -1
  284. package/dist/compiler/particleAttribution.d.ts.map +0 -1
  285. package/dist/compiler/particleDeclarationConsistency.d.ts.map +0 -1
  286. package/dist/compiler/particleExtension.d.ts.map +0 -1
  287. package/dist/compiler/particleLocalAssessment.d.ts.map +0 -1
  288. package/dist/compiler/particleRestriction.d.ts.map +0 -1
  289. package/dist/compiler/particleSemanticView.d.ts.map +0 -1
  290. package/dist/compiler/particleWildcardRelation.d.ts.map +0 -1
  291. package/dist/compiler/re01CandidateCorrespondence.d.ts.map +0 -1
  292. package/dist/compiler/re01TypeProperties.d.ts.map +0 -1
  293. package/dist/compiler/re01TypePropertyValidation.d.ts.map +0 -1
  294. package/dist/compiler/resolveCanonicalGraph.d.ts.map +0 -1
  295. package/dist/compiler/scalarSchemaAssessment.d.ts.map +0 -1
  296. package/dist/compiler/schemaAttributeGroupProperties.d.ts.map +0 -1
  297. package/dist/compiler/schemaAttributeProperties.d.ts.map +0 -1
  298. package/dist/compiler/schemaAttributeUses.d.ts.map +0 -1
  299. package/dist/compiler/schemaBinaryWordReconstruction.d.ts.map +0 -1
  300. package/dist/compiler/schemaBuiltinFacets.d.ts.map +0 -1
  301. package/dist/compiler/schemaCalendarImages.d.ts.map +0 -1
  302. package/dist/compiler/schemaCalendarLanguage.d.ts.map +0 -1
  303. package/dist/compiler/schemaCompiler.d.ts.map +0 -1
  304. package/dist/compiler/schemaComponentEquality.d.ts.map +0 -1
  305. package/dist/compiler/schemaConstructionAssessment.d.ts.map +0 -1
  306. package/dist/compiler/schemaDatatypeValues.d.ts.map +0 -1
  307. package/dist/compiler/schemaDecimalLanguage.d.ts.map +0 -1
  308. package/dist/compiler/schemaDeclarationPrimitives.d.ts.map +0 -1
  309. package/dist/compiler/schemaDocumentSyntax.d.ts.map +0 -1
  310. package/dist/compiler/schemaDurationLanguage.d.ts.map +0 -1
  311. package/dist/compiler/schemaElementProperties.d.ts.map +0 -1
  312. package/dist/compiler/schemaEndpointWordCapacity.d.ts.map +0 -1
  313. package/dist/compiler/schemaExactCalendar.d.ts.map +0 -1
  314. package/dist/compiler/schemaFacetAnnotation.d.ts.map +0 -1
  315. package/dist/compiler/schemaGeneratedScalarShape.d.ts.map +0 -1
  316. package/dist/compiler/schemaIdentityConstraints.d.ts.map +0 -1
  317. package/dist/compiler/schemaIeeeLanguage.d.ts.map +0 -1
  318. package/dist/compiler/schemaIntegerImages.d.ts.map +0 -1
  319. package/dist/compiler/schemaLexicalPredicates.d.ts.map +0 -1
  320. package/dist/compiler/schemaNotationProperties.d.ts.map +0 -1
  321. package/dist/compiler/schemaNumericImageConditions.d.ts.map +0 -1
  322. package/dist/compiler/schemaParticleWildcardProperties.d.ts.map +0 -1
  323. package/dist/compiler/schemaPattern.d.ts.map +0 -1
  324. package/dist/compiler/schemaRegularLanguage.d.ts.map +0 -1
  325. package/dist/compiler/schemaScalarContext.d.ts.map +0 -1
  326. package/dist/compiler/schemaScalarKernel.d.ts.map +0 -1
  327. package/dist/compiler/schemaScalarWitnesses.d.ts.map +0 -1
  328. package/dist/compiler/schemaSimpleTypeProperties.d.ts.map +0 -1
  329. package/dist/compiler/schemaSourceGrammar.d.ts.map +0 -1
  330. package/dist/compiler/schemaSourceLexical.d.ts.map +0 -1
  331. package/dist/compiler/schemaSourceValues.d.ts.map +0 -1
  332. package/dist/compiler/schemaSourceWildcards.d.ts.map +0 -1
  333. package/dist/compiler/schemaSymbolicSequences.d.ts.map +0 -1
  334. package/dist/compiler/schemaSymbolicValueSets.d.ts.map +0 -1
  335. package/dist/compiler/schemaSyntaxAssessment.d.ts.map +0 -1
  336. package/dist/compiler/schemaTemporalAliases.d.ts.map +0 -1
  337. package/dist/compiler/schemaTokenImages.d.ts.map +0 -1
  338. package/dist/compiler/schemaTypeIdentity.d.ts.map +0 -1
  339. package/dist/compiler/schemaTypeRelations.d.ts.map +0 -1
  340. package/dist/compiler/schemaUri.d.ts.map +0 -1
  341. package/dist/compiler/schemaValueContext.d.ts.map +0 -1
  342. package/dist/compiler/schemaValueImages.d.ts.map +0 -1
  343. package/dist/compiler/schemaValueSequences.d.ts.map +0 -1
  344. package/dist/compiler/semanticBudget.d.ts.map +0 -1
  345. package/dist/compiler/semanticCatalog.d.ts.map +0 -1
  346. package/dist/compiler/semanticContext.d.ts.map +0 -1
  347. package/dist/compiler/semanticTypeDependencies.d.ts.map +0 -1
  348. package/dist/compiler/semanticTypeReference.d.ts.map +0 -1
  349. package/dist/compiler/shapeResolver.d.ts.map +0 -1
  350. package/dist/compiler/sourceSchemaBinding.d.ts.map +0 -1
  351. package/dist/compiler/structuralCompanions.d.ts.map +0 -1
  352. package/dist/compiler/validateSemanticGraph.d.ts.map +0 -1
  353. package/dist/compiler/wildcardAlgebra.d.ts.map +0 -1
  354. package/dist/config.d.ts.map +0 -1
  355. package/dist/gateway/generateGateway.d.ts.map +0 -1
  356. package/dist/gateway/generators.d.ts.map +0 -1
  357. package/dist/gateway/helpers.d.ts.map +0 -1
  358. package/dist/generation/preamble.d.ts.map +0 -1
  359. package/dist/generation/writeGeneratedSource.d.ts.map +0 -1
  360. package/dist/index.d.ts.map +0 -1
  361. package/dist/loader/fetch.d.ts.map +0 -1
  362. package/dist/loader/orderedSyntax.d.ts.map +0 -1
  363. package/dist/loader/resolutionDepth.d.ts.map +0 -1
  364. package/dist/loader/schemaInput.d.ts.map +0 -1
  365. package/dist/loader/schemaResources.d.ts.map +0 -1
  366. package/dist/loader/wsdlLoader.d.ts.map +0 -1
  367. package/dist/openapi/casing.d.ts.map +0 -1
  368. package/dist/openapi/generateOpenAPI.d.ts.map +0 -1
  369. package/dist/openapi/generatePaths.d.ts.map +0 -1
  370. package/dist/openapi/generateSchemas.d.ts.map +0 -1
  371. package/dist/openapi/security.d.ts.map +0 -1
  372. package/dist/pipeline.d.ts.map +0 -1
  373. package/dist/runtime/jsonArray.d.ts +0 -24
  374. package/dist/runtime/jsonArray.d.ts.map +0 -1
  375. package/dist/runtime/jsonArray.js +0 -52
  376. package/dist/runtime/ndjson.d.ts +0 -24
  377. package/dist/runtime/ndjson.d.ts.map +0 -1
  378. package/dist/runtime/ndjson.js +0 -30
  379. package/dist/runtime/streamXml.d.ts +0 -45
  380. package/dist/runtime/streamXml.d.ts.map +0 -1
  381. package/dist/runtime/streamXml.js +0 -212
  382. package/dist/test/generateTests.d.ts.map +0 -1
  383. package/dist/test/generators.d.ts.map +0 -1
  384. package/dist/test/mockData.d.ts.map +0 -1
  385. package/dist/util/attributeWildcards.d.ts.map +0 -1
  386. package/dist/util/builder.d.ts.map +0 -1
  387. package/dist/util/catalogMeta.d.ts.map +0 -1
  388. package/dist/util/cli.d.ts.map +0 -1
  389. package/dist/util/errors.d.ts.map +0 -1
  390. package/dist/util/imports.d.ts.map +0 -1
  391. package/dist/util/runtimeSource.d.ts.map +0 -1
  392. package/dist/util/securityConfig.d.ts.map +0 -1
  393. package/dist/util/streamConfig.d.ts.map +0 -1
  394. package/dist/util/tools.d.ts.map +0 -1
  395. package/dist/util/xmlWhitespace.d.ts.map +0 -1
  396. package/dist/xsd/primitives.d.ts.map +0 -1
  397. package/docs/AGENTS.md +0 -47
  398. package/docs/README.md +0 -69
  399. package/docs/architecture.md +0 -158
  400. package/docs/content-model-analysis.md +0 -92
  401. package/docs/content-model-baseline.md +0 -121
  402. package/docs/content-model-catalog.md +0 -116
  403. package/docs/content-model-companions.md +0 -90
  404. package/docs/content-model-composition.md +0 -103
  405. package/docs/content-model-decisions.md +0 -79
  406. package/docs/content-model-gateway-feasibility.md +0 -169
  407. package/docs/content-model-graph.md +0 -121
  408. package/docs/content-model-loading.md +0 -163
  409. package/docs/content-model-matching.md +0 -85
  410. package/docs/content-model-readiness.md +0 -144
  411. package/docs/content-model-resolution.md +0 -81
  412. package/docs/content-model-s02-handoff.md +0 -98
  413. package/docs/content-model-s06-au-01.md +0 -425
  414. package/docs/content-model-s06-dt-01.md +0 -386
  415. package/docs/content-model-s06-pw-01.md +0 -350
  416. package/docs/content-model-s06-re-01-resolver-implementation.md +0 -869
  417. package/docs/content-model-s06-re-01-resolver.md +0 -513
  418. package/docs/content-model-s06-re-01-scalar-witnesses.md +0 -1423
  419. package/docs/content-model-s06-re-01-support-reconstruction.md +0 -6337
  420. package/docs/content-model-s06-re-01.md +0 -7477
  421. package/docs/content-model-s06-research-handoff.md +0 -909
  422. package/docs/content-model-shipped-fix.md +0 -83
  423. package/docs/content-model-soap-feasibility.md +0 -165
  424. package/docs/decisions/001-test-generation.md +0 -36
  425. package/docs/decisions/002-streamable-responses.md +0 -332
  426. package/docs/decisions/003-content-model-contracts.md +0 -280
  427. package/docs/file-naming-and-path-organization.md +0 -213
  428. package/docs/reference-validation.md +0 -243
  429. package/docs/releases/README.md +0 -94
  430. package/docs/releases/v0.20.0.md +0 -22
  431. package/docs/releases/v0.21.0.md +0 -30
  432. package/docs/releases/v0.22.0.md +0 -30
  433. package/docs/releases/v0.23.0.md +0 -31
  434. package/docs/releases/v0.24.0.md +0 -38
  435. package/docs/releases/v0.25.0.md +0 -31
  436. package/docs/releases/v0.25.2.md +0 -32
  437. package/docs/releases/v0.26.0.md +0 -32
  438. package/docs/releases/v0.27.0.md +0 -31
  439. package/docs/releases/v0.28.0.md +0 -32
  440. package/docs/releases/v0.29.0.md +0 -32
  441. package/docs/releases/v0.30.0.md +0 -30
  442. package/docs/releases/v0.30.1.md +0 -31
  443. package/docs/releases/v0.30.2.md +0 -30
  444. package/docs/releases/v0.30.3.md +0 -33
  445. package/docs/releases/v0.31.0.md +0 -33
  446. package/docs/releases/v0.32.0.md +0 -33
  447. package/docs/releases/v0.33.0.md +0 -34
  448. package/docs/releases/v0.34.0.md +0 -30
  449. package/docs/releases/v0.35.0.md +0 -33
  450. package/docs/releases/v0.36.0.md +0 -32
  451. package/docs/releases/v0.37.0.md +0 -33
  452. package/docs/releases/v0.38.0.md +0 -35
  453. package/docs/releases/v0.39.0.md +0 -35
  454. package/docs/releases/v0.40.0.md +0 -45
  455. package/docs/releases/v0.40.1.md +0 -34
  456. package/docs/releases/v1.0.0.md +0 -42
  457. package/docs/releases/v1.0.1.md +0 -38
  458. package/docs/releases/v1.0.2.md +0 -51
  459. package/docs/releases/v1.0.3.md +0 -37
  460. package/docs/releases/v1.0.4.md +0 -45
  461. package/docs/releases/v1.0.5.md +0 -41
  462. package/docs/releases/v1.0.6.md +0 -35
  463. package/docs/releases/v1.0.7.md +0 -36
  464. package/docs/releases/v1.1.0.md +0 -42
  465. package/docs/releases/v1.1.1.md +0 -44
  466. package/docs/releases/v1.1.2.md +0 -42
  467. package/docs/releases/v1.1.3.md +0 -36
  468. package/docs/releases/v1.1.4.md +0 -36
  469. package/docs/releases/v1.1.5.md +0 -38
  470. package/docs/roadmap/README.md +0 -107
  471. package/docs/roadmap/v1.0-capability-conformance-framework.md +0 -582
  472. package/docs/roadmap/v1.0-choice-union-mode.md +0 -90
  473. package/docs/roadmap/v1.0-contract-audit.md +0 -75
  474. package/docs/roadmap/v1.0-json-array-streaming.md +0 -101
  475. package/docs/roadmap/v1.0-openapi-fastify-compatibility.md +0 -99
  476. package/docs/roadmap/v1.0-release-candidate-gates.md +0 -92
  477. package/docs/roadmap/v1.0-wsdl-coverage-matrix.md +0 -200
  478. package/docs/roadmap/v1.0-xs-anyattribute-wildcard-bag.md +0 -932
  479. package/src/runtime/jsonArray.ts +0 -55
  480. package/src/runtime/ndjson.ts +0 -32
@@ -5,14 +5,19 @@ import { SchemaLoadingError, WSDL_NAMESPACE, syntaxAttribute, syntaxElements, is
5
5
  import { globalId } from './canonicalGraph.js';
6
6
  import { createApplicationBudget, DEFAULT_MAX_NODES } from './semanticBudget.js';
7
7
  import { qualifyDirectSource } from './checkedSourcePreparation.js';
8
+ import { qualifyComponentSource, inspectComponentSourceQualification } from './checkedComponentSource.js';
9
+ import { prepareWsdlPolicyRequirements, assertWsdlPolicyRequirements } from './wsdlPolicyRequirements.js';
8
10
  const SOAP = 'http://schemas.xmlsoap.org/wsdl/soap/';
9
11
  const HTTP = 'http://schemas.xmlsoap.org/soap/http';
12
+ const ADDRESSING_WSDL = 'http://www.w3.org/2006/05/addressing/wsdl';
10
13
  const issued = new WeakMap();
11
14
  /** Object identity authenticates the exact issued roots; context IDs and digests do not. */
12
15
  export function inspectDirectOperation(contract, expectedContext) {
13
16
  const owned = issued.get(contract);
14
17
  if (!owned || expectedContext !== undefined && owned.context !== expectedContext)
15
18
  throw new TypeError('Unauthenticated or foreign direct operation');
19
+ if (owned.policyOwner)
20
+ assertWsdlPolicyRequirements(owned.source, owned.policyOwner);
16
21
  return owned;
17
22
  }
18
23
  class Refusal extends Error {
@@ -32,10 +37,47 @@ export async function selectDirectOperation(source, selector, options) {
32
37
  }
33
38
  /** Private-module composition seam: portable reading and selection share one request. */
34
39
  export async function selectDirectOperationInRequest(source, selector, options, budget) {
40
+ return selectOperationInRequest(source, selector, options, budget, 'direct');
41
+ }
42
+ /** Select through additive native component qualification without granting codec, transport or runtime admission.
43
+ * @remarks The same WSDL binding/message owner is used by the existing preview. New contracts carry a distinct
44
+ * basis and correspondence; preview codecs and source capsules continue to refuse them until independently extended.
45
+ * @returns Fresh source-bound operation roots or an explicit qualification/selection failure.
46
+ */
47
+ export async function selectComponentOperation(source, selector, options) {
48
+ return selectComponentOperationInRequest(source, selector, options, createApplicationBudget(options.limits));
49
+ }
50
+ /** Private composition seam: artifact reading and fresh component selection share the same sticky request. */
51
+ export async function selectComponentOperationInRequest(source, selector, options, budget) {
52
+ return selectOperationInRequest(source, selector, { ...options, standardLibraries: Object.freeze([...(options.standardLibraries ?? [])]) }, budget, 'components');
53
+ }
54
+ /** Select requested service operations against one fresh native source snapshot and sticky request.
55
+ * @remarks Native whole-source qualification is reused by identity within this batch only. Every binding/message
56
+ * selection still runs through the same owner; no source flags, saved reports or operation-name guesses are consumed.
57
+ * @returns One result in each requested position, including explicit refusals. No requested operation is omitted.
58
+ */
59
+ export async function selectComponentOperations(source, selectors, options) {
60
+ const budget = createApplicationBudget(options.limits), cache = {};
61
+ const owned = budget.snapshot(selectors);
62
+ if (!Array.isArray(owned) || Object.keys(owned).length !== owned.length)
63
+ throw new TypeError('Dense operation selectors required');
64
+ const results = [];
65
+ const captured = { ...options, standardLibraries: Object.freeze([...(options.standardLibraries ?? [])]) };
66
+ for (const selector of owned)
67
+ results.push(await selectOperationInRequest(source, selector, captured, budget, 'components', cache));
68
+ return Object.freeze(results);
69
+ }
70
+ async function selectOperationInRequest(source, selector, options, budget, profile, cache) {
35
71
  const check = () => { if (options.signal?.aborted)
36
72
  throw new Cancelled(); budget.chargeWork(); };
37
73
  const refuse = (kind, rule) => { throw new Refusal(kind, rule); };
38
74
  const failure = (kind, rule) => Object.freeze({ kind, rule, usage: Object.freeze({ ...budget.usage() }) });
75
+ const sourceFailure = (kind, rule) => {
76
+ const result = failure(kind, rule);
77
+ if (cache && result.kind !== 'selected')
78
+ cache.failure = result;
79
+ return result;
80
+ };
39
81
  try {
40
82
  // Fixed terminal envelope and issuance bookkeeping, before any source work.
41
83
  budget.chargeWork(4096);
@@ -44,20 +86,43 @@ export async function selectDirectOperationInRequest(source, selector, options,
44
86
  const name = (value) => value && typeof value.namespace === 'string' && typeof value.local === 'string' && isXmlNCName(value.local);
45
87
  if (!name(ownedSelector.portType) || !name(ownedSelector.binding) || typeof ownedSelector.operation !== 'string' || !isXmlNCName(ownedSelector.operation))
46
88
  return failure('selection-refused', 'explicit-selector');
47
- const input = await loadSemanticSchemaInput(source, { ...options.loading, limits: directLoadingLimits(budget, options.loading.limits), signal: options.signal, chargeWork: amount => { check(); budget.chargeWork(amount); } });
89
+ if (cache?.failure)
90
+ return failure(cache.failure.kind, cache.failure.rule);
91
+ const input = cache?.input ?? await loadSemanticSchemaInput(source, { ...options.loading, limits: directLoadingLimits(budget, options.loading.limits), signal: options.signal, chargeWork: amount => { check(); budget.chargeWork(amount); } });
92
+ if (cache)
93
+ cache.input = input;
48
94
  check();
49
95
  const result = budget.guard(() => {
50
- const qualified = qualifyDirectSource(input, { budget, maxNodes: options.limits?.maxNodes ?? directLimit(budget, DEFAULT_MAX_NODES), check });
96
+ const qualificationOptions = { budget, maxNodes: options.limits?.maxNodes ?? directLimit(budget, DEFAULT_MAX_NODES), check };
97
+ const qualified = cache?.qualified ?? (profile === 'direct' ? qualifyDirectSource(input, qualificationOptions)
98
+ : qualifyComponentSource(input, { ...qualificationOptions, standardLibraries: options.standardLibraries }));
51
99
  if (qualified.kind === 'resource-limit')
52
- return failure('resource-limit', 'source-qualification');
100
+ return sourceFailure('resource-limit', 'source-qualification');
53
101
  if (qualified.kind === 'source-preparation-failed' && qualified.category === 'resource-limit')
54
- return failure('resource-limit', 'source-preparation');
55
- if (qualified.kind !== 'qualified-source')
56
- return failure(qualified.kind === 'source-preparation-failed' && qualified.category === 'invalid-schema' ? 'invalid-schema' : 'inconclusive', 'source-preparation');
57
- if (!qualified.eligible)
58
- return failure(qualified.localDisproved || qualified.closure.kind === 'invalid-schema' ? 'invalid-schema' : 'inconclusive', 'whole-source-qualification');
59
- const { request } = qualified;
102
+ return sourceFailure('resource-limit', 'source-preparation');
103
+ if (qualified.kind !== 'qualified-source' && qualified.kind !== 'component-source')
104
+ return sourceFailure(qualified.kind === 'source-preparation-failed' && qualified.category === 'invalid-schema' ? 'invalid-schema' : 'inconclusive', 'source-preparation');
105
+ if (qualified.kind === 'component-source')
106
+ inspectComponentSourceQualification(qualified, input);
107
+ const construction = qualified.kind === 'component-source' ? qualified.construction : qualified;
108
+ const eligible = qualified.kind === 'component-source' ? qualified.schemaEligible : qualified.eligible;
109
+ if (!eligible)
110
+ return sourceFailure(construction.localDisproved || construction.closure.kind === 'invalid-schema' ? 'invalid-schema' : 'inconclusive', qualified.kind === 'component-source' && qualified.correspondence.kind === 'inconclusive-correspondence'
111
+ ? `whole-source-qualification:${qualified.correspondence.rule}${qualified.correspondence.path ? ':' + qualified.correspondence.path : ''}` : 'whole-source-qualification');
112
+ const { request } = construction;
60
113
  const context = request.actual;
114
+ let policyOwner;
115
+ if (profile === 'components') {
116
+ const policies = cache?.policy ?? prepareWsdlPolicyRequirements(input, budget, check);
117
+ if (policies.kind !== 'wsdl-policy-requirements')
118
+ return sourceFailure(policies.kind, 'rule' in policies ? policies.rule : 'policy-budget');
119
+ assertWsdlPolicyRequirements(input, policies);
120
+ policyOwner = policies;
121
+ if (cache && qualified.kind === 'component-source') {
122
+ cache.qualified = qualified;
123
+ cache.policy = policies;
124
+ }
125
+ }
61
126
  const children = (node) => {
62
127
  check();
63
128
  budget.chargeWork(128 + node.children.length * 16 + node.attributes.length * 32);
@@ -70,6 +135,15 @@ export async function selectDirectOperationInRequest(source, selector, options,
70
135
  return syntaxElements(node);
71
136
  };
72
137
  const attr = syntaxAttribute;
138
+ const addressingMessages = new Set();
139
+ if (profile === 'components')
140
+ for (const document of input.documents) {
141
+ for (const portType of children(document.root).filter(node => node.name.namespace === WSDL_NAMESPACE && node.name.local === 'portType'))
142
+ for (const operation of children(portType).filter(node => node.name.namespace === WSDL_NAMESPACE && node.name.local === 'operation'))
143
+ for (const message of children(operation).filter(node => node.name.namespace === WSDL_NAMESPACE && ['input', 'output', 'fault'].includes(node.name.local)))
144
+ addressingMessages.add(message);
145
+ }
146
+ const addressingAttribute = (node, namespace, local) => addressingMessages.has(node) && namespace === ADDRESSING_WSDL && local === 'Action';
73
147
  const exactly = (node, namespace, local) => {
74
148
  const found = children(node).filter(c => c.name.namespace === namespace && c.name.local === local);
75
149
  if (found.length !== 1)
@@ -78,7 +152,8 @@ export async function selectDirectOperationInRequest(source, selector, options,
78
152
  };
79
153
  const shape = (node, allowed) => {
80
154
  for (const child of children(node))
81
- if (!allowed.includes(`${child.name.namespace}#${child.name.local}`))
155
+ if (!allowed.includes(`${child.name.namespace}#${child.name.local}`)
156
+ && !policyOwner?.isPolicyMetadata(child))
82
157
  refuse('unsupported', 'binding-child-shape');
83
158
  for (const child of node.children) {
84
159
  if (child.kind !== 'text')
@@ -93,7 +168,8 @@ export async function selectDirectOperationInRequest(source, selector, options,
93
168
  const attrs = (node, allowed) => {
94
169
  children(node);
95
170
  for (const a of node.attributes)
96
- if (a.name.namespace !== '' || !allowed.includes(a.name.local))
171
+ if (!addressingAttribute(node, a.name.namespace, a.name.local)
172
+ && (a.name.namespace !== '' || !allowed.includes(a.name.local)))
97
173
  refuse('unsupported', 'binding-attribute-shape');
98
174
  };
99
175
  // Conservative extension policy: only known WSDL 1.1/SOAP 1.1 syntax, even when optional.
@@ -113,12 +189,18 @@ export async function selectDirectOperationInRequest(source, selector, options,
113
189
  const nested = children(node);
114
190
  if (qualifiedSchemas.has(node))
115
191
  continue;
192
+ if (policyOwner?.isPolicyMetadata(node))
193
+ continue;
116
194
  if (node.name.namespace === WSDL_NAMESPACE && node.name.local === 'documentation')
117
195
  continue;
118
196
  const allowed = node.name.namespace === WSDL_NAMESPACE ? attributes[node.name.local] : node.name.namespace === SOAP ? soapAttributes[node.name.local] : undefined;
119
197
  if (!allowed)
120
198
  return refuse('unsupported', 'wsdl-extension');
121
199
  for (const a of node.attributes) {
200
+ // @why The May 2006 WSDL binding assigns no normative intent to Action without UsingAddressing.
201
+ // UsingAddressing remains unsupported, so these attributes are retained metadata, never SOAP header instructions.
202
+ if (addressingAttribute(node, a.name.namespace, a.name.local))
203
+ continue;
122
204
  if (a.name.namespace === WSDL_NAMESPACE && a.name.local === 'required' && node.name.namespace === SOAP && ['true', '1', 'false', '0'].includes(a.value))
123
205
  continue;
124
206
  if (a.name.namespace !== '' || !allowed.includes(a.name.local))
@@ -255,15 +337,24 @@ export async function selectDirectOperationInRequest(source, selector, options,
255
337
  });
256
338
  check();
257
339
  // Charge publication traversal before retaining authority. Roots stay exact context objects.
258
- const contract = { selector: ownedSelector, contextId: context.contextId, basis: 'native-direct-premises-v1', correspondence: 'dated-XSD-2004-direct-v1',
340
+ const contract = { selector: ownedSelector, contextId: context.contextId,
341
+ basis: profile === 'direct' ? 'native-direct-premises-v1' : 'native-component-premises-v1',
342
+ correspondence: profile === 'direct' ? 'dated-XSD-2004-direct-v1' : 'dated-XSD-2004-components-v1',
259
343
  binding: { version: '1.1', style: 'document', use: 'literal', transport: HTTP, action, source: binding.context.source },
260
344
  input: requestRoot, output: responseRoot, faults,
261
- missingCapabilities: ['matcher', 'projection', 'scalar-payload', 'bundle', 'codec', 'buffered-transport', 'structured-generation'], admitted: false };
345
+ ...(policyOwner ? { policy: policyOwner.forBinding(binding.syntax), addressingActions: { required: false,
346
+ input: attr(abstractInput, 'Action', ADDRESSING_WSDL), output: attr(abstractOutput, 'Action', ADDRESSING_WSDL),
347
+ faults: declaredFaults.flatMap(fault => {
348
+ const action = attr(fault, 'Action', ADDRESSING_WSDL);
349
+ return action === undefined ? [] : [{ name: attr(fault, 'name'), action }];
350
+ }) } } : {}),
351
+ missingCapabilities: ['matcher', 'projection', 'scalar-payload', 'bundle', 'codec', 'buffered-transport', 'structured-generation',
352
+ ...(policyOwner?.forBinding(binding.syntax).kind === 'https-transport' ? ['policy-enforcement'] : [])], admitted: false };
262
353
  budget.freeze(contract);
263
354
  check();
264
355
  budget.chargeWork(256);
265
356
  const selected = Object.freeze({ kind: 'selected', contract, usage: Object.freeze({ ...budget.usage() }) });
266
- issued.set(contract, Object.freeze({ contract, context, source: input, evidence: qualified }));
357
+ issued.set(contract, Object.freeze({ contract, context, source: input, evidence: qualified, ...(policyOwner ? { policyOwner } : {}) }));
267
358
  return selected;
268
359
  });
269
360
  return result.kind === 'resource-limit' ? failure('resource-limit', 'request-budget') : result;
@@ -1,7 +1,8 @@
1
1
  import type { DirectOperationContract } from './directOperation.js';
2
- import type { DirectCodecFailure, DirectDecodedXml, DirectXmlLimits } from './directCodec.js';
2
+ import type { DirectCodecFailure, DirectDecodedXml, ComponentDecodedXml, DirectXmlLimits } from './directCodec.js';
3
3
  import type { ExpandedName, SyntaxElement } from '../loader/orderedSyntax.js';
4
4
  import type { ResolverUsage } from './semanticBudget.js';
5
+ import type { ComponentRecordProjection, ComponentRecordDecodedXml } from './componentRecordProjection.js';
5
6
  export interface DirectSoapOptions {
6
7
  readonly service: ExpandedName;
7
8
  readonly port: string;
@@ -18,11 +19,12 @@ export interface DirectSoapFailure {
18
19
  readonly kind: DirectCodecFailure['kind'] | 'transport' | 'protocol';
19
20
  readonly rule: string;
20
21
  readonly usage: ResolverUsage;
22
+ readonly phase?: 'input' | 'response';
21
23
  }
22
- export type DirectSoapResult = DirectSoapFailure | Readonly<{
24
+ type SoapResult<D> = DirectSoapFailure | Readonly<{
23
25
  kind: 'soap-response' | 'soap-fault';
24
26
  admitted: false;
25
- decoded: DirectDecodedXml;
27
+ decoded: D;
26
28
  /** Actual bounded HTTP entity bytes, before any decoding; caller-owned data. */
27
29
  responseBytes: Uint8Array;
28
30
  status: number;
@@ -33,10 +35,32 @@ export type DirectSoapResult = DirectSoapFailure | Readonly<{
33
35
  string: string;
34
36
  actor?: string;
35
37
  }>;
38
+ /** Qualified optional response blocks ignored under SOAP 1.1; their application semantics were not assessed. */
39
+ ignoredHeaders?: readonly ExpandedName[];
36
40
  usage: ResolverUsage;
37
41
  }>;
42
+ export type DirectSoapResult = SoapResult<DirectDecodedXml>;
43
+ export type ComponentSoapResult = SoapResult<ComponentDecodedXml>;
44
+ export type ComponentRecordSoapResult = SoapResult<ComponentDecodedXml | ComponentRecordDecodedXml>;
45
+ export interface ComponentSoapOptions extends Omit<DirectSoapOptions, 'endpoint' | 'allowEndpoint'> {
46
+ readonly endpoint?: string;
47
+ /** Optional restriction; omission permits only the configured or selected address. */
48
+ readonly allowEndpoint?: (endpoint: URL) => boolean;
49
+ /** Additional caller-owned PEM trust anchor; certificate and hostname verification remain enabled. */
50
+ readonly ca?: string;
51
+ }
38
52
  /** Shared entry guard: consumers must call before reading any SOAP option. */
39
- export declare function directSoapOptionsShape(options: unknown, check: () => void): string | undefined;
53
+ export declare function directSoapOptionsShape(options: unknown, check: () => void, additional?: readonly string[]): string | undefined;
40
54
  /** Authentication and fresh-value validation precede dependency bootstrap and all HTTP I/O. */
41
55
  export declare function exchangeDirectSoap(contract: DirectOperationContract, inputMapping: unknown, application: unknown, options: DirectSoapOptions): Promise<DirectSoapResult>;
42
- //# sourceMappingURL=directSoap.d.ts.map
56
+ /** Execute one authenticated component mapping through the existing SOAP client and native XML checks.
57
+ * @remarks HTTPS transport with verified server identity is supported. Client certificates, timestamps and
58
+ * timestamp layouts refuse before I/O. Algorithm suites constrain WS-Security cryptographic operations;
59
+ * this fragment has no supporting tokens, signature or encryption operations and emits no security header.
60
+ * Optional caller restrictions narrow the selected/configured endpoint. No gateway or source admission is granted here.
61
+ * @returns A validated response/fault or explicit failure, with owned work and connections closed.
62
+ * @throws TypeError For foreign native handles. Invalid explicit timer/XML capacities throw RangeError.
63
+ */
64
+ export declare function exchangeComponentSoap(contract: DirectOperationContract, inputMapping: unknown, application: unknown, options: ComponentSoapOptions): Promise<ComponentSoapResult>;
65
+ export declare function exchangeComponentSoap(contract: DirectOperationContract, inputMapping: unknown, application: unknown, options: ComponentSoapOptions, responseProjection: ComponentRecordProjection): Promise<ComponentRecordSoapResult>;
66
+ export {};
@@ -1,18 +1,21 @@
1
1
  import { isApplicationUnmetered } from './semanticBudget.js';
2
2
  import { directDataOwnership, directLimit } from './directExecutionPolicy.js';
3
- /** Internal, one-retained-operation, unauthenticated loopback SOAP 1.1 adapter. */
3
+ /** Shared retained-operation SOAP 1.1 exchange; profile-specific authority stays explicit. */
4
4
  import { checkSemanticBudget } from './semanticBudget.js';
5
5
  import { DataOwnershipLimitError } from './dataOwnership.js';
6
6
  import { Agent } from 'node:http';
7
+ import { Agent as HttpsAgent } from 'node:https';
7
8
  import { types } from 'node:util';
8
9
  import { WSDL } from 'soap/lib/wsdl/index.js';
9
10
  import { Client } from 'soap/lib/client.js';
10
11
  import { HttpClient } from 'soap/lib/http.js';
11
12
  import { inspectDirectOperation } from './directOperation.js';
12
- import { createDirectValueMapping, inspectDirectValueMapping } from './directValues.js';
13
- import { decodeDirectXml, encodeDirectXml, DIRECT_XML_LIMITS } from './directCodec.js';
14
- import { prepareDirectSoapSource, DirectSoapSourceError } from './directSoapSource.js';
15
- import { isXmlNCName, resolveLexicalQName, SchemaLoadingError } from '../loader/orderedSyntax.js';
13
+ import { createDirectValueMapping, inspectDirectValueMapping, createComponentDirectionalMapping, inspectComponentValueMapping } from './directValues.js';
14
+ import { decodeDirectXml, encodeDirectXml, decodeComponentXml, encodeComponentXml, DIRECT_XML_LIMITS } from './directCodec.js';
15
+ import { prepareDirectSoapSource, prepareComponentSoapWsdl, DirectSoapSourceError } from './directSoapSource.js';
16
+ import { isXmlNCName, resolveLexicalQName, SchemaLoadingError, syntaxElements, syntaxAttribute, WSDL_NAMESPACE } from '../loader/orderedSyntax.js';
17
+ import { decodeComponentRecordXml, inspectComponentRecordProjection } from './componentRecordProjection.js';
18
+ import { assessComponentSoapHeader } from './soapHeaders.js';
16
19
  const SOAP = 'http://schemas.xmlsoap.org/soap/envelope/';
17
20
  class Stop extends Error {
18
21
  kind;
@@ -25,11 +28,11 @@ class Stop extends Error {
25
28
  }
26
29
  const same = (a, b) => a.namespace === b.namespace && a.local === b.local;
27
30
  /** Shared entry guard: consumers must call before reading any SOAP option. */
28
- export function directSoapOptionsShape(options, check) {
31
+ export function directSoapOptionsShape(options, check, additional = []) {
29
32
  if (!options || typeof options !== 'object' || types.isProxy(options)
30
33
  || ![null, Object.prototype].includes(Object.getPrototypeOf(options)))
31
34
  return 'data-only SOAP options required';
32
- const allowed = new Set(['service', 'port', 'endpoint', 'allowEndpoint', 'signal', 'timeoutMs', 'limits', 'capabilities']);
35
+ const allowed = new Set(['service', 'port', 'endpoint', 'allowEndpoint', 'signal', 'timeoutMs', 'limits', 'capabilities', ...additional]);
33
36
  for (const key of Reflect.ownKeys(options)) {
34
37
  check();
35
38
  const descriptor = Object.getOwnPropertyDescriptor(options, key);
@@ -40,12 +43,58 @@ export function directSoapOptionsShape(options, check) {
40
43
  }
41
44
  /** Authentication and fresh-value validation precede dependency bootstrap and all HTTP I/O. */
42
45
  export async function exchangeDirectSoap(contract, inputMapping, application, options) {
43
- const { context, source } = inspectDirectOperation(contract);
44
46
  const input = inspectDirectValueMapping(inputMapping, contract);
47
+ return exchangeSoap(contract, input, application, options, {
48
+ component: false, encode: encodeDirectXml, decode: decodeDirectXml, create: createDirectValueMapping,
49
+ prepare: async (selection, check) => {
50
+ const { source } = inspectDirectOperation(contract);
51
+ const { wsdlText } = prepareDirectSoapSource(contract, selection, check);
52
+ const wsdl = new WSDL(wsdlText, source.root.uri, { wsdl_options: { overrideImportLocation: () => { throw new Stop('unsupported', 'dependency import forbidden'); } } });
53
+ await new Promise((resolve, reject) => wsdl.onReady(error => error ? reject(error) : resolve()));
54
+ return wsdl;
55
+ },
56
+ });
57
+ }
58
+ export async function exchangeComponentSoap(contract, inputMapping, application, options, responseProjection) {
59
+ const { mapping: input } = inspectComponentValueMapping(inputMapping, contract);
60
+ if (responseProjection !== undefined) {
61
+ inspectComponentRecordProjection(responseProjection, contract);
62
+ return exchangeSoap(contract, input, application, options, {
63
+ component: true,
64
+ encode(owner, mapping, value, controls) {
65
+ if (mapping.kind !== 'component-mapping')
66
+ throw new TypeError('SOAP input requires the native input mapping');
67
+ return encodeComponentXml(owner, mapping, value, controls);
68
+ },
69
+ decode(owner, mapping, bytes, controls) {
70
+ if (mapping.kind === 'component-record-projection')
71
+ return decodeComponentRecordXml(owner, mapping, bytes, controls);
72
+ return decodeComponentXml(owner, mapping, bytes, { ...controls, selectPayload(root) {
73
+ const selected = controls.selectPayload(root);
74
+ if (selected.mapping.kind !== 'component-mapping')
75
+ throw new TypeError('Normal component decoding requires its exact mapping');
76
+ return { payload: selected.payload, mapping: selected.mapping };
77
+ } });
78
+ },
79
+ create(owner, direction, controls) {
80
+ return direction.kind === 'output' ? responseProjection : createComponentDirectionalMapping(owner, input, direction, controls);
81
+ },
82
+ prepare: (selection, check) => prepareComponentSoapWsdl(contract, selection, check),
83
+ });
84
+ }
85
+ return exchangeSoap(contract, input, application, options, {
86
+ component: true, encode: encodeComponentXml, decode: decodeComponentXml,
87
+ create: (owner, direction, controls) => createComponentDirectionalMapping(owner, input, direction, controls),
88
+ prepare: (selection, check) => prepareComponentSoapWsdl(contract, selection, check),
89
+ });
90
+ }
91
+ async function exchangeSoap(contract, input, application, options, profile) {
92
+ const { context } = inspectDirectOperation(contract);
45
93
  if (input.direction.kind !== 'input')
46
94
  throw new TypeError('SOAP request requires the exact input mapping');
47
95
  const { budget } = context;
48
- const fail = (kind, rule) => Object.freeze({ kind, rule, usage: Object.freeze({ ...budget.usage() }) });
96
+ const fail = (kind, rule, phase) => Object.freeze({ kind, rule,
97
+ ...(profile.component && phase ? { phase } : {}), usage: Object.freeze({ ...budget.usage() }) });
49
98
  let signal;
50
99
  const check = () => { checkSemanticBudget(budget); if (signal?.aborted)
51
100
  throw new Stop('cancelled', 'cooperative-cancellation'); };
@@ -58,7 +107,7 @@ export async function exchangeDirectSoap(contract, inputMapping, application, op
58
107
  check();
59
108
  // Options are a closed capability surface. Never silently discard security,
60
109
  // headers, endpoint agents, redirects, streaming or other caller extensions.
61
- const optionRule = directSoapOptionsShape(options, check);
110
+ const optionRule = directSoapOptionsShape(options, check, profile.component ? ['ca'] : []);
62
111
  if (optionRule)
63
112
  return fail('unsupported', optionRule);
64
113
  signal = options.signal;
@@ -66,8 +115,20 @@ export async function exchangeDirectSoap(contract, inputMapping, application, op
66
115
  return fail('unsupported', 'native AbortSignal required');
67
116
  const allowEndpoint = options.allowEndpoint;
68
117
  check();
69
- const config = directDataOwnership(budget).freeze(directDataOwnership(budget).snapshot({ service: options.service, port: options.port, endpoint: options.endpoint,
70
- timeoutMs: options.timeoutMs ?? (isApplicationUnmetered(budget) ? 0 : 15_000), limits: options.limits ?? {}, capabilities: options.capabilities ?? [] }));
118
+ let selectedEndpoint = options.endpoint;
119
+ if (profile.component && selectedEndpoint === undefined) {
120
+ const { source } = inspectDirectOperation(contract);
121
+ const services = source.documents.flatMap(d => syntaxElements(d.root, WSDL_NAMESPACE, 'service').filter(n => syntaxAttribute(d.root, 'targetNamespace') === options.service?.namespace && syntaxAttribute(n, 'name') === options.service?.local));
122
+ const ports = services.flatMap(n => syntaxElements(n, WSDL_NAMESPACE, 'port').filter(p => syntaxAttribute(p, 'name') === options.port));
123
+ const addresses = ports.flatMap(p => syntaxElements(p, 'http://schemas.xmlsoap.org/wsdl/soap/', 'address'));
124
+ if (services.length !== 1 || ports.length !== 1 || addresses.length !== 1 || !syntaxAttribute(addresses[0], 'location')) {
125
+ return fail('unsupported', 'Select one SOAP service/port address or supply an endpoint override');
126
+ }
127
+ selectedEndpoint = syntaxAttribute(addresses[0], 'location');
128
+ }
129
+ const config = directDataOwnership(budget).freeze(directDataOwnership(budget).snapshot({ service: options.service, port: options.port, endpoint: selectedEndpoint,
130
+ timeoutMs: options.timeoutMs ?? (profile.component || isApplicationUnmetered(budget) ? 0 : 15_000), limits: options.limits ?? {},
131
+ ca: options.ca, capabilities: options.capabilities ?? [] }));
71
132
  if (!Array.isArray(config.capabilities) || config.capabilities.length)
72
133
  return fail('unsupported', 'SOAP capability');
73
134
  if (!Number.isSafeInteger(config.timeoutMs) || config.timeoutMs < 0 || config.timeoutMs > 2_147_483_647)
@@ -81,31 +142,52 @@ export async function exchangeDirectSoap(contract, inputMapping, application, op
81
142
  if (typeof config.endpoint !== 'string' || typeof config.port !== 'string' || !isXmlNCName(config.port)
82
143
  || !config.service || typeof config.service.namespace !== 'string' || !isXmlNCName(config.service.local))
83
144
  return fail('unsupported', 'explicit SOAP selection');
84
- const endpoint = new URL(config.endpoint);
85
- if (endpoint.protocol !== 'http:' || endpoint.hostname !== '127.0.0.1' || !endpoint.port || endpoint.port === '1'
145
+ let endpoint;
146
+ try {
147
+ endpoint = new URL(config.endpoint);
148
+ }
149
+ catch {
150
+ return fail('unsupported', 'explicit HTTP(S) endpoint required');
151
+ }
152
+ if (profile.component) {
153
+ if (!['http:', 'https:'].includes(endpoint.protocol) || endpoint.username || endpoint.password || endpoint.hash || endpoint.search)
154
+ return fail('unsupported', 'explicit HTTP(S) endpoint required');
155
+ if (config.ca !== undefined && (typeof config.ca !== 'string' || endpoint.protocol !== 'https:'))
156
+ return fail('unsupported', 'HTTPS PEM trust anchor required');
157
+ const policy = contract.policy;
158
+ if (!policy)
159
+ return fail('unsupported', 'component policy authority required');
160
+ if (policy.kind === 'https-transport') {
161
+ if (endpoint.protocol !== 'https:')
162
+ return fail('unsupported', 'policy requires HTTPS');
163
+ if (policy.requireClientCertificate || policy.includeTimestamp || !['Strict', 'Lax'].includes(policy.layout))
164
+ return fail('unsupported', 'message security or client certificate capability required');
165
+ }
166
+ }
167
+ else if (endpoint.protocol !== 'http:' || endpoint.hostname !== '127.0.0.1' || !endpoint.port || endpoint.port === '1'
86
168
  || endpoint.username || endpoint.password || endpoint.hash || endpoint.search)
87
169
  return fail('unsupported', 'owned loopback HTTP endpoint required');
88
- if (typeof allowEndpoint !== 'function' || allowEndpoint(new URL(endpoint.href)) !== true)
170
+ if (!(profile.component && allowEndpoint === undefined)
171
+ && (typeof allowEndpoint !== 'function' || allowEndpoint(new URL(endpoint.href)) !== true))
89
172
  return fail('unsupported', 'endpoint authorization');
90
173
  const action = contract.binding.action;
91
174
  if (/[^\x20-\x21\x23-\x7e]|\\/.test(action))
92
175
  return fail('unsupported', 'unsafe SOAPAction');
93
- const { wsdlText } = prepareDirectSoapSource(contract, config, check);
94
176
  const elements = (node) => {
95
177
  check();
96
178
  return node.children.filter((child) => child.kind === 'element');
97
179
  };
98
- const encoded = encodeDirectXml(contract, input, application, { signal, limits });
99
- if (encoded.kind !== 'direct-encoded')
100
- return fail(encoded.kind, encoded.rule);
101
- const output = createDirectValueMapping(contract, { kind: 'output' }, { signal });
102
- if (output.kind !== 'direct-mapping')
180
+ const encoded = profile.encode(contract, input, application, { signal, limits });
181
+ if (!('bytes' in encoded))
182
+ return fail(encoded.kind, encoded.rule, 'input');
183
+ const output = profile.create(contract, { kind: 'output' }, { signal });
184
+ if (!('direction' in output))
103
185
  return fail(output.kind, output.rule);
104
186
  const faults = new Map();
105
187
  for (const fault of contract.faults) {
106
188
  check();
107
- const mapping = createDirectValueMapping(contract, { kind: 'fault', name: fault.name }, { signal });
108
- if (mapping.kind !== 'direct-mapping')
189
+ const mapping = profile.create(contract, { kind: 'fault', name: fault.name }, { signal });
190
+ if (!('direction' in mapping))
109
191
  return fail(mapping.kind, mapping.rule);
110
192
  faults.set(fault.name, mapping);
111
193
  }
@@ -115,12 +197,23 @@ export async function exchangeDirectSoap(contract, inputMapping, application, op
115
197
  stop('protocol', 'SOAP protocol attributes or text');
116
198
  return children;
117
199
  };
118
- const bodyRoot = (root) => {
200
+ const ignoredHeaders = [];
201
+ const bodyRoot = (root, incoming = false) => {
119
202
  if (!same(root.name, { namespace: SOAP, local: 'Envelope' }))
120
203
  stop('protocol', 'SOAP 1.1 Envelope required');
121
204
  const children = shape(root);
122
205
  if (children[0]?.name.namespace === SOAP && children[0].name.local === 'Header') {
123
- if (shape(children[0]).length)
206
+ if (profile.component && incoming) {
207
+ const assessed = assessComponentSoapHeader(children[0], check);
208
+ if (assessed.kind !== 'ignored-optional-headers')
209
+ stop(assessed.kind, assessed.rule);
210
+ else
211
+ for (const name of assessed.headers) {
212
+ check();
213
+ ignoredHeaders.push(name);
214
+ }
215
+ }
216
+ else if (shape(children[0]).length)
124
217
  stop('unsupported', 'incoming SOAP headers');
125
218
  children.shift();
126
219
  }
@@ -131,12 +224,11 @@ export async function exchangeDirectSoap(contract, inputMapping, application, op
131
224
  stop('protocol', 'one SOAP Body payload required');
132
225
  return body[0];
133
226
  };
134
- // The native dependency receives only the explicitly byte-bounded source.
135
- const wsdl = new WSDL(wsdlText, source.root.uri, { wsdl_options: { overrideImportLocation: () => { throw new Stop('unsupported', 'dependency import forbidden'); } } });
136
- await new Promise((resolve, reject) => wsdl.onReady(error => error ? reject(error) : resolve()));
227
+ const wsdl = await profile.prepare(config, check);
137
228
  check();
138
229
  // HTTP and codec byte limits bound buffering and output copies directly.
139
- agent = new Agent({ keepAlive: false, maxSockets: 1 });
230
+ agent = endpoint.protocol === 'https:' ? new HttpsAgent({ keepAlive: false, maxSockets: 1, rejectUnauthorized: true,
231
+ ...(config.ca === undefined ? {} : { ca: config.ca }) }) : new Agent({ keepAlive: false, maxSockets: 1 });
140
232
  controller = new AbortController();
141
233
  signal?.addEventListener('abort', abort, { once: true });
142
234
  let timedOut = false;
@@ -153,9 +245,9 @@ export async function exchangeDirectSoap(contract, inputMapping, application, op
153
245
  stop('protocol', 'dependency dispatch mismatch');
154
246
  if (Buffer.byteLength(data) > limits.maxBytes)
155
247
  stop('resource-limit', 'SOAP request byte limit');
156
- const outgoing = decodeDirectXml(contract, input, Buffer.from(data), { signal, limits,
248
+ const outgoing = profile.decode(contract, input, Buffer.from(data), { signal, limits,
157
249
  uri: 'urn:typescript-wsdl-client:outgoing-soap', selectPayload: root => ({ payload: bodyRoot(root), mapping: input }) });
158
- if (outgoing.kind !== 'direct-decoded')
250
+ if (!('validated' in outgoing))
159
251
  stop(outgoing.kind, outgoing.rule);
160
252
  check();
161
253
  }
@@ -185,7 +277,7 @@ export async function exchangeDirectSoap(contract, inputMapping, application, op
185
277
  // xmlToObject, including its special err.response parsing path.
186
278
  callback(complete);
187
279
  }, headers, { responseType: 'arraybuffer', decompress: false, maxRedirects: 0, maxContentLength: limits.maxBytes,
188
- maxBodyLength: limits.maxBytes, proxy: false, httpAgent: agent, signal: controller.signal, timeout: config.timeoutMs });
280
+ maxBodyLength: limits.maxBytes, proxy: false, httpAgent: agent, httpsAgent: agent, signal: controller.signal, timeout: config.timeoutMs });
189
281
  }
190
282
  }
191
283
  const client = new Client(wsdl, endpoint.href, { httpClient: new BufferedHttp() });
@@ -221,9 +313,9 @@ export async function exchangeDirectSoap(contract, inputMapping, application, op
221
313
  if (charset && charset !== bom && !(charset === 'utf-16' && bom.startsWith('utf-16')))
222
314
  return fail('protocol', 'SOAP charset disagrees with bytes');
223
315
  let faultInfo;
224
- const decoded = decodeDirectXml(contract, output, observed.bytes, { signal, limits, uri: endpoint.href,
316
+ const decoded = profile.decode(contract, output, observed.bytes, { signal, limits, uri: endpoint.href,
225
317
  selectPayload: root => {
226
- const payload = bodyRoot(root);
318
+ const payload = bodyRoot(root, true);
227
319
  if (!same(payload.name, { namespace: SOAP, local: 'Fault' })) {
228
320
  if (observed.status !== 200)
229
321
  stop('protocol', 'HTTP 500 requires SOAP Fault');
@@ -261,12 +353,13 @@ export async function exchangeDirectSoap(contract, inputMapping, application, op
261
353
  directDataOwnership(budget).freeze(faultInfo);
262
354
  return { payload: detail[0], mapping: faults.get(faultInfo.name) };
263
355
  } });
264
- if (decoded.kind !== 'direct-decoded')
265
- return fail(decoded.kind, decoded.rule);
356
+ if (!('validated' in decoded))
357
+ return fail(decoded.kind, decoded.rule, 'response');
266
358
  check();
267
359
  check();
268
360
  return Object.freeze({ kind: faultInfo ? 'soap-fault' : 'soap-response', admitted: false, decoded,
269
- responseBytes: new Uint8Array(observed.bytes), status: observed.status, ...(faultInfo ? { fault: faultInfo } : {}), usage: Object.freeze({ ...budget.usage() }) });
361
+ responseBytes: new Uint8Array(observed.bytes), status: observed.status, ...(faultInfo ? { fault: faultInfo } : {}),
362
+ ...(ignoredHeaders.length ? { ignoredHeaders: Object.freeze(ignoredHeaders) } : {}), usage: Object.freeze({ ...budget.usage() }) });
270
363
  }
271
364
  catch (error) {
272
365
  if (budget.exhausted())
@@ -1,5 +1,6 @@
1
1
  import type { DirectOperationContract } from './directOperation.js';
2
2
  import type { ExpandedName } from '../loader/orderedSyntax.js';
3
+ import { WSDL } from 'soap/lib/wsdl/index.js';
3
4
  export declare const DIRECT_SOAP_SOURCE_MAX_BYTES: number;
4
5
  export declare class DirectSoapSourceError extends Error {
5
6
  readonly kind: 'unsupported' | 'resource-limit';
@@ -12,4 +13,26 @@ export declare function prepareDirectSoapSource(contract: DirectOperationContrac
12
13
  original: Uint8Array<ArrayBufferLike>;
13
14
  wsdlText: string;
14
15
  };
15
- //# sourceMappingURL=directSoapSource.d.ts.map
16
+ /** Check each native operation before sharing its source metadata.
17
+ * @param contract Authentic component operation.
18
+ * @param config Exact service and port.
19
+ * @param check Invocation cancellation/resource checks.
20
+ * @returns No metadata or portable authority.
21
+ * @throws For foreign handles, unsupported source profile, action or selection.
22
+ */
23
+ export declare function validateComponentSoapSelection(contract: DirectOperationContract, config: {
24
+ service: ExpandedName;
25
+ port: string;
26
+ }, check: () => void): void;
27
+ /** Build the existing SOAP dependency from the exact authorized snapshot, with no file/network import fallback.
28
+ * @remarks Acyclic metadata resources are decoded independently under the native metadata policy. Original bytes and native semantics
29
+ * are unchanged. The dependency receives private aliases and a fresh prefilled cache; its import hook accepts only
30
+ * unambiguous native source edges to already prepared resources. This grants no endpoint or policy enforcement.
31
+ * @returns A prepared node-soap WSDL for the exact original service/port/binding.
32
+ * @throws DirectSoapSourceError For incompatible source/profile, unsafe dependency names, cycles or ambiguous imports.
33
+ * Caller cancellation/resource exceptions propagate unchanged.
34
+ */
35
+ export declare function prepareComponentSoapWsdl(contract: DirectOperationContract, config: {
36
+ service: ExpandedName;
37
+ port: string;
38
+ }, check: () => void): Promise<WSDL>;