@techspokes/typescript-wsdl-client 1.1.5 → 1.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (480) hide show
  1. package/README.md +64 -66
  2. package/dist/app/generateApp.d.ts +0 -1
  3. package/dist/app/generateApp.js +1 -1
  4. package/dist/app/generateCheckedApp.d.ts +38 -0
  5. package/dist/app/generateCheckedApp.js +108 -0
  6. package/dist/checkedPipeline.d.ts +155 -0
  7. package/dist/checkedPipeline.js +448 -0
  8. package/dist/checkedPlanning.d.ts +123 -0
  9. package/dist/checkedPlanning.js +245 -0
  10. package/dist/cli.d.ts +0 -1
  11. package/dist/cli.js +75 -1
  12. package/dist/client/checkedDirectRuntime.d.ts +40 -3
  13. package/dist/client/checkedDirectRuntime.js +28 -8
  14. package/dist/client/directClientRuntime.d.ts +27 -2
  15. package/dist/client/directClientRuntime.js +142 -89
  16. package/dist/client/directClientVersion.d.ts +3 -1
  17. package/dist/client/directClientVersion.js +3 -0
  18. package/dist/client/generateClient.d.ts +0 -1
  19. package/dist/client/generateClient.js +26 -12
  20. package/dist/client/generateDirectClient.d.ts +21 -3
  21. package/dist/client/generateDirectClient.js +138 -6
  22. package/dist/client/generateOperations.d.ts +0 -1
  23. package/dist/client/generateTypes.d.ts +0 -1
  24. package/dist/client/generateUtils.d.ts +0 -1
  25. package/dist/client/generateUtils.js +3 -1
  26. package/dist/compiler/applicationGroups.d.ts +53 -0
  27. package/dist/compiler/applicationGroups.js +403 -0
  28. package/dist/compiler/buildCanonicalGraph.d.ts +0 -1
  29. package/dist/compiler/canonicalGraph.d.ts +0 -1
  30. package/dist/compiler/catalogErrors.d.ts +0 -1
  31. package/dist/compiler/catalogProvenance.d.ts +0 -1
  32. package/dist/compiler/checkedAssessment.d.ts +0 -1
  33. package/dist/compiler/checkedAssessment.js +1 -1
  34. package/dist/compiler/checkedComponentSource.d.ts +16 -0
  35. package/dist/compiler/checkedComponentSource.js +31 -0
  36. package/dist/compiler/checkedSourcePreparation.d.ts +38 -1
  37. package/dist/compiler/checkedSourcePreparation.js +71 -0
  38. package/dist/compiler/complexTypeContent.d.ts +5 -6
  39. package/dist/compiler/complexTypeContent.js +2 -2
  40. package/dist/compiler/componentCorrespondence.d.ts +32 -0
  41. package/dist/compiler/componentCorrespondence.js +140 -0
  42. package/dist/compiler/componentRecordProjection.d.ts +109 -0
  43. package/dist/compiler/componentRecordProjection.js +319 -0
  44. package/dist/compiler/componentSoapPreparation.d.ts +20 -0
  45. package/dist/compiler/componentSoapPreparation.js +36 -0
  46. package/dist/compiler/composeCanonicalGraph.d.ts +0 -1
  47. package/dist/compiler/dataOwnership.d.ts +0 -1
  48. package/dist/compiler/dataOwnership.js +14 -4
  49. package/dist/compiler/datatypeValues.d.ts +0 -1
  50. package/dist/compiler/directCodec.d.ts +59 -2
  51. package/dist/compiler/directCodec.js +275 -90
  52. package/dist/compiler/directExecutionPolicy.d.ts +0 -1
  53. package/dist/compiler/directOperation.d.ts +46 -4
  54. package/dist/compiler/directOperation.js +105 -14
  55. package/dist/compiler/directSoap.d.ts +29 -5
  56. package/dist/compiler/directSoap.js +130 -37
  57. package/dist/compiler/directSoapSource.d.ts +24 -1
  58. package/dist/compiler/directSoapSource.js +166 -19
  59. package/dist/compiler/directSourceCapsule.d.ts +74 -2
  60. package/dist/compiler/directSourceCapsule.js +428 -6
  61. package/dist/compiler/directStructure.d.ts +83 -6
  62. package/dist/compiler/directStructure.js +349 -58
  63. package/dist/compiler/directStructurePlan.d.ts +135 -2
  64. package/dist/compiler/directStructurePlan.js +594 -29
  65. package/dist/compiler/directValues.d.ts +63 -4
  66. package/dist/compiler/directValues.js +950 -116
  67. package/dist/compiler/finiteRe01Construction.d.ts +69 -0
  68. package/dist/compiler/finiteRe01Construction.js +422 -0
  69. package/dist/compiler/finiteRe01Verification.d.ts +81 -3
  70. package/dist/compiler/finiteRe01Verification.js +391 -4
  71. package/dist/compiler/generateCatalog.d.ts +0 -1
  72. package/dist/compiler/graphTraversal.d.ts +0 -1
  73. package/dist/compiler/hypotheticalScopedIdentity.d.ts +0 -1
  74. package/dist/compiler/occurrenceAnalysis.d.ts +2 -1
  75. package/dist/compiler/occurrenceAnalysis.js +23 -7
  76. package/dist/compiler/originalSourceMembership.d.ts +0 -1
  77. package/dist/compiler/particleAttribution.d.ts +0 -1
  78. package/dist/compiler/particleAttribution.js +20 -0
  79. package/dist/compiler/particleDeclarationConsistency.d.ts +0 -1
  80. package/dist/compiler/particleDeclarationConsistency.js +9 -0
  81. package/dist/compiler/particleExtension.d.ts +0 -1
  82. package/dist/compiler/particleExtension.js +5 -1
  83. package/dist/compiler/particleLocalAssessment.d.ts +0 -1
  84. package/dist/compiler/particleRestriction.d.ts +0 -1
  85. package/dist/compiler/particleRestriction.js +6 -1
  86. package/dist/compiler/particleSemanticView.d.ts +2 -1
  87. package/dist/compiler/particleSemanticView.js +16 -3
  88. package/dist/compiler/particleWildcardRelation.d.ts +0 -1
  89. package/dist/compiler/projectionScalar.d.ts +32 -0
  90. package/dist/compiler/projectionScalar.js +184 -0
  91. package/dist/compiler/re01CandidateAssignments.d.ts +95 -0
  92. package/dist/compiler/re01CandidateAssignments.js +341 -0
  93. package/dist/compiler/re01CandidateCorrespondence.d.ts +22 -1
  94. package/dist/compiler/re01CandidateCorrespondence.js +167 -38
  95. package/dist/compiler/re01TypeProperties.d.ts +0 -1
  96. package/dist/compiler/re01TypePropertyValidation.d.ts +0 -1
  97. package/dist/compiler/resolveCanonicalGraph.d.ts +5 -2
  98. package/dist/compiler/resolveCanonicalGraph.js +77 -7
  99. package/dist/compiler/scalarSchemaAssessment.d.ts +0 -1
  100. package/dist/compiler/schemaAttributeGroupProperties.d.ts +0 -1
  101. package/dist/compiler/schemaAttributeProperties.d.ts +0 -1
  102. package/dist/compiler/schemaAttributeUses.d.ts +22 -2
  103. package/dist/compiler/schemaAttributeUses.js +86 -13
  104. package/dist/compiler/schemaBinaryWordReconstruction.d.ts +0 -1
  105. package/dist/compiler/schemaBuiltinFacets.d.ts +0 -1
  106. package/dist/compiler/schemaCalendarImages.d.ts +0 -1
  107. package/dist/compiler/schemaCalendarLanguage.d.ts +0 -1
  108. package/dist/compiler/schemaCompiler.d.ts +0 -1
  109. package/dist/compiler/schemaComponentEquality.d.ts +0 -1
  110. package/dist/compiler/schemaConstructionAssessment.d.ts +34 -1
  111. package/dist/compiler/schemaConstructionAssessment.js +88 -6
  112. package/dist/compiler/schemaDatatypeValues.d.ts +0 -1
  113. package/dist/compiler/schemaDecimalLanguage.d.ts +0 -1
  114. package/dist/compiler/schemaDeclarationPrimitives.d.ts +7 -2
  115. package/dist/compiler/schemaDeclarationPrimitives.js +18 -1
  116. package/dist/compiler/schemaDocumentSyntax.d.ts +0 -1
  117. package/dist/compiler/schemaDurationLanguage.d.ts +0 -1
  118. package/dist/compiler/schemaElementInstance.d.ts +30 -0
  119. package/dist/compiler/schemaElementInstance.js +45 -0
  120. package/dist/compiler/schemaElementProperties.d.ts +0 -1
  121. package/dist/compiler/schemaEndpointWordCapacity.d.ts +0 -1
  122. package/dist/compiler/schemaExactCalendar.d.ts +0 -1
  123. package/dist/compiler/schemaFacetAnnotation.d.ts +0 -1
  124. package/dist/compiler/schemaGeneratedScalarShape.d.ts +0 -1
  125. package/dist/compiler/schemaGeneratedScalarShape.js +2 -0
  126. package/dist/compiler/schemaIdentityConstraints.d.ts +0 -1
  127. package/dist/compiler/schemaIeeeLanguage.d.ts +0 -1
  128. package/dist/compiler/schemaIntegerImages.d.ts +0 -1
  129. package/dist/compiler/schemaLexicalPredicates.d.ts +0 -1
  130. package/dist/compiler/schemaNotationProperties.d.ts +0 -1
  131. package/dist/compiler/schemaNumericImageConditions.d.ts +0 -1
  132. package/dist/compiler/schemaParticleWildcardProperties.d.ts +0 -1
  133. package/dist/compiler/schemaPattern.d.ts +0 -1
  134. package/dist/compiler/schemaRegularLanguage.d.ts +0 -1
  135. package/dist/compiler/schemaScalarContext.d.ts +5 -1
  136. package/dist/compiler/schemaScalarKernel.d.ts +0 -1
  137. package/dist/compiler/schemaScalarWitnesses.d.ts +0 -1
  138. package/dist/compiler/schemaSimpleTypeProperties.d.ts +0 -1
  139. package/dist/compiler/schemaSourceGrammar.d.ts +0 -1
  140. package/dist/compiler/schemaSourceLexical.d.ts +0 -1
  141. package/dist/compiler/schemaSourceValues.d.ts +0 -1
  142. package/dist/compiler/schemaSourceWildcards.d.ts +1 -2
  143. package/dist/compiler/schemaSourceWildcards.js +3 -1
  144. package/dist/compiler/schemaSymbolicSequences.d.ts +0 -1
  145. package/dist/compiler/schemaSymbolicValueSets.d.ts +0 -1
  146. package/dist/compiler/schemaSyntaxAssessment.d.ts +0 -1
  147. package/dist/compiler/schemaTemporalAliases.d.ts +0 -1
  148. package/dist/compiler/schemaTokenImages.d.ts +0 -1
  149. package/dist/compiler/schemaTypeIdentity.d.ts +0 -1
  150. package/dist/compiler/schemaTypeIdentity.js +2 -0
  151. package/dist/compiler/schemaTypeRelations.d.ts +0 -1
  152. package/dist/compiler/schemaUri.d.ts +0 -1
  153. package/dist/compiler/schemaValueContext.d.ts +0 -1
  154. package/dist/compiler/schemaValueImages.d.ts +0 -1
  155. package/dist/compiler/schemaValueSequences.d.ts +0 -1
  156. package/dist/compiler/semanticBudget.d.ts +18 -1
  157. package/dist/compiler/semanticBudget.js +17 -2
  158. package/dist/compiler/semanticCatalog.d.ts +1 -2
  159. package/dist/compiler/semanticContext.d.ts +12 -1
  160. package/dist/compiler/semanticContext.js +39 -0
  161. package/dist/compiler/semanticTypeDependencies.d.ts +0 -1
  162. package/dist/compiler/semanticTypeReference.d.ts +0 -1
  163. package/dist/compiler/shapeResolver.d.ts +0 -1
  164. package/dist/compiler/soapHeaders.d.ts +16 -0
  165. package/dist/compiler/soapHeaders.js +42 -0
  166. package/dist/compiler/sourceSchemaBinding.d.ts +0 -1
  167. package/dist/compiler/standardSchemaComponents.d.ts +71 -0
  168. package/dist/compiler/standardSchemaComponents.js +74 -0
  169. package/dist/compiler/standardSchemaConstruction.d.ts +20 -0
  170. package/dist/compiler/standardSchemaConstruction.js +34 -0
  171. package/dist/compiler/structuralCompanions.d.ts +0 -1
  172. package/dist/compiler/validateSemanticGraph.d.ts +0 -1
  173. package/dist/compiler/wildcardAlgebra.d.ts +0 -1
  174. package/dist/compiler/wsdlPolicyRequirements.d.ts +43 -0
  175. package/dist/compiler/wsdlPolicyRequirements.js +239 -0
  176. package/dist/config.d.ts +0 -1
  177. package/dist/gateway/generateCheckedGateway.d.ts +32 -0
  178. package/dist/gateway/generateCheckedGateway.js +293 -0
  179. package/dist/gateway/generateGateway.d.ts +0 -1
  180. package/dist/gateway/generators.d.ts +0 -1
  181. package/dist/gateway/helpers.d.ts +0 -1
  182. package/dist/generation/componentShape.d.ts +14 -0
  183. package/dist/generation/componentShape.js +269 -0
  184. package/dist/generation/preamble.d.ts +0 -1
  185. package/dist/generation/sourceLayout.d.ts +13 -0
  186. package/dist/generation/sourceLayout.js +40 -0
  187. package/dist/generation/writeGeneratedSource.d.ts +0 -1
  188. package/dist/index.d.ts +7 -2
  189. package/dist/index.js +2 -1
  190. package/dist/loader/fetch.d.ts +0 -1
  191. package/dist/loader/orderedSyntax.d.ts +8 -1
  192. package/dist/loader/orderedSyntax.js +26 -6
  193. package/dist/loader/resolutionDepth.d.ts +0 -1
  194. package/dist/loader/schemaInput.d.ts +28 -1
  195. package/dist/loader/schemaInput.js +41 -4
  196. package/dist/loader/schemaResources.d.ts +2 -1
  197. package/dist/loader/schemaResources.js +45 -4
  198. package/dist/loader/wsdlLoader.d.ts +0 -1
  199. package/dist/openapi/casing.d.ts +0 -1
  200. package/dist/openapi/generateOpenAPI.d.ts +0 -1
  201. package/dist/openapi/generatePaths.d.ts +0 -1
  202. package/dist/openapi/generateSchemas.d.ts +0 -1
  203. package/dist/openapi/security.d.ts +0 -1
  204. package/dist/pipeline.d.ts +6 -2
  205. package/dist/pipeline.js +13 -0
  206. package/dist/test/generateCheckedTests.d.ts +17 -0
  207. package/dist/test/generateCheckedTests.js +60 -0
  208. package/dist/test/generateTests.d.ts +0 -1
  209. package/dist/test/generators.d.ts +0 -1
  210. package/dist/test/mockData.d.ts +0 -1
  211. package/dist/test/mockData.js +20 -14
  212. package/dist/util/attributeWildcards.d.ts +0 -1
  213. package/dist/util/builder.d.ts +0 -1
  214. package/dist/util/catalogMeta.d.ts +0 -1
  215. package/dist/util/checkedCliDiagnostics.d.ts +11 -0
  216. package/dist/util/checkedCliDiagnostics.js +22 -0
  217. package/dist/util/cli.d.ts +0 -1
  218. package/dist/util/errors.d.ts +0 -1
  219. package/dist/util/imports.d.ts +0 -1
  220. package/dist/util/runtimeSource.d.ts +0 -1
  221. package/dist/util/runtimeSource.js +3 -5
  222. package/dist/util/securityConfig.d.ts +0 -1
  223. package/dist/util/streamConfig.d.ts +0 -1
  224. package/dist/util/tools.d.ts +0 -1
  225. package/dist/util/xmlWhitespace.d.ts +0 -1
  226. package/dist/xsd/primitives.d.ts +0 -1
  227. package/docs/agent-skill.md +2 -0
  228. package/docs/api-reference.md +1 -1
  229. package/docs/checked-gateway.md +210 -0
  230. package/docs/checked-generation.md +161 -0
  231. package/docs/cli-reference.md +23 -1
  232. package/docs/concepts.md +136 -1
  233. package/docs/configuration.md +5 -1
  234. package/docs/corpus.md +33 -0
  235. package/docs/direct-values.md +13 -13
  236. package/docs/examples/checked-forecast.wsdl +19 -0
  237. package/docs/gateway-guide.md +1 -1
  238. package/docs/generated-code.md +10 -5
  239. package/docs/mapping-contract.md +114 -0
  240. package/docs/migration-playbook.md +1 -1
  241. package/docs/output-anatomy.md +1 -1
  242. package/docs/start-here.md +8 -2
  243. package/docs/supported-patterns.md +7 -3
  244. package/docs/testing.md +117 -31
  245. package/llms.txt +7 -7
  246. package/package.json +63 -22
  247. package/src/runtime/checkedGatewayHost.tpl.txt +157 -0
  248. package/src/runtime/streamXml.ts +1 -1
  249. package/dist/app/generateApp.d.ts.map +0 -1
  250. package/dist/cli.d.ts.map +0 -1
  251. package/dist/client/checkedDirectRuntime.d.ts.map +0 -1
  252. package/dist/client/directClientRuntime.d.ts.map +0 -1
  253. package/dist/client/directClientVersion.d.ts.map +0 -1
  254. package/dist/client/generateClient.d.ts.map +0 -1
  255. package/dist/client/generateDirectClient.d.ts.map +0 -1
  256. package/dist/client/generateOperations.d.ts.map +0 -1
  257. package/dist/client/generateTypes.d.ts.map +0 -1
  258. package/dist/client/generateUtils.d.ts.map +0 -1
  259. package/dist/compiler/buildCanonicalGraph.d.ts.map +0 -1
  260. package/dist/compiler/canonicalGraph.d.ts.map +0 -1
  261. package/dist/compiler/catalogErrors.d.ts.map +0 -1
  262. package/dist/compiler/catalogProvenance.d.ts.map +0 -1
  263. package/dist/compiler/checkedAssessment.d.ts.map +0 -1
  264. package/dist/compiler/checkedSourcePreparation.d.ts.map +0 -1
  265. package/dist/compiler/complexTypeContent.d.ts.map +0 -1
  266. package/dist/compiler/composeCanonicalGraph.d.ts.map +0 -1
  267. package/dist/compiler/dataOwnership.d.ts.map +0 -1
  268. package/dist/compiler/datatypeValues.d.ts.map +0 -1
  269. package/dist/compiler/directCodec.d.ts.map +0 -1
  270. package/dist/compiler/directExecutionPolicy.d.ts.map +0 -1
  271. package/dist/compiler/directOperation.d.ts.map +0 -1
  272. package/dist/compiler/directSoap.d.ts.map +0 -1
  273. package/dist/compiler/directSoapSource.d.ts.map +0 -1
  274. package/dist/compiler/directSourceCapsule.d.ts.map +0 -1
  275. package/dist/compiler/directStructure.d.ts.map +0 -1
  276. package/dist/compiler/directStructurePlan.d.ts.map +0 -1
  277. package/dist/compiler/directValues.d.ts.map +0 -1
  278. package/dist/compiler/finiteRe01Verification.d.ts.map +0 -1
  279. package/dist/compiler/generateCatalog.d.ts.map +0 -1
  280. package/dist/compiler/graphTraversal.d.ts.map +0 -1
  281. package/dist/compiler/hypotheticalScopedIdentity.d.ts.map +0 -1
  282. package/dist/compiler/occurrenceAnalysis.d.ts.map +0 -1
  283. package/dist/compiler/originalSourceMembership.d.ts.map +0 -1
  284. package/dist/compiler/particleAttribution.d.ts.map +0 -1
  285. package/dist/compiler/particleDeclarationConsistency.d.ts.map +0 -1
  286. package/dist/compiler/particleExtension.d.ts.map +0 -1
  287. package/dist/compiler/particleLocalAssessment.d.ts.map +0 -1
  288. package/dist/compiler/particleRestriction.d.ts.map +0 -1
  289. package/dist/compiler/particleSemanticView.d.ts.map +0 -1
  290. package/dist/compiler/particleWildcardRelation.d.ts.map +0 -1
  291. package/dist/compiler/re01CandidateCorrespondence.d.ts.map +0 -1
  292. package/dist/compiler/re01TypeProperties.d.ts.map +0 -1
  293. package/dist/compiler/re01TypePropertyValidation.d.ts.map +0 -1
  294. package/dist/compiler/resolveCanonicalGraph.d.ts.map +0 -1
  295. package/dist/compiler/scalarSchemaAssessment.d.ts.map +0 -1
  296. package/dist/compiler/schemaAttributeGroupProperties.d.ts.map +0 -1
  297. package/dist/compiler/schemaAttributeProperties.d.ts.map +0 -1
  298. package/dist/compiler/schemaAttributeUses.d.ts.map +0 -1
  299. package/dist/compiler/schemaBinaryWordReconstruction.d.ts.map +0 -1
  300. package/dist/compiler/schemaBuiltinFacets.d.ts.map +0 -1
  301. package/dist/compiler/schemaCalendarImages.d.ts.map +0 -1
  302. package/dist/compiler/schemaCalendarLanguage.d.ts.map +0 -1
  303. package/dist/compiler/schemaCompiler.d.ts.map +0 -1
  304. package/dist/compiler/schemaComponentEquality.d.ts.map +0 -1
  305. package/dist/compiler/schemaConstructionAssessment.d.ts.map +0 -1
  306. package/dist/compiler/schemaDatatypeValues.d.ts.map +0 -1
  307. package/dist/compiler/schemaDecimalLanguage.d.ts.map +0 -1
  308. package/dist/compiler/schemaDeclarationPrimitives.d.ts.map +0 -1
  309. package/dist/compiler/schemaDocumentSyntax.d.ts.map +0 -1
  310. package/dist/compiler/schemaDurationLanguage.d.ts.map +0 -1
  311. package/dist/compiler/schemaElementProperties.d.ts.map +0 -1
  312. package/dist/compiler/schemaEndpointWordCapacity.d.ts.map +0 -1
  313. package/dist/compiler/schemaExactCalendar.d.ts.map +0 -1
  314. package/dist/compiler/schemaFacetAnnotation.d.ts.map +0 -1
  315. package/dist/compiler/schemaGeneratedScalarShape.d.ts.map +0 -1
  316. package/dist/compiler/schemaIdentityConstraints.d.ts.map +0 -1
  317. package/dist/compiler/schemaIeeeLanguage.d.ts.map +0 -1
  318. package/dist/compiler/schemaIntegerImages.d.ts.map +0 -1
  319. package/dist/compiler/schemaLexicalPredicates.d.ts.map +0 -1
  320. package/dist/compiler/schemaNotationProperties.d.ts.map +0 -1
  321. package/dist/compiler/schemaNumericImageConditions.d.ts.map +0 -1
  322. package/dist/compiler/schemaParticleWildcardProperties.d.ts.map +0 -1
  323. package/dist/compiler/schemaPattern.d.ts.map +0 -1
  324. package/dist/compiler/schemaRegularLanguage.d.ts.map +0 -1
  325. package/dist/compiler/schemaScalarContext.d.ts.map +0 -1
  326. package/dist/compiler/schemaScalarKernel.d.ts.map +0 -1
  327. package/dist/compiler/schemaScalarWitnesses.d.ts.map +0 -1
  328. package/dist/compiler/schemaSimpleTypeProperties.d.ts.map +0 -1
  329. package/dist/compiler/schemaSourceGrammar.d.ts.map +0 -1
  330. package/dist/compiler/schemaSourceLexical.d.ts.map +0 -1
  331. package/dist/compiler/schemaSourceValues.d.ts.map +0 -1
  332. package/dist/compiler/schemaSourceWildcards.d.ts.map +0 -1
  333. package/dist/compiler/schemaSymbolicSequences.d.ts.map +0 -1
  334. package/dist/compiler/schemaSymbolicValueSets.d.ts.map +0 -1
  335. package/dist/compiler/schemaSyntaxAssessment.d.ts.map +0 -1
  336. package/dist/compiler/schemaTemporalAliases.d.ts.map +0 -1
  337. package/dist/compiler/schemaTokenImages.d.ts.map +0 -1
  338. package/dist/compiler/schemaTypeIdentity.d.ts.map +0 -1
  339. package/dist/compiler/schemaTypeRelations.d.ts.map +0 -1
  340. package/dist/compiler/schemaUri.d.ts.map +0 -1
  341. package/dist/compiler/schemaValueContext.d.ts.map +0 -1
  342. package/dist/compiler/schemaValueImages.d.ts.map +0 -1
  343. package/dist/compiler/schemaValueSequences.d.ts.map +0 -1
  344. package/dist/compiler/semanticBudget.d.ts.map +0 -1
  345. package/dist/compiler/semanticCatalog.d.ts.map +0 -1
  346. package/dist/compiler/semanticContext.d.ts.map +0 -1
  347. package/dist/compiler/semanticTypeDependencies.d.ts.map +0 -1
  348. package/dist/compiler/semanticTypeReference.d.ts.map +0 -1
  349. package/dist/compiler/shapeResolver.d.ts.map +0 -1
  350. package/dist/compiler/sourceSchemaBinding.d.ts.map +0 -1
  351. package/dist/compiler/structuralCompanions.d.ts.map +0 -1
  352. package/dist/compiler/validateSemanticGraph.d.ts.map +0 -1
  353. package/dist/compiler/wildcardAlgebra.d.ts.map +0 -1
  354. package/dist/config.d.ts.map +0 -1
  355. package/dist/gateway/generateGateway.d.ts.map +0 -1
  356. package/dist/gateway/generators.d.ts.map +0 -1
  357. package/dist/gateway/helpers.d.ts.map +0 -1
  358. package/dist/generation/preamble.d.ts.map +0 -1
  359. package/dist/generation/writeGeneratedSource.d.ts.map +0 -1
  360. package/dist/index.d.ts.map +0 -1
  361. package/dist/loader/fetch.d.ts.map +0 -1
  362. package/dist/loader/orderedSyntax.d.ts.map +0 -1
  363. package/dist/loader/resolutionDepth.d.ts.map +0 -1
  364. package/dist/loader/schemaInput.d.ts.map +0 -1
  365. package/dist/loader/schemaResources.d.ts.map +0 -1
  366. package/dist/loader/wsdlLoader.d.ts.map +0 -1
  367. package/dist/openapi/casing.d.ts.map +0 -1
  368. package/dist/openapi/generateOpenAPI.d.ts.map +0 -1
  369. package/dist/openapi/generatePaths.d.ts.map +0 -1
  370. package/dist/openapi/generateSchemas.d.ts.map +0 -1
  371. package/dist/openapi/security.d.ts.map +0 -1
  372. package/dist/pipeline.d.ts.map +0 -1
  373. package/dist/runtime/jsonArray.d.ts +0 -24
  374. package/dist/runtime/jsonArray.d.ts.map +0 -1
  375. package/dist/runtime/jsonArray.js +0 -52
  376. package/dist/runtime/ndjson.d.ts +0 -24
  377. package/dist/runtime/ndjson.d.ts.map +0 -1
  378. package/dist/runtime/ndjson.js +0 -30
  379. package/dist/runtime/streamXml.d.ts +0 -45
  380. package/dist/runtime/streamXml.d.ts.map +0 -1
  381. package/dist/runtime/streamXml.js +0 -212
  382. package/dist/test/generateTests.d.ts.map +0 -1
  383. package/dist/test/generators.d.ts.map +0 -1
  384. package/dist/test/mockData.d.ts.map +0 -1
  385. package/dist/util/attributeWildcards.d.ts.map +0 -1
  386. package/dist/util/builder.d.ts.map +0 -1
  387. package/dist/util/catalogMeta.d.ts.map +0 -1
  388. package/dist/util/cli.d.ts.map +0 -1
  389. package/dist/util/errors.d.ts.map +0 -1
  390. package/dist/util/imports.d.ts.map +0 -1
  391. package/dist/util/runtimeSource.d.ts.map +0 -1
  392. package/dist/util/securityConfig.d.ts.map +0 -1
  393. package/dist/util/streamConfig.d.ts.map +0 -1
  394. package/dist/util/tools.d.ts.map +0 -1
  395. package/dist/util/xmlWhitespace.d.ts.map +0 -1
  396. package/dist/xsd/primitives.d.ts.map +0 -1
  397. package/docs/AGENTS.md +0 -47
  398. package/docs/README.md +0 -69
  399. package/docs/architecture.md +0 -158
  400. package/docs/content-model-analysis.md +0 -92
  401. package/docs/content-model-baseline.md +0 -121
  402. package/docs/content-model-catalog.md +0 -116
  403. package/docs/content-model-companions.md +0 -90
  404. package/docs/content-model-composition.md +0 -103
  405. package/docs/content-model-decisions.md +0 -79
  406. package/docs/content-model-gateway-feasibility.md +0 -169
  407. package/docs/content-model-graph.md +0 -121
  408. package/docs/content-model-loading.md +0 -163
  409. package/docs/content-model-matching.md +0 -85
  410. package/docs/content-model-readiness.md +0 -144
  411. package/docs/content-model-resolution.md +0 -81
  412. package/docs/content-model-s02-handoff.md +0 -98
  413. package/docs/content-model-s06-au-01.md +0 -425
  414. package/docs/content-model-s06-dt-01.md +0 -386
  415. package/docs/content-model-s06-pw-01.md +0 -350
  416. package/docs/content-model-s06-re-01-resolver-implementation.md +0 -869
  417. package/docs/content-model-s06-re-01-resolver.md +0 -513
  418. package/docs/content-model-s06-re-01-scalar-witnesses.md +0 -1423
  419. package/docs/content-model-s06-re-01-support-reconstruction.md +0 -6337
  420. package/docs/content-model-s06-re-01.md +0 -7477
  421. package/docs/content-model-s06-research-handoff.md +0 -909
  422. package/docs/content-model-shipped-fix.md +0 -83
  423. package/docs/content-model-soap-feasibility.md +0 -165
  424. package/docs/decisions/001-test-generation.md +0 -36
  425. package/docs/decisions/002-streamable-responses.md +0 -332
  426. package/docs/decisions/003-content-model-contracts.md +0 -280
  427. package/docs/file-naming-and-path-organization.md +0 -213
  428. package/docs/reference-validation.md +0 -243
  429. package/docs/releases/README.md +0 -94
  430. package/docs/releases/v0.20.0.md +0 -22
  431. package/docs/releases/v0.21.0.md +0 -30
  432. package/docs/releases/v0.22.0.md +0 -30
  433. package/docs/releases/v0.23.0.md +0 -31
  434. package/docs/releases/v0.24.0.md +0 -38
  435. package/docs/releases/v0.25.0.md +0 -31
  436. package/docs/releases/v0.25.2.md +0 -32
  437. package/docs/releases/v0.26.0.md +0 -32
  438. package/docs/releases/v0.27.0.md +0 -31
  439. package/docs/releases/v0.28.0.md +0 -32
  440. package/docs/releases/v0.29.0.md +0 -32
  441. package/docs/releases/v0.30.0.md +0 -30
  442. package/docs/releases/v0.30.1.md +0 -31
  443. package/docs/releases/v0.30.2.md +0 -30
  444. package/docs/releases/v0.30.3.md +0 -33
  445. package/docs/releases/v0.31.0.md +0 -33
  446. package/docs/releases/v0.32.0.md +0 -33
  447. package/docs/releases/v0.33.0.md +0 -34
  448. package/docs/releases/v0.34.0.md +0 -30
  449. package/docs/releases/v0.35.0.md +0 -33
  450. package/docs/releases/v0.36.0.md +0 -32
  451. package/docs/releases/v0.37.0.md +0 -33
  452. package/docs/releases/v0.38.0.md +0 -35
  453. package/docs/releases/v0.39.0.md +0 -35
  454. package/docs/releases/v0.40.0.md +0 -45
  455. package/docs/releases/v0.40.1.md +0 -34
  456. package/docs/releases/v1.0.0.md +0 -42
  457. package/docs/releases/v1.0.1.md +0 -38
  458. package/docs/releases/v1.0.2.md +0 -51
  459. package/docs/releases/v1.0.3.md +0 -37
  460. package/docs/releases/v1.0.4.md +0 -45
  461. package/docs/releases/v1.0.5.md +0 -41
  462. package/docs/releases/v1.0.6.md +0 -35
  463. package/docs/releases/v1.0.7.md +0 -36
  464. package/docs/releases/v1.1.0.md +0 -42
  465. package/docs/releases/v1.1.1.md +0 -44
  466. package/docs/releases/v1.1.2.md +0 -42
  467. package/docs/releases/v1.1.3.md +0 -36
  468. package/docs/releases/v1.1.4.md +0 -36
  469. package/docs/releases/v1.1.5.md +0 -38
  470. package/docs/roadmap/README.md +0 -107
  471. package/docs/roadmap/v1.0-capability-conformance-framework.md +0 -582
  472. package/docs/roadmap/v1.0-choice-union-mode.md +0 -90
  473. package/docs/roadmap/v1.0-contract-audit.md +0 -75
  474. package/docs/roadmap/v1.0-json-array-streaming.md +0 -101
  475. package/docs/roadmap/v1.0-openapi-fastify-compatibility.md +0 -99
  476. package/docs/roadmap/v1.0-release-candidate-gates.md +0 -92
  477. package/docs/roadmap/v1.0-wsdl-coverage-matrix.md +0 -200
  478. package/docs/roadmap/v1.0-xs-anyattribute-wildcard-bag.md +0 -932
  479. package/src/runtime/jsonArray.ts +0 -55
  480. package/src/runtime/ndjson.ts +0 -32
@@ -4,33 +4,41 @@ import { checkSemanticBudget } from './semanticBudget.js';
4
4
  import { DataOwnershipLimitError } from './dataOwnership.js';
5
5
  import { types } from 'node:util';
6
6
  import { inspectDirectOperation } from './directOperation.js';
7
- import { inspectDirectValueMapping, expandDirectValue, assessDirectScalars } from './directValues.js';
8
- import { matchDirectOperation } from './directStructure.js';
7
+ import { inspectDirectValueMapping, expandDirectValue, assessDirectScalars, inspectComponentValueMapping, expandProjectionValue, assessProjectionScalars } from './directValues.js';
8
+ import { matchDirectOperation, matchDirectProjection } from './directStructure.js';
9
9
  import { parseOrderedSyntax, SchemaLoadingError, XML_NAMESPACE } from '../loader/orderedSyntax.js';
10
+ import { isXmlNamespaceBinding } from './directStructurePlan.js';
10
11
  export const DIRECT_XML_LIMITS = Object.freeze({ maxBytes: 1024 * 1024, maxDepth: 256, maxNodes: 100_000, maxText: 1024 * 1024 });
12
+ const componentObservations = new WeakSet();
11
13
  class Stop extends Error {
12
14
  kind;
13
15
  rule;
14
- constructor(kind, rule) {
16
+ source;
17
+ constructor(kind, rule, source) {
15
18
  super(rule);
16
19
  this.kind = kind;
17
20
  this.rule = rule;
21
+ this.source = source;
18
22
  }
19
23
  }
20
- function run(contract, supplied, options, work) {
24
+ const directProfile = Object.freeze({ version: 'direct-values-v1', basis: 'native-direct-premises-v1',
25
+ correspondence: 'dated-XSD-2004-direct-v1', rule: 'direct-codec-version' });
26
+ const componentProfile = Object.freeze({ version: 'component-values-v1', basis: 'native-component-premises-v1',
27
+ correspondence: 'dated-XSD-2004-components-v1', rule: 'component-codec-version' });
28
+ function runMapping(contract, supplied, options, profile, inspect, work) {
21
29
  // Identity before all property reads, including version checks.
22
- const mapping = inspectDirectValueMapping(supplied, contract);
30
+ const mapping = inspect(supplied, contract);
23
31
  const { budget } = inspectDirectOperation(contract).context;
24
32
  const check = () => { checkSemanticBudget(budget); if (options.signal?.aborted)
25
33
  throw new Stop('cancelled', 'cooperative-cancellation'); };
26
34
  try {
27
35
  const result = budget.guard(() => {
28
36
  check();
29
- if (mapping.version !== 'direct-values-v1' || mapping.contextId !== contract.contextId
30
- || contract.basis !== 'native-direct-premises-v1' || contract.correspondence !== 'dated-XSD-2004-direct-v1'
37
+ if (mapping.version !== profile.version || mapping.contextId !== contract.contextId
38
+ || contract.basis !== profile.basis || contract.correspondence !== profile.correspondence
31
39
  || contract.binding.version !== '1.1' || contract.binding.style !== 'document' || contract.binding.use !== 'literal'
32
40
  || contract.binding.transport !== 'http://schemas.xmlsoap.org/soap/http')
33
- throw new Stop('unsupported', 'direct-codec-version');
41
+ throw new Stop('unsupported', profile.rule);
34
42
  const direction = mapping.direction;
35
43
  const root = direction.kind === 'fault' ? contract.faults.find(f => {
36
44
  check();
@@ -72,7 +80,8 @@ function run(contract, supplied, options, work) {
72
80
  if (error instanceof DataOwnershipLimitError)
73
81
  return { kind: 'resource-limit', rule: error.message, usage: budget.usage() };
74
82
  if (error instanceof Stop)
75
- return Object.freeze({ kind: error.kind, rule: error.rule, usage: Object.freeze({ ...budget.usage() }) });
83
+ return Object.freeze({ kind: error.kind, rule: error.rule,
84
+ ...(error.source ? { source: error.source, payloadPath: error.source.path } : {}), usage: Object.freeze({ ...budget.usage() }) });
76
85
  if (error instanceof SchemaLoadingError)
77
86
  return Object.freeze({ kind: error.category === 'invalid-schema' ? 'xml-invalid'
78
87
  : error.category === 'resource-limit' ? 'resource-limit' : 'unsupported', rule: error.message, source: error.source,
@@ -80,103 +89,254 @@ function run(contract, supplied, options, work) {
80
89
  throw error;
81
90
  }
82
91
  }
92
+ function run(contract, mapping, options, work) {
93
+ return runMapping(contract, mapping, options, directProfile, inspectDirectValueMapping, work);
94
+ }
95
+ function runComponent(contract, mapping, options, work) {
96
+ return runMapping(contract, mapping, options, componentProfile, (value, owner) => inspectComponentValueMapping(value, owner).mapping, work);
97
+ }
98
+ /** Serialize only native inverse output; source names and values have already passed their native owners. */
99
+ function emitObservedXml(payload, { budget, limits, check }) {
100
+ const pieces = [];
101
+ let byteLength = 0, nodes = 0, textUnits = 0, nextPrefix = 0;
102
+ const prefixes = new Map();
103
+ const append = (text) => {
104
+ check();
105
+ const size = Buffer.byteLength(text, 'utf8');
106
+ if (size > limits.maxBytes - byteLength)
107
+ throw new Stop('resource-limit', 'XML byte limit');
108
+ byteLength += size;
109
+ pieces.push(text);
110
+ };
111
+ const escape = (text, attribute = false) => {
112
+ check();
113
+ return text.replace(/[&<>\r"\t\n]/g, c => c === '&' ? '&amp;' : c === '<' ? '&lt;' : c === '>' ? '&gt;'
114
+ : c === '\r' ? '&#13;' : attribute && c === '"' ? '&quot;' : attribute && c === '\t' ? '&#9;'
115
+ : attribute && c === '\n' ? '&#10;' : c);
116
+ };
117
+ const prefixFor = (namespace) => {
118
+ if (!namespace)
119
+ return '';
120
+ if (namespace === 'http://www.w3.org/2000/xmlns/')
121
+ throw new Stop('unsupported', 'namespace-declaration-as-data');
122
+ let prefix = namespace === XML_NAMESPACE ? 'xml' : prefixes.get(namespace);
123
+ if (namespace && prefix === undefined) {
124
+ prefix = `n${nextPrefix++}`;
125
+ prefixes.set(namespace, prefix);
126
+ }
127
+ return prefix;
128
+ };
129
+ const tasks = [{ kind: 'element', node: payload, depth: 1 }];
130
+ while (tasks.length) {
131
+ check();
132
+ const task = tasks.pop();
133
+ if (task.kind === 'close') {
134
+ append(`</${task.name}>`);
135
+ continue;
136
+ }
137
+ budget.reserveNodes(1);
138
+ if (task.kind === 'text') {
139
+ if (++nodes > limits.maxNodes || task.value.length > limits.maxText - textUnits)
140
+ throw new Stop('resource-limit', 'XML node/text limit');
141
+ textUnits += task.value.length;
142
+ append(escape(task.value));
143
+ continue;
144
+ }
145
+ const { node, depth } = task;
146
+ if (++nodes > limits.maxNodes || depth > limits.maxDepth)
147
+ throw new Stop('resource-limit', 'XML node/depth limit');
148
+ const declarations = new Map();
149
+ const protectedScope = Object.hasOwn(node.namespaces, 'xml');
150
+ const scope = Object.assign(Object.create(null), task.scope ?? { xml: XML_NAMESPACE, '': '' });
151
+ if (protectedScope) {
152
+ for (const prefix of budget.sorted(Object.keys(node.namespaces), (a, b) => budget.compareText(a, b))) {
153
+ check();
154
+ const namespace = node.namespaces[prefix];
155
+ if (!isXmlNamespaceBinding(prefix, namespace))
156
+ throw new Stop('value-invalid', 'namespace-binding', node.source);
157
+ if (prefix !== 'xml' && scope[prefix] !== namespace)
158
+ declarations.set(prefix, namespace);
159
+ scope[prefix] = namespace;
160
+ }
161
+ }
162
+ const qualified = (namespace, local, attribute = false) => {
163
+ if (protectedScope) {
164
+ if (!namespace) {
165
+ if (!attribute && scope[''])
166
+ throw new Stop('value-invalid', 'no-namespace-element-default-conflict', node.source);
167
+ return local;
168
+ }
169
+ const prefix = budget.sorted(Object.keys(scope), (a, b) => budget.compareText(a, b))
170
+ .find(prefix => (!attribute || prefix !== '') && scope[prefix] === namespace);
171
+ if (prefix === undefined)
172
+ throw new Stop('value-invalid', attribute ? 'attribute-namespace-prefix-required' : 'element-namespace-prefix-required', node.source);
173
+ return prefix ? `${prefix}:${local}` : local;
174
+ }
175
+ if (!namespace) {
176
+ if (!attribute && scope['']) {
177
+ declarations.set('', '');
178
+ scope[''] = '';
179
+ }
180
+ return local;
181
+ }
182
+ const prefix = prefixFor(namespace);
183
+ let selected = prefix;
184
+ while (scope[selected] !== undefined && scope[selected] !== namespace)
185
+ selected = `n${nextPrefix++}`;
186
+ if (selected && selected !== 'xml') {
187
+ declarations.set(selected, namespace);
188
+ scope[selected] = namespace;
189
+ }
190
+ return selected ? `${selected}:${local}` : local;
191
+ };
192
+ const name = qualified(node.name.namespace, node.name.local), attributes = [];
193
+ for (const attribute of node.attributes) {
194
+ check();
195
+ if (attribute.name.namespace === '' && attribute.name.local === 'xmlns')
196
+ throw new Stop('unsupported', 'namespace-declaration-as-data');
197
+ attributes.push(` ${qualified(attribute.name.namespace, attribute.name.local, true)}="${escape(attribute.value, true)}"`);
198
+ }
199
+ // @why Bind each used prefix at this element; sibling discovery never makes a prefix in scope elsewhere.
200
+ append(`<${name}`);
201
+ for (const [prefix, namespace] of declarations)
202
+ append(` xmlns${prefix ? ':' + prefix : ''}="${escape(namespace, true)}"`);
203
+ for (const attribute of attributes)
204
+ append(attribute);
205
+ append('>');
206
+ tasks.push({ kind: 'close', name });
207
+ for (let i = node.children.length - 1; i >= 0; i--) {
208
+ check();
209
+ const child = node.children[i];
210
+ tasks.push(child.kind === 'element' ? { kind: 'element', node: child, depth: depth + 1, scope } : { kind: 'text', value: child.value });
211
+ }
212
+ }
213
+ // Actual output bytes were bounded by append; bytes are caller-owned data, not authority.
214
+ check();
215
+ const bytes = Buffer.from(pieces.join(''), 'utf8');
216
+ check();
217
+ return bytes;
218
+ }
83
219
  /** Validate fresh values using the delivered inverse, then emit deterministic UTF-8. */
84
220
  export function encodeDirectXml(contract, mapping, application, options = {}) {
85
- return run(contract, mapping, options, (owned, { budget, limits, check }) => {
221
+ return run(contract, mapping, options, (owned, session) => {
222
+ const { budget, limits } = session;
86
223
  const expanded = expandDirectValue(contract, owned, application, { ...options, maxText: Math.min(limits.maxText, limits.maxBytes), maxItems: Math.min(limits.maxNodes, limits.maxBytes) });
87
224
  if (expanded.kind !== 'direct-expanded')
88
225
  return expanded;
89
- const pieces = [];
90
- let byteLength = 0, nodes = 0, textUnits = 0, nextPrefix = 0;
91
- const prefixes = new Map();
92
- const append = (text) => {
93
- check();
94
- const size = Buffer.byteLength(text, 'utf8');
95
- if (size > limits.maxBytes - byteLength)
96
- throw new Stop('resource-limit', 'XML byte limit');
97
- byteLength += size;
98
- pieces.push(text);
99
- };
100
- const escape = (text, attribute = false) => {
101
- check();
102
- return text.replace(/[&<>\r"\t\n]/g, c => c === '&' ? '&amp;' : c === '<' ? '&lt;' : c === '>' ? '&gt;'
103
- : c === '\r' ? '&#13;' : attribute && c === '"' ? '&quot;' : attribute && c === '\t' ? '&#9;'
104
- : attribute && c === '\n' ? '&#10;' : c);
105
- };
106
- const emit = (node, depth) => {
107
- check();
108
- budget.reserveNodes(1);
109
- if (++nodes > limits.maxNodes || depth > limits.maxDepth)
110
- throw new Stop('resource-limit', 'XML node/depth limit');
111
- const namespace = node.name.namespace;
112
- let prefix = namespace === XML_NAMESPACE ? 'xml' : prefixes.get(namespace);
113
- if (namespace && prefix === undefined) {
114
- prefix = `n${nextPrefix++}`;
115
- prefixes.set(namespace, prefix);
116
- }
117
- // Bind at each use: a prefix first encountered on one sibling is not in
118
- // scope at its next sibling. Never use a default namespace, so local
119
- // unqualified children need no inherited-default reset.
120
- const declaration = namespace && prefix !== 'xml' ? ` xmlns:${prefix}="${escape(namespace, true)}"` : '';
121
- const name = prefix ? `${prefix}:${node.name.local}` : node.name.local;
122
- append(`<${name}${declaration}>`);
123
- for (const child of node.children) {
124
- check();
125
- if (child.kind === 'element')
126
- emit(child, depth + 1);
127
- else {
128
- budget.reserveNodes(1);
129
- if (++nodes > limits.maxNodes || child.value.length > limits.maxText - textUnits)
130
- throw new Stop('resource-limit', 'XML node/text limit');
131
- textUnits += child.value.length;
132
- append(escape(child.value));
133
- }
134
- }
135
- append(`</${name}>`);
136
- };
137
- emit(expanded.payload, 1);
138
- // Actual output bytes were bounded by append; bytes are caller-owned data, not authority.
139
- check();
140
- const bytes = Buffer.from(pieces.join(''), 'utf8');
141
- check();
226
+ const bytes = emitObservedXml(expanded.payload, session);
142
227
  return Object.freeze({ kind: 'direct-encoded', admitted: false, encoding: 'utf-8',
143
228
  bytes, expanded, usage: Object.freeze({ ...budget.usage() }) });
144
229
  });
145
230
  }
231
+ /** Encode a component-qualified structured operation direction through the same native inverse and XML writer.
232
+ * @remarks Mapping/source authority is checked before values. This supplies XML bytes only, not policy enforcement or dispatch.
233
+ * @returns Native-validated UTF-8 output or explicit scalar/value/unsupported/cancellation/resource failure.
234
+ */
235
+ export function encodeComponentXml(contract, mapping, application, options = {}) {
236
+ return runComponent(contract, mapping, options, (owned, session) => {
237
+ const { context } = inspectDirectOperation(contract), { budget, limits } = session;
238
+ // @why Application items include attributes; XML syntax-node/text caps count elements and character data.
239
+ // Encoded bytes bound inverse input capacity without treating those different counters as equal.
240
+ const expanded = expandProjectionValue(context, owned.root.element, application, { ...options,
241
+ maxText: limits.maxBytes, maxItems: limits.maxBytes }, owned);
242
+ if (expanded.kind !== 'projection-expanded')
243
+ return expanded;
244
+ const bytes = emitObservedXml(expanded.payload, session);
245
+ return Object.freeze({ kind: 'component-encoded', admitted: false, encoding: 'utf-8',
246
+ bytes, expanded, mapping: owned, usage: Object.freeze({ ...budget.usage() }) });
247
+ });
248
+ }
249
+ /** Retain the shared byte-copy, XML-version, entity and explicit capacity boundaries for both profiles. */
250
+ function parseObservedXml(bytes, { budget, limits, check }, sourceUri) {
251
+ if (!types.isUint8Array(bytes) || types.isProxy(bytes))
252
+ throw new TypeError('XML requires Uint8Array bytes');
253
+ // Use native internal-slot access, avoiding subclass/own length, buffer and
254
+ // iterator getters. Shared backing stores are outside the data-only contract.
255
+ const typed = Object.getPrototypeOf(Uint8Array.prototype);
256
+ const length = Object.getOwnPropertyDescriptor(typed, 'byteLength').get.call(bytes);
257
+ const backing = Object.getOwnPropertyDescriptor(typed, 'buffer').get.call(bytes);
258
+ if (types.isSharedArrayBuffer(backing))
259
+ throw new TypeError('Shared XML bytes are unsupported');
260
+ if (length > limits.maxBytes)
261
+ throw new Stop('resource-limit', 'XML byte limit');
262
+ check();
263
+ const input = new Uint8Array(length);
264
+ Uint8Array.prototype.set.call(input, bytes);
265
+ const uri = sourceUri ?? 'urn:typescript-wsdl-client:observed-direct-xml';
266
+ if (typeof uri !== 'string')
267
+ throw new TypeError('XML source URI must be a string');
268
+ check();
269
+ return parseOrderedSyntax(input, uri, { ...limits, xml10Only: true,
270
+ chargeWork: () => check(), reserveNode: () => { check(); budget.reserveNodes(1); } }).root;
271
+ }
272
+ function assertObservedPayload(root, payload, check) {
273
+ const pending = [root];
274
+ while (pending.length) {
275
+ check();
276
+ const node = pending.pop();
277
+ if (node === payload)
278
+ return;
279
+ for (let i = node.children.length - 1; i >= 0; i--) {
280
+ check();
281
+ const child = node.children[i];
282
+ if (child.kind === 'element')
283
+ pending.push(child);
284
+ }
285
+ }
286
+ throw new TypeError('Protocol payload must belong to the observed document');
287
+ }
288
+ /** Observe once through the existing component parser and execution controls.
289
+ * @remarks Any exact operation-owned mapping can bind parsing to its execution context. Its value/root is not
290
+ * assessed here. Source qualification, wrapper scope and selected payload validation remain separate owners.
291
+ */
292
+ export function observeComponentXml(contract, mapping, bytes, options = {}) {
293
+ const result = runComponent(contract, mapping, options, (_owned, session) => {
294
+ const root = parseObservedXml(bytes, session, options.uri ?? 'urn:typescript-wsdl-client:observed-component-xml');
295
+ directDataOwnership(session.budget).freeze(root);
296
+ return Object.freeze({ kind: 'observed-component-xml', root, usage: Object.freeze({ ...session.budget.usage() }) });
297
+ });
298
+ if (result.kind === 'observed-component-xml')
299
+ componentObservations.add(result);
300
+ return result;
301
+ }
302
+ /** Validate a genuine observed subtree through an independently qualified component mapping.
303
+ * @remarks XML capacities belong to the observation episode. This entry assesses the selected mapping's
304
+ * structure and scalar duties; it does not assert cross-contract wrapper, SOAP or runtime authority.
305
+ * @throws TypeError For copied observations, foreign mappings or a node outside the observed document.
306
+ */
307
+ export function assessObservedComponentPayload(contract, mapping, observation, payload, options = {}) {
308
+ if (!componentObservations.has(observation))
309
+ throw new TypeError('Native component XML observation required');
310
+ return runComponent(contract, mapping, options, (owned, { budget, check }) => {
311
+ assertObservedPayload(observation.root, payload, check);
312
+ const { context } = inspectDirectOperation(contract);
313
+ const structural = matchDirectProjection(context, owned.root.element, payload, options);
314
+ if (structural.kind !== 'projection-match')
315
+ return structural;
316
+ const validated = assessProjectionScalars(context, structural, options, owned);
317
+ if (validated.kind !== 'projection-value')
318
+ return validated;
319
+ return Object.freeze({ kind: 'component-decoded', admitted: false, payload, validated, mapping: owned,
320
+ usage: Object.freeze({ ...budget.usage() }) });
321
+ });
322
+ }
323
+ /** Verify membership without conferring a selected mapping or wrapper validity. */
324
+ export function assertComponentObservedPayload(observation, payload, check) {
325
+ if (!componentObservations.has(observation))
326
+ throw new TypeError('Native component XML observation required');
327
+ assertObservedPayload(observation.root, payload, check);
328
+ }
146
329
  /** Bounded observed bytes -> ordered syntax -> existing structural/scalar checks. */
147
330
  export function decodeDirectXml(contract, mapping, bytes, options = {}) {
148
- return run(contract, mapping, options, (owned, { budget, limits, check }) => {
149
- if (!types.isUint8Array(bytes) || types.isProxy(bytes))
150
- throw new TypeError('XML requires Uint8Array bytes');
151
- // Use native internal-slot access, avoiding subclass/own length, buffer and
152
- // iterator getters. Shared backing stores are outside the data-only contract.
153
- const typed = Object.getPrototypeOf(Uint8Array.prototype);
154
- const length = Object.getOwnPropertyDescriptor(typed, 'byteLength').get.call(bytes);
155
- const backing = Object.getOwnPropertyDescriptor(typed, 'buffer').get.call(bytes);
156
- if (types.isSharedArrayBuffer(backing))
157
- throw new TypeError('Shared XML bytes are unsupported');
158
- if (length > limits.maxBytes)
159
- throw new Stop('resource-limit', 'XML byte limit');
160
- check();
161
- const input = new Uint8Array(length);
162
- Uint8Array.prototype.set.call(input, bytes);
163
- const uri = options.uri ?? 'urn:typescript-wsdl-client:observed-direct-xml';
164
- if (typeof uri !== 'string')
165
- throw new TypeError('XML source URI must be a string');
166
- check();
167
- const root = parseOrderedSyntax(input, uri, { ...limits, xml10Only: true,
168
- chargeWork: () => check(), reserveNode: () => { check(); budget.reserveNodes(1); } }).root;
331
+ return run(contract, mapping, options, (owned, session) => {
332
+ const { budget, check } = session;
333
+ const root = parseObservedXml(bytes, session, options.uri);
169
334
  const selection = options.selectPayload?.(root) ?? { payload: root, mapping: owned };
170
335
  const payload = selection.payload;
171
336
  const selectedMapping = inspectDirectValueMapping(selection.mapping, contract);
172
337
  // Protocol selection may only return an actual node from this parse, never
173
338
  // a synthetic tree relabeled with the observed document's provenance.
174
- const contains = (node) => {
175
- check();
176
- return node === payload || node.children.some(child => child.kind === 'element' && contains(child));
177
- };
178
- if (!contains(root))
179
- throw new TypeError('Protocol payload must belong to the observed document');
339
+ assertObservedPayload(root, payload, check);
180
340
  const structural = matchDirectOperation(contract, selectedMapping.direction, payload, options);
181
341
  if (structural.kind !== 'structural-match')
182
342
  return structural;
@@ -190,3 +350,28 @@ export function decodeDirectXml(contract, mapping, bytes, options = {}) {
190
350
  usage: Object.freeze({ ...budget.usage() }) });
191
351
  });
192
352
  }
353
+ /** Decode observed component-profile bytes through the same parser and native structured/scalar owners.
354
+ * @remarks Protocol selection may choose only an actual node from this parse and an exact operation-owned mapping.
355
+ * It cannot relabel a copied syntax tree, switch operations or acquire runtime/policy enforcement authority.
356
+ * @returns A native-validated structured value or explicit XML/structure/scalar/unsupported/resource failure.
357
+ */
358
+ export function decodeComponentXml(contract, mapping, bytes, options = {}) {
359
+ return runComponent(contract, mapping, options, (owned, session) => {
360
+ const { budget, check } = session, { context } = inspectDirectOperation(contract);
361
+ const root = parseObservedXml(bytes, session, options.uri ?? 'urn:typescript-wsdl-client:observed-component-xml');
362
+ const selection = options.selectPayload?.(root) ?? { payload: root, mapping: owned };
363
+ const selected = inspectComponentValueMapping(selection.mapping, contract).mapping;
364
+ assertObservedPayload(root, selection.payload, check);
365
+ const structural = matchDirectProjection(context, selected.root.element, selection.payload, options);
366
+ if (structural.kind !== 'projection-match')
367
+ return structural;
368
+ const validated = assessProjectionScalars(context, structural, options, selected);
369
+ if (validated.kind !== 'projection-value')
370
+ return validated;
371
+ check();
372
+ directDataOwnership(budget).freeze(selection.payload);
373
+ check();
374
+ return Object.freeze({ kind: 'component-decoded', admitted: false, payload: selection.payload,
375
+ validated, mapping: selected, usage: Object.freeze({ ...budget.usage() }) });
376
+ });
377
+ }
@@ -7,4 +7,3 @@ export declare function directDataOwnership(budget: SemanticBudget): Readonly<{
7
7
  }>;
8
8
  export declare function directLimit(budget: SemanticBudget, boundedProfile: number): number;
9
9
  export declare function directLoadingLimits(budget: SemanticBudget, overrides?: Partial<LoadingLimits>): Partial<LoadingLimits>;
10
- //# sourceMappingURL=directExecutionPolicy.d.ts.map
@@ -4,6 +4,9 @@ import type { ElementNode, Reference } from './canonicalGraph.js';
4
4
  import type { SemanticContext } from './semanticContext.js';
5
5
  import type { SemanticBudget, SemanticBudgetLimits, ResolverUsage } from './semanticBudget.js';
6
6
  import type { DirectSourceQualification } from './checkedSourcePreparation.js';
7
+ import type { ComponentSourceQualification } from './checkedComponentSource.js';
8
+ import type { WsdlPolicyRequirements, BindingPolicyRequirements } from './wsdlPolicyRequirements.js';
9
+ import type { StandardSchemaLibrary } from './standardSchemaComponents.js';
7
10
  export interface DirectOperationSelector {
8
11
  readonly portType: ExpandedName;
9
12
  readonly binding: ExpandedName;
@@ -19,8 +22,8 @@ export interface DirectMessageRoot {
19
22
  export interface DirectOperationContract {
20
23
  readonly selector: DirectOperationSelector;
21
24
  readonly contextId: string;
22
- readonly basis: 'native-direct-premises-v1';
23
- readonly correspondence: 'dated-XSD-2004-direct-v1';
25
+ readonly basis: 'native-direct-premises-v1' | 'native-component-premises-v1';
26
+ readonly correspondence: 'dated-XSD-2004-direct-v1' | 'dated-XSD-2004-components-v1';
24
27
  readonly binding: Readonly<{
25
28
  version: '1.1';
26
29
  style: 'document';
@@ -35,6 +38,16 @@ export interface DirectOperationContract {
35
38
  name: string;
36
39
  root: DirectMessageRoot;
37
40
  }>[];
41
+ readonly policy?: BindingPolicyRequirements;
42
+ readonly addressingActions?: Readonly<{
43
+ required: false;
44
+ input?: string;
45
+ output?: string;
46
+ faults: readonly Readonly<{
47
+ name: string;
48
+ action: string;
49
+ }>[];
50
+ }>;
38
51
  readonly missingCapabilities: readonly string[];
39
52
  readonly admitted: false;
40
53
  }
@@ -53,7 +66,8 @@ export interface DirectOperationInspection {
53
66
  readonly source: SchemaInput;
54
67
  readonly evidence: Extract<DirectSourceQualification, {
55
68
  kind: 'qualified-source';
56
- }>;
69
+ }> | ComponentSourceQualification;
70
+ readonly policyOwner?: WsdlPolicyRequirements;
57
71
  }
58
72
  /** Object identity authenticates the exact issued roots; context IDs and digests do not. */
59
73
  export declare function inspectDirectOperation(contract: DirectOperationContract, expectedContext?: SemanticContext): DirectOperationInspection;
@@ -69,4 +83,32 @@ export declare function selectDirectOperationInRequest(source: string, selector:
69
83
  limits?: SemanticBudgetLimits;
70
84
  signal?: AbortSignal;
71
85
  }>, budget: SemanticBudget): Promise<DirectOperationResult>;
72
- //# sourceMappingURL=directOperation.d.ts.map
86
+ /** Select through additive native component qualification without granting codec, transport or runtime admission.
87
+ * @remarks The same WSDL binding/message owner is used by the existing preview. New contracts carry a distinct
88
+ * basis and correspondence; preview codecs and source capsules continue to refuse them until independently extended.
89
+ * @returns Fresh source-bound operation roots or an explicit qualification/selection failure.
90
+ */
91
+ export declare function selectComponentOperation(source: string, selector: DirectOperationSelector, options: Readonly<{
92
+ loading: SchemaInputOptions;
93
+ limits?: SemanticBudgetLimits;
94
+ signal?: AbortSignal;
95
+ standardLibraries?: readonly StandardSchemaLibrary[];
96
+ }>): Promise<DirectOperationResult>;
97
+ /** Private composition seam: artifact reading and fresh component selection share the same sticky request. */
98
+ export declare function selectComponentOperationInRequest(source: string, selector: DirectOperationSelector, options: Readonly<{
99
+ loading: SchemaInputOptions;
100
+ limits?: SemanticBudgetLimits;
101
+ signal?: AbortSignal;
102
+ standardLibraries?: readonly StandardSchemaLibrary[];
103
+ }>, budget: SemanticBudget): Promise<DirectOperationResult>;
104
+ /** Select requested service operations against one fresh native source snapshot and sticky request.
105
+ * @remarks Native whole-source qualification is reused by identity within this batch only. Every binding/message
106
+ * selection still runs through the same owner; no source flags, saved reports or operation-name guesses are consumed.
107
+ * @returns One result in each requested position, including explicit refusals. No requested operation is omitted.
108
+ */
109
+ export declare function selectComponentOperations(source: string, selectors: readonly DirectOperationSelector[], options: Readonly<{
110
+ loading: SchemaInputOptions;
111
+ limits?: SemanticBudgetLimits;
112
+ signal?: AbortSignal;
113
+ standardLibraries?: readonly StandardSchemaLibrary[];
114
+ }>): Promise<readonly DirectOperationResult[]>;