@techspokes/typescript-wsdl-client 1.1.4 → 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 (422) hide show
  1. package/README.md +81 -35
  2. package/dist/app/generateApp.d.ts +0 -1
  3. package/dist/app/generateApp.js +8 -6
  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 +123 -5
  12. package/dist/client/checkedDirectRuntime.d.ts +96 -0
  13. package/dist/client/checkedDirectRuntime.js +43 -0
  14. package/dist/client/directClientRuntime.d.ts +74 -0
  15. package/dist/client/directClientRuntime.js +165 -0
  16. package/dist/client/directClientVersion.d.ts +6 -0
  17. package/dist/client/directClientVersion.js +6 -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 +32 -0
  21. package/dist/client/generateDirectClient.js +268 -0
  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 +6 -0
  29. package/dist/compiler/buildCanonicalGraph.js +381 -0
  30. package/dist/compiler/canonicalGraph.d.ts +197 -0
  31. package/dist/compiler/canonicalGraph.js +37 -0
  32. package/dist/compiler/catalogErrors.d.ts +17 -0
  33. package/dist/compiler/catalogErrors.js +86 -0
  34. package/dist/compiler/catalogProvenance.d.ts +14 -0
  35. package/dist/compiler/catalogProvenance.js +229 -0
  36. package/dist/compiler/checkedAssessment.d.ts +90 -0
  37. package/dist/compiler/checkedAssessment.js +300 -0
  38. package/dist/compiler/checkedComponentSource.d.ts +16 -0
  39. package/dist/compiler/checkedComponentSource.js +31 -0
  40. package/dist/compiler/checkedSourcePreparation.d.ts +72 -0
  41. package/dist/compiler/checkedSourcePreparation.js +202 -0
  42. package/dist/compiler/complexTypeContent.d.ts +58 -0
  43. package/dist/compiler/complexTypeContent.js +558 -0
  44. package/dist/compiler/componentCorrespondence.d.ts +32 -0
  45. package/dist/compiler/componentCorrespondence.js +140 -0
  46. package/dist/compiler/componentRecordProjection.d.ts +109 -0
  47. package/dist/compiler/componentRecordProjection.js +319 -0
  48. package/dist/compiler/componentSoapPreparation.d.ts +20 -0
  49. package/dist/compiler/componentSoapPreparation.js +36 -0
  50. package/dist/compiler/composeCanonicalGraph.d.ts +68 -0
  51. package/dist/compiler/composeCanonicalGraph.js +252 -0
  52. package/dist/compiler/dataOwnership.d.ts +21 -0
  53. package/dist/compiler/dataOwnership.js +167 -0
  54. package/dist/compiler/datatypeValues.d.ts +46 -0
  55. package/dist/compiler/datatypeValues.js +275 -0
  56. package/dist/compiler/directCodec.d.ts +116 -0
  57. package/dist/compiler/directCodec.js +377 -0
  58. package/dist/compiler/directExecutionPolicy.d.ts +9 -0
  59. package/dist/compiler/directExecutionPolicy.js +17 -0
  60. package/dist/compiler/directOperation.d.ts +114 -0
  61. package/dist/compiler/directOperation.js +373 -0
  62. package/dist/compiler/directSoap.d.ts +66 -0
  63. package/dist/compiler/directSoap.js +391 -0
  64. package/dist/compiler/directSoapSource.d.ts +38 -0
  65. package/dist/compiler/directSoapSource.js +233 -0
  66. package/dist/compiler/directSourceCapsule.d.ts +169 -0
  67. package/dist/compiler/directSourceCapsule.js +727 -0
  68. package/dist/compiler/directStructure.d.ts +128 -0
  69. package/dist/compiler/directStructure.js +543 -0
  70. package/dist/compiler/directStructurePlan.d.ts +149 -0
  71. package/dist/compiler/directStructurePlan.js +623 -0
  72. package/dist/compiler/directValues.d.ts +128 -0
  73. package/dist/compiler/directValues.js +1116 -0
  74. package/dist/compiler/finiteRe01Construction.d.ts +69 -0
  75. package/dist/compiler/finiteRe01Construction.js +422 -0
  76. package/dist/compiler/finiteRe01Verification.d.ts +218 -0
  77. package/dist/compiler/finiteRe01Verification.js +1217 -0
  78. package/dist/compiler/generateCatalog.d.ts +0 -1
  79. package/dist/compiler/graphTraversal.d.ts +10 -0
  80. package/dist/compiler/graphTraversal.js +37 -0
  81. package/dist/compiler/hypotheticalScopedIdentity.d.ts +22 -0
  82. package/dist/compiler/hypotheticalScopedIdentity.js +81 -0
  83. package/dist/compiler/occurrenceAnalysis.d.ts +66 -0
  84. package/dist/compiler/occurrenceAnalysis.js +316 -0
  85. package/dist/compiler/originalSourceMembership.d.ts +5 -0
  86. package/dist/compiler/originalSourceMembership.js +31 -0
  87. package/dist/compiler/particleAttribution.d.ts +16 -0
  88. package/dist/compiler/particleAttribution.js +494 -0
  89. package/dist/compiler/particleDeclarationConsistency.d.ts +23 -0
  90. package/dist/compiler/particleDeclarationConsistency.js +206 -0
  91. package/dist/compiler/particleExtension.d.ts +21 -0
  92. package/dist/compiler/particleExtension.js +123 -0
  93. package/dist/compiler/particleLocalAssessment.d.ts +19 -0
  94. package/dist/compiler/particleLocalAssessment.js +92 -0
  95. package/dist/compiler/particleRestriction.d.ts +23 -0
  96. package/dist/compiler/particleRestriction.js +494 -0
  97. package/dist/compiler/particleSemanticView.d.ts +51 -0
  98. package/dist/compiler/particleSemanticView.js +310 -0
  99. package/dist/compiler/particleWildcardRelation.d.ts +87 -0
  100. package/dist/compiler/particleWildcardRelation.js +143 -0
  101. package/dist/compiler/projectionScalar.d.ts +32 -0
  102. package/dist/compiler/projectionScalar.js +184 -0
  103. package/dist/compiler/re01CandidateAssignments.d.ts +95 -0
  104. package/dist/compiler/re01CandidateAssignments.js +341 -0
  105. package/dist/compiler/re01CandidateCorrespondence.d.ts +85 -0
  106. package/dist/compiler/re01CandidateCorrespondence.js +701 -0
  107. package/dist/compiler/re01TypeProperties.d.ts +70 -0
  108. package/dist/compiler/re01TypeProperties.js +120 -0
  109. package/dist/compiler/re01TypePropertyValidation.d.ts +22 -0
  110. package/dist/compiler/re01TypePropertyValidation.js +161 -0
  111. package/dist/compiler/resolveCanonicalGraph.d.ts +41 -0
  112. package/dist/compiler/resolveCanonicalGraph.js +240 -0
  113. package/dist/compiler/scalarSchemaAssessment.d.ts +424 -0
  114. package/dist/compiler/scalarSchemaAssessment.js +5198 -0
  115. package/dist/compiler/schemaAttributeGroupProperties.d.ts +16 -0
  116. package/dist/compiler/schemaAttributeGroupProperties.js +53 -0
  117. package/dist/compiler/schemaAttributeProperties.d.ts +9 -0
  118. package/dist/compiler/schemaAttributeProperties.js +11 -0
  119. package/dist/compiler/schemaAttributeUses.d.ts +110 -0
  120. package/dist/compiler/schemaAttributeUses.js +798 -0
  121. package/dist/compiler/schemaBinaryWordReconstruction.d.ts +9 -0
  122. package/dist/compiler/schemaBinaryWordReconstruction.js +33 -0
  123. package/dist/compiler/schemaBuiltinFacets.d.ts +13 -0
  124. package/dist/compiler/schemaBuiltinFacets.js +51 -0
  125. package/dist/compiler/schemaCalendarImages.d.ts +7 -0
  126. package/dist/compiler/schemaCalendarImages.js +204 -0
  127. package/dist/compiler/schemaCalendarLanguage.d.ts +10 -0
  128. package/dist/compiler/schemaCalendarLanguage.js +227 -0
  129. package/dist/compiler/schemaCompiler.d.ts +0 -1
  130. package/dist/compiler/schemaComponentEquality.d.ts +27 -0
  131. package/dist/compiler/schemaComponentEquality.js +446 -0
  132. package/dist/compiler/schemaConstructionAssessment.d.ts +79 -0
  133. package/dist/compiler/schemaConstructionAssessment.js +745 -0
  134. package/dist/compiler/schemaDatatypeValues.d.ts +3 -0
  135. package/dist/compiler/schemaDatatypeValues.js +2 -0
  136. package/dist/compiler/schemaDecimalLanguage.d.ts +6 -0
  137. package/dist/compiler/schemaDecimalLanguage.js +102 -0
  138. package/dist/compiler/schemaDeclarationPrimitives.d.ts +39 -0
  139. package/dist/compiler/schemaDeclarationPrimitives.js +211 -0
  140. package/dist/compiler/schemaDocumentSyntax.d.ts +54 -0
  141. package/dist/compiler/schemaDocumentSyntax.js +294 -0
  142. package/dist/compiler/schemaDurationLanguage.d.ts +10 -0
  143. package/dist/compiler/schemaDurationLanguage.js +170 -0
  144. package/dist/compiler/schemaElementInstance.d.ts +30 -0
  145. package/dist/compiler/schemaElementInstance.js +45 -0
  146. package/dist/compiler/schemaElementProperties.d.ts +15 -0
  147. package/dist/compiler/schemaElementProperties.js +23 -0
  148. package/dist/compiler/schemaEndpointWordCapacity.d.ts +35 -0
  149. package/dist/compiler/schemaEndpointWordCapacity.js +39 -0
  150. package/dist/compiler/schemaExactCalendar.d.ts +72 -0
  151. package/dist/compiler/schemaExactCalendar.js +264 -0
  152. package/dist/compiler/schemaFacetAnnotation.d.ts +31 -0
  153. package/dist/compiler/schemaFacetAnnotation.js +199 -0
  154. package/dist/compiler/schemaGeneratedScalarShape.d.ts +34 -0
  155. package/dist/compiler/schemaGeneratedScalarShape.js +178 -0
  156. package/dist/compiler/schemaIdentityConstraints.d.ts +72 -0
  157. package/dist/compiler/schemaIdentityConstraints.js +362 -0
  158. package/dist/compiler/schemaIeeeLanguage.d.ts +42 -0
  159. package/dist/compiler/schemaIeeeLanguage.js +759 -0
  160. package/dist/compiler/schemaIntegerImages.d.ts +10 -0
  161. package/dist/compiler/schemaIntegerImages.js +113 -0
  162. package/dist/compiler/schemaLexicalPredicates.d.ts +28 -0
  163. package/dist/compiler/schemaLexicalPredicates.js +63 -0
  164. package/dist/compiler/schemaNotationProperties.d.ts +31 -0
  165. package/dist/compiler/schemaNotationProperties.js +84 -0
  166. package/dist/compiler/schemaNumericImageConditions.d.ts +23 -0
  167. package/dist/compiler/schemaNumericImageConditions.js +66 -0
  168. package/dist/compiler/schemaParticleWildcardProperties.d.ts +19 -0
  169. package/dist/compiler/schemaParticleWildcardProperties.js +43 -0
  170. package/dist/compiler/schemaPattern.d.ts +1061 -0
  171. package/dist/compiler/schemaPattern.js +581 -0
  172. package/dist/compiler/schemaRegularLanguage.d.ts +66 -0
  173. package/dist/compiler/schemaRegularLanguage.js +1166 -0
  174. package/dist/compiler/schemaScalarContext.d.ts +85 -0
  175. package/dist/compiler/schemaScalarContext.js +78 -0
  176. package/dist/compiler/schemaScalarKernel.d.ts +181 -0
  177. package/dist/compiler/schemaScalarKernel.js +391 -0
  178. package/dist/compiler/schemaScalarWitnesses.d.ts +5 -0
  179. package/dist/compiler/schemaScalarWitnesses.js +118 -0
  180. package/dist/compiler/schemaSimpleTypeProperties.d.ts +94 -0
  181. package/dist/compiler/schemaSimpleTypeProperties.js +103 -0
  182. package/dist/compiler/schemaSourceGrammar.d.ts +26 -0
  183. package/dist/compiler/schemaSourceGrammar.js +290 -0
  184. package/dist/compiler/schemaSourceLexical.d.ts +3 -0
  185. package/dist/compiler/schemaSourceLexical.js +12 -0
  186. package/dist/compiler/schemaSourceValues.d.ts +50 -0
  187. package/dist/compiler/schemaSourceValues.js +225 -0
  188. package/dist/compiler/schemaSourceWildcards.d.ts +27 -0
  189. package/dist/compiler/schemaSourceWildcards.js +249 -0
  190. package/dist/compiler/schemaSymbolicSequences.d.ts +15 -0
  191. package/dist/compiler/schemaSymbolicSequences.js +99 -0
  192. package/dist/compiler/schemaSymbolicValueSets.d.ts +31 -0
  193. package/dist/compiler/schemaSymbolicValueSets.js +149 -0
  194. package/dist/compiler/schemaSyntaxAssessment.d.ts +24 -0
  195. package/dist/compiler/schemaSyntaxAssessment.js +361 -0
  196. package/dist/compiler/schemaTemporalAliases.d.ts +5 -0
  197. package/dist/compiler/schemaTemporalAliases.js +195 -0
  198. package/dist/compiler/schemaTokenImages.d.ts +8 -0
  199. package/dist/compiler/schemaTokenImages.js +142 -0
  200. package/dist/compiler/schemaTypeIdentity.d.ts +38 -0
  201. package/dist/compiler/schemaTypeIdentity.js +80 -0
  202. package/dist/compiler/schemaTypeRelations.d.ts +37 -0
  203. package/dist/compiler/schemaTypeRelations.js +576 -0
  204. package/dist/compiler/schemaUri.d.ts +12 -0
  205. package/dist/compiler/schemaUri.js +103 -0
  206. package/dist/compiler/schemaValueContext.d.ts +25 -0
  207. package/dist/compiler/schemaValueContext.js +1 -0
  208. package/dist/compiler/schemaValueImages.d.ts +9 -0
  209. package/dist/compiler/schemaValueImages.js +142 -0
  210. package/dist/compiler/schemaValueSequences.d.ts +14 -0
  211. package/dist/compiler/schemaValueSequences.js +19 -0
  212. package/dist/compiler/semanticBudget.d.ts +67 -0
  213. package/dist/compiler/semanticBudget.js +193 -0
  214. package/dist/compiler/semanticCatalog.d.ts +121 -0
  215. package/dist/compiler/semanticCatalog.js +160 -0
  216. package/dist/compiler/semanticContext.d.ts +183 -0
  217. package/dist/compiler/semanticContext.js +1207 -0
  218. package/dist/compiler/semanticTypeDependencies.d.ts +7 -0
  219. package/dist/compiler/semanticTypeDependencies.js +64 -0
  220. package/dist/compiler/semanticTypeReference.d.ts +23 -0
  221. package/dist/compiler/semanticTypeReference.js +36 -0
  222. package/dist/compiler/shapeResolver.d.ts +1 -1
  223. package/dist/compiler/shapeResolver.js +7 -9
  224. package/dist/compiler/soapHeaders.d.ts +16 -0
  225. package/dist/compiler/soapHeaders.js +42 -0
  226. package/dist/compiler/sourceSchemaBinding.d.ts +25 -0
  227. package/dist/compiler/sourceSchemaBinding.js +39 -0
  228. package/dist/compiler/standardSchemaComponents.d.ts +71 -0
  229. package/dist/compiler/standardSchemaComponents.js +74 -0
  230. package/dist/compiler/standardSchemaConstruction.d.ts +20 -0
  231. package/dist/compiler/standardSchemaConstruction.js +34 -0
  232. package/dist/compiler/structuralCompanions.d.ts +15 -0
  233. package/dist/compiler/structuralCompanions.js +232 -0
  234. package/dist/compiler/validateSemanticGraph.d.ts +4 -0
  235. package/dist/compiler/validateSemanticGraph.js +376 -0
  236. package/dist/compiler/wildcardAlgebra.d.ts +25 -0
  237. package/dist/compiler/wildcardAlgebra.js +155 -0
  238. package/dist/compiler/wsdlPolicyRequirements.d.ts +43 -0
  239. package/dist/compiler/wsdlPolicyRequirements.js +239 -0
  240. package/dist/config.d.ts +0 -1
  241. package/dist/gateway/generateCheckedGateway.d.ts +32 -0
  242. package/dist/gateway/generateCheckedGateway.js +293 -0
  243. package/dist/gateway/generateGateway.d.ts +0 -1
  244. package/dist/gateway/generateGateway.js +2 -2
  245. package/dist/gateway/generators.d.ts +0 -1
  246. package/dist/gateway/helpers.d.ts +0 -1
  247. package/dist/generation/componentShape.d.ts +14 -0
  248. package/dist/generation/componentShape.js +269 -0
  249. package/dist/generation/preamble.d.ts +0 -1
  250. package/dist/generation/sourceLayout.d.ts +13 -0
  251. package/dist/generation/sourceLayout.js +40 -0
  252. package/dist/generation/writeGeneratedSource.d.ts +0 -1
  253. package/dist/index.d.ts +9 -1
  254. package/dist/index.js +3 -0
  255. package/dist/loader/fetch.d.ts +0 -1
  256. package/dist/loader/orderedSyntax.d.ts +84 -0
  257. package/dist/loader/orderedSyntax.js +222 -0
  258. package/dist/loader/resolutionDepth.d.ts +6 -0
  259. package/dist/loader/resolutionDepth.js +65 -0
  260. package/dist/loader/schemaInput.d.ts +80 -0
  261. package/dist/loader/schemaInput.js +249 -0
  262. package/dist/loader/schemaResources.d.ts +60 -0
  263. package/dist/loader/schemaResources.js +333 -0
  264. package/dist/loader/wsdlLoader.d.ts +0 -1
  265. package/dist/openapi/casing.d.ts +0 -1
  266. package/dist/openapi/generateOpenAPI.d.ts +0 -1
  267. package/dist/openapi/generateOpenAPI.js +2 -2
  268. package/dist/openapi/generatePaths.d.ts +0 -1
  269. package/dist/openapi/generateSchemas.d.ts +0 -1
  270. package/dist/openapi/security.d.ts +0 -1
  271. package/dist/pipeline.d.ts +6 -2
  272. package/dist/pipeline.js +13 -0
  273. package/dist/test/generateCheckedTests.d.ts +17 -0
  274. package/dist/test/generateCheckedTests.js +60 -0
  275. package/dist/test/generateTests.d.ts +0 -1
  276. package/dist/test/generateTests.js +2 -2
  277. package/dist/test/generators.d.ts +0 -1
  278. package/dist/test/mockData.d.ts +0 -1
  279. package/dist/test/mockData.js +20 -14
  280. package/dist/util/attributeWildcards.d.ts +0 -1
  281. package/dist/util/builder.d.ts +0 -1
  282. package/dist/util/catalogMeta.d.ts +0 -1
  283. package/dist/util/checkedCliDiagnostics.d.ts +11 -0
  284. package/dist/util/checkedCliDiagnostics.js +22 -0
  285. package/dist/util/cli.d.ts +0 -1
  286. package/dist/util/errors.d.ts +0 -1
  287. package/dist/util/imports.d.ts +0 -1
  288. package/dist/util/runtimeSource.d.ts +0 -1
  289. package/dist/util/runtimeSource.js +3 -5
  290. package/dist/util/securityConfig.d.ts +0 -1
  291. package/dist/util/streamConfig.d.ts +0 -1
  292. package/dist/util/tools.d.ts +0 -1
  293. package/dist/util/xmlWhitespace.d.ts +2 -0
  294. package/dist/util/xmlWhitespace.js +4 -0
  295. package/dist/xsd/primitives.d.ts +0 -1
  296. package/docs/agent-skill.md +2 -0
  297. package/docs/api-reference.md +1 -1
  298. package/docs/checked-gateway.md +210 -0
  299. package/docs/checked-generation.md +161 -0
  300. package/docs/cli-reference.md +43 -1
  301. package/docs/concepts.md +136 -1
  302. package/docs/configuration.md +5 -1
  303. package/docs/corpus.md +33 -0
  304. package/docs/direct-values.md +311 -0
  305. package/docs/examples/checked-forecast.wsdl +19 -0
  306. package/docs/gateway-guide.md +1 -1
  307. package/docs/generated-code.md +10 -5
  308. package/docs/mapping-contract.md +114 -0
  309. package/docs/migration-playbook.md +1 -1
  310. package/docs/output-anatomy.md +1 -1
  311. package/docs/start-here.md +8 -2
  312. package/docs/supported-patterns.md +17 -5
  313. package/docs/testing.md +117 -31
  314. package/llms.txt +7 -7
  315. package/package.json +79 -25
  316. package/src/generation/preambles/direct-client/typescript.preamble +3 -0
  317. package/src/runtime/checkedGatewayHost.tpl.txt +157 -0
  318. package/src/runtime/streamXml.ts +1 -1
  319. package/dist/app/generateApp.d.ts.map +0 -1
  320. package/dist/cli.d.ts.map +0 -1
  321. package/dist/client/generateClient.d.ts.map +0 -1
  322. package/dist/client/generateOperations.d.ts.map +0 -1
  323. package/dist/client/generateTypes.d.ts.map +0 -1
  324. package/dist/client/generateUtils.d.ts.map +0 -1
  325. package/dist/compiler/generateCatalog.d.ts.map +0 -1
  326. package/dist/compiler/schemaCompiler.d.ts.map +0 -1
  327. package/dist/compiler/shapeResolver.d.ts.map +0 -1
  328. package/dist/config.d.ts.map +0 -1
  329. package/dist/gateway/generateGateway.d.ts.map +0 -1
  330. package/dist/gateway/generators.d.ts.map +0 -1
  331. package/dist/gateway/helpers.d.ts.map +0 -1
  332. package/dist/generation/preamble.d.ts.map +0 -1
  333. package/dist/generation/writeGeneratedSource.d.ts.map +0 -1
  334. package/dist/index.d.ts.map +0 -1
  335. package/dist/loader/fetch.d.ts.map +0 -1
  336. package/dist/loader/wsdlLoader.d.ts.map +0 -1
  337. package/dist/openapi/casing.d.ts.map +0 -1
  338. package/dist/openapi/generateOpenAPI.d.ts.map +0 -1
  339. package/dist/openapi/generatePaths.d.ts.map +0 -1
  340. package/dist/openapi/generateSchemas.d.ts.map +0 -1
  341. package/dist/openapi/security.d.ts.map +0 -1
  342. package/dist/pipeline.d.ts.map +0 -1
  343. package/dist/runtime/jsonArray.d.ts +0 -24
  344. package/dist/runtime/jsonArray.d.ts.map +0 -1
  345. package/dist/runtime/jsonArray.js +0 -52
  346. package/dist/runtime/ndjson.d.ts +0 -24
  347. package/dist/runtime/ndjson.d.ts.map +0 -1
  348. package/dist/runtime/ndjson.js +0 -30
  349. package/dist/runtime/streamXml.d.ts +0 -45
  350. package/dist/runtime/streamXml.d.ts.map +0 -1
  351. package/dist/runtime/streamXml.js +0 -212
  352. package/dist/test/generateTests.d.ts.map +0 -1
  353. package/dist/test/generators.d.ts.map +0 -1
  354. package/dist/test/mockData.d.ts.map +0 -1
  355. package/dist/util/attributeWildcards.d.ts.map +0 -1
  356. package/dist/util/builder.d.ts.map +0 -1
  357. package/dist/util/catalogMeta.d.ts.map +0 -1
  358. package/dist/util/cli.d.ts.map +0 -1
  359. package/dist/util/errors.d.ts.map +0 -1
  360. package/dist/util/imports.d.ts.map +0 -1
  361. package/dist/util/runtimeSource.d.ts.map +0 -1
  362. package/dist/util/securityConfig.d.ts.map +0 -1
  363. package/dist/util/streamConfig.d.ts.map +0 -1
  364. package/dist/util/tools.d.ts.map +0 -1
  365. package/dist/xsd/primitives.d.ts.map +0 -1
  366. package/docs/AGENTS.md +0 -47
  367. package/docs/README.md +0 -56
  368. package/docs/architecture.md +0 -149
  369. package/docs/decisions/001-test-generation.md +0 -36
  370. package/docs/decisions/002-streamable-responses.md +0 -330
  371. package/docs/file-naming-and-path-organization.md +0 -213
  372. package/docs/releases/README.md +0 -94
  373. package/docs/releases/v0.20.0.md +0 -22
  374. package/docs/releases/v0.21.0.md +0 -30
  375. package/docs/releases/v0.22.0.md +0 -30
  376. package/docs/releases/v0.23.0.md +0 -31
  377. package/docs/releases/v0.24.0.md +0 -38
  378. package/docs/releases/v0.25.0.md +0 -31
  379. package/docs/releases/v0.25.2.md +0 -32
  380. package/docs/releases/v0.26.0.md +0 -32
  381. package/docs/releases/v0.27.0.md +0 -31
  382. package/docs/releases/v0.28.0.md +0 -32
  383. package/docs/releases/v0.29.0.md +0 -32
  384. package/docs/releases/v0.30.0.md +0 -30
  385. package/docs/releases/v0.30.1.md +0 -31
  386. package/docs/releases/v0.30.2.md +0 -30
  387. package/docs/releases/v0.30.3.md +0 -33
  388. package/docs/releases/v0.31.0.md +0 -33
  389. package/docs/releases/v0.32.0.md +0 -33
  390. package/docs/releases/v0.33.0.md +0 -34
  391. package/docs/releases/v0.34.0.md +0 -30
  392. package/docs/releases/v0.35.0.md +0 -33
  393. package/docs/releases/v0.36.0.md +0 -32
  394. package/docs/releases/v0.37.0.md +0 -33
  395. package/docs/releases/v0.38.0.md +0 -35
  396. package/docs/releases/v0.39.0.md +0 -35
  397. package/docs/releases/v0.40.0.md +0 -45
  398. package/docs/releases/v0.40.1.md +0 -34
  399. package/docs/releases/v1.0.0.md +0 -42
  400. package/docs/releases/v1.0.1.md +0 -38
  401. package/docs/releases/v1.0.2.md +0 -51
  402. package/docs/releases/v1.0.3.md +0 -37
  403. package/docs/releases/v1.0.4.md +0 -45
  404. package/docs/releases/v1.0.5.md +0 -41
  405. package/docs/releases/v1.0.6.md +0 -35
  406. package/docs/releases/v1.0.7.md +0 -36
  407. package/docs/releases/v1.1.0.md +0 -42
  408. package/docs/releases/v1.1.1.md +0 -44
  409. package/docs/releases/v1.1.2.md +0 -42
  410. package/docs/releases/v1.1.3.md +0 -36
  411. package/docs/releases/v1.1.4.md +0 -36
  412. package/docs/roadmap/README.md +0 -107
  413. package/docs/roadmap/v1.0-capability-conformance-framework.md +0 -582
  414. package/docs/roadmap/v1.0-choice-union-mode.md +0 -90
  415. package/docs/roadmap/v1.0-contract-audit.md +0 -75
  416. package/docs/roadmap/v1.0-json-array-streaming.md +0 -101
  417. package/docs/roadmap/v1.0-openapi-fastify-compatibility.md +0 -99
  418. package/docs/roadmap/v1.0-release-candidate-gates.md +0 -92
  419. package/docs/roadmap/v1.0-wsdl-coverage-matrix.md +0 -200
  420. package/docs/roadmap/v1.0-xs-anyattribute-wildcard-bag.md +0 -932
  421. package/src/runtime/jsonArray.ts +0 -55
  422. package/src/runtime/ndjson.ts +0 -32
@@ -0,0 +1,373 @@
1
+ import { directLimit, directLoadingLimits } from './directExecutionPolicy.js';
2
+ /** Transient source-owned schema selection. This module grants no runtime admission. */
3
+ import { loadSemanticSchemaInput } from '../loader/schemaInput.js';
4
+ import { SchemaLoadingError, WSDL_NAMESPACE, syntaxAttribute, syntaxElements, isXmlNCName } from '../loader/orderedSyntax.js';
5
+ import { globalId } from './canonicalGraph.js';
6
+ import { createApplicationBudget, DEFAULT_MAX_NODES } from './semanticBudget.js';
7
+ import { qualifyDirectSource } from './checkedSourcePreparation.js';
8
+ import { qualifyComponentSource, inspectComponentSourceQualification } from './checkedComponentSource.js';
9
+ import { prepareWsdlPolicyRequirements, assertWsdlPolicyRequirements } from './wsdlPolicyRequirements.js';
10
+ const SOAP = 'http://schemas.xmlsoap.org/wsdl/soap/';
11
+ const HTTP = 'http://schemas.xmlsoap.org/soap/http';
12
+ const ADDRESSING_WSDL = 'http://www.w3.org/2006/05/addressing/wsdl';
13
+ const issued = new WeakMap();
14
+ /** Object identity authenticates the exact issued roots; context IDs and digests do not. */
15
+ export function inspectDirectOperation(contract, expectedContext) {
16
+ const owned = issued.get(contract);
17
+ if (!owned || expectedContext !== undefined && owned.context !== expectedContext)
18
+ throw new TypeError('Unauthenticated or foreign direct operation');
19
+ if (owned.policyOwner)
20
+ assertWsdlPolicyRequirements(owned.source, owned.policyOwner);
21
+ return owned;
22
+ }
23
+ class Refusal extends Error {
24
+ kind;
25
+ rule;
26
+ constructor(kind, rule) {
27
+ super(rule);
28
+ this.kind = kind;
29
+ this.rule = rule;
30
+ }
31
+ }
32
+ class Cancelled extends Error {
33
+ }
34
+ /** One load, whole-source qualification, explicit selection and publication on one sticky budget. */
35
+ export async function selectDirectOperation(source, selector, options) {
36
+ return selectDirectOperationInRequest(source, selector, options, createApplicationBudget(options.limits));
37
+ }
38
+ /** Private-module composition seam: portable reading and selection share one request. */
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) {
71
+ const check = () => { if (options.signal?.aborted)
72
+ throw new Cancelled(); budget.chargeWork(); };
73
+ const refuse = (kind, rule) => { throw new Refusal(kind, rule); };
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
+ };
81
+ try {
82
+ // Fixed terminal envelope and issuance bookkeeping, before any source work.
83
+ budget.chargeWork(4096);
84
+ check();
85
+ const ownedSelector = budget.freeze(budget.snapshot(selector));
86
+ const name = (value) => value && typeof value.namespace === 'string' && typeof value.local === 'string' && isXmlNCName(value.local);
87
+ if (!name(ownedSelector.portType) || !name(ownedSelector.binding) || typeof ownedSelector.operation !== 'string' || !isXmlNCName(ownedSelector.operation))
88
+ return failure('selection-refused', 'explicit-selector');
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;
94
+ check();
95
+ const result = budget.guard(() => {
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 }));
99
+ if (qualified.kind === 'resource-limit')
100
+ return sourceFailure('resource-limit', 'source-qualification');
101
+ if (qualified.kind === 'source-preparation-failed' && qualified.category === 'resource-limit')
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;
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
+ }
126
+ const children = (node) => {
127
+ check();
128
+ budget.chargeWork(128 + node.children.length * 16 + node.attributes.length * 32);
129
+ for (const a of node.attributes)
130
+ budget.chargeWork(a.value.length * 8 + a.name.local.length * 8 + a.name.namespace.length * 8);
131
+ for (const child of node.children) {
132
+ if (child.kind === 'element')
133
+ budget.chargeWork(16 + child.name.namespace.length * 8 + child.name.local.length * 8);
134
+ }
135
+ return syntaxElements(node);
136
+ };
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';
147
+ const exactly = (node, namespace, local) => {
148
+ const found = children(node).filter(c => c.name.namespace === namespace && c.name.local === local);
149
+ if (found.length !== 1)
150
+ return refuse('selection-refused', `expected-one-${local}`);
151
+ return found[0];
152
+ };
153
+ const shape = (node, allowed) => {
154
+ for (const child of children(node))
155
+ if (!allowed.includes(`${child.name.namespace}#${child.name.local}`)
156
+ && !policyOwner?.isPolicyMetadata(child))
157
+ refuse('unsupported', 'binding-child-shape');
158
+ for (const child of node.children) {
159
+ if (child.kind !== 'text')
160
+ continue;
161
+ budget.chargeWork(8 + child.value.length * 4);
162
+ if (/[^\t\r\n ]/.test(child.value))
163
+ refuse('unsupported', 'wsdl-text');
164
+ }
165
+ };
166
+ const ws = (local) => `${WSDL_NAMESPACE}#${local}`;
167
+ const soap = (local) => `${SOAP}#${local}`;
168
+ const attrs = (node, allowed) => {
169
+ children(node);
170
+ for (const a of node.attributes)
171
+ if (!addressingAttribute(node, a.name.namespace, a.name.local)
172
+ && (a.name.namespace !== '' || !allowed.includes(a.name.local)))
173
+ refuse('unsupported', 'binding-attribute-shape');
174
+ };
175
+ // Conservative extension policy: only known WSDL 1.1/SOAP 1.1 syntax, even when optional.
176
+ // Documentation payload and XSD syntax are inert here and owned separately.
177
+ budget.chargeWork(64 + input.schemas.length * 32);
178
+ const qualifiedSchemas = new Set(input.schemas.map(schema => schema.syntax));
179
+ const attributes = {
180
+ definitions: ['name', 'targetNamespace'], import: ['namespace', 'location'], types: [], message: ['name'], part: ['name', 'element', 'type'],
181
+ portType: ['name'], operation: ['name', 'parameterOrder'], input: ['name', 'message'], output: ['name', 'message'], fault: ['name', 'message'],
182
+ binding: ['name', 'type'], service: ['name'], port: ['name', 'binding'],
183
+ };
184
+ const soapAttributes = { binding: ['style', 'transport'], operation: ['soapAction', 'style'], body: ['use', 'parts'], fault: ['name', 'use'], address: ['location'] };
185
+ for (const document of input.documents) {
186
+ const stack = [document.root];
187
+ while (stack.length) {
188
+ const node = stack.pop();
189
+ const nested = children(node);
190
+ if (qualifiedSchemas.has(node))
191
+ continue;
192
+ if (policyOwner?.isPolicyMetadata(node))
193
+ continue;
194
+ if (node.name.namespace === WSDL_NAMESPACE && node.name.local === 'documentation')
195
+ continue;
196
+ const allowed = node.name.namespace === WSDL_NAMESPACE ? attributes[node.name.local] : node.name.namespace === SOAP ? soapAttributes[node.name.local] : undefined;
197
+ if (!allowed)
198
+ return refuse('unsupported', 'wsdl-extension');
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;
204
+ if (a.name.namespace === WSDL_NAMESPACE && a.name.local === 'required' && node.name.namespace === SOAP && ['true', '1', 'false', '0'].includes(a.value))
205
+ continue;
206
+ if (a.name.namespace !== '' || !allowed.includes(a.name.local))
207
+ refuse('unsupported', 'wsdl-attribute');
208
+ if (a.name.local === 'name' && !isXmlNCName(a.value))
209
+ refuse('selection-refused', 'wsdl-name');
210
+ }
211
+ stack.push(...nested);
212
+ }
213
+ }
214
+ const lookup = (id) => {
215
+ check();
216
+ budget.chargeWork(32 + id.length * 4);
217
+ const found = context.lookup(id);
218
+ if (found.kind !== 'found')
219
+ return refuse('selection-refused', 'missing-reference');
220
+ return found.node;
221
+ };
222
+ const wsdl = (role, qname) => {
223
+ budget.chargeWork(128 + qname.local.length * 8 + qname.namespace.length * 8);
224
+ const node = lookup(globalId(role, qname));
225
+ if (node.kind !== 'wsdl' || node.role !== role)
226
+ return refuse('selection-refused', 'wrong-wsdl-role');
227
+ return node;
228
+ };
229
+ const reference = (owner, syntax, attribute) => {
230
+ budget.chargeWork(64 + owner.references.length * (32 + syntax.source.path.length * 4));
231
+ const path = syntax.source.path.slice(owner.syntax.source.path.length) || '/';
232
+ const refs = owner.references.filter(r => r.path === path && r.attribute === attribute);
233
+ if (refs.length !== 1 || refs[0].reference.kind !== 'symbol' || !refs[0].reference.target)
234
+ return refuse('selection-refused', 'missing-reference');
235
+ return lookup(refs[0].reference.target);
236
+ };
237
+ const portType = wsdl('portType', ownedSelector.portType);
238
+ const binding = wsdl('binding', ownedSelector.binding);
239
+ shape(portType.syntax, [ws('operation'), ws('documentation')]);
240
+ if (reference(binding, binding.syntax, 'type') !== portType)
241
+ return refuse('selection-refused', 'binding-portType-mismatch');
242
+ const operation = (owner) => {
243
+ const matches = children(owner.syntax).filter(c => c.name.namespace === WSDL_NAMESPACE && c.name.local === 'operation' && attr(c, 'name') === ownedSelector.operation);
244
+ if (matches.length !== 1)
245
+ return refuse('selection-refused', 'operation-missing-or-overloaded');
246
+ return matches[0];
247
+ };
248
+ const abstract = operation(portType), bound = operation(binding);
249
+ attrs(bound, ['name']);
250
+ shape(binding.syntax, [soap('binding'), ws('operation'), ws('documentation')]);
251
+ const soapBinding = exactly(binding.syntax, SOAP, 'binding');
252
+ const soapOperation = exactly(bound, SOAP, 'operation');
253
+ shape(soapBinding, []);
254
+ shape(soapOperation, []);
255
+ if (!['document', 'rpc'].includes(attr(soapBinding, 'style') ?? 'document'))
256
+ return refuse('unsupported', 'soap-binding-style');
257
+ if (attr(soapBinding, 'transport') !== HTTP)
258
+ return refuse('unsupported', 'soap-transport');
259
+ if ((attr(soapOperation, 'style') ?? attr(soapBinding, 'style') ?? 'document') !== 'document')
260
+ return refuse('unsupported', 'soap-style');
261
+ const action = attr(soapOperation, 'soapAction');
262
+ if (action === undefined)
263
+ return refuse('unsupported', 'soap-action-required');
264
+ shape(abstract, [ws('input'), ws('output'), ws('fault'), ws('documentation')]);
265
+ shape(bound, [soap('operation'), ws('input'), ws('output'), ws('fault'), ws('documentation')]);
266
+ const abstractInput = exactly(abstract, WSDL_NAMESPACE, 'input'), abstractOutput = exactly(abstract, WSDL_NAMESPACE, 'output');
267
+ const sequence = children(abstract).filter(c => c.name.namespace === WSDL_NAMESPACE && ['input', 'output'].includes(c.name.local));
268
+ if (sequence[0] !== abstractInput || sequence[1] !== abstractOutput)
269
+ return refuse('unsupported', 'request-response-required');
270
+ const messageOrder = (node) => {
271
+ const messages = children(node).filter(c => c.name.namespace === WSDL_NAMESPACE && ['input', 'output', 'fault'].includes(c.name.local));
272
+ if (messages[0]?.name.local !== 'input' || messages[1]?.name.local !== 'output' || messages.slice(2).some(c => c.name.local !== 'fault'))
273
+ refuse('unsupported', 'request-response-order');
274
+ };
275
+ messageOrder(abstract);
276
+ messageOrder(bound);
277
+ if (attr(abstract, 'parameterOrder') !== undefined || attr(bound, 'parameterOrder') !== undefined)
278
+ return refuse('unsupported', 'parameter-order');
279
+ const root = (messageSyntax, boundSyntax, faultName) => {
280
+ attrs(messageSyntax, ['name', 'message']);
281
+ attrs(boundSyntax, ['name']);
282
+ shape(messageSyntax, [ws('documentation')]);
283
+ shape(boundSyntax, [soap(faultName === undefined ? 'body' : 'fault'), ws('documentation')]);
284
+ const body = exactly(boundSyntax, SOAP, faultName === undefined ? 'body' : 'fault');
285
+ shape(body, []);
286
+ if (attr(body, 'use') !== 'literal')
287
+ return refuse('unsupported', 'literal-required');
288
+ if (faultName !== undefined && attr(body, 'name') !== faultName)
289
+ return refuse('selection-refused', 'soap-fault-name');
290
+ const message = reference(portType, messageSyntax, 'message');
291
+ if (message.kind !== 'wsdl' || message.role !== 'message')
292
+ return refuse('selection-refused', 'message-reference');
293
+ shape(message.syntax, [ws('part'), ws('documentation')]);
294
+ const parts = children(message.syntax).filter(c => c.name.namespace === WSDL_NAMESPACE && c.name.local === 'part');
295
+ if (parts.length !== 1)
296
+ return refuse('unsupported', 'single-part-required');
297
+ const part = parts[0], partName = attr(part, 'name');
298
+ if (!partName || !isXmlNCName(partName))
299
+ return refuse('selection-refused', 'part-name');
300
+ if (attr(body, 'parts') !== undefined && attr(body, 'parts').replace(/^[\t\r\n ]+|[\t\r\n ]+$/g, '') !== partName)
301
+ return refuse('selection-refused', 'body-parts');
302
+ if (attr(part, 'type') !== undefined || attr(part, 'element') === undefined)
303
+ return refuse('unsupported', 'global-element-part-required');
304
+ shape(part, [ws('documentation')]);
305
+ const element = reference(message, part, 'element');
306
+ if (element.kind !== 'element' || element.identity.kind !== 'global')
307
+ return refuse('selection-refused', 'global-element-root');
308
+ if (element.type.kind === 'symbol' && !element.type.target)
309
+ return refuse('selection-refused', 'element-type');
310
+ return Object.freeze({ message: message.name, part: partName, element, type: element.type, source: part.source });
311
+ };
312
+ const io = (direction, declaration) => {
313
+ const boundIo = exactly(bound, WSDL_NAMESPACE, direction);
314
+ const boundName = attr(boundIo, 'name');
315
+ const expectedName = attr(declaration, 'name') ?? `${ownedSelector.operation}${direction === 'input' ? 'Request' : 'Response'}`;
316
+ if (boundName !== undefined && boundName !== expectedName)
317
+ return refuse('selection-refused', 'binding-message-name');
318
+ return root(declaration, boundIo);
319
+ };
320
+ const requestRoot = io('input', abstractInput), responseRoot = io('output', abstractOutput);
321
+ const declaredFaults = children(abstract).filter(c => c.name.namespace === WSDL_NAMESPACE && c.name.local === 'fault');
322
+ const boundFaults = children(bound).filter(c => c.name.namespace === WSDL_NAMESPACE && c.name.local === 'fault');
323
+ if (declaredFaults.length !== boundFaults.length)
324
+ return refuse('selection-refused', 'fault-mapping');
325
+ const faultNames = new Set();
326
+ const faults = declaredFaults.map(f => {
327
+ check();
328
+ const faultName = attr(f, 'name');
329
+ if (!faultName || !isXmlNCName(faultName) || faultNames.has(faultName))
330
+ return refuse('selection-refused', 'fault-name');
331
+ faultNames.add(faultName);
332
+ budget.chargeWork(64 + boundFaults.length * (64 + faultName.length * 4));
333
+ const matches = boundFaults.filter(b => attr(b, 'name') === faultName);
334
+ if (matches.length !== 1)
335
+ return refuse('selection-refused', 'fault-mapping');
336
+ return Object.freeze({ name: faultName, root: root(f, matches[0], faultName) });
337
+ });
338
+ check();
339
+ // Charge publication traversal before retaining authority. Roots stay exact context objects.
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',
343
+ binding: { version: '1.1', style: 'document', use: 'literal', transport: HTTP, action, source: binding.context.source },
344
+ input: requestRoot, output: responseRoot, faults,
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 };
353
+ budget.freeze(contract);
354
+ check();
355
+ budget.chargeWork(256);
356
+ const selected = Object.freeze({ kind: 'selected', contract, usage: Object.freeze({ ...budget.usage() }) });
357
+ issued.set(contract, Object.freeze({ contract, context, source: input, evidence: qualified, ...(policyOwner ? { policyOwner } : {}) }));
358
+ return selected;
359
+ });
360
+ return result.kind === 'resource-limit' ? failure('resource-limit', 'request-budget') : result;
361
+ }
362
+ catch (error) {
363
+ if (budget.exhausted())
364
+ return failure('resource-limit', 'request-budget');
365
+ if (options.signal?.aborted || error instanceof Cancelled)
366
+ return failure('cancelled', 'cooperative-cancellation');
367
+ if (error instanceof Refusal)
368
+ return failure(error.kind, error.rule);
369
+ if (error instanceof SchemaLoadingError)
370
+ return failure(error.category === 'resource-limit' ? 'resource-limit' : 'loading-refused', error.category);
371
+ throw error;
372
+ }
373
+ }
@@ -0,0 +1,66 @@
1
+ import type { DirectOperationContract } from './directOperation.js';
2
+ import type { DirectCodecFailure, DirectDecodedXml, ComponentDecodedXml, DirectXmlLimits } from './directCodec.js';
3
+ import type { ExpandedName, SyntaxElement } from '../loader/orderedSyntax.js';
4
+ import type { ResolverUsage } from './semanticBudget.js';
5
+ import type { ComponentRecordProjection, ComponentRecordDecodedXml } from './componentRecordProjection.js';
6
+ export interface DirectSoapOptions {
7
+ readonly service: ExpandedName;
8
+ readonly port: string;
9
+ readonly endpoint: string;
10
+ /** Explicit authorization; WSDL addresses never grant permission. */
11
+ readonly allowEndpoint: (endpoint: URL) => boolean;
12
+ readonly signal?: AbortSignal;
13
+ readonly timeoutMs?: number;
14
+ readonly limits?: DirectXmlLimits;
15
+ /** Every requested extension is refused by this first adapter. */
16
+ readonly capabilities?: readonly string[];
17
+ }
18
+ export interface DirectSoapFailure {
19
+ readonly kind: DirectCodecFailure['kind'] | 'transport' | 'protocol';
20
+ readonly rule: string;
21
+ readonly usage: ResolverUsage;
22
+ readonly phase?: 'input' | 'response';
23
+ }
24
+ type SoapResult<D> = DirectSoapFailure | Readonly<{
25
+ kind: 'soap-response' | 'soap-fault';
26
+ admitted: false;
27
+ decoded: D;
28
+ /** Actual bounded HTTP entity bytes, before any decoding; caller-owned data. */
29
+ responseBytes: Uint8Array;
30
+ status: number;
31
+ fault?: Readonly<{
32
+ name: string;
33
+ code: ExpandedName;
34
+ codeNode: SyntaxElement;
35
+ string: string;
36
+ actor?: string;
37
+ }>;
38
+ /** Qualified optional response blocks ignored under SOAP 1.1; their application semantics were not assessed. */
39
+ ignoredHeaders?: readonly ExpandedName[];
40
+ usage: ResolverUsage;
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
+ }
52
+ /** Shared entry guard: consumers must call before reading any SOAP option. */
53
+ export declare function directSoapOptionsShape(options: unknown, check: () => void, additional?: readonly string[]): string | undefined;
54
+ /** Authentication and fresh-value validation precede dependency bootstrap and all HTTP I/O. */
55
+ export declare function exchangeDirectSoap(contract: DirectOperationContract, inputMapping: unknown, application: unknown, options: DirectSoapOptions): Promise<DirectSoapResult>;
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 {};