@techspokes/typescript-wsdl-client 1.1.5 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (505) hide show
  1. package/README.md +80 -68
  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 +268 -0
  10. package/dist/cli.d.ts +0 -1
  11. package/dist/cli.js +92 -2
  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 +98 -28
  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/generateOperations.js +30 -11
  24. package/dist/client/generateTypes.d.ts +0 -1
  25. package/dist/client/generateUtils.d.ts +0 -1
  26. package/dist/client/generateUtils.js +7 -1
  27. package/dist/compiler/applicationGroups.d.ts +53 -0
  28. package/dist/compiler/applicationGroups.js +403 -0
  29. package/dist/compiler/buildCanonicalGraph.d.ts +0 -1
  30. package/dist/compiler/canonicalGraph.d.ts +4 -16
  31. package/dist/compiler/canonicalGraph.js +1 -8
  32. package/dist/compiler/catalogErrors.d.ts +0 -1
  33. package/dist/compiler/catalogProvenance.d.ts +0 -1
  34. package/dist/compiler/checkedAssessment.d.ts +0 -1
  35. package/dist/compiler/checkedAssessment.js +1 -1
  36. package/dist/compiler/checkedComponentSource.d.ts +16 -0
  37. package/dist/compiler/checkedComponentSource.js +31 -0
  38. package/dist/compiler/checkedSourcePreparation.d.ts +38 -1
  39. package/dist/compiler/checkedSourcePreparation.js +71 -0
  40. package/dist/compiler/complexTypeContent.d.ts +5 -6
  41. package/dist/compiler/complexTypeContent.js +2 -2
  42. package/dist/compiler/componentCorrespondence.d.ts +32 -0
  43. package/dist/compiler/componentCorrespondence.js +140 -0
  44. package/dist/compiler/componentRecordProjection.d.ts +112 -0
  45. package/dist/compiler/componentRecordProjection.js +329 -0
  46. package/dist/compiler/componentSoapPreparation.d.ts +20 -0
  47. package/dist/compiler/componentSoapPreparation.js +36 -0
  48. package/dist/compiler/composeCanonicalGraph.d.ts +0 -1
  49. package/dist/compiler/dataOwnership.d.ts +0 -1
  50. package/dist/compiler/dataOwnership.js +14 -4
  51. package/dist/compiler/datatypeValues.d.ts +0 -1
  52. package/dist/compiler/declarationIdentity.d.ts +22 -0
  53. package/dist/compiler/declarationIdentity.js +9 -0
  54. package/dist/compiler/directCodec.d.ts +79 -2
  55. package/dist/compiler/directCodec.js +310 -92
  56. package/dist/compiler/directExecutionPolicy.d.ts +0 -1
  57. package/dist/compiler/directOperation.d.ts +72 -8
  58. package/dist/compiler/directOperation.js +164 -19
  59. package/dist/compiler/directSoap.d.ts +29 -5
  60. package/dist/compiler/directSoap.js +154 -44
  61. package/dist/compiler/directSoapSource.d.ts +24 -1
  62. package/dist/compiler/directSoapSource.js +166 -19
  63. package/dist/compiler/directSourceCapsule.d.ts +74 -2
  64. package/dist/compiler/directSourceCapsule.js +484 -6
  65. package/dist/compiler/directStructure.d.ts +83 -6
  66. package/dist/compiler/directStructure.js +353 -58
  67. package/dist/compiler/directStructurePlan.d.ts +144 -2
  68. package/dist/compiler/directStructurePlan.js +615 -30
  69. package/dist/compiler/directValues.d.ts +76 -5
  70. package/dist/compiler/directValues.js +967 -117
  71. package/dist/compiler/finiteRe01Construction.d.ts +69 -0
  72. package/dist/compiler/finiteRe01Construction.js +422 -0
  73. package/dist/compiler/finiteRe01Verification.d.ts +81 -3
  74. package/dist/compiler/finiteRe01Verification.js +391 -4
  75. package/dist/compiler/generateCatalog.d.ts +0 -1
  76. package/dist/compiler/graphTraversal.d.ts +0 -1
  77. package/dist/compiler/hypotheticalScopedIdentity.d.ts +0 -1
  78. package/dist/compiler/legacyDeclarations.d.ts +26 -0
  79. package/dist/compiler/legacyDeclarations.js +144 -0
  80. package/dist/compiler/occurrenceAnalysis.d.ts +2 -1
  81. package/dist/compiler/occurrenceAnalysis.js +23 -7
  82. package/dist/compiler/originalSourceMembership.d.ts +0 -1
  83. package/dist/compiler/particleAttribution.d.ts +0 -1
  84. package/dist/compiler/particleAttribution.js +20 -0
  85. package/dist/compiler/particleDeclarationConsistency.d.ts +0 -1
  86. package/dist/compiler/particleDeclarationConsistency.js +9 -0
  87. package/dist/compiler/particleExtension.d.ts +0 -1
  88. package/dist/compiler/particleExtension.js +5 -1
  89. package/dist/compiler/particleLocalAssessment.d.ts +0 -1
  90. package/dist/compiler/particleRestriction.d.ts +0 -1
  91. package/dist/compiler/particleRestriction.js +6 -1
  92. package/dist/compiler/particleSemanticView.d.ts +2 -1
  93. package/dist/compiler/particleSemanticView.js +16 -3
  94. package/dist/compiler/particleWildcardRelation.d.ts +0 -1
  95. package/dist/compiler/projectionScalar.d.ts +49 -0
  96. package/dist/compiler/projectionScalar.js +218 -0
  97. package/dist/compiler/re01CandidateAssignments.d.ts +95 -0
  98. package/dist/compiler/re01CandidateAssignments.js +341 -0
  99. package/dist/compiler/re01CandidateCorrespondence.d.ts +22 -1
  100. package/dist/compiler/re01CandidateCorrespondence.js +167 -38
  101. package/dist/compiler/re01TypeProperties.d.ts +0 -1
  102. package/dist/compiler/re01TypePropertyValidation.d.ts +0 -1
  103. package/dist/compiler/resolveCanonicalGraph.d.ts +5 -2
  104. package/dist/compiler/resolveCanonicalGraph.js +77 -7
  105. package/dist/compiler/rpcStringValues.d.ts +30 -0
  106. package/dist/compiler/rpcStringValues.js +196 -0
  107. package/dist/compiler/rpcTypedValues.d.ts +48 -0
  108. package/dist/compiler/rpcTypedValues.js +190 -0
  109. package/dist/compiler/scalarSchemaAssessment.d.ts +0 -1
  110. package/dist/compiler/schemaAttributeGroupProperties.d.ts +0 -1
  111. package/dist/compiler/schemaAttributeProperties.d.ts +0 -1
  112. package/dist/compiler/schemaAttributeUses.d.ts +22 -2
  113. package/dist/compiler/schemaAttributeUses.js +86 -13
  114. package/dist/compiler/schemaBinaryWordReconstruction.d.ts +0 -1
  115. package/dist/compiler/schemaBuiltinFacets.d.ts +0 -1
  116. package/dist/compiler/schemaCalendarImages.d.ts +0 -1
  117. package/dist/compiler/schemaCalendarLanguage.d.ts +0 -1
  118. package/dist/compiler/schemaCompiler.d.ts +0 -1
  119. package/dist/compiler/schemaCompiler.js +44 -109
  120. package/dist/compiler/schemaComponentEquality.d.ts +0 -1
  121. package/dist/compiler/schemaConstructionAssessment.d.ts +34 -1
  122. package/dist/compiler/schemaConstructionAssessment.js +88 -6
  123. package/dist/compiler/schemaDatatypeValues.d.ts +0 -1
  124. package/dist/compiler/schemaDecimalLanguage.d.ts +0 -1
  125. package/dist/compiler/schemaDeclarationPrimitives.d.ts +7 -2
  126. package/dist/compiler/schemaDeclarationPrimitives.js +18 -1
  127. package/dist/compiler/schemaDocumentSyntax.d.ts +0 -1
  128. package/dist/compiler/schemaDurationLanguage.d.ts +0 -1
  129. package/dist/compiler/schemaElementInstance.d.ts +30 -0
  130. package/dist/compiler/schemaElementInstance.js +45 -0
  131. package/dist/compiler/schemaElementProperties.d.ts +0 -1
  132. package/dist/compiler/schemaEndpointWordCapacity.d.ts +0 -1
  133. package/dist/compiler/schemaExactCalendar.d.ts +0 -1
  134. package/dist/compiler/schemaFacetAnnotation.d.ts +0 -1
  135. package/dist/compiler/schemaGeneratedScalarShape.d.ts +0 -1
  136. package/dist/compiler/schemaGeneratedScalarShape.js +2 -0
  137. package/dist/compiler/schemaIdentityConstraints.d.ts +0 -1
  138. package/dist/compiler/schemaIeeeLanguage.d.ts +0 -1
  139. package/dist/compiler/schemaIntegerImages.d.ts +0 -1
  140. package/dist/compiler/schemaLexicalPredicates.d.ts +0 -1
  141. package/dist/compiler/schemaNotationProperties.d.ts +0 -1
  142. package/dist/compiler/schemaNumericImageConditions.d.ts +0 -1
  143. package/dist/compiler/schemaParticleWildcardProperties.d.ts +0 -1
  144. package/dist/compiler/schemaPattern.d.ts +0 -1
  145. package/dist/compiler/schemaRegularLanguage.d.ts +0 -1
  146. package/dist/compiler/schemaScalarContext.d.ts +5 -1
  147. package/dist/compiler/schemaScalarKernel.d.ts +0 -1
  148. package/dist/compiler/schemaScalarWitnesses.d.ts +0 -1
  149. package/dist/compiler/schemaSimpleTypeProperties.d.ts +0 -1
  150. package/dist/compiler/schemaSourceGrammar.d.ts +0 -1
  151. package/dist/compiler/schemaSourceLexical.d.ts +0 -1
  152. package/dist/compiler/schemaSourceValues.d.ts +0 -1
  153. package/dist/compiler/schemaSourceWildcards.d.ts +1 -2
  154. package/dist/compiler/schemaSourceWildcards.js +3 -1
  155. package/dist/compiler/schemaSymbolicSequences.d.ts +0 -1
  156. package/dist/compiler/schemaSymbolicValueSets.d.ts +0 -1
  157. package/dist/compiler/schemaSyntaxAssessment.d.ts +0 -1
  158. package/dist/compiler/schemaTemporalAliases.d.ts +0 -1
  159. package/dist/compiler/schemaTokenImages.d.ts +0 -1
  160. package/dist/compiler/schemaTypeIdentity.d.ts +0 -1
  161. package/dist/compiler/schemaTypeIdentity.js +2 -0
  162. package/dist/compiler/schemaTypeRelations.d.ts +0 -1
  163. package/dist/compiler/schemaUri.d.ts +0 -1
  164. package/dist/compiler/schemaValueContext.d.ts +0 -1
  165. package/dist/compiler/schemaValueImages.d.ts +0 -1
  166. package/dist/compiler/schemaValueSequences.d.ts +0 -1
  167. package/dist/compiler/semanticBudget.d.ts +18 -1
  168. package/dist/compiler/semanticBudget.js +17 -2
  169. package/dist/compiler/semanticCatalog.d.ts +2 -3
  170. package/dist/compiler/semanticContext.d.ts +12 -1
  171. package/dist/compiler/semanticContext.js +39 -0
  172. package/dist/compiler/semanticTypeDependencies.d.ts +0 -1
  173. package/dist/compiler/semanticTypeReference.d.ts +0 -1
  174. package/dist/compiler/shapeResolver.d.ts +0 -1
  175. package/dist/compiler/soapHeaders.d.ts +16 -0
  176. package/dist/compiler/soapHeaders.js +42 -0
  177. package/dist/compiler/sourceSchemaBinding.d.ts +0 -1
  178. package/dist/compiler/standardSchemaComponents.d.ts +71 -0
  179. package/dist/compiler/standardSchemaComponents.js +74 -0
  180. package/dist/compiler/standardSchemaConstruction.d.ts +20 -0
  181. package/dist/compiler/standardSchemaConstruction.js +34 -0
  182. package/dist/compiler/structuralCompanions.d.ts +0 -1
  183. package/dist/compiler/validateSemanticGraph.d.ts +0 -1
  184. package/dist/compiler/wildcardAlgebra.d.ts +0 -1
  185. package/dist/compiler/wsdlPolicyRequirements.d.ts +43 -0
  186. package/dist/compiler/wsdlPolicyRequirements.js +239 -0
  187. package/dist/config.d.ts +0 -1
  188. package/dist/gateway/generateCheckedGateway.d.ts +32 -0
  189. package/dist/gateway/generateCheckedGateway.js +293 -0
  190. package/dist/gateway/generateComposedGateway.d.ts +16 -0
  191. package/dist/gateway/generateComposedGateway.js +65 -0
  192. package/dist/gateway/generateGateway.d.ts +0 -1
  193. package/dist/gateway/generateGateway.js +1 -0
  194. package/dist/gateway/generators.d.ts +0 -1
  195. package/dist/gateway/generators.js +19 -4
  196. package/dist/gateway/helpers.d.ts +1 -1
  197. package/dist/gateway/helpers.js +15 -0
  198. package/dist/generation/componentShape.d.ts +14 -0
  199. package/dist/generation/componentShape.js +293 -0
  200. package/dist/generation/preamble.d.ts +0 -1
  201. package/dist/generation/sourceLayout.d.ts +13 -0
  202. package/dist/generation/sourceLayout.js +40 -0
  203. package/dist/generation/writeGeneratedSource.d.ts +0 -1
  204. package/dist/index.d.ts +11 -2
  205. package/dist/index.js +4 -1
  206. package/dist/loader/fetch.d.ts +0 -1
  207. package/dist/loader/orderedSyntax.d.ts +12 -1
  208. package/dist/loader/orderedSyntax.js +40 -6
  209. package/dist/loader/resolutionDepth.d.ts +0 -1
  210. package/dist/loader/schemaInput.d.ts +28 -1
  211. package/dist/loader/schemaInput.js +41 -4
  212. package/dist/loader/schemaResources.d.ts +2 -1
  213. package/dist/loader/schemaResources.js +45 -4
  214. package/dist/loader/wsdlLoader.d.ts +0 -1
  215. package/dist/multiServicePipeline.d.ts +41 -0
  216. package/dist/multiServicePipeline.js +287 -0
  217. package/dist/openapi/casing.d.ts +0 -1
  218. package/dist/openapi/composeOpenAPI.d.ts +29 -0
  219. package/dist/openapi/composeOpenAPI.js +322 -0
  220. package/dist/openapi/generateOpenAPI.d.ts +0 -1
  221. package/dist/openapi/generatePaths.d.ts +0 -1
  222. package/dist/openapi/generateSchemas.d.ts +0 -1
  223. package/dist/openapi/security.d.ts +0 -1
  224. package/dist/pipeline.d.ts +7 -3
  225. package/dist/pipeline.js +15 -0
  226. package/dist/test/generateCheckedTests.d.ts +17 -0
  227. package/dist/test/generateCheckedTests.js +60 -0
  228. package/dist/test/generateTests.d.ts +0 -1
  229. package/dist/test/generators.d.ts +0 -1
  230. package/dist/test/mockData.d.ts +0 -1
  231. package/dist/test/mockData.js +20 -14
  232. package/dist/util/attributeWildcards.d.ts +0 -1
  233. package/dist/util/builder.d.ts +0 -1
  234. package/dist/util/catalogMeta.d.ts +0 -1
  235. package/dist/util/checkedCliDiagnostics.d.ts +11 -0
  236. package/dist/util/checkedCliDiagnostics.js +22 -0
  237. package/dist/util/cli.d.ts +0 -1
  238. package/dist/util/errors.d.ts +0 -1
  239. package/dist/util/imports.d.ts +0 -1
  240. package/dist/util/runtimeSource.d.ts +0 -1
  241. package/dist/util/runtimeSource.js +3 -5
  242. package/dist/util/securityConfig.d.ts +0 -1
  243. package/dist/util/streamConfig.d.ts +0 -1
  244. package/dist/util/tools.d.ts +0 -1
  245. package/dist/util/xmlWhitespace.d.ts +0 -1
  246. package/dist/xsd/primitives.d.ts +0 -1
  247. package/docs/agent-skill.md +12 -1
  248. package/docs/api-reference.md +127 -9
  249. package/docs/checked-gateway.md +212 -0
  250. package/docs/checked-generation.md +167 -0
  251. package/docs/cli-reference.md +48 -6
  252. package/docs/concepts.md +139 -5
  253. package/docs/configuration.md +15 -4
  254. package/docs/corpus.md +33 -0
  255. package/docs/direct-values.md +13 -13
  256. package/docs/examples/checked-forecast.wsdl +19 -0
  257. package/docs/gateway-guide.md +104 -27
  258. package/docs/generated-code.md +22 -11
  259. package/docs/mapping-contract.md +114 -0
  260. package/docs/migration-playbook.md +5 -1
  261. package/docs/migration.md +124 -6
  262. package/docs/output-anatomy.md +21 -18
  263. package/docs/production.md +7 -5
  264. package/docs/start-here.md +19 -3
  265. package/docs/supported-patterns.md +24 -3
  266. package/docs/testing.md +119 -31
  267. package/docs/troubleshooting.md +3 -1
  268. package/llms.txt +16 -8
  269. package/package.json +64 -23
  270. package/src/runtime/checkedGatewayHost.tpl.txt +157 -0
  271. package/src/runtime/clientStreamMethods.tpl.txt +156 -148
  272. package/src/runtime/operationsStreamHelper.tpl.txt +6 -6
  273. package/src/runtime/streamXml.ts +49 -21
  274. package/dist/app/generateApp.d.ts.map +0 -1
  275. package/dist/cli.d.ts.map +0 -1
  276. package/dist/client/checkedDirectRuntime.d.ts.map +0 -1
  277. package/dist/client/directClientRuntime.d.ts.map +0 -1
  278. package/dist/client/directClientVersion.d.ts.map +0 -1
  279. package/dist/client/generateClient.d.ts.map +0 -1
  280. package/dist/client/generateDirectClient.d.ts.map +0 -1
  281. package/dist/client/generateOperations.d.ts.map +0 -1
  282. package/dist/client/generateTypes.d.ts.map +0 -1
  283. package/dist/client/generateUtils.d.ts.map +0 -1
  284. package/dist/compiler/buildCanonicalGraph.d.ts.map +0 -1
  285. package/dist/compiler/canonicalGraph.d.ts.map +0 -1
  286. package/dist/compiler/catalogErrors.d.ts.map +0 -1
  287. package/dist/compiler/catalogProvenance.d.ts.map +0 -1
  288. package/dist/compiler/checkedAssessment.d.ts.map +0 -1
  289. package/dist/compiler/checkedSourcePreparation.d.ts.map +0 -1
  290. package/dist/compiler/complexTypeContent.d.ts.map +0 -1
  291. package/dist/compiler/composeCanonicalGraph.d.ts.map +0 -1
  292. package/dist/compiler/dataOwnership.d.ts.map +0 -1
  293. package/dist/compiler/datatypeValues.d.ts.map +0 -1
  294. package/dist/compiler/directCodec.d.ts.map +0 -1
  295. package/dist/compiler/directExecutionPolicy.d.ts.map +0 -1
  296. package/dist/compiler/directOperation.d.ts.map +0 -1
  297. package/dist/compiler/directSoap.d.ts.map +0 -1
  298. package/dist/compiler/directSoapSource.d.ts.map +0 -1
  299. package/dist/compiler/directSourceCapsule.d.ts.map +0 -1
  300. package/dist/compiler/directStructure.d.ts.map +0 -1
  301. package/dist/compiler/directStructurePlan.d.ts.map +0 -1
  302. package/dist/compiler/directValues.d.ts.map +0 -1
  303. package/dist/compiler/finiteRe01Verification.d.ts.map +0 -1
  304. package/dist/compiler/generateCatalog.d.ts.map +0 -1
  305. package/dist/compiler/graphTraversal.d.ts.map +0 -1
  306. package/dist/compiler/hypotheticalScopedIdentity.d.ts.map +0 -1
  307. package/dist/compiler/occurrenceAnalysis.d.ts.map +0 -1
  308. package/dist/compiler/originalSourceMembership.d.ts.map +0 -1
  309. package/dist/compiler/particleAttribution.d.ts.map +0 -1
  310. package/dist/compiler/particleDeclarationConsistency.d.ts.map +0 -1
  311. package/dist/compiler/particleExtension.d.ts.map +0 -1
  312. package/dist/compiler/particleLocalAssessment.d.ts.map +0 -1
  313. package/dist/compiler/particleRestriction.d.ts.map +0 -1
  314. package/dist/compiler/particleSemanticView.d.ts.map +0 -1
  315. package/dist/compiler/particleWildcardRelation.d.ts.map +0 -1
  316. package/dist/compiler/re01CandidateCorrespondence.d.ts.map +0 -1
  317. package/dist/compiler/re01TypeProperties.d.ts.map +0 -1
  318. package/dist/compiler/re01TypePropertyValidation.d.ts.map +0 -1
  319. package/dist/compiler/resolveCanonicalGraph.d.ts.map +0 -1
  320. package/dist/compiler/scalarSchemaAssessment.d.ts.map +0 -1
  321. package/dist/compiler/schemaAttributeGroupProperties.d.ts.map +0 -1
  322. package/dist/compiler/schemaAttributeProperties.d.ts.map +0 -1
  323. package/dist/compiler/schemaAttributeUses.d.ts.map +0 -1
  324. package/dist/compiler/schemaBinaryWordReconstruction.d.ts.map +0 -1
  325. package/dist/compiler/schemaBuiltinFacets.d.ts.map +0 -1
  326. package/dist/compiler/schemaCalendarImages.d.ts.map +0 -1
  327. package/dist/compiler/schemaCalendarLanguage.d.ts.map +0 -1
  328. package/dist/compiler/schemaCompiler.d.ts.map +0 -1
  329. package/dist/compiler/schemaComponentEquality.d.ts.map +0 -1
  330. package/dist/compiler/schemaConstructionAssessment.d.ts.map +0 -1
  331. package/dist/compiler/schemaDatatypeValues.d.ts.map +0 -1
  332. package/dist/compiler/schemaDecimalLanguage.d.ts.map +0 -1
  333. package/dist/compiler/schemaDeclarationPrimitives.d.ts.map +0 -1
  334. package/dist/compiler/schemaDocumentSyntax.d.ts.map +0 -1
  335. package/dist/compiler/schemaDurationLanguage.d.ts.map +0 -1
  336. package/dist/compiler/schemaElementProperties.d.ts.map +0 -1
  337. package/dist/compiler/schemaEndpointWordCapacity.d.ts.map +0 -1
  338. package/dist/compiler/schemaExactCalendar.d.ts.map +0 -1
  339. package/dist/compiler/schemaFacetAnnotation.d.ts.map +0 -1
  340. package/dist/compiler/schemaGeneratedScalarShape.d.ts.map +0 -1
  341. package/dist/compiler/schemaIdentityConstraints.d.ts.map +0 -1
  342. package/dist/compiler/schemaIeeeLanguage.d.ts.map +0 -1
  343. package/dist/compiler/schemaIntegerImages.d.ts.map +0 -1
  344. package/dist/compiler/schemaLexicalPredicates.d.ts.map +0 -1
  345. package/dist/compiler/schemaNotationProperties.d.ts.map +0 -1
  346. package/dist/compiler/schemaNumericImageConditions.d.ts.map +0 -1
  347. package/dist/compiler/schemaParticleWildcardProperties.d.ts.map +0 -1
  348. package/dist/compiler/schemaPattern.d.ts.map +0 -1
  349. package/dist/compiler/schemaRegularLanguage.d.ts.map +0 -1
  350. package/dist/compiler/schemaScalarContext.d.ts.map +0 -1
  351. package/dist/compiler/schemaScalarKernel.d.ts.map +0 -1
  352. package/dist/compiler/schemaScalarWitnesses.d.ts.map +0 -1
  353. package/dist/compiler/schemaSimpleTypeProperties.d.ts.map +0 -1
  354. package/dist/compiler/schemaSourceGrammar.d.ts.map +0 -1
  355. package/dist/compiler/schemaSourceLexical.d.ts.map +0 -1
  356. package/dist/compiler/schemaSourceValues.d.ts.map +0 -1
  357. package/dist/compiler/schemaSourceWildcards.d.ts.map +0 -1
  358. package/dist/compiler/schemaSymbolicSequences.d.ts.map +0 -1
  359. package/dist/compiler/schemaSymbolicValueSets.d.ts.map +0 -1
  360. package/dist/compiler/schemaSyntaxAssessment.d.ts.map +0 -1
  361. package/dist/compiler/schemaTemporalAliases.d.ts.map +0 -1
  362. package/dist/compiler/schemaTokenImages.d.ts.map +0 -1
  363. package/dist/compiler/schemaTypeIdentity.d.ts.map +0 -1
  364. package/dist/compiler/schemaTypeRelations.d.ts.map +0 -1
  365. package/dist/compiler/schemaUri.d.ts.map +0 -1
  366. package/dist/compiler/schemaValueContext.d.ts.map +0 -1
  367. package/dist/compiler/schemaValueImages.d.ts.map +0 -1
  368. package/dist/compiler/schemaValueSequences.d.ts.map +0 -1
  369. package/dist/compiler/semanticBudget.d.ts.map +0 -1
  370. package/dist/compiler/semanticCatalog.d.ts.map +0 -1
  371. package/dist/compiler/semanticContext.d.ts.map +0 -1
  372. package/dist/compiler/semanticTypeDependencies.d.ts.map +0 -1
  373. package/dist/compiler/semanticTypeReference.d.ts.map +0 -1
  374. package/dist/compiler/shapeResolver.d.ts.map +0 -1
  375. package/dist/compiler/sourceSchemaBinding.d.ts.map +0 -1
  376. package/dist/compiler/structuralCompanions.d.ts.map +0 -1
  377. package/dist/compiler/validateSemanticGraph.d.ts.map +0 -1
  378. package/dist/compiler/wildcardAlgebra.d.ts.map +0 -1
  379. package/dist/config.d.ts.map +0 -1
  380. package/dist/gateway/generateGateway.d.ts.map +0 -1
  381. package/dist/gateway/generators.d.ts.map +0 -1
  382. package/dist/gateway/helpers.d.ts.map +0 -1
  383. package/dist/generation/preamble.d.ts.map +0 -1
  384. package/dist/generation/writeGeneratedSource.d.ts.map +0 -1
  385. package/dist/index.d.ts.map +0 -1
  386. package/dist/loader/fetch.d.ts.map +0 -1
  387. package/dist/loader/orderedSyntax.d.ts.map +0 -1
  388. package/dist/loader/resolutionDepth.d.ts.map +0 -1
  389. package/dist/loader/schemaInput.d.ts.map +0 -1
  390. package/dist/loader/schemaResources.d.ts.map +0 -1
  391. package/dist/loader/wsdlLoader.d.ts.map +0 -1
  392. package/dist/openapi/casing.d.ts.map +0 -1
  393. package/dist/openapi/generateOpenAPI.d.ts.map +0 -1
  394. package/dist/openapi/generatePaths.d.ts.map +0 -1
  395. package/dist/openapi/generateSchemas.d.ts.map +0 -1
  396. package/dist/openapi/security.d.ts.map +0 -1
  397. package/dist/pipeline.d.ts.map +0 -1
  398. package/dist/runtime/jsonArray.d.ts +0 -24
  399. package/dist/runtime/jsonArray.d.ts.map +0 -1
  400. package/dist/runtime/jsonArray.js +0 -52
  401. package/dist/runtime/ndjson.d.ts +0 -24
  402. package/dist/runtime/ndjson.d.ts.map +0 -1
  403. package/dist/runtime/ndjson.js +0 -30
  404. package/dist/runtime/streamXml.d.ts +0 -45
  405. package/dist/runtime/streamXml.d.ts.map +0 -1
  406. package/dist/runtime/streamXml.js +0 -212
  407. package/dist/test/generateTests.d.ts.map +0 -1
  408. package/dist/test/generators.d.ts.map +0 -1
  409. package/dist/test/mockData.d.ts.map +0 -1
  410. package/dist/util/attributeWildcards.d.ts.map +0 -1
  411. package/dist/util/builder.d.ts.map +0 -1
  412. package/dist/util/catalogMeta.d.ts.map +0 -1
  413. package/dist/util/cli.d.ts.map +0 -1
  414. package/dist/util/errors.d.ts.map +0 -1
  415. package/dist/util/imports.d.ts.map +0 -1
  416. package/dist/util/runtimeSource.d.ts.map +0 -1
  417. package/dist/util/securityConfig.d.ts.map +0 -1
  418. package/dist/util/streamConfig.d.ts.map +0 -1
  419. package/dist/util/tools.d.ts.map +0 -1
  420. package/dist/util/xmlWhitespace.d.ts.map +0 -1
  421. package/dist/xsd/primitives.d.ts.map +0 -1
  422. package/docs/AGENTS.md +0 -47
  423. package/docs/README.md +0 -69
  424. package/docs/architecture.md +0 -158
  425. package/docs/content-model-analysis.md +0 -92
  426. package/docs/content-model-baseline.md +0 -121
  427. package/docs/content-model-catalog.md +0 -116
  428. package/docs/content-model-companions.md +0 -90
  429. package/docs/content-model-composition.md +0 -103
  430. package/docs/content-model-decisions.md +0 -79
  431. package/docs/content-model-gateway-feasibility.md +0 -169
  432. package/docs/content-model-graph.md +0 -121
  433. package/docs/content-model-loading.md +0 -163
  434. package/docs/content-model-matching.md +0 -85
  435. package/docs/content-model-readiness.md +0 -144
  436. package/docs/content-model-resolution.md +0 -81
  437. package/docs/content-model-s02-handoff.md +0 -98
  438. package/docs/content-model-s06-au-01.md +0 -425
  439. package/docs/content-model-s06-dt-01.md +0 -386
  440. package/docs/content-model-s06-pw-01.md +0 -350
  441. package/docs/content-model-s06-re-01-resolver-implementation.md +0 -869
  442. package/docs/content-model-s06-re-01-resolver.md +0 -513
  443. package/docs/content-model-s06-re-01-scalar-witnesses.md +0 -1423
  444. package/docs/content-model-s06-re-01-support-reconstruction.md +0 -6337
  445. package/docs/content-model-s06-re-01.md +0 -7477
  446. package/docs/content-model-s06-research-handoff.md +0 -909
  447. package/docs/content-model-shipped-fix.md +0 -83
  448. package/docs/content-model-soap-feasibility.md +0 -165
  449. package/docs/decisions/001-test-generation.md +0 -36
  450. package/docs/decisions/002-streamable-responses.md +0 -332
  451. package/docs/decisions/003-content-model-contracts.md +0 -280
  452. package/docs/file-naming-and-path-organization.md +0 -213
  453. package/docs/reference-validation.md +0 -243
  454. package/docs/releases/README.md +0 -94
  455. package/docs/releases/v0.20.0.md +0 -22
  456. package/docs/releases/v0.21.0.md +0 -30
  457. package/docs/releases/v0.22.0.md +0 -30
  458. package/docs/releases/v0.23.0.md +0 -31
  459. package/docs/releases/v0.24.0.md +0 -38
  460. package/docs/releases/v0.25.0.md +0 -31
  461. package/docs/releases/v0.25.2.md +0 -32
  462. package/docs/releases/v0.26.0.md +0 -32
  463. package/docs/releases/v0.27.0.md +0 -31
  464. package/docs/releases/v0.28.0.md +0 -32
  465. package/docs/releases/v0.29.0.md +0 -32
  466. package/docs/releases/v0.30.0.md +0 -30
  467. package/docs/releases/v0.30.1.md +0 -31
  468. package/docs/releases/v0.30.2.md +0 -30
  469. package/docs/releases/v0.30.3.md +0 -33
  470. package/docs/releases/v0.31.0.md +0 -33
  471. package/docs/releases/v0.32.0.md +0 -33
  472. package/docs/releases/v0.33.0.md +0 -34
  473. package/docs/releases/v0.34.0.md +0 -30
  474. package/docs/releases/v0.35.0.md +0 -33
  475. package/docs/releases/v0.36.0.md +0 -32
  476. package/docs/releases/v0.37.0.md +0 -33
  477. package/docs/releases/v0.38.0.md +0 -35
  478. package/docs/releases/v0.39.0.md +0 -35
  479. package/docs/releases/v0.40.0.md +0 -45
  480. package/docs/releases/v0.40.1.md +0 -34
  481. package/docs/releases/v1.0.0.md +0 -42
  482. package/docs/releases/v1.0.1.md +0 -38
  483. package/docs/releases/v1.0.2.md +0 -51
  484. package/docs/releases/v1.0.3.md +0 -37
  485. package/docs/releases/v1.0.4.md +0 -45
  486. package/docs/releases/v1.0.5.md +0 -41
  487. package/docs/releases/v1.0.6.md +0 -35
  488. package/docs/releases/v1.0.7.md +0 -36
  489. package/docs/releases/v1.1.0.md +0 -42
  490. package/docs/releases/v1.1.1.md +0 -44
  491. package/docs/releases/v1.1.2.md +0 -42
  492. package/docs/releases/v1.1.3.md +0 -36
  493. package/docs/releases/v1.1.4.md +0 -36
  494. package/docs/releases/v1.1.5.md +0 -38
  495. package/docs/roadmap/README.md +0 -107
  496. package/docs/roadmap/v1.0-capability-conformance-framework.md +0 -582
  497. package/docs/roadmap/v1.0-choice-union-mode.md +0 -90
  498. package/docs/roadmap/v1.0-contract-audit.md +0 -75
  499. package/docs/roadmap/v1.0-json-array-streaming.md +0 -101
  500. package/docs/roadmap/v1.0-openapi-fastify-compatibility.md +0 -99
  501. package/docs/roadmap/v1.0-release-candidate-gates.md +0 -92
  502. package/docs/roadmap/v1.0-wsdl-coverage-matrix.md +0 -200
  503. package/docs/roadmap/v1.0-xs-anyattribute-wildcard-bag.md +0 -932
  504. package/src/runtime/jsonArray.ts +0 -55
  505. package/src/runtime/ndjson.ts +0 -32
@@ -1,18 +1,30 @@
1
1
  import { directLimit, directLoadingLimits } from './directExecutionPolicy.js';
2
2
  /** Transient source-owned schema selection. This module grants no runtime admission. */
3
3
  import { loadSemanticSchemaInput } from '../loader/schemaInput.js';
4
- import { SchemaLoadingError, WSDL_NAMESPACE, syntaxAttribute, syntaxElements, isXmlNCName } from '../loader/orderedSyntax.js';
4
+ import { SchemaLoadingError, WSDL_NAMESPACE, XSD_NAMESPACE, syntaxAttribute, syntaxElements, isXmlNCName } from '../loader/orderedSyntax.js';
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';
13
+ /** Distinguish typed RPC parameters without inventing a document element.
14
+ * @param root Selected native message.
15
+ * @returns Whether the message uses the bounded RPC profile.
16
+ */
17
+ export function isRpcMessageRoot(root) {
18
+ return 'kind' in root && root.kind === 'rpc-typed-parts-v1';
19
+ }
10
20
  const issued = new WeakMap();
11
21
  /** Object identity authenticates the exact issued roots; context IDs and digests do not. */
12
22
  export function inspectDirectOperation(contract, expectedContext) {
13
23
  const owned = issued.get(contract);
14
24
  if (!owned || expectedContext !== undefined && owned.context !== expectedContext)
15
25
  throw new TypeError('Unauthenticated or foreign direct operation');
26
+ if (owned.policyOwner)
27
+ assertWsdlPolicyRequirements(owned.source, owned.policyOwner);
16
28
  return owned;
17
29
  }
18
30
  class Refusal extends Error {
@@ -32,10 +44,47 @@ export async function selectDirectOperation(source, selector, options) {
32
44
  }
33
45
  /** Private-module composition seam: portable reading and selection share one request. */
34
46
  export async function selectDirectOperationInRequest(source, selector, options, budget) {
47
+ return selectOperationInRequest(source, selector, options, budget, 'direct');
48
+ }
49
+ /** Select through additive native component qualification without granting codec, transport or runtime admission.
50
+ * @remarks The same WSDL binding/message owner is used by the existing preview. New contracts carry a distinct
51
+ * basis and correspondence; preview codecs and source capsules continue to refuse them until independently extended.
52
+ * @returns Fresh source-bound operation roots or an explicit qualification/selection failure.
53
+ */
54
+ export async function selectComponentOperation(source, selector, options) {
55
+ return selectComponentOperationInRequest(source, selector, options, createApplicationBudget(options.limits));
56
+ }
57
+ /** Private composition seam: artifact reading and fresh component selection share the same sticky request. */
58
+ export async function selectComponentOperationInRequest(source, selector, options, budget) {
59
+ return selectOperationInRequest(source, selector, { ...options, standardLibraries: Object.freeze([...(options.standardLibraries ?? [])]) }, budget, 'components');
60
+ }
61
+ /** Select requested service operations against one fresh native source snapshot and sticky request.
62
+ * @remarks Native whole-source qualification is reused by identity within this batch only. Every binding/message
63
+ * selection still runs through the same owner; no source flags, saved reports or operation-name guesses are consumed.
64
+ * @returns One result in each requested position, including explicit refusals. No requested operation is omitted.
65
+ */
66
+ export async function selectComponentOperations(source, selectors, options) {
67
+ const budget = createApplicationBudget(options.limits), cache = {};
68
+ const owned = budget.snapshot(selectors);
69
+ if (!Array.isArray(owned) || Object.keys(owned).length !== owned.length)
70
+ throw new TypeError('Dense operation selectors required');
71
+ const results = [];
72
+ const captured = { ...options, standardLibraries: Object.freeze([...(options.standardLibraries ?? [])]) };
73
+ for (const selector of owned)
74
+ results.push(await selectOperationInRequest(source, selector, captured, budget, 'components', cache));
75
+ return Object.freeze(results);
76
+ }
77
+ async function selectOperationInRequest(source, selector, options, budget, profile, cache) {
35
78
  const check = () => { if (options.signal?.aborted)
36
79
  throw new Cancelled(); budget.chargeWork(); };
37
80
  const refuse = (kind, rule) => { throw new Refusal(kind, rule); };
38
81
  const failure = (kind, rule) => Object.freeze({ kind, rule, usage: Object.freeze({ ...budget.usage() }) });
82
+ const sourceFailure = (kind, rule) => {
83
+ const result = failure(kind, rule);
84
+ if (cache && result.kind !== 'selected')
85
+ cache.failure = result;
86
+ return result;
87
+ };
39
88
  try {
40
89
  // Fixed terminal envelope and issuance bookkeeping, before any source work.
41
90
  budget.chargeWork(4096);
@@ -44,20 +93,43 @@ export async function selectDirectOperationInRequest(source, selector, options,
44
93
  const name = (value) => value && typeof value.namespace === 'string' && typeof value.local === 'string' && isXmlNCName(value.local);
45
94
  if (!name(ownedSelector.portType) || !name(ownedSelector.binding) || typeof ownedSelector.operation !== 'string' || !isXmlNCName(ownedSelector.operation))
46
95
  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); } });
96
+ if (cache?.failure)
97
+ return failure(cache.failure.kind, cache.failure.rule);
98
+ const input = cache?.input ?? await loadSemanticSchemaInput(source, { ...options.loading, limits: directLoadingLimits(budget, options.loading.limits), signal: options.signal, chargeWork: amount => { check(); budget.chargeWork(amount); } });
99
+ if (cache)
100
+ cache.input = input;
48
101
  check();
49
102
  const result = budget.guard(() => {
50
- const qualified = qualifyDirectSource(input, { budget, maxNodes: options.limits?.maxNodes ?? directLimit(budget, DEFAULT_MAX_NODES), check });
103
+ const qualificationOptions = { budget, maxNodes: options.limits?.maxNodes ?? directLimit(budget, DEFAULT_MAX_NODES), check };
104
+ const qualified = cache?.qualified ?? (profile === 'direct' ? qualifyDirectSource(input, qualificationOptions)
105
+ : qualifyComponentSource(input, { ...qualificationOptions, standardLibraries: options.standardLibraries }));
51
106
  if (qualified.kind === 'resource-limit')
52
- return failure('resource-limit', 'source-qualification');
107
+ return sourceFailure('resource-limit', 'source-qualification');
53
108
  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;
109
+ return sourceFailure('resource-limit', 'source-preparation');
110
+ if (qualified.kind !== 'qualified-source' && qualified.kind !== 'component-source')
111
+ return sourceFailure(qualified.kind === 'source-preparation-failed' && qualified.category === 'invalid-schema' ? 'invalid-schema' : 'inconclusive', 'source-preparation');
112
+ if (qualified.kind === 'component-source')
113
+ inspectComponentSourceQualification(qualified, input);
114
+ const construction = qualified.kind === 'component-source' ? qualified.construction : qualified;
115
+ const eligible = qualified.kind === 'component-source' ? qualified.schemaEligible : qualified.eligible;
116
+ if (!eligible)
117
+ return sourceFailure(construction.localDisproved || construction.closure.kind === 'invalid-schema' ? 'invalid-schema' : 'inconclusive', qualified.kind === 'component-source' && qualified.correspondence.kind === 'inconclusive-correspondence'
118
+ ? `whole-source-qualification:${qualified.correspondence.rule}${qualified.correspondence.path ? ':' + qualified.correspondence.path : ''}` : 'whole-source-qualification');
119
+ const { request } = construction;
60
120
  const context = request.actual;
121
+ let policyOwner;
122
+ if (profile === 'components') {
123
+ const policies = cache?.policy ?? prepareWsdlPolicyRequirements(input, budget, check);
124
+ if (policies.kind !== 'wsdl-policy-requirements')
125
+ return sourceFailure(policies.kind, 'rule' in policies ? policies.rule : 'policy-budget');
126
+ assertWsdlPolicyRequirements(input, policies);
127
+ policyOwner = policies;
128
+ if (cache && qualified.kind === 'component-source') {
129
+ cache.qualified = qualified;
130
+ cache.policy = policies;
131
+ }
132
+ }
61
133
  const children = (node) => {
62
134
  check();
63
135
  budget.chargeWork(128 + node.children.length * 16 + node.attributes.length * 32);
@@ -70,6 +142,15 @@ export async function selectDirectOperationInRequest(source, selector, options,
70
142
  return syntaxElements(node);
71
143
  };
72
144
  const attr = syntaxAttribute;
145
+ const addressingMessages = new Set();
146
+ if (profile === 'components')
147
+ for (const document of input.documents) {
148
+ for (const portType of children(document.root).filter(node => node.name.namespace === WSDL_NAMESPACE && node.name.local === 'portType'))
149
+ for (const operation of children(portType).filter(node => node.name.namespace === WSDL_NAMESPACE && node.name.local === 'operation'))
150
+ for (const message of children(operation).filter(node => node.name.namespace === WSDL_NAMESPACE && ['input', 'output', 'fault'].includes(node.name.local)))
151
+ addressingMessages.add(message);
152
+ }
153
+ const addressingAttribute = (node, namespace, local) => addressingMessages.has(node) && namespace === ADDRESSING_WSDL && local === 'Action';
73
154
  const exactly = (node, namespace, local) => {
74
155
  const found = children(node).filter(c => c.name.namespace === namespace && c.name.local === local);
75
156
  if (found.length !== 1)
@@ -78,7 +159,8 @@ export async function selectDirectOperationInRequest(source, selector, options,
78
159
  };
79
160
  const shape = (node, allowed) => {
80
161
  for (const child of children(node))
81
- if (!allowed.includes(`${child.name.namespace}#${child.name.local}`))
162
+ if (!allowed.includes(`${child.name.namespace}#${child.name.local}`)
163
+ && !policyOwner?.isPolicyMetadata(child))
82
164
  refuse('unsupported', 'binding-child-shape');
83
165
  for (const child of node.children) {
84
166
  if (child.kind !== 'text')
@@ -93,7 +175,8 @@ export async function selectDirectOperationInRequest(source, selector, options,
93
175
  const attrs = (node, allowed) => {
94
176
  children(node);
95
177
  for (const a of node.attributes)
96
- if (a.name.namespace !== '' || !allowed.includes(a.name.local))
178
+ if (!addressingAttribute(node, a.name.namespace, a.name.local)
179
+ && (a.name.namespace !== '' || !allowed.includes(a.name.local)))
97
180
  refuse('unsupported', 'binding-attribute-shape');
98
181
  };
99
182
  // Conservative extension policy: only known WSDL 1.1/SOAP 1.1 syntax, even when optional.
@@ -105,7 +188,7 @@ export async function selectDirectOperationInRequest(source, selector, options,
105
188
  portType: ['name'], operation: ['name', 'parameterOrder'], input: ['name', 'message'], output: ['name', 'message'], fault: ['name', 'message'],
106
189
  binding: ['name', 'type'], service: ['name'], port: ['name', 'binding'],
107
190
  };
108
- const soapAttributes = { binding: ['style', 'transport'], operation: ['soapAction', 'style'], body: ['use', 'parts'], fault: ['name', 'use'], address: ['location'] };
191
+ const soapAttributes = { binding: ['style', 'transport'], operation: ['soapAction', 'style'], body: profile === 'components' ? ['use', 'parts', 'namespace', 'encodingStyle'] : ['use', 'parts'], fault: ['name', 'use'], address: ['location'] };
109
192
  for (const document of input.documents) {
110
193
  const stack = [document.root];
111
194
  while (stack.length) {
@@ -113,12 +196,18 @@ export async function selectDirectOperationInRequest(source, selector, options,
113
196
  const nested = children(node);
114
197
  if (qualifiedSchemas.has(node))
115
198
  continue;
199
+ if (policyOwner?.isPolicyMetadata(node))
200
+ continue;
116
201
  if (node.name.namespace === WSDL_NAMESPACE && node.name.local === 'documentation')
117
202
  continue;
118
203
  const allowed = node.name.namespace === WSDL_NAMESPACE ? attributes[node.name.local] : node.name.namespace === SOAP ? soapAttributes[node.name.local] : undefined;
119
204
  if (!allowed)
120
205
  return refuse('unsupported', 'wsdl-extension');
121
206
  for (const a of node.attributes) {
207
+ // @why The May 2006 WSDL binding assigns no normative intent to Action without UsingAddressing.
208
+ // UsingAddressing remains unsupported, so these attributes are retained metadata, never SOAP header instructions.
209
+ if (addressingAttribute(node, a.name.namespace, a.name.local))
210
+ continue;
122
211
  if (a.name.namespace === WSDL_NAMESPACE && a.name.local === 'required' && node.name.namespace === SOAP && ['true', '1', 'false', '0'].includes(a.value))
123
212
  continue;
124
213
  if (a.name.namespace !== '' || !allowed.includes(a.name.local))
@@ -174,7 +263,8 @@ export async function selectDirectOperationInRequest(source, selector, options,
174
263
  return refuse('unsupported', 'soap-binding-style');
175
264
  if (attr(soapBinding, 'transport') !== HTTP)
176
265
  return refuse('unsupported', 'soap-transport');
177
- if ((attr(soapOperation, 'style') ?? attr(soapBinding, 'style') ?? 'document') !== 'document')
266
+ const style = attr(soapOperation, 'style') ?? attr(soapBinding, 'style') ?? 'document';
267
+ if (style !== 'document' && !(profile === 'components' && style === 'rpc'))
178
268
  return refuse('unsupported', 'soap-style');
179
269
  const action = attr(soapOperation, 'soapAction');
180
270
  if (action === undefined)
@@ -201,6 +291,7 @@ export async function selectDirectOperationInRequest(source, selector, options,
201
291
  shape(boundSyntax, [soap(faultName === undefined ? 'body' : 'fault'), ws('documentation')]);
202
292
  const body = exactly(boundSyntax, SOAP, faultName === undefined ? 'body' : 'fault');
203
293
  shape(body, []);
294
+ attrs(body, faultName === undefined ? ['use', 'parts'] : ['use', 'name']);
204
295
  if (attr(body, 'use') !== 'literal')
205
296
  return refuse('unsupported', 'literal-required');
206
297
  if (faultName !== undefined && attr(body, 'name') !== faultName)
@@ -227,17 +318,61 @@ export async function selectDirectOperationInRequest(source, selector, options,
227
318
  return refuse('selection-refused', 'element-type');
228
319
  return Object.freeze({ message: message.name, part: partName, element, type: element.type, source: part.source });
229
320
  };
321
+ const rpcRoot = (messageSyntax, boundSyntax, direction) => {
322
+ attrs(messageSyntax, ['name', 'message']);
323
+ attrs(boundSyntax, ['name']);
324
+ shape(messageSyntax, [ws('documentation')]);
325
+ shape(boundSyntax, [soap('body'), ws('documentation')]);
326
+ const body = exactly(boundSyntax, SOAP, 'body');
327
+ shape(body, []);
328
+ const encoding = 'http://schemas.xmlsoap.org/soap/encoding/';
329
+ if (attr(body, 'use') !== 'encoded' || attr(body, 'encodingStyle')?.trim() !== encoding)
330
+ return refuse('unsupported', 'rpc-string-encoding');
331
+ const bodyNamespace = attr(body, 'namespace');
332
+ if (!bodyNamespace || !/^[A-Za-z][A-Za-z0-9+.-]*:/.test(bodyNamespace))
333
+ return refuse('unsupported', 'rpc-body-namespace');
334
+ const message = reference(portType, messageSyntax, 'message');
335
+ if (message.kind !== 'wsdl' || message.role !== 'message')
336
+ return refuse('selection-refused', 'message-reference');
337
+ shape(message.syntax, [ws('part'), ws('documentation')]);
338
+ const declared = children(message.syntax).filter(c => c.name.namespace === WSDL_NAMESPACE && c.name.local === 'part');
339
+ if (!declared.length || direction === 'output' && declared.length !== 1)
340
+ return refuse('unsupported', 'rpc-single-string-result');
341
+ const names = new Set();
342
+ const parts = declared.map(part => {
343
+ attrs(part, ['name', 'type']);
344
+ shape(part, [ws('documentation')]);
345
+ const name = attr(part, 'name');
346
+ if (!name || !isXmlNCName(name) || names.has(name))
347
+ return refuse('selection-refused', 'rpc-part-name');
348
+ names.add(name);
349
+ const path = part.source.path.slice(message.syntax.source.path.length) || '/';
350
+ const refs = message.references.filter(r => r.path === path && r.attribute === 'type');
351
+ if (refs.length !== 1)
352
+ return refuse('unsupported', 'rpc-part-type-required');
353
+ const resolved = context.resolve(refs[0].reference);
354
+ if (direction === 'output' && (resolved.kind !== 'builtin' || resolved.name.namespace !== XSD_NAMESPACE || resolved.name.local !== 'string'))
355
+ return refuse('unsupported', 'rpc-string-part-required');
356
+ return Object.freeze({ name, type: refs[0].reference, source: part.source });
357
+ });
358
+ if (attr(body, 'parts') !== undefined && attr(body, 'parts').trim().split(/[\t\r\n ]+/).join(' ') !== parts.map(p => p.name).join(' '))
359
+ return refuse('unsupported', 'rpc-body-parts');
360
+ return Object.freeze({ kind: 'rpc-typed-parts-v1', message: message.name, parts, bodyNamespace, encoding,
361
+ wrapper: { namespace: bodyNamespace, local: ownedSelector.operation + (direction === 'output' ? 'Response' : '') }, source: body.source });
362
+ };
230
363
  const io = (direction, declaration) => {
231
364
  const boundIo = exactly(bound, WSDL_NAMESPACE, direction);
232
365
  const boundName = attr(boundIo, 'name');
233
366
  const expectedName = attr(declaration, 'name') ?? `${ownedSelector.operation}${direction === 'input' ? 'Request' : 'Response'}`;
234
367
  if (boundName !== undefined && boundName !== expectedName)
235
368
  return refuse('selection-refused', 'binding-message-name');
236
- return root(declaration, boundIo);
369
+ return style === 'rpc' ? rpcRoot(declaration, boundIo, direction) : root(declaration, boundIo);
237
370
  };
238
371
  const requestRoot = io('input', abstractInput), responseRoot = io('output', abstractOutput);
239
372
  const declaredFaults = children(abstract).filter(c => c.name.namespace === WSDL_NAMESPACE && c.name.local === 'fault');
240
373
  const boundFaults = children(bound).filter(c => c.name.namespace === WSDL_NAMESPACE && c.name.local === 'fault');
374
+ if (style === 'rpc' && (declaredFaults.length || boundFaults.length))
375
+ return refuse('unsupported', 'rpc-declared-fault');
241
376
  if (declaredFaults.length !== boundFaults.length)
242
377
  return refuse('selection-refused', 'fault-mapping');
243
378
  const faultNames = new Set();
@@ -255,15 +390,25 @@ export async function selectDirectOperationInRequest(source, selector, options,
255
390
  });
256
391
  check();
257
392
  // 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',
259
- binding: { version: '1.1', style: 'document', use: 'literal', transport: HTTP, action, source: binding.context.source },
393
+ const contract = { selector: ownedSelector, contextId: context.contextId,
394
+ basis: profile === 'direct' ? 'native-direct-premises-v1' : 'native-component-premises-v1',
395
+ correspondence: profile === 'direct' ? 'dated-XSD-2004-direct-v1' : 'dated-XSD-2004-components-v1',
396
+ binding: { version: '1.1', style: style, use: style === 'rpc' ? 'encoded' : 'literal',
397
+ ...(style === 'rpc' ? { encoding: 'http://schemas.xmlsoap.org/soap/encoding/' } : {}), transport: HTTP, action, source: binding.context.source },
260
398
  input: requestRoot, output: responseRoot, faults,
261
- missingCapabilities: ['matcher', 'projection', 'scalar-payload', 'bundle', 'codec', 'buffered-transport', 'structured-generation'], admitted: false };
399
+ ...(policyOwner ? { policy: policyOwner.forBinding(binding.syntax), addressingActions: { required: false,
400
+ input: attr(abstractInput, 'Action', ADDRESSING_WSDL), output: attr(abstractOutput, 'Action', ADDRESSING_WSDL),
401
+ faults: declaredFaults.flatMap(fault => {
402
+ const action = attr(fault, 'Action', ADDRESSING_WSDL);
403
+ return action === undefined ? [] : [{ name: attr(fault, 'name'), action }];
404
+ }) } } : {}),
405
+ missingCapabilities: ['matcher', 'projection', 'scalar-payload', 'bundle', 'codec', 'buffered-transport', 'structured-generation',
406
+ ...(policyOwner?.forBinding(binding.syntax).kind === 'https-transport' ? ['policy-enforcement'] : [])], admitted: false };
262
407
  budget.freeze(contract);
263
408
  check();
264
409
  budget.chargeWork(256);
265
410
  const selected = Object.freeze({ kind: 'selected', contract, usage: Object.freeze({ ...budget.usage() }) });
266
- issued.set(contract, Object.freeze({ contract, context, source: input, evidence: qualified }));
411
+ issued.set(contract, Object.freeze({ contract, context, source: input, evidence: qualified, ...(policyOwner ? { policyOwner } : {}) }));
267
412
  return selected;
268
413
  });
269
414
  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 {};