@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
@@ -0,0 +1,268 @@
1
+ /** WSDL-first diagnostics over the existing component generation owners.
2
+ * @since Unreleased
3
+ * @constraints Reports are data; separate invocations always reload and requalify source.
4
+ */
5
+ import path from 'node:path';
6
+ import fs from 'node:fs';
7
+ import { fileURLToPath } from 'node:url';
8
+ import { types } from 'node:util';
9
+ import { parseCheckedComponentOptions, parseCheckedComponentChoices, prepareComponentStages } from './checkedPipeline.js';
10
+ import { inspectDirectOperation } from './compiler/directOperation.js';
11
+ import { loadSemanticSchemaInput, prepareSchemaSnapshotFiles } from './loader/schemaInput.js';
12
+ import { resolveResourceUri } from './loader/schemaResources.js';
13
+ import { syntaxElements, syntaxAttribute, resolveLexicalQName, WSDL_NAMESPACE, XSD_NAMESPACE, SchemaLoadingError } from './loader/orderedSyntax.js';
14
+ const same = (a, b) => a.namespace === b.namespace && a.local === b.local;
15
+ const order = (items) => items.sort((a, b) => JSON.stringify(a).localeCompare(JSON.stringify(b), 'en'));
16
+ /** Refused generation retains actionable, serializable diagnostics.
17
+ * @since Unreleased
18
+ */
19
+ export class CheckedPlanningError extends Error {
20
+ report;
21
+ constructor(report) {
22
+ super(formatCheckedComponentPlan(report));
23
+ this.report = report;
24
+ this.name = 'CheckedPlanningError';
25
+ }
26
+ }
27
+ /** Format deterministic human diagnostics without source bytes or transport details.
28
+ * @param report Diagnostic data only.
29
+ * @returns Summary and every independently collected blocker.
30
+ */
31
+ export function formatCheckedComponentPlan(report) {
32
+ return [`${report.model}: ${report.ready ? 'generation-ready' : 'blocked'}; discovered=${report.inventory.operations}; selected=${report.selection?.selectors.length ?? 0}; generated=0; executed=0; inventory=${report.inventory.complete ? 'complete' : 'incomplete'}`,
33
+ ...report.blockers.map(b => `${b.category} [${b.stage}/${b.dimension}] ${b.reason}${b.source ? ` at ${b.source.resource}:${b.source.line}:${b.source.column} ${b.source.path}` : ''}; affected=${b.affected.map(s => `{${s.portType.namespace}}${s.portType.local}/{${s.binding.namespace}}${s.binding.local}/${s.operation}`).join(',') || 'inventory unassessed'}; ${b.action} (${b.pointer})`)].join('\n');
34
+ }
35
+ /** Inspect a WSDL using the same native preparation as generation, without writing or dispatching.
36
+ * @param source WSDL file or HTTP(S) root; declared dependencies remain subject to native policy.
37
+ * @param choices Partial explicit configuration; only missing unambiguous selections are inferred.
38
+ * @returns Diagnostic data; ready is generation readiness, never provider or runtime acceptance.
39
+ * @throws Error Only for unexpected report construction failures.
40
+ * @sideEffects Reads authorized metadata only; never contacts a SOAP endpoint.
41
+ */
42
+ export async function planCheckedComponents(source, choices) {
43
+ return (await prepareCheckedComponentPlan(source, choices)).report;
44
+ }
45
+ /** Write explicitly requested diagnostic data without replacing consumer files by default.
46
+ * @param file Explicit output path.
47
+ * @param value Data to serialize; report content grants no native authority.
48
+ * @param force Explicit replacement permission.
49
+ * @returns Nothing.
50
+ * @throws Error On existing files without force or filesystem failures.
51
+ * @sideEffects Creates only the requested report or draft file and its parent directory.
52
+ */
53
+ export function writeCheckedPlanningFile(file, value, force = false) {
54
+ fs.mkdirSync(path.dirname(path.resolve(file)), { recursive: true });
55
+ fs.writeFileSync(file, JSON.stringify(value, null, 2) + '\n', { flag: force ? 'w' : 'wx' });
56
+ }
57
+ // @constraints Internal composition only. Native handles are never attached to the public report.
58
+ export async function prepareCheckedComponentPlan(source, choices = {}, outputs) {
59
+ const documents = [], blockers = [];
60
+ let complete = false, config;
61
+ let intake;
62
+ let unresolved = [];
63
+ const explicit = Object.create(null);
64
+ let selectors = [];
65
+ let candidates = [], operations = [];
66
+ const counts = { services: 0, ports: 0, bindings: 0, portTypes: 0, operations: 0 };
67
+ const locator = (s) => ({ resource: `resource-${documents.findIndex(d => d.uri === s.uri) + 1}`, path: s.path, line: s.start.line, column: s.start.column });
68
+ const add = (category, stage, reason, action, pointer, affected = selectors, source, dimension = 'source') => {
69
+ blockers.push({ category, stage, dimension, reason, affected, action, pointer, ...(source ? { source: locator(source) } : {}) });
70
+ };
71
+ const inventory = () => {
72
+ candidates = [];
73
+ operations = [];
74
+ counts.services = counts.ports = counts.bindings = counts.portTypes = counts.operations = 0;
75
+ const bindings = documents.flatMap(d => syntaxElements(d.root, WSDL_NAMESPACE, 'binding').map(n => ({ node: n, name: { namespace: syntaxAttribute(d.root, 'targetNamespace') ?? '', local: syntaxAttribute(n, 'name') ?? '' } })));
76
+ counts.bindings = bindings.length;
77
+ for (const document of documents) {
78
+ const namespace = syntaxAttribute(document.root, 'targetNamespace') ?? '';
79
+ for (const service of syntaxElements(document.root, WSDL_NAMESPACE, 'service')) {
80
+ counts.services++;
81
+ for (const port of syntaxElements(service, WSDL_NAMESPACE, 'port')) {
82
+ counts.ports++;
83
+ const binding = resolveLexicalQName(syntaxAttribute(port, 'binding') ?? '', port);
84
+ const matches = bindings.filter(b => same(b.name, binding));
85
+ const type = matches.length === 1 ? syntaxAttribute(matches[0].node, 'type') : undefined;
86
+ candidates.push({ service: { namespace, local: syntaxAttribute(service, 'name') ?? '' }, port: syntaxAttribute(port, 'name') ?? '', binding,
87
+ ...(type ? { portType: resolveLexicalQName(type, matches[0].node) } : {}), source: locator(port.source) });
88
+ }
89
+ }
90
+ for (const type of syntaxElements(document.root, WSDL_NAMESPACE, 'portType')) {
91
+ counts.portTypes++;
92
+ const portType = { namespace, local: syntaxAttribute(type, 'name') ?? '' };
93
+ for (const operation of syntaxElements(type, WSDL_NAMESPACE, 'operation')) {
94
+ counts.operations++;
95
+ const name = syntaxAttribute(operation, 'name') ?? '';
96
+ const bound = bindings.filter(b => { const t = syntaxAttribute(b.node, 'type'); return t && same(resolveLexicalQName(t, b.node), portType); });
97
+ for (const binding of bound.length ? bound.map(b => b.name) : [undefined])
98
+ operations.push({ portType, ...(binding ? { binding } : {}), operation: name,
99
+ requested: false, selected: false, generated: false, executed: false });
100
+ }
101
+ }
102
+ }
103
+ order(candidates);
104
+ order(operations);
105
+ };
106
+ let native;
107
+ let preparingNative = false;
108
+ try {
109
+ if (!choices || typeof choices !== 'object' || types.isProxy(choices) || ![null, Object.prototype].includes(Object.getPrototypeOf(choices)))
110
+ throw new TypeError('Data-only choices required');
111
+ for (const key of Reflect.ownKeys(choices)) {
112
+ const d = Object.getOwnPropertyDescriptor(choices, key);
113
+ if (typeof key !== 'string' || !('value' in d))
114
+ throw new TypeError('Unknown component configuration or accessor');
115
+ explicit[key] = d.value;
116
+ }
117
+ const root = resolveResourceUri(source);
118
+ intake = { fileRoots: new URL(root).protocol === 'file:' ? [path.dirname(fileURLToPath(root))] : [],
119
+ sourceResources: [], sourceOrigins: new URL(root).protocol === 'file:' ? [] : [new URL(root).origin],
120
+ ...parseCheckedComponentChoices(explicit) };
121
+ if (!Object.hasOwn(explicit, 'sourceResources') && new URL(root).protocol !== 'file:' && intake.sourceOrigins.length) {
122
+ intake = { ...intake, sourceOrigins: [...new Set([new URL(root).origin, ...intake.sourceOrigins])].sort() };
123
+ }
124
+ if (intake.namespaceLocations?.some(n => n.location === 'REQUIRED_SCHEMA_LOCATION'))
125
+ throw new TypeError('Resolve REQUIRED_SCHEMA_LOCATION before loading');
126
+ if (new Set(intake.namespaceLocations?.map(n => n.namespace)).size !== (intake.namespaceLocations?.length ?? 0))
127
+ throw new TypeError('Unique namespace locations required');
128
+ const snapshotUris = [root, ...intake.sourceResources.map(r => resolveResourceUri(r.uri))];
129
+ if (new Set(snapshotUris).size !== snapshotUris.length)
130
+ throw new TypeError('Duplicate logical schema snapshot');
131
+ if (intake.signal?.aborted) {
132
+ add('cancelled', 'loading', 'caller-cancelled', 'Rerun with an active signal.', 'signal');
133
+ }
134
+ else {
135
+ const loading = { policy: { fileRoots: intake.fileRoots, allowedOrigins: intake.sourceOrigins }, signal: intake.signal,
136
+ namespaceLocations: new Map(intake.namespaceLocations?.map(n => [n.namespace, n.location])),
137
+ onDocument: (document) => { documents.push(document); } };
138
+ const prepared = Object.hasOwn(explicit, 'sourceResources') ? await prepareSchemaSnapshotFiles(source, intake.sourceResources, loading) : undefined;
139
+ const input = await loadSemanticSchemaInput(intake.sourceUri ?? prepared?.source ?? source, prepared?.loading ?? loading);
140
+ complete = true;
141
+ inventory();
142
+ const possible = candidates.filter(c => (!Object.hasOwn(explicit, 'service') || intake.service !== undefined && same(c.service, intake.service))
143
+ && (!Object.hasOwn(explicit, 'port') || c.port === intake.port)
144
+ && (!Object.hasOwn(explicit, 'selectors') || intake.selectors !== undefined && intake.selectors.every(s => same(s.binding, c.binding) && c.portType && same(s.portType, c.portType))));
145
+ if (possible.length !== 1)
146
+ add('ambiguous-selection', 'selection', possible.length ? 'multiple-service-port-binding-candidates' : 'no-matching-service-port-binding', 'Choose service, port and selectors from candidates; conflicting choices must be corrected.', 'checkedComponents.service/port/selectors', [], undefined, 'selection');
147
+ else {
148
+ const chosen = possible[0];
149
+ selectors = Object.hasOwn(explicit, 'selectors') ? [...intake.selectors] : operations.filter(o => o.binding && same(o.binding, chosen.binding))
150
+ .map(o => ({ portType: o.portType, binding: o.binding, operation: o.operation }));
151
+ if (!selectors.length)
152
+ add('configuration', 'selection', 'no-operations-for-candidate', 'Correct the binding/portType declarations.', 'checkedComponents.selectors', [], undefined, 'selection');
153
+ else
154
+ config = parseCheckedComponentOptions({ ...intake, selectors, service: chosen.service, port: chosen.port });
155
+ }
156
+ operations = operations.map(o => {
157
+ const selected = selectors.some(s => same(s.portType, o.portType) && o.binding && same(s.binding, o.binding) && s.operation === o.operation);
158
+ return { ...o, requested: selected, selected };
159
+ });
160
+ const missing = new Map();
161
+ for (const schema of input.schemas)
162
+ for (const child of syntaxElements(schema.syntax, XSD_NAMESPACE, 'import')) {
163
+ const namespace = syntaxAttribute(child, 'namespace') ?? '';
164
+ if (syntaxAttribute(child, 'schemaLocation') === undefined && !loading.namespaceLocations.has(namespace)
165
+ && !input.schemas.some(s => s.targetNamespace === namespace)
166
+ && namespace !== XSD_NAMESPACE)
167
+ missing.set(namespace, child.source);
168
+ }
169
+ // @why XSD 1.0 section 4.2.3 permits locationless imports. Native construction
170
+ // decides whether their components are needed; namespace URIs are never fetch locations.
171
+ if (!blockers.length && config) {
172
+ if (!Object.hasOwn(explicit, 'standardLibraries') && input.schemas.some(s => syntaxElements(s.syntax, XSD_NAMESPACE, 'import')
173
+ .some(n => syntaxAttribute(n, 'namespace') === XSD_NAMESPACE && syntaxAttribute(n, 'schemaLocation') === undefined))) {
174
+ config = { ...config, standardLibraries: ['w3c-xsd10-schema-element-2004-v1'] };
175
+ }
176
+ // @why Machine-derived snapshot bookkeeping is separate from authored schema semantics.
177
+ const known = new Set(config.sourceResources.map(r => resolveResourceUri(r.uri)));
178
+ config = { ...config, sourceResources: [...config.sourceResources, ...input.resources.filter(r => r.uri !== input.root.uri && !known.has(r.uri) && new URL(r.uri).protocol === 'file:')
179
+ .map(r => ({ uri: r.uri, file: fileURLToPath(r.uri) }))] };
180
+ preparingNative = true;
181
+ native = await prepareComponentStages(source, config, !prepared && new URL(input.root.uri).protocol !== 'file:' ? input : undefined, outputs);
182
+ if (native.expected.length) {
183
+ const fresh = inspectDirectOperation(native.expected[0].contract).source;
184
+ if (input.resources.length !== fresh.resources.length || input.resources.some(r => !fresh.resources.some(n => n.uri === r.uri && n.digest === r.digest))) {
185
+ add('operational-failure', 'native-preparation', 'source-changed-during-planning', 'Keep source files stable and rerun discovery and native checks.', 'wsdl/sourceResources');
186
+ }
187
+ }
188
+ for (const refusal of native.refusals) {
189
+ if (['whole-source-qualification', 'source-preparation'].includes(refusal.rule) && missing.size) {
190
+ const referenced = new Set();
191
+ const pending = documents.map(document => document.root);
192
+ while (pending.length) {
193
+ const node = pending.pop();
194
+ for (const attribute of node.attributes)
195
+ if (attribute.name.namespace === ''
196
+ && ['type', 'ref', 'base', 'itemType', 'memberTypes', 'substitutionGroup', 'element'].includes(attribute.name.local)) {
197
+ for (const token of attribute.value.trim().split(/[\t\r\n ]+/)) {
198
+ try {
199
+ referenced.add(resolveLexicalQName(token, node).namespace);
200
+ }
201
+ catch { /* Native diagnostics retain malformed references. */ }
202
+ }
203
+ }
204
+ pending.push(...syntaxElements(node));
205
+ }
206
+ const needed = [...missing].filter(([namespace]) => referenced.has(namespace));
207
+ for (const [namespace, at] of needed)
208
+ add('missing-dependency', 'native-preparation', `locationless-import:${namespace}`, 'Supply an authorized schema path for required components in this namespace.', `checkedComponents.namespaceLocations[${JSON.stringify(namespace)}].location`, [refusal.selector], at);
209
+ if (needed.length) {
210
+ unresolved = [...(intake.namespaceLocations ?? []), ...needed.map(([namespace]) => namespace).sort().map(namespace => ({ namespace, location: 'REQUIRED_SCHEMA_LOCATION' }))];
211
+ continue;
212
+ }
213
+ }
214
+ if (refusal.rule.startsWith('ambiguous-record-path:')) {
215
+ add('ambiguous-selection', 'native-preparation', refusal.rule, 'Supply recordPath using expanded names to select one declared repeated complex record in this companion source.', 'checkedComponents.recordProjections[].recordPath', [refusal.selector], undefined, 'mapping-and-artifact');
216
+ continue;
217
+ }
218
+ const category = refusal.kind === 'invalid-schema' && refusal.dimension === 'qualification-and-correspondence' ? 'invalid-source' : refusal.kind === 'unsupported' ? 'unsupported-capability'
219
+ : refusal.kind === 'cancelled' || refusal.kind === 'resource-limit' ? refusal.kind : refusal.kind === 'selection-refused' ? 'configuration' : 'inconclusive';
220
+ add(category, 'native-preparation', refusal.rule, 'Resolve the native rule or extend the qualified capability; no validity override is available.', 'checkedComponents.selectors', [refusal.selector], undefined, refusal.dimension);
221
+ }
222
+ if (blockers.length)
223
+ native = undefined;
224
+ }
225
+ }
226
+ }
227
+ catch (error) {
228
+ if (!complete) {
229
+ try {
230
+ inventory();
231
+ }
232
+ catch { /* Partial malformed identities remain unassessed. */ }
233
+ }
234
+ if (intake?.signal?.aborted)
235
+ add('cancelled', complete ? 'native-preparation' : 'loading', 'caller-cancelled', 'Rerun with an active signal.', 'signal');
236
+ else if (error instanceof SchemaLoadingError && error.message === 'Duplicate logical schema snapshot') {
237
+ add('configuration', 'configuration', 'duplicate-logical-snapshot', 'Supply unique logical snapshot identities.', 'checkedComponents.sourceResources');
238
+ }
239
+ else if (error instanceof SchemaLoadingError) {
240
+ const http = /^Schema retrieval returned HTTP (\d{3})$/.exec(error.message)?.[1];
241
+ const permission = /authoriz|outside/.test(error.message);
242
+ const category = permission ? 'permission' : error.category === 'invalid-schema' ? 'invalid-source'
243
+ : error.category === 'resource-limit' ? 'resource-limit' : error.category === 'unsupported-capability' ? 'unsupported-capability' : 'missing-dependency';
244
+ add(category, 'loading', permission ? 'source-permission-required' : http ? `metadata-http-${http}` : error.category, http === '401' || http === '403' ? 'Metadata access was denied. Supply accessible independently authorized physical snapshots; SOAP credentials do not authorize metadata.'
245
+ : 'Check resource availability and explicit roots/origins; permit a declared second origin once in sourceOrigins or supply authorized snapshots, then rerun fresh checks.', 'checkedComponents.fileRoots/sourceOrigins/sourceResources', selectors, error.source);
246
+ }
247
+ else {
248
+ const configurationError = (!preparingNative || error instanceof TypeError && error.message.startsWith('applicationGroups')) && (error instanceof TypeError || error instanceof RangeError);
249
+ add(configurationError ? 'configuration' : 'operational-failure', complete ? 'native-preparation' : 'configuration', configurationError ? `invalid-or-unresolved-configuration:${error.message}` : 'native-preparation-failed', 'Correct the configuration or inspect the local I/O failure and rerun.', 'checkedComponents');
250
+ }
251
+ native = undefined;
252
+ }
253
+ const report = { version: 'checked-component-plan-v1', model: 'checked-components-v1', scope: 'native-component-source-and-mapping',
254
+ ready: !!native && !blockers.length, executed: false, runtime: 'not-assessed-operation-invocation-required',
255
+ dimensions: { sourceLegality: native ? 'established' : blockers.some(b => b.category === 'invalid-source') ? 'disproved' : 'unassessed',
256
+ correspondence: native ? 'established' : 'unassessed', mapping: native ? 'established' : 'unassessed', runtime: 'unassessed' },
257
+ inventory: { complete, unassessed: complete ? [] : ['unloaded documents and their service/binding/operation identities; native whole-source prerequisites'], ...counts },
258
+ candidates, resources: documents.map((d, i) => ({ resource: `resource-${i + 1}`, digest: d.digest })), operations,
259
+ ...(native && native.projections.size ? { responseProjections: native.expected.flatMap(operation => operation.responseProjection
260
+ ? [{ selector: operation.contract.selector, spec: operation.responseProjection.spec,
261
+ delivery: 'buffered', retainedValue: 'complete-companion-payload' }] : []) } : {}),
262
+ ...(config && selectors.length ? { selection: { service: config.service, port: config.port, selectors } } : {}), blockers: order(blockers),
263
+ ...(intake && blockers.some(b => b.category === 'missing-dependency' && b.reason.startsWith('locationless-import:')) ? { resolution: {
264
+ instructions: 'Save configuration as checked JSON. Replace REQUIRED_SCHEMA_LOCATION with an authorized schema path; paths resolve from the invocation working directory. Rerun the same pipeline with --checked-config. Reports never authorize generation.',
265
+ configuration: { ...Object.fromEntries(Object.entries(explicit).filter(([key]) => key !== 'signal')), namespaceLocations: unresolved }
266
+ } } : {}) };
267
+ return { report, ...(config ? { config } : {}), ...(native ? { native } : {}) };
268
+ }
package/dist/cli.d.ts CHANGED
@@ -1,3 +1,2 @@
1
1
  #!/usr/bin/env node
2
2
  export {};
3
- //# sourceMappingURL=cli.d.ts.map
package/dist/cli.js CHANGED
@@ -50,6 +50,7 @@ function loadStreamConfigOrExit(filePath) {
50
50
  }
51
51
  // Process command line arguments, removing the first two elements (node executable and script path)
52
52
  const rawArgs = hideBin(process.argv);
53
+ const hasServicesConfig = rawArgs.some(argument => argument === "--services-config" || argument.startsWith("--services-config="));
53
54
  // Available commands
54
55
  const COMMANDS = ["compile", "client", "openapi", "gateway", "app", "pipeline", "assess"];
55
56
  // ---------------------------------------------------------------------------
@@ -60,7 +61,7 @@ if (!rawArgs[0] || !COMMANDS.includes(rawArgs[0])) {
60
61
  .version(false)
61
62
  .scriptName("wsdl-tsc")
62
63
  .usage("$0 <command> [options]")
63
- .command("assess", "Assess schema obligations without generating artifacts")
64
+ .command("assess", "Assess narrow direct-schema obligations; component readiness uses pipeline --checked-report")
64
65
  .command("compile", "Compile WSDL to catalog.json")
65
66
  .command("client", "Generate TypeScript SOAP client from WSDL or catalog")
66
67
  .command("openapi", "Generate OpenAPI specification from WSDL or catalog")
@@ -613,12 +614,32 @@ if (rawArgs[0] === "app") {
613
614
  });
614
615
  process.exit(0);
615
616
  }
616
- if (rawArgs[0] === "pipeline") {
617
+ if (rawArgs[0] === "pipeline" && hasServicesConfig) {
618
+ const argv = await yargs(rawArgs.slice(1)).version(false).scriptName("wsdl-tsc pipeline")
619
+ .option("services-config", { type: "string", demandOption: true, desc: "Multi-service generation configuration; exclusive with single-source pipeline flags" })
620
+ .strict().help().parse();
621
+ try {
622
+ const { loadMultiServiceConfig, runMultiServicePipeline } = await import("./multiServicePipeline.js");
623
+ const result = await runMultiServicePipeline(await loadMultiServiceConfig(argv["services-config"]));
624
+ success(`Composed gateway written to ${result.pluginFile}`);
625
+ success(`Combined OpenAPI specification written to ${result.openapiFile}`);
626
+ }
627
+ catch (error) {
628
+ handleCLIError(error);
629
+ }
630
+ }
631
+ if (rawArgs[0] === "pipeline" && !hasServicesConfig) {
617
632
  const pipelineArgv = await yargs(rawArgs.slice(1))
618
633
  .version(false)
619
634
  .scriptName("wsdl-tsc pipeline")
635
+ .option("services-config", { type: "string", desc: "Compose independent service pipelines from JSON; exclusive with single-source flags" })
620
636
  .usage("$0 --wsdl-source <file|url> [--client-dir <dir>] [--openapi-file <path>] [--gateway-dir <dir> --gateway-service-name <slug> --gateway-version-prefix <slug>] [--catalog-file <path>] [options]")
621
637
  .option("wsdl-source", { type: "string", demandOption: true, desc: "Path or URL to the WSDL" })
638
+ .option("model", { type: "string", choices: ["legacy", "checked-components-v1"], default: "legacy", desc: "Generation model; components derive unambiguous WSDL selections" })
639
+ .option("checked-config", { type: "string", desc: "Optional component choices, extra metadata origins or closed offline snapshots" })
640
+ .option("checked-report", { type: "string", desc: "Write versioned component planning JSON on success or refusal" })
641
+ .option("checked-draft", { type: "string", desc: "Write minimal component missing-schema configuration when needed" })
642
+ .option("force-checked-files", { type: "boolean", default: false, desc: "Explicitly replace requested planning report/draft files" })
622
643
  // Per-artifact outputs
623
644
  .option("client-dir", {
624
645
  type: "string",
@@ -775,6 +796,75 @@ if (rawArgs[0] === "pipeline") {
775
796
  .strict()
776
797
  .help()
777
798
  .parse();
799
+ if (pipelineArgv.model === 'checked-components-v1') {
800
+ const allowed = new Set(['model', 'checked-config', 'checked-report', 'checked-draft', 'force-checked-files', 'wsdl-source', 'client-dir', 'gateway-dir', 'openapi-file',
801
+ 'gateway-service-name', 'gateway-version-prefix', 'init-app', 'app-dir', 'app-host', 'app-port', 'force-init',
802
+ 'test-dir', 'force-test', 'help', 'openapi-format']);
803
+ for (const arg of rawArgs.slice(1).filter(a => a.startsWith('--'))) {
804
+ if (!allowed.has(arg.slice(2).split('=')[0]))
805
+ handleCLIError(`Unsupported checked model option: ${arg.split('=')[0]}`);
806
+ }
807
+ if (pipelineArgv.model !== 'checked-components-v1' && (pipelineArgv['checked-report'] || pipelineArgv['checked-draft'] || pipelineArgv['force-checked-files']))
808
+ handleCLIError('Planning files require checked-components-v1');
809
+ if (pipelineArgv['init-app'] && !pipelineArgv['app-dir'])
810
+ handleCLIError(`${pipelineArgv.model} requires explicit --app-dir with --init-app`);
811
+ if (pipelineArgv['openapi-format'] && pipelineArgv['openapi-format'] !== 'json')
812
+ handleCLIError(`${pipelineArgv.model} emits JSON OpenAPI only`);
813
+ const { CheckedPlanningError, writeCheckedPlanningFile, prepareCheckedComponentPlan } = await import('./checkedPlanning.js');
814
+ const supplied = pipelineArgv['checked-config'] ? JSON.parse(fs.readFileSync(pipelineArgv['checked-config'], 'utf8')) : {};
815
+ const writePlan = (report) => {
816
+ if (pipelineArgv['checked-report'])
817
+ writeCheckedPlanningFile(pipelineArgv['checked-report'], report, pipelineArgv['force-checked-files']);
818
+ if (pipelineArgv['checked-draft'] && report.resolution)
819
+ writeCheckedPlanningFile(pipelineArgv['checked-draft'], report.resolution.configuration, pipelineArgv['force-checked-files']);
820
+ };
821
+ const controller = new AbortController();
822
+ const cancel = () => controller.abort();
823
+ process.on('SIGINT', cancel);
824
+ let checkedExitCode = 0;
825
+ try {
826
+ if (pipelineArgv.model === 'checked-components-v1' && (!supplied || typeof supplied !== 'object' || Array.isArray(supplied))) {
827
+ throw new CheckedPlanningError((await prepareCheckedComponentPlan(pipelineArgv['wsdl-source'], supplied)).report);
828
+ }
829
+ const result = await runGenerationPipeline({
830
+ model: pipelineArgv.model,
831
+ checkedComponents: { ...supplied, signal: controller.signal },
832
+ wsdl: pipelineArgv['wsdl-source'], catalogOut: '',
833
+ clientOutDir: pipelineArgv['client-dir'],
834
+ openapi: { outFile: pipelineArgv['openapi-file'] },
835
+ gateway: { outDir: pipelineArgv['gateway-dir'] ?? '', serviceSlug: pipelineArgv['gateway-service-name'] ?? '',
836
+ versionSlug: pipelineArgv['gateway-version-prefix'] ?? '' },
837
+ app: pipelineArgv['init-app'] ? { appDir: pipelineArgv['app-dir'] ?? '', force: pipelineArgv['force-init'],
838
+ host: pipelineArgv['app-host'], port: pipelineArgv['app-port'] } : undefined,
839
+ test: pipelineArgv['test-dir'] ? { testDir: pipelineArgv['test-dir'], force: pipelineArgv['force-test'] } : undefined,
840
+ });
841
+ if (result.planning)
842
+ writePlan(result.planning);
843
+ console.log(JSON.stringify(result.checked, null, 2));
844
+ }
845
+ catch (error) {
846
+ if (!(error instanceof CheckedPlanningError))
847
+ throw error;
848
+ writePlan(error.report);
849
+ if (process.env.DEBUG?.split(/[\s,]+/).includes('wsdl-tsc'))
850
+ console.error(error);
851
+ else {
852
+ const { formatCheckedCliRefusal } = await import('./util/checkedCliDiagnostics.js');
853
+ console.error(formatCheckedCliRefusal(error.report));
854
+ }
855
+ // @why Drain diagnostic writes before the CLI's explicit exit, including piped DEBUG reports.
856
+ await new Promise(resolve => { process.stderr.write('', () => resolve()); });
857
+ checkedExitCode = 1;
858
+ }
859
+ finally {
860
+ process.off('SIGINT', cancel);
861
+ }
862
+ process.exit(checkedExitCode);
863
+ }
864
+ if (pipelineArgv['checked-config'])
865
+ handleCLIError('--checked-config requires --model checked-components-v1');
866
+ if (pipelineArgv['checked-report'] || pipelineArgv['checked-draft'] || pipelineArgv['force-checked-files'])
867
+ handleCLIError('Planning files require checked-components-v1');
778
868
  const format = pipelineArgv["openapi-format"] ?? "json";
779
869
  const clientOut = pipelineArgv["client-dir"];
780
870
  const openapiOut = pipelineArgv["openapi-file"];
@@ -1,4 +1,4 @@
1
- import { DIRECT_CLIENT_RUNTIME_VERSION } from './directClientVersion.js';
1
+ import { DIRECT_CLIENT_RUNTIME_VERSION, COMPONENT_CLIENT_RUNTIME_VERSION } from './directClientVersion.js';
2
2
  interface Name {
3
3
  readonly namespace: string;
4
4
  readonly local: string;
@@ -32,6 +32,7 @@ interface Failure {
32
32
  readonly rule: string;
33
33
  readonly usage: Usage;
34
34
  readonly repair?: string;
35
+ readonly phase?: 'input' | 'response';
35
36
  }
36
37
  type Success = {
37
38
  readonly value: unknown;
@@ -50,10 +51,46 @@ type Success = {
50
51
  readonly actor?: string;
51
52
  };
52
53
  });
53
- /** Unreleased direct-grammar binding. Generation and broader SOAP capabilities remain internal. */
54
+ type ComponentOptions = Omit<Options, 'soap'> & {
55
+ readonly sourceResources: readonly {
56
+ readonly uri: string;
57
+ readonly file: string;
58
+ readonly canonicalUri?: string;
59
+ }[];
60
+ readonly sourceUri?: string;
61
+ readonly sourceOrigins: readonly string[];
62
+ readonly namespaceLocations?: readonly {
63
+ readonly namespace: string;
64
+ readonly location: string;
65
+ }[];
66
+ readonly standardLibraries?: readonly string[];
67
+ readonly recordSources?: readonly {
68
+ readonly selector: {
69
+ readonly portType: Name;
70
+ readonly binding: Name;
71
+ readonly operation: string;
72
+ };
73
+ readonly source: string;
74
+ }[];
75
+ readonly soap: Omit<Options['soap'], 'endpoint' | 'allowEndpoint'> & {
76
+ readonly ca?: string;
77
+ readonly endpoint?: string;
78
+ readonly allowEndpoint?: (endpoint: URL) => boolean;
79
+ };
80
+ };
81
+ /** Scoped direct-grammar binding used by the opt-in checked gateway preview. */
54
82
  export declare const checkedDirectRuntimeV1: Readonly<{
55
83
  version: typeof DIRECT_CLIENT_RUNTIME_VERSION;
56
84
  execute(expectedBase64: string, input: unknown, options: Options, version: typeof DIRECT_CLIENT_RUNTIME_VERSION): Promise<Failure | Success>;
57
85
  }>;
86
+ /** Component injection protocol over the shared checked source, artifact and SOAP runtime.
87
+ * @remarks Caller-authorized physical source resources are read independently of embedded artifact bytes.
88
+ * Component runtime v2 derives endpoint intent; explicit restrictions and TLS trust still apply.
89
+ * This entry accepts no diagnostic budget or deadline defaults.
90
+ * @returns Native-validated normal/fault values or explicit refusal. No gateway admission is issued here.
91
+ */
92
+ export declare const checkedComponentRuntimeV1: Readonly<{
93
+ version: typeof COMPONENT_CLIENT_RUNTIME_VERSION;
94
+ execute(expectedBase64: string, input: unknown, options: ComponentOptions, version: typeof COMPONENT_CLIENT_RUNTIME_VERSION): Promise<Failure | Success>;
95
+ }>;
58
96
  export {};
59
- //# sourceMappingURL=checkedDirectRuntime.d.ts.map
@@ -1,7 +1,13 @@
1
1
  import { types } from 'node:util';
2
- import { directClientRuntime } from './directClientRuntime.js';
3
- import { DIRECT_CLIENT_RUNTIME_VERSION, DIRECT_CLIENT_RUNTIME_REPAIR } from './directClientVersion.js';
4
- /** Unreleased direct-grammar binding. Generation and broader SOAP capabilities remain internal. */
2
+ import { directClientRuntime, componentClientRuntime } from './directClientRuntime.js';
3
+ import { DIRECT_CLIENT_RUNTIME_VERSION, DIRECT_CLIENT_RUNTIME_REPAIR, COMPONENT_CLIENT_RUNTIME_VERSION, COMPONENT_CLIENT_RUNTIME_REPAIR } from './directClientVersion.js';
4
+ function dataOptions(options, allowed) {
5
+ return !!options && typeof options === 'object' && !types.isProxy(options)
6
+ && [null, Object.prototype].includes(Object.getPrototypeOf(options))
7
+ && !Reflect.ownKeys(options).some(key => typeof key !== 'string' || !allowed.includes(key)
8
+ || !Object.hasOwn(Object.getOwnPropertyDescriptor(options, key), 'value'));
9
+ }
10
+ /** Scoped direct-grammar binding used by the opt-in checked gateway preview. */
5
11
  export const checkedDirectRuntimeV1 = Object.freeze({
6
12
  version: DIRECT_CLIENT_RUNTIME_VERSION,
7
13
  async execute(expectedBase64, input, options, version) {
@@ -11,13 +17,27 @@ export const checkedDirectRuntimeV1 = Object.freeze({
11
17
  usage: Object.freeze({ nodes: 0, work: 0 }) });
12
18
  // The public entry never accepts the private profiling hook, even from JavaScript.
13
19
  // Inspect descriptors before forwarding so getters/proxies cannot supply it.
14
- if (!options || typeof options !== 'object' || types.isProxy(options)
15
- || ![null, Object.prototype].includes(Object.getPrototypeOf(options))
16
- || Reflect.ownKeys(options).some(key => typeof key !== 'string'
17
- || !['localSource', 'fileRoots', 'capsule', 'soap'].includes(key)
18
- || !Object.hasOwn(Object.getOwnPropertyDescriptor(options, key), 'value'))) {
20
+ if (!dataOptions(options, ['localSource', 'fileRoots', 'capsule', 'soap'])) {
19
21
  return Object.freeze({ kind: 'unsupported', rule: 'data-only checked direct options required', usage: Object.freeze({ nodes: 0, work: 0 }) });
20
22
  }
21
23
  return directClientRuntime.execute(expectedBase64, input, options);
22
24
  },
23
25
  });
26
+ /** Component injection protocol over the shared checked source, artifact and SOAP runtime.
27
+ * @remarks Caller-authorized physical source resources are read independently of embedded artifact bytes.
28
+ * Component runtime v2 derives endpoint intent; explicit restrictions and TLS trust still apply.
29
+ * This entry accepts no diagnostic budget or deadline defaults.
30
+ * @returns Native-validated normal/fault values or explicit refusal. No gateway admission is issued here.
31
+ */
32
+ export const checkedComponentRuntimeV1 = Object.freeze({
33
+ version: COMPONENT_CLIENT_RUNTIME_VERSION,
34
+ async execute(expectedBase64, input, options, version) {
35
+ if (version !== COMPONENT_CLIENT_RUNTIME_VERSION)
36
+ return Object.freeze({ kind: 'incompatible-artifact',
37
+ rule: 'generated-runtime-version', repair: COMPONENT_CLIENT_RUNTIME_REPAIR, usage: Object.freeze({ nodes: 0, work: 0 }) });
38
+ if (!dataOptions(options, ['localSource', 'fileRoots', 'capsule', 'soap', 'sourceResources', 'sourceOrigins', 'sourceUri', 'namespaceLocations', 'standardLibraries', 'recordSources'])) {
39
+ return Object.freeze({ kind: 'unsupported', rule: 'data-only checked component options required', usage: Object.freeze({ nodes: 0, work: 0 }) });
40
+ }
41
+ return componentClientRuntime.execute(expectedBase64, input, options);
42
+ },
43
+ });
@@ -1,6 +1,7 @@
1
1
  import type { SemanticBudgetLimits, ResolverUsage } from '../compiler/semanticBudget.js';
2
2
  import type { DirectCapsuleFailure } from '../compiler/directSourceCapsule.js';
3
- import type { DirectSoapOptions, DirectSoapFailure } from '../compiler/directSoap.js';
3
+ import type { DirectSoapOptions, ComponentSoapOptions, DirectSoapFailure } from '../compiler/directSoap.js';
4
+ import type { DirectOperationSelector } from '../compiler/directOperation.js';
4
5
  import type { DirectApplicationValue } from '../compiler/directValues.js';
5
6
  import { DIRECT_CLIENT_RUNTIME_VERSION } from './directClientVersion.js';
6
7
  export interface DirectClientOptions {
@@ -10,11 +11,31 @@ export interface DirectClientOptions {
10
11
  readonly budget?: SemanticBudgetLimits;
11
12
  readonly soap: DirectSoapOptions;
12
13
  }
14
+ export interface ComponentClientOptions extends Omit<DirectClientOptions, 'soap'> {
15
+ readonly sourceResources: readonly {
16
+ readonly uri: string;
17
+ readonly file: string;
18
+ readonly canonicalUri?: string;
19
+ }[];
20
+ readonly sourceUri?: string;
21
+ readonly sourceOrigins: readonly string[];
22
+ readonly namespaceLocations?: readonly {
23
+ readonly namespace: string;
24
+ readonly location: string;
25
+ }[];
26
+ readonly standardLibraries?: readonly string[];
27
+ readonly recordSources?: readonly {
28
+ readonly selector: DirectOperationSelector;
29
+ readonly source: string;
30
+ }[];
31
+ readonly soap: ComponentSoapOptions;
32
+ }
13
33
  export interface DirectClientFailure {
14
34
  readonly kind: DirectCapsuleFailure['kind'] | DirectSoapFailure['kind'];
15
35
  readonly rule: string;
16
36
  readonly usage: ResolverUsage;
17
37
  readonly repair?: string;
38
+ readonly phase?: 'input' | 'response';
18
39
  }
19
40
  export type DirectClientResult = DirectClientFailure | Readonly<{
20
41
  kind: 'soap-response';
@@ -46,4 +67,8 @@ export interface DirectClientRuntime {
46
67
  }
47
68
  /** The generated literal is the expected artifact; caller bytes never choose its static contract. */
48
69
  export declare const directClientRuntime: DirectClientRuntime;
49
- //# sourceMappingURL=directClientRuntime.d.ts.map
70
+ /** Same artifact/execution chain, with explicit physical dependency snapshots and component-profile reconstruction. */
71
+ export declare const componentClientRuntime: Readonly<{
72
+ version: "checked-component-runtime-v2";
73
+ execute: (expectedBase64: string, input: unknown, options: ComponentClientOptions) => Promise<DirectClientResult>;
74
+ }>;