@techspokes/typescript-wsdl-client 1.1.3 → 1.1.5

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 (360) hide show
  1. package/README.md +50 -1
  2. package/dist/app/generateApp.d.ts.map +1 -1
  3. package/dist/app/generateApp.js +8 -6
  4. package/dist/cli.js +49 -5
  5. package/dist/client/checkedDirectRuntime.d.ts +59 -0
  6. package/dist/client/checkedDirectRuntime.d.ts.map +1 -0
  7. package/dist/client/checkedDirectRuntime.js +23 -0
  8. package/dist/client/directClientRuntime.d.ts +49 -0
  9. package/dist/client/directClientRuntime.d.ts.map +1 -0
  10. package/dist/client/directClientRuntime.js +112 -0
  11. package/dist/client/directClientVersion.d.ts +4 -0
  12. package/dist/client/directClientVersion.d.ts.map +1 -0
  13. package/dist/client/directClientVersion.js +3 -0
  14. package/dist/client/generateClient.d.ts.map +1 -1
  15. package/dist/client/generateClient.js +22 -9
  16. package/dist/client/generateDirectClient.d.ts +14 -0
  17. package/dist/client/generateDirectClient.d.ts.map +1 -0
  18. package/dist/client/generateDirectClient.js +136 -0
  19. package/dist/compiler/buildCanonicalGraph.d.ts +7 -0
  20. package/dist/compiler/buildCanonicalGraph.d.ts.map +1 -0
  21. package/dist/compiler/buildCanonicalGraph.js +381 -0
  22. package/dist/compiler/canonicalGraph.d.ts +198 -0
  23. package/dist/compiler/canonicalGraph.d.ts.map +1 -0
  24. package/dist/compiler/canonicalGraph.js +37 -0
  25. package/dist/compiler/catalogErrors.d.ts +18 -0
  26. package/dist/compiler/catalogErrors.d.ts.map +1 -0
  27. package/dist/compiler/catalogErrors.js +86 -0
  28. package/dist/compiler/catalogProvenance.d.ts +15 -0
  29. package/dist/compiler/catalogProvenance.d.ts.map +1 -0
  30. package/dist/compiler/catalogProvenance.js +229 -0
  31. package/dist/compiler/checkedAssessment.d.ts +91 -0
  32. package/dist/compiler/checkedAssessment.d.ts.map +1 -0
  33. package/dist/compiler/checkedAssessment.js +300 -0
  34. package/dist/compiler/checkedSourcePreparation.d.ts +35 -0
  35. package/dist/compiler/checkedSourcePreparation.d.ts.map +1 -0
  36. package/dist/compiler/checkedSourcePreparation.js +131 -0
  37. package/dist/compiler/complexTypeContent.d.ts +59 -0
  38. package/dist/compiler/complexTypeContent.d.ts.map +1 -0
  39. package/dist/compiler/complexTypeContent.js +558 -0
  40. package/dist/compiler/composeCanonicalGraph.d.ts +69 -0
  41. package/dist/compiler/composeCanonicalGraph.d.ts.map +1 -0
  42. package/dist/compiler/composeCanonicalGraph.js +252 -0
  43. package/dist/compiler/dataOwnership.d.ts +22 -0
  44. package/dist/compiler/dataOwnership.d.ts.map +1 -0
  45. package/dist/compiler/dataOwnership.js +157 -0
  46. package/dist/compiler/datatypeValues.d.ts +47 -0
  47. package/dist/compiler/datatypeValues.d.ts.map +1 -0
  48. package/dist/compiler/datatypeValues.js +275 -0
  49. package/dist/compiler/directCodec.d.ts +59 -0
  50. package/dist/compiler/directCodec.d.ts.map +1 -0
  51. package/dist/compiler/directCodec.js +192 -0
  52. package/dist/compiler/directExecutionPolicy.d.ts +10 -0
  53. package/dist/compiler/directExecutionPolicy.d.ts.map +1 -0
  54. package/dist/compiler/directExecutionPolicy.js +17 -0
  55. package/dist/compiler/directOperation.d.ts +72 -0
  56. package/dist/compiler/directOperation.d.ts.map +1 -0
  57. package/dist/compiler/directOperation.js +282 -0
  58. package/dist/compiler/directSoap.d.ts +42 -0
  59. package/dist/compiler/directSoap.d.ts.map +1 -0
  60. package/dist/compiler/directSoap.js +298 -0
  61. package/dist/compiler/directSoapSource.d.ts +15 -0
  62. package/dist/compiler/directSoapSource.d.ts.map +1 -0
  63. package/dist/compiler/directSoapSource.js +86 -0
  64. package/dist/compiler/directSourceCapsule.d.ts +97 -0
  65. package/dist/compiler/directSourceCapsule.d.ts.map +1 -0
  66. package/dist/compiler/directSourceCapsule.js +305 -0
  67. package/dist/compiler/directStructure.d.ts +51 -0
  68. package/dist/compiler/directStructure.d.ts.map +1 -0
  69. package/dist/compiler/directStructure.js +252 -0
  70. package/dist/compiler/directStructurePlan.d.ts +16 -0
  71. package/dist/compiler/directStructurePlan.d.ts.map +1 -0
  72. package/dist/compiler/directStructurePlan.js +58 -0
  73. package/dist/compiler/directValues.d.ts +69 -0
  74. package/dist/compiler/directValues.d.ts.map +1 -0
  75. package/dist/compiler/directValues.js +282 -0
  76. package/dist/compiler/finiteRe01Verification.d.ts +140 -0
  77. package/dist/compiler/finiteRe01Verification.d.ts.map +1 -0
  78. package/dist/compiler/finiteRe01Verification.js +830 -0
  79. package/dist/compiler/graphTraversal.d.ts +11 -0
  80. package/dist/compiler/graphTraversal.d.ts.map +1 -0
  81. package/dist/compiler/graphTraversal.js +37 -0
  82. package/dist/compiler/hypotheticalScopedIdentity.d.ts +23 -0
  83. package/dist/compiler/hypotheticalScopedIdentity.d.ts.map +1 -0
  84. package/dist/compiler/hypotheticalScopedIdentity.js +81 -0
  85. package/dist/compiler/occurrenceAnalysis.d.ts +65 -0
  86. package/dist/compiler/occurrenceAnalysis.d.ts.map +1 -0
  87. package/dist/compiler/occurrenceAnalysis.js +300 -0
  88. package/dist/compiler/originalSourceMembership.d.ts +6 -0
  89. package/dist/compiler/originalSourceMembership.d.ts.map +1 -0
  90. package/dist/compiler/originalSourceMembership.js +31 -0
  91. package/dist/compiler/particleAttribution.d.ts +17 -0
  92. package/dist/compiler/particleAttribution.d.ts.map +1 -0
  93. package/dist/compiler/particleAttribution.js +474 -0
  94. package/dist/compiler/particleDeclarationConsistency.d.ts +24 -0
  95. package/dist/compiler/particleDeclarationConsistency.d.ts.map +1 -0
  96. package/dist/compiler/particleDeclarationConsistency.js +197 -0
  97. package/dist/compiler/particleExtension.d.ts +22 -0
  98. package/dist/compiler/particleExtension.d.ts.map +1 -0
  99. package/dist/compiler/particleExtension.js +119 -0
  100. package/dist/compiler/particleLocalAssessment.d.ts +20 -0
  101. package/dist/compiler/particleLocalAssessment.d.ts.map +1 -0
  102. package/dist/compiler/particleLocalAssessment.js +92 -0
  103. package/dist/compiler/particleRestriction.d.ts +24 -0
  104. package/dist/compiler/particleRestriction.d.ts.map +1 -0
  105. package/dist/compiler/particleRestriction.js +489 -0
  106. package/dist/compiler/particleSemanticView.d.ts +50 -0
  107. package/dist/compiler/particleSemanticView.d.ts.map +1 -0
  108. package/dist/compiler/particleSemanticView.js +297 -0
  109. package/dist/compiler/particleWildcardRelation.d.ts +88 -0
  110. package/dist/compiler/particleWildcardRelation.d.ts.map +1 -0
  111. package/dist/compiler/particleWildcardRelation.js +143 -0
  112. package/dist/compiler/re01CandidateCorrespondence.d.ts +64 -0
  113. package/dist/compiler/re01CandidateCorrespondence.d.ts.map +1 -0
  114. package/dist/compiler/re01CandidateCorrespondence.js +572 -0
  115. package/dist/compiler/re01TypeProperties.d.ts +71 -0
  116. package/dist/compiler/re01TypeProperties.d.ts.map +1 -0
  117. package/dist/compiler/re01TypeProperties.js +120 -0
  118. package/dist/compiler/re01TypePropertyValidation.d.ts +23 -0
  119. package/dist/compiler/re01TypePropertyValidation.d.ts.map +1 -0
  120. package/dist/compiler/re01TypePropertyValidation.js +161 -0
  121. package/dist/compiler/resolveCanonicalGraph.d.ts +38 -0
  122. package/dist/compiler/resolveCanonicalGraph.d.ts.map +1 -0
  123. package/dist/compiler/resolveCanonicalGraph.js +170 -0
  124. package/dist/compiler/scalarSchemaAssessment.d.ts +425 -0
  125. package/dist/compiler/scalarSchemaAssessment.d.ts.map +1 -0
  126. package/dist/compiler/scalarSchemaAssessment.js +5198 -0
  127. package/dist/compiler/schemaAttributeGroupProperties.d.ts +17 -0
  128. package/dist/compiler/schemaAttributeGroupProperties.d.ts.map +1 -0
  129. package/dist/compiler/schemaAttributeGroupProperties.js +53 -0
  130. package/dist/compiler/schemaAttributeProperties.d.ts +10 -0
  131. package/dist/compiler/schemaAttributeProperties.d.ts.map +1 -0
  132. package/dist/compiler/schemaAttributeProperties.js +11 -0
  133. package/dist/compiler/schemaAttributeUses.d.ts +90 -0
  134. package/dist/compiler/schemaAttributeUses.d.ts.map +1 -0
  135. package/dist/compiler/schemaAttributeUses.js +725 -0
  136. package/dist/compiler/schemaBinaryWordReconstruction.d.ts +10 -0
  137. package/dist/compiler/schemaBinaryWordReconstruction.d.ts.map +1 -0
  138. package/dist/compiler/schemaBinaryWordReconstruction.js +33 -0
  139. package/dist/compiler/schemaBuiltinFacets.d.ts +14 -0
  140. package/dist/compiler/schemaBuiltinFacets.d.ts.map +1 -0
  141. package/dist/compiler/schemaBuiltinFacets.js +51 -0
  142. package/dist/compiler/schemaCalendarImages.d.ts +8 -0
  143. package/dist/compiler/schemaCalendarImages.d.ts.map +1 -0
  144. package/dist/compiler/schemaCalendarImages.js +204 -0
  145. package/dist/compiler/schemaCalendarLanguage.d.ts +11 -0
  146. package/dist/compiler/schemaCalendarLanguage.d.ts.map +1 -0
  147. package/dist/compiler/schemaCalendarLanguage.js +227 -0
  148. package/dist/compiler/schemaComponentEquality.d.ts +28 -0
  149. package/dist/compiler/schemaComponentEquality.d.ts.map +1 -0
  150. package/dist/compiler/schemaComponentEquality.js +446 -0
  151. package/dist/compiler/schemaConstructionAssessment.d.ts +46 -0
  152. package/dist/compiler/schemaConstructionAssessment.d.ts.map +1 -0
  153. package/dist/compiler/schemaConstructionAssessment.js +663 -0
  154. package/dist/compiler/schemaDatatypeValues.d.ts +4 -0
  155. package/dist/compiler/schemaDatatypeValues.d.ts.map +1 -0
  156. package/dist/compiler/schemaDatatypeValues.js +2 -0
  157. package/dist/compiler/schemaDecimalLanguage.d.ts +7 -0
  158. package/dist/compiler/schemaDecimalLanguage.d.ts.map +1 -0
  159. package/dist/compiler/schemaDecimalLanguage.js +102 -0
  160. package/dist/compiler/schemaDeclarationPrimitives.d.ts +34 -0
  161. package/dist/compiler/schemaDeclarationPrimitives.d.ts.map +1 -0
  162. package/dist/compiler/schemaDeclarationPrimitives.js +194 -0
  163. package/dist/compiler/schemaDocumentSyntax.d.ts +55 -0
  164. package/dist/compiler/schemaDocumentSyntax.d.ts.map +1 -0
  165. package/dist/compiler/schemaDocumentSyntax.js +294 -0
  166. package/dist/compiler/schemaDurationLanguage.d.ts +11 -0
  167. package/dist/compiler/schemaDurationLanguage.d.ts.map +1 -0
  168. package/dist/compiler/schemaDurationLanguage.js +170 -0
  169. package/dist/compiler/schemaElementProperties.d.ts +16 -0
  170. package/dist/compiler/schemaElementProperties.d.ts.map +1 -0
  171. package/dist/compiler/schemaElementProperties.js +23 -0
  172. package/dist/compiler/schemaEndpointWordCapacity.d.ts +36 -0
  173. package/dist/compiler/schemaEndpointWordCapacity.d.ts.map +1 -0
  174. package/dist/compiler/schemaEndpointWordCapacity.js +39 -0
  175. package/dist/compiler/schemaExactCalendar.d.ts +73 -0
  176. package/dist/compiler/schemaExactCalendar.d.ts.map +1 -0
  177. package/dist/compiler/schemaExactCalendar.js +264 -0
  178. package/dist/compiler/schemaFacetAnnotation.d.ts +32 -0
  179. package/dist/compiler/schemaFacetAnnotation.d.ts.map +1 -0
  180. package/dist/compiler/schemaFacetAnnotation.js +199 -0
  181. package/dist/compiler/schemaGeneratedScalarShape.d.ts +35 -0
  182. package/dist/compiler/schemaGeneratedScalarShape.d.ts.map +1 -0
  183. package/dist/compiler/schemaGeneratedScalarShape.js +176 -0
  184. package/dist/compiler/schemaIdentityConstraints.d.ts +73 -0
  185. package/dist/compiler/schemaIdentityConstraints.d.ts.map +1 -0
  186. package/dist/compiler/schemaIdentityConstraints.js +362 -0
  187. package/dist/compiler/schemaIeeeLanguage.d.ts +43 -0
  188. package/dist/compiler/schemaIeeeLanguage.d.ts.map +1 -0
  189. package/dist/compiler/schemaIeeeLanguage.js +759 -0
  190. package/dist/compiler/schemaIntegerImages.d.ts +11 -0
  191. package/dist/compiler/schemaIntegerImages.d.ts.map +1 -0
  192. package/dist/compiler/schemaIntegerImages.js +113 -0
  193. package/dist/compiler/schemaLexicalPredicates.d.ts +29 -0
  194. package/dist/compiler/schemaLexicalPredicates.d.ts.map +1 -0
  195. package/dist/compiler/schemaLexicalPredicates.js +63 -0
  196. package/dist/compiler/schemaNotationProperties.d.ts +32 -0
  197. package/dist/compiler/schemaNotationProperties.d.ts.map +1 -0
  198. package/dist/compiler/schemaNotationProperties.js +84 -0
  199. package/dist/compiler/schemaNumericImageConditions.d.ts +24 -0
  200. package/dist/compiler/schemaNumericImageConditions.d.ts.map +1 -0
  201. package/dist/compiler/schemaNumericImageConditions.js +66 -0
  202. package/dist/compiler/schemaParticleWildcardProperties.d.ts +20 -0
  203. package/dist/compiler/schemaParticleWildcardProperties.d.ts.map +1 -0
  204. package/dist/compiler/schemaParticleWildcardProperties.js +43 -0
  205. package/dist/compiler/schemaPattern.d.ts +1062 -0
  206. package/dist/compiler/schemaPattern.d.ts.map +1 -0
  207. package/dist/compiler/schemaPattern.js +581 -0
  208. package/dist/compiler/schemaRegularLanguage.d.ts +67 -0
  209. package/dist/compiler/schemaRegularLanguage.d.ts.map +1 -0
  210. package/dist/compiler/schemaRegularLanguage.js +1166 -0
  211. package/dist/compiler/schemaScalarContext.d.ts +81 -0
  212. package/dist/compiler/schemaScalarContext.d.ts.map +1 -0
  213. package/dist/compiler/schemaScalarContext.js +78 -0
  214. package/dist/compiler/schemaScalarKernel.d.ts +182 -0
  215. package/dist/compiler/schemaScalarKernel.d.ts.map +1 -0
  216. package/dist/compiler/schemaScalarKernel.js +391 -0
  217. package/dist/compiler/schemaScalarWitnesses.d.ts +6 -0
  218. package/dist/compiler/schemaScalarWitnesses.d.ts.map +1 -0
  219. package/dist/compiler/schemaScalarWitnesses.js +118 -0
  220. package/dist/compiler/schemaSimpleTypeProperties.d.ts +95 -0
  221. package/dist/compiler/schemaSimpleTypeProperties.d.ts.map +1 -0
  222. package/dist/compiler/schemaSimpleTypeProperties.js +103 -0
  223. package/dist/compiler/schemaSourceGrammar.d.ts +27 -0
  224. package/dist/compiler/schemaSourceGrammar.d.ts.map +1 -0
  225. package/dist/compiler/schemaSourceGrammar.js +290 -0
  226. package/dist/compiler/schemaSourceLexical.d.ts +4 -0
  227. package/dist/compiler/schemaSourceLexical.d.ts.map +1 -0
  228. package/dist/compiler/schemaSourceLexical.js +12 -0
  229. package/dist/compiler/schemaSourceValues.d.ts +51 -0
  230. package/dist/compiler/schemaSourceValues.d.ts.map +1 -0
  231. package/dist/compiler/schemaSourceValues.js +225 -0
  232. package/dist/compiler/schemaSourceWildcards.d.ts +28 -0
  233. package/dist/compiler/schemaSourceWildcards.d.ts.map +1 -0
  234. package/dist/compiler/schemaSourceWildcards.js +247 -0
  235. package/dist/compiler/schemaSymbolicSequences.d.ts +16 -0
  236. package/dist/compiler/schemaSymbolicSequences.d.ts.map +1 -0
  237. package/dist/compiler/schemaSymbolicSequences.js +99 -0
  238. package/dist/compiler/schemaSymbolicValueSets.d.ts +32 -0
  239. package/dist/compiler/schemaSymbolicValueSets.d.ts.map +1 -0
  240. package/dist/compiler/schemaSymbolicValueSets.js +149 -0
  241. package/dist/compiler/schemaSyntaxAssessment.d.ts +25 -0
  242. package/dist/compiler/schemaSyntaxAssessment.d.ts.map +1 -0
  243. package/dist/compiler/schemaSyntaxAssessment.js +361 -0
  244. package/dist/compiler/schemaTemporalAliases.d.ts +6 -0
  245. package/dist/compiler/schemaTemporalAliases.d.ts.map +1 -0
  246. package/dist/compiler/schemaTemporalAliases.js +195 -0
  247. package/dist/compiler/schemaTokenImages.d.ts +9 -0
  248. package/dist/compiler/schemaTokenImages.d.ts.map +1 -0
  249. package/dist/compiler/schemaTokenImages.js +142 -0
  250. package/dist/compiler/schemaTypeIdentity.d.ts +39 -0
  251. package/dist/compiler/schemaTypeIdentity.d.ts.map +1 -0
  252. package/dist/compiler/schemaTypeIdentity.js +78 -0
  253. package/dist/compiler/schemaTypeRelations.d.ts +38 -0
  254. package/dist/compiler/schemaTypeRelations.d.ts.map +1 -0
  255. package/dist/compiler/schemaTypeRelations.js +576 -0
  256. package/dist/compiler/schemaUri.d.ts +13 -0
  257. package/dist/compiler/schemaUri.d.ts.map +1 -0
  258. package/dist/compiler/schemaUri.js +103 -0
  259. package/dist/compiler/schemaValueContext.d.ts +26 -0
  260. package/dist/compiler/schemaValueContext.d.ts.map +1 -0
  261. package/dist/compiler/schemaValueContext.js +1 -0
  262. package/dist/compiler/schemaValueImages.d.ts +10 -0
  263. package/dist/compiler/schemaValueImages.d.ts.map +1 -0
  264. package/dist/compiler/schemaValueImages.js +142 -0
  265. package/dist/compiler/schemaValueSequences.d.ts +15 -0
  266. package/dist/compiler/schemaValueSequences.d.ts.map +1 -0
  267. package/dist/compiler/schemaValueSequences.js +19 -0
  268. package/dist/compiler/semanticBudget.d.ts +50 -0
  269. package/dist/compiler/semanticBudget.d.ts.map +1 -0
  270. package/dist/compiler/semanticBudget.js +178 -0
  271. package/dist/compiler/semanticCatalog.d.ts +122 -0
  272. package/dist/compiler/semanticCatalog.d.ts.map +1 -0
  273. package/dist/compiler/semanticCatalog.js +160 -0
  274. package/dist/compiler/semanticContext.d.ts +172 -0
  275. package/dist/compiler/semanticContext.d.ts.map +1 -0
  276. package/dist/compiler/semanticContext.js +1168 -0
  277. package/dist/compiler/semanticTypeDependencies.d.ts +8 -0
  278. package/dist/compiler/semanticTypeDependencies.d.ts.map +1 -0
  279. package/dist/compiler/semanticTypeDependencies.js +64 -0
  280. package/dist/compiler/semanticTypeReference.d.ts +24 -0
  281. package/dist/compiler/semanticTypeReference.d.ts.map +1 -0
  282. package/dist/compiler/semanticTypeReference.js +36 -0
  283. package/dist/compiler/shapeResolver.d.ts +1 -0
  284. package/dist/compiler/shapeResolver.d.ts.map +1 -1
  285. package/dist/compiler/shapeResolver.js +7 -9
  286. package/dist/compiler/sourceSchemaBinding.d.ts +26 -0
  287. package/dist/compiler/sourceSchemaBinding.d.ts.map +1 -0
  288. package/dist/compiler/sourceSchemaBinding.js +39 -0
  289. package/dist/compiler/structuralCompanions.d.ts +16 -0
  290. package/dist/compiler/structuralCompanions.d.ts.map +1 -0
  291. package/dist/compiler/structuralCompanions.js +232 -0
  292. package/dist/compiler/validateSemanticGraph.d.ts +5 -0
  293. package/dist/compiler/validateSemanticGraph.d.ts.map +1 -0
  294. package/dist/compiler/validateSemanticGraph.js +376 -0
  295. package/dist/compiler/wildcardAlgebra.d.ts +26 -0
  296. package/dist/compiler/wildcardAlgebra.d.ts.map +1 -0
  297. package/dist/compiler/wildcardAlgebra.js +155 -0
  298. package/dist/gateway/generateGateway.d.ts.map +1 -1
  299. package/dist/gateway/generateGateway.js +2 -2
  300. package/dist/index.d.ts +3 -0
  301. package/dist/index.d.ts.map +1 -1
  302. package/dist/index.js +2 -0
  303. package/dist/loader/orderedSyntax.d.ts +77 -0
  304. package/dist/loader/orderedSyntax.d.ts.map +1 -0
  305. package/dist/loader/orderedSyntax.js +202 -0
  306. package/dist/loader/resolutionDepth.d.ts +7 -0
  307. package/dist/loader/resolutionDepth.d.ts.map +1 -0
  308. package/dist/loader/resolutionDepth.js +65 -0
  309. package/dist/loader/schemaInput.d.ts +53 -0
  310. package/dist/loader/schemaInput.d.ts.map +1 -0
  311. package/dist/loader/schemaInput.js +212 -0
  312. package/dist/loader/schemaResources.d.ts +59 -0
  313. package/dist/loader/schemaResources.d.ts.map +1 -0
  314. package/dist/loader/schemaResources.js +292 -0
  315. package/dist/openapi/generateOpenAPI.d.ts.map +1 -1
  316. package/dist/openapi/generateOpenAPI.js +2 -2
  317. package/dist/test/generateTests.d.ts.map +1 -1
  318. package/dist/test/generateTests.js +2 -2
  319. package/dist/util/xmlWhitespace.d.ts +3 -0
  320. package/dist/util/xmlWhitespace.d.ts.map +1 -0
  321. package/dist/util/xmlWhitespace.js +4 -0
  322. package/docs/README.md +14 -1
  323. package/docs/architecture.md +9 -0
  324. package/docs/cli-reference.md +21 -1
  325. package/docs/content-model-analysis.md +92 -0
  326. package/docs/content-model-baseline.md +121 -0
  327. package/docs/content-model-catalog.md +116 -0
  328. package/docs/content-model-companions.md +90 -0
  329. package/docs/content-model-composition.md +103 -0
  330. package/docs/content-model-decisions.md +79 -0
  331. package/docs/content-model-gateway-feasibility.md +169 -0
  332. package/docs/content-model-graph.md +121 -0
  333. package/docs/content-model-loading.md +163 -0
  334. package/docs/content-model-matching.md +85 -0
  335. package/docs/content-model-readiness.md +144 -0
  336. package/docs/content-model-resolution.md +81 -0
  337. package/docs/content-model-s02-handoff.md +98 -0
  338. package/docs/content-model-s06-au-01.md +425 -0
  339. package/docs/content-model-s06-dt-01.md +386 -0
  340. package/docs/content-model-s06-pw-01.md +350 -0
  341. package/docs/content-model-s06-re-01-resolver-implementation.md +869 -0
  342. package/docs/content-model-s06-re-01-resolver.md +513 -0
  343. package/docs/content-model-s06-re-01-scalar-witnesses.md +1423 -0
  344. package/docs/content-model-s06-re-01-support-reconstruction.md +6337 -0
  345. package/docs/content-model-s06-re-01.md +7477 -0
  346. package/docs/content-model-s06-research-handoff.md +909 -0
  347. package/docs/content-model-shipped-fix.md +83 -0
  348. package/docs/content-model-soap-feasibility.md +165 -0
  349. package/docs/decisions/002-streamable-responses.md +2 -0
  350. package/docs/decisions/003-content-model-contracts.md +280 -0
  351. package/docs/direct-values.md +311 -0
  352. package/docs/generated-code.md +4 -0
  353. package/docs/reference-validation.md +243 -0
  354. package/docs/releases/v1.1.4.md +36 -0
  355. package/docs/releases/v1.1.5.md +38 -0
  356. package/docs/roadmap/README.md +2 -2
  357. package/docs/supported-patterns.md +13 -5
  358. package/package.json +27 -13
  359. package/src/generation/preambles/direct-client/typescript.preamble +3 -0
  360. package/src/runtime/clientStreamMethods.tpl.txt +1 -1
@@ -0,0 +1,121 @@
1
+ # Content Model Baseline
2
+
3
+ Bounded S01 evidence for current output and independent XSD 1.0 validation. See the root [README.md](../README.md) for documentation navigation.
4
+
5
+ ## Purpose and boundary
6
+
7
+ [Task #166](https://github.com/TechSpokes/typescript-wsdl-client/issues/166) characterizes the finite corpus agreed in [S01 #148](https://github.com/TechSpokes/typescript-wsdl-client/issues/148). It preserves the shipped #141 correction and public defaults; remaining semantic repairs belong to [epic #147](https://github.com/TechSpokes/typescript-wsdl-client/issues/147).
8
+
9
+ The source baseline is main at `b633cd1561ccb2689134a7289cf48bb097b0d1f1`, with package v1.1.4, TypeScript 6.0.3 and Node 24.19.0. The runner reports the actual checked-out commit and tracked dirty state separately from this production baseline; PR and issue acceptance records pin the final tested delivery commits.
10
+
11
+ ## One authoritative manifest
12
+
13
+ [`semantic-baseline.json`](../test/conformance/semantic-baseline.json) owns the 14 case IDs, inputs, expected reference outcomes, current generated behavior, intended semantics and gap disposition. Each case links a capability in the existing [registry](../test/conformance/registry.ts); the two new research rows record limitations rather than increasing supported-feature claims.
14
+
15
+ The corpus reuses the [occurrence fixture](../test/conformance/fixtures/xsd/sequences/sequence-occurrence-wrappers.wsdl) from the public #141 example and the existing [simple-choice fixture](../test/conformance/fixtures/xsd/compositors/choice-union-simple.wsdl). The [boundary fixture](../test/conformance/fixtures/xsd/compositors/content-model-boundaries.wsdl) adds legal minimal cases, while [invalid-all](../test/conformance/fixtures/xsd/compositors/content-model-invalid-all.wsdl) preserves a historical illegal input with an explicit schema-rejection disposition.
16
+
17
+ ### Manifest fields
18
+
19
+ | Field | Meaning |
20
+ |---|---|
21
+ | `id`, `family` | Stable case and bounded semantic family |
22
+ | `capabilityId`, `fixture`, `provenance` | Existing registry link and sanitized source |
23
+ | `findings` | Stable CM identifiers from epic #147 |
24
+ | `schema` | Expected independent schema-compilation outcome |
25
+ | `instances` | Committed XML inputs and expected reference outcomes |
26
+ | `current` | Observed catalog, scoped TypeScript and OpenAPI assertions |
27
+ | `current.defaultChoice` | Separate current default-mode assertions for choices |
28
+ | `intended` | Desired schema meaning, not production expectations |
29
+ | `disposition` | Remaining gap and numbered downstream owners |
30
+ | `downstream` | Real transport, registry mock, unrun or inapplicable evidence |
31
+ | `referenceDisagreement` | Explicit validator disagreement and resolution owner |
32
+ | `fast` | Membership in the required deterministic subset |
33
+
34
+ All fixture paths are relative to `test/conformance/fixtures/`. Current OpenAPI assertions use `flattenArrayWrappers: false` to expose the element properties; the existing occurrence transport suite separately exercises both wrapped and flattened HTTP responses.
35
+
36
+ The [characterization suite](../test/conformance/semantic-baseline.test.ts) compiles the fixtures and compares current catalog/type/schema results with literal manifest expectations. Choice cases execute opt-in `union` and current default `all-optional` independently; neither mode's name serves as evidence of its behavior.
37
+
38
+ ## Setup and reproduction
39
+
40
+ Node 24 or 26 and npm provide reference qualification through pinned test-only `libxml2-wasm@0.7.2` and libxml2 2.15.1. [NT-CONT-01](reference-validation.md) retains fresh scoped TypeScript checks and historical xmlschema observations separately; it does not claim two live general-purpose validators.
41
+
42
+ Run setup once with package-index access, then validation requires only committed inputs and installed tools. No production dependency or runtime validator is introduced.
43
+
44
+ ```bash
45
+ npm ci --cache tmp/cache/npm
46
+ npm run reference:setup
47
+ npm run test:reference
48
+ npm run test:reference:full
49
+ npx vitest run test/conformance/semantic-baseline.test.ts test/integration/sequence-occurrence-transport.test.ts
50
+ npx tsc -p test/conformance/tsconfig.json
51
+ ```
52
+
53
+ `reference:setup` checks the installed package version and executes a schema-construction control. Normal `npm ci` installs the prebuilt artifact; no interpreter environment or activation is needed.
54
+
55
+ The engine remains a development dependency outside generated consumer artifacts. Reports stay under `tmp/conformance/reference`; ordinary pipeline resets remove only `tmp/smoke`.
56
+
57
+ ### Required and full lanes
58
+
59
+ `npm run test:reference` runs six deterministic cases and 15 instances: original-sequence, simple-choice, sequence-order, zero-group-unbounded, finite-count-gap and invalid-all-sequence. Node 24/26 CI requires this command, the toolchain guard and scoped strict TypeScript checks.
60
+
61
+ `npm run test:reference:full` executes all 14 schemas and 40 instances, including the selected contract and historical secondary answer for the disabled-element disagreement. Both selections execute all 53 mapped methods and reject missing execution; setup, input, version and observation failures exit nonzero.
62
+
63
+ The launcher also exercises setup/input/schema failures, observation disagreements, offline boundaries and resource limits. Unit controls reject unsupported Node versions, empty discovery and failed test commands.
64
+
65
+ The launcher writes machine-readable evidence and actual executed-method traceability automatically:
66
+
67
+ ```bash
68
+ npm run test:reference:full
69
+ ```
70
+
71
+ ## Reference adapter responsibilities
72
+
73
+ The [Node adapter](../test/conformance/reference/adapter.ts) extracts one embedded schema and materializes inherited namespace bindings before compiling it. This preserves prefixes used only in QName-valued attributes, such as `type="tns:AddressType"`; losing those bindings would manufacture schema failures.
74
+
75
+ libxml2 supplies primary schema and instance results without importing production semantic helpers. Expected results are literal independent assertions in the manifest, not computations from catalog bounds.
76
+
77
+ The adapter rejects DTDs, unknown external resources and path escapes, and confines inputs to the committed fixture root. Composition requires an explicit local registered resource set; broader schema loading remains with downstream owners.
78
+
79
+ Schema compilation and instance validation have separate output fields. A rejected schema produces no instance results; malformed or missing inputs and missing tooling are setup/input failures rather than expected instance rejection. Successful qualification means recorded observations agree, including explicitly assigned disagreements; it does not prove the future faithful model is implemented.
80
+
81
+ ## Executed outcomes
82
+
83
+ Full qualification covers 14 cases: 13 schema-accepted cases, one schema-rejected case and 40 primary instance checks. These span four distinct WSDL fixtures and report each case independently. The required subset covers six cases and 15 instances.
84
+
85
+ The illegal nested sequence beneath `xs:all` fails schema compilation before instance evaluation. Its legal optional-all counterpart accepts the empty group and a single item, and rejects two items; production output still requires the item.
86
+
87
+ ### Validator disagreement
88
+
89
+ For `zero-element-unbounded`, historical libxml2 2.14.6 and current 2.15.1 accept both the empty instance and the disabled `row`. Historical xmlschema 4.2.0 rejects the row; the fresh scoped rule also rejects it from its original `maxOccurs=0` source. The runner labels these distinct evidence kinds and leaves fresh full second-engine validation unqualified.
90
+
91
+ The primary `accepted` expectation characterizes libxml2's limitation, not valid XSD semantics. [#181](https://github.com/TechSpokes/typescript-wsdl-client/issues/181) owns reference-oracle follow-up under CM-15, while schema analysis, matching and projection owners retain the implementation gap. Do not use primary acceptance here to approve a future codec.
92
+
93
+ ## Consumer evidence and limitations
94
+
95
+ The [real SOAP transport test](../test/integration/sequence-occurrence-transport.test.ts) and [shared harness](../test/helpers/occurrenceTransport.mjs) verify singleton and two-item response arrays, omitted optional requests, repeated bounded/unbounded request XML and gateway JSON bytes after serialization. Both wrapper-flattening modes execute, and installed-package smoke reuses this harness.
96
+
97
+ This proves the focused occurrence shape correction and singleton normalization, not complete XML-instance validation. Other boundary cases have catalog/type/OpenAPI evidence only unless their manifest explicitly links registry mock evidence; no production vendor WSDL or later buffered/streaming architecture probe is claimed.
98
+
99
+ Finite lengths and the 2-or-4 count hole remain unenforced in generated arrays. Repeated `(a,b)` sequence order and group correlation are lost in independent property arrays. Disabled groups, optional all, inherited choice bounds, repeated selections and empty alternatives retain current limitations.
100
+
101
+ Current default choice output requires scalar fields for the selected minimal fixtures, while opt-in union expresses a single exclusive branch. A required repeated choice needs two selections, potentially of the same branch; neither current representation captures that language.
102
+
103
+ Wildcard metadata retains local bounds, but the current TypeScript/OpenAPI projection omits ordered wildcard elements and enclosing repetition. These are characterization results, not new supported-pattern claims.
104
+
105
+ ## Downstream ownership and S02 inputs
106
+
107
+ Each manifest disposition records concrete issue numbers. Subsequent consumer qualification owns the applicable client/gateway behavior; the existing public [support matrix](supported-patterns.md) remains authoritative for released claims.
108
+
109
+ | Responsibility | Owning issue |
110
+ |---|---|
111
+ | Bounds, choice presence and count analysis | [#178](https://github.com/TechSpokes/typescript-wsdl-client/issues/178) |
112
+ | Schema legality and reachable support | [#179](https://github.com/TechSpokes/typescript-wsdl-client/issues/179) |
113
+ | Ordered particle matching | [#180](https://github.com/TechSpokes/typescript-wsdl-client/issues/180) |
114
+ | Independent oracle disagreement | [#181](https://github.com/TechSpokes/typescript-wsdl-client/issues/181) |
115
+ | Reversible value and branch projection | [#182](https://github.com/TechSpokes/typescript-wsdl-client/issues/182) |
116
+ | Faithful XML encoding | [#188](https://github.com/TechSpokes/typescript-wsdl-client/issues/188) |
117
+ | HTTP representation validation | [#198](https://github.com/TechSpokes/typescript-wsdl-client/issues/198) |
118
+
119
+ [S02 #149](https://github.com/TechSpokes/typescript-wsdl-client/issues/149) must decide how ordered/group-correlated data is represented, what XML equivalence means for invisible groups and empty branches, and how the declared XSD/datatype/wildcard profile is enforced. It must assign validation versus normalization and serialization boundaries, compatible artifact routing, public activation policy and bounded resource failures.
120
+
121
+ These are inputs to [#168](https://github.com/TechSpokes/typescript-wsdl-client/issues/168), not an S01 architecture implementation. The SOAP and gateway feasibility probes remain blocked until a reviewed ADR draft supplies their concrete contracts.
@@ -0,0 +1,116 @@
1
+ # Semantic Catalog Format 2
2
+
3
+ Internal S04 persistence and compatibility boundaries for the unreleased faithful compiler. See the root [README](../README.md).
4
+
5
+ ## Versions and entry points
6
+
7
+ [ADR-003 D04/D09/D10](decisions/003-content-model-contracts.md) and the [decision register](content-model-decisions.md) own profile, budgets and compatibility.
8
+ [The graph contract](content-model-graph.md) remains authoritative; a compatibility view is always derived.
9
+ [Catalog entry points](../src/compiler/semanticCatalog.ts) are internal modules, outside the package entry point.
10
+
11
+ `SemanticCatalog` contains `catalogFormat: 2`, `model: "xsd10-faithful-v1"`, `profile: "xsd10-faithful-v1"`, `graph` and `semanticFingerprint`.
12
+ `createSemanticCatalog(graph, limits?)` creates an immutable portable snapshot.
13
+ `serializeSemanticCatalog(catalog, limits?)` emits canonical JSON and one trailing newline.
14
+ `readCatalog(text, {mode?, maxBytes?, maxDepth?, maxNodes?})` returns a discriminated legacy, semantic or regeneration-required result.
15
+ `readCatalogFile(file, options)` applies the same boundary through a bounded regular-file read and strict UTF-8 decoding.
16
+ `readLegacyCatalogFile` is the explicit adapter used by existing CLI, OpenAPI, gateway, app, generated-test and companion-catalog readers.
17
+
18
+ No new faithful CLI flag, public export or emitter is activated.
19
+ Source compilation through `prepareCompilationInput` defaults to the existing legacy loader/compiler and preserves legacy names/options.
20
+ An explicit internal `mode: "faithful"` builds only the ordered graph/catalog through [S03 loading](content-model-loading.md), with caller-authorized policy.
21
+ It does not certify support or produce the later portable bundle.
22
+
23
+ ## Canonical persistence and validation
24
+
25
+ Object keys use ECMAScript UTF-16 code-unit ordering and compact JSON encoding.
26
+ Node/global display tables sort by ID; origin tables sort by their canonical representation.
27
+ Particle children, union members, facets, attributes, ordered syntax and WSDL reference arrays retain their declaration order.
28
+ The reader normalizes display tables, so accepted permutations serialize identically.
29
+
30
+ Global IDs are compact JSON tuples from the graph contract.
31
+ Scoped IDs hash UTF-8 bytes of compact `JSON.stringify([owner, path, role])`, with JSON string escaping and no whitespace.
32
+ For `owner = "parent"`, `path = "/0/1"`, `role = "type"`, the input bytes encode `["parent","/0/1","type"]` and the ID is `scoped:f325bc3d3205fbca17c95034c3a1093ed14ce66b9db6347931ad6890c026f65f`.
33
+ The explicit identity tuple remains serialized for verification by another language.
34
+
35
+ Finite bounds remain exact canonical unsigned decimal strings; `unbounded` is a distinct maximum.
36
+ Every discriminant, required field, node identity, index, reference role/target, QName namespace context and structural ownership is checked before returning an immutable catalog.
37
+ Scoped structural use sites have one parent; semantic references can share declarations and recurse.
38
+ Containment/ownership cycles, malformed bounds, nested all, illegal all children, empty unions, unknown mandatory fields and duplicate JSON keys fail explicitly.
39
+ WSDL reference indexes must agree with the ordered declaring syntax, lexical scope and source context.
40
+ Validation of complete derivation/reference visibility, facet legality, UPA and supported capabilities remains with S05/S06.
41
+
42
+ ## Provenance and fingerprints
43
+
44
+ Internal graph retrieval URIs never become global or scoped identity.
45
+ Portable source locations retain digest, source path and exact start/end positions with `urn:source:sha256:<original-byte-digest>`.
46
+ Inherited bases and loading-reference URIs use `urn:base:sha256:<digest>` tokens.
47
+ Same-resource bases hash source digest, document-relative placement and an optional query digest; relocating the complete fixture tree does not change catalog bytes.
48
+ Interpretation tuples retain namespace/adoption/resolution distinctions using portable source/base tokens, independently of symbol identity.
49
+ The reader rejects raw retrieval provenance rather than silently redacting an input artifact.
50
+
51
+ Retrieval attributes such as `xml:base`, schema locations and documentation source URIs become digest tokens.
52
+ Binding endpoint addresses remain ordered semantic syntax; credential-bearing URI userinfo and recognizable secret query parameters on binding addresses are rejected.
53
+ Credentials belong to external runtime configuration.
54
+ No serialization can infer secrets embedded in arbitrary schema text: input annotations/lexical values must be suitable for the intended artifact audience.
55
+
56
+ The SHA-256 semantic fingerprint excludes source digests/locations, retrieval bases, loading policy/edges, origin tables, documentation and annotations.
57
+ Reference fingerprints use expanded role-qualified names, rather than prefix spelling, while the artifact preserves original lexical QName context for validation and later interpretation.
58
+ Fingerprint-only scoped IDs follow ordered structural containment; serialized source-relative identities and WSDL syntax paths remain unchanged.
59
+ This keeps inserted documentation and element-only formatting whitespace out of semantic identity without changing semantic child order.
60
+ Remaining scalar/facet/default/fixed lexical values and namespace context participate conservatively; S04 does not assert datatype equivalence.
61
+ The fingerprint detects semantic mismatch, not authenticity or provenance tampering; this is not the later bundle fingerprint combining projections/binding/capabilities/scope.
62
+ #185/#186 own bundle format 1 and integrated compatibility checks.
63
+
64
+ ## Early compatibility matrix
65
+
66
+ | Input / selected mode | S04 behavior |
67
+ |---|---|
68
+ | Legacy unversioned catalog / legacy | Explicit legacy adapter; retain existing metadata, names and options |
69
+ | Legacy catalog / faithful | Regeneration-required, category `incompatible-artifact`, original source required |
70
+ | Original WSDL / legacy | Existing loader/compiler; default unchanged |
71
+ | Original WSDL/XSD / internal faithful | Controlled ordered loader, immutable graph and format 2 catalog only |
72
+ | Format 2 catalog / internal faithful | Typed validation, exact version/model/profile and fingerprint check |
73
+ | Format 2 catalog / legacy consumer | Reject `incompatible-artifact`; regenerate matched legacy artifacts from original source |
74
+ | Unknown format/model/profile, versioned bundle at catalog boundary | Reject explicitly; no fallback to the flattened reader |
75
+ | Mixed generated artifacts or faithful OpenAPI-only gateway | Deferred to #185/#186/#195/#196/#201; require the original source and portable bundle |
76
+
77
+ The legacy reader checks the historical envelope and named table entries without inventing missing ordered structure or renaming metadata.
78
+ Its compatibility boundary is not a new complete validator for every historical compiler field.
79
+ The regeneration result supplies the internal source-compilation call, with placeholders for the original source and authorized roots.
80
+ For example, import `prepareCompilationInput` in a repository development program and call:
81
+
82
+ ```typescript
83
+ await prepareCompilationInput(
84
+ {kind: "source", source: originalSource},
85
+ {mode: "faithful", loading: {policy: {fileRoots: authorizedRoots}}},
86
+ );
87
+ ```
88
+
89
+ The shipped `wsdl-tsc compile` command still emits the legacy catalog.
90
+ There is no supported faithful generation command during S04.
91
+ The architecture release train remains 2.0.0, with integrated S17/S18 evidence and separately approved default activation.
92
+
93
+ ## Limits, evidence and downstream readiness
94
+
95
+ The catalog boundary defaults to 64 MiB of UTF-8 JSON, 100,000 graph nodes and JSON nesting depth 1,024, inclusive.
96
+ Byte/node overrides require positive safe integers; nesting can be lowered but cannot exceed the reader safety ceiling.
97
+ Configured byte boundaries, multibyte input, node rejection, 1,024/1,025 nesting, corrupt UTF-8 and Linux FIFO rejection have executable tests.
98
+ The full default 64 MiB catalog boundary and Windows special-file behavior are not platform-qualified by these tests.
99
+ S03 loading limits, denial defaults and conservative cyclic-depth behavior are consumed unchanged.
100
+ Later scalar/projection/codec budgets retain their [assigned owners](content-model-decisions.md).
101
+
102
+ [Catalog tests](../test/unit/semantic-catalog.test.ts) reuse independent graph, chameleon and SOAP fixtures and cover relocation, lexical facets, large bounds, recursion, corrupt artifacts and consumer rejection.
103
+ [Independent graph schema evidence](../test/conformance/reference/graph-contract.test.ts) retains the historical xmlschema/libxml2 large-bound distinction and explicit current qualification limits under [NT-CONT-01](reference-validation.md).
104
+
105
+ ```bash
106
+ npx vitest run test/unit/semantic-catalog.test.ts test/unit/canonical-graph.test.ts
107
+ npx tsc -p test/unit/tsconfig.json
108
+ npm run ci
109
+ npm run test:reference:full
110
+ ```
111
+
112
+ #151's final handoff pins reviewed heads, merge revisions, versions, fixtures, exact commands/results and S05 readiness.
113
+ #175 resolves references, #176 implements derivation/attribute composition, and #177 integrates companion closures and diagnostics.
114
+ #178 owns later occurrence summaries.
115
+ S02's open streaming/incoming-security qualifications and S01's #181-owned oracle disagreement remain downstream gates.
116
+ Production codecs, projections, emitter rewrites, package publication and default activation remain outside S04.
@@ -0,0 +1,90 @@
1
+ # Structural Companion Catalogs
2
+
3
+ Internal S05 reuse over the [canonical graph](content-model-graph.md), [typed reader](content-model-catalog.md), [reference resolution](content-model-resolution.md) and [composition](content-model-composition.md). See the root [README](../README.md).
4
+
5
+ ## Reader and common semantic result
6
+
7
+ `prepareResolvedCompilationInput(input, options)` is the internal faithful counterpart exposed from [`semanticCatalog.ts`](../src/compiler/semanticCatalog.ts) and [`shapeResolver.ts`](../src/compiler/shapeResolver.ts).
8
+ It accepts original source, catalog text or a catalog file, plus companion requests containing input and explicit global `NodeId` roots.
9
+ Source loading requires the same explicit policy as S03; file/text inputs pass through the bounded S04 reader.
10
+ An unused companion with no roots is never read or loaded.
11
+
12
+ The result contains one `SemanticCatalog`, its `ResolvedGraph`, its `ComposedGraph`, and copy/deduplication evidence.
13
+ Resolution and composition consume the same persisted declared graph after reuse.
14
+ The union refreshes typed symbol-target links immutably before catalog validation; missing definitions supplied in either direction become ordinary resolved references.
15
+ No catalog-specific derived representation feeds downstream consumers.
16
+
17
+ Catalog format remains 2 and model/profile remain `xsd10-faithful-v1`.
18
+ Derived views and merge metrics are recomputed, not persisted.
19
+ Flattened legacy input returns the existing `regeneration-required` result with `requiredInput: "original-source"`; no structural semantics are inferred from TypeScript expressions.
20
+ Unknown versions/models/profiles and corrupt catalogs retain existing reader diagnostics.
21
+
22
+ Public `applyShapeCatalogs` and the CLI continue to use the legacy default adapter.
23
+ The new internal entry does not activate faithful generation, projections, codecs or streaming transport.
24
+
25
+ ## Required closure and provenance
26
+
27
+ `mergeStructuralCompanions(primary, companions, limits)` walks typed containment and reference slots from each requested global root.
28
+ The visited set terminates self/mutual element-type recursion while retaining complete definitions.
29
+ Groups, attribute groups, derivation bases, anonymous types and scalar/list/union references participate in the same closure.
30
+ An unavailable imported definition may be supplied by the primary graph; the common resolver still verifies every use's original import visibility.
31
+ Requested companion pools are indexed before traversal; required dependencies can be supplied by another pool regardless of request order.
32
+ Unrelated operation/type nodes and their node-local unsupported constraints are not copied.
33
+
34
+ Namespace, local name and symbol role define global identity.
35
+ Loading interpretations never create extra global identities, and scoped declarations remain owned by their original containing components.
36
+ No public symbol is renamed to make a collision disappear.
37
+
38
+ Equal scoped definitions at normalized containment positions retain the primary declaration IDs and merge all corresponding origins.
39
+ New definitions retain their original scoped IDs.
40
+ Required schema-level retained syntax, annotations and import/include provenance accompany selected interpretations; source paths and digests remain available for diagnostics and assessment.
41
+ The merged graph retains the primary loading-limit record; each companion was independently read/loaded under its own input limits, and reuse applies a separate semantic work budget.
42
+
43
+ ## Actual structural equality
44
+
45
+ Equality compares normalized structural data from each global declaration and its owned local closure, using the shared [`semanticGraphRepresentation`](../src/compiler/catalogProvenance.ts).
46
+ The full normalized structures must match; a matching fingerprint alone never establishes equality.
47
+ Every reachable global dependency is independently copied or compared, including recursive dependencies.
48
+
49
+ The comparison includes expanded namespace/role identity, ordered particles and compositors, exact occurrences, typed references, derivation kind/base/local content, scalar variety/facets, attribute use/value constraints, wildcard namespace/processing and retained unassessed syntax.
50
+ It excludes retrieval locations, source digests, documentation and optional stored symbol-target hints.
51
+ Scope positions normalize documentation-induced source-path shifts; lexical value contexts remain intact.
52
+
53
+ This is conservative declared-structure equality, not a scalar value-equivalence or particle-language proof.
54
+ Different lexical constraints or namespace contexts can require source reconciliation even when later assessment might prove them equivalent.
55
+ It does not flatten inline content and group references into a claimed equivalence.
56
+ The existing format-2 fingerprint algorithm remains unchanged; companion comparison separately ignores stored target-hint availability.
57
+
58
+ Meaningful collisions throw `SemanticError` with category `invalid-schema`, the global component, the companion source and the existing source in `related`.
59
+ The message asks for reconciliation of original declarations.
60
+ Required missing references, forbidden cycles and import visibility failures flow through the common resolver.
61
+ Unsupported retained constraints remain visible for #179; successful reuse does not certify their legality or capability.
62
+
63
+ ## Resource and support evidence
64
+
65
+ Closure indexing/traversal, structural normalization and provenance copying consume bounded work.
66
+ Normalization input and copied strings are counted before serialization; copied graph size is checked while adding definitions.
67
+ Dynamic object keys, including namespace prefixes, count as copied strings.
68
+ Defaults remain 100,000 nodes and 1,000,000 steps, with positive safe-integer overrides.
69
+ Exhaustion returns `resource-limit` without modifying any input or returning a partial result.
70
+ Input gathering bounds aggregate retained nodes and structural data before retaining each additional read, including redundant definitions.
71
+ Gathering, merge, resolution and composition each apply that configured budget independently.
72
+ S03's conservative cyclic-depth loading behavior remains unchanged.
73
+
74
+ [Integration tests](../test/integration/structural-companions.test.ts) cover reader/source/file dispatch, recursive required closures, differing bounds, namespace/role collisions, chameleon and anonymous owners, source-path deduplication, missing references/cycles, structural collisions, legacy regeneration and catalog round trips.
75
+ The [public characterization fixture](../test/conformance/fixtures/xsd/composition/derivation-boundaries.wsdl) is qualified for schema/payload behavior by both pinned reference engines.
76
+ Its executable [registry row](../test/conformance/registry.ts) records legacy group omission, appended restriction content, ineffective prohibitions and named recursive references.
77
+ [Supported patterns](supported-patterns.md) distinguishes this public characterization from internal faithful evidence.
78
+
79
+ ```bash
80
+ npx tsc -p test/unit/tsconfig.json
81
+ npx tsc -p test/integration/tsconfig.json
82
+ npx tsc -p test/conformance/tsconfig.json
83
+ npx vitest run test/integration/structural-companions.test.ts
84
+ npm run test:conformance
85
+ npm run test:reference:full
86
+ npm run ci
87
+ ```
88
+
89
+ #178 owns occurrence summaries/emptiness, #179 owns complete legality and reachable capability assessment, and #184 owns payload scalar enforcement.
90
+ The documented oracle disagreements and S02 platform/security qualifications still apply.
@@ -0,0 +1,103 @@
1
+ # Canonical Derivation Composition
2
+
3
+ Internal S05 derivation views over immutable declarations. See the root [README](../README.md).
4
+
5
+ ## Input, result and assessment gate
6
+
7
+ [`composeCanonicalGraph`](../src/compiler/composeCanonicalGraph.ts) consumes the reviewed [resolved-reference contract](content-model-resolution.md).
8
+ It returns `ComposedGraph {resolved, types, metrics}` without changing the [canonical graph](content-model-graph.md).
9
+ Each `ComposedType` retains its declaration ID, original derivation edge, effective content contributions, attributes, wildcard, scalar layers and explicit legality obligations.
10
+
11
+ All results carry `assessment: "requires-schema-assessment"`.
12
+ This boundary computes composition; it never certifies complete XSD legality, capability support or payload validity.
13
+ No emitter accepts these internal views; #179 must discharge obligations before downstream planning under [ADR-003 D04](decisions/003-content-model-contracts.md#xsd-10-profile-and-enforcement-s02-d04).
14
+
15
+ Content contributions reference declared particle IDs, preserving order and local bounds rather than flattening children.
16
+ Builtin `anyType` remains an explicit opaque contribution with its original builtin reference.
17
+ Attribute/wildcard source IDs and scalar owner layers trace every contribution to the declared graph.
18
+
19
+ ## Distinct derivation operations
20
+
21
+ `extendContent(base, local)` concatenates the base root contributions followed by the local root particle.
22
+ `restrictContent(local)` returns only the local root, or empty content when no particle is declared.
23
+ Neither operation expands group definitions, calculates occurrences or mutates base and sibling types.
24
+
25
+ ```text
26
+ Base: optional a, optional b
27
+ Extension: Base roots, local extra
28
+ Restriction: local optional a
29
+ Empty restriction: no child particles
30
+ ```
31
+
32
+ Complex-content derivation requires a complex base; simple-content extension requires a scalar-bearing base.
33
+ Simple-content restriction retains facets and optional inline scalar types as ordered owner layers.
34
+ Its mixed-base check uses the composed base, including effective mixed content inherited through an empty `anyType` extension.
35
+ Named scalar restriction/list/union definitions and lexical contexts remain original graph data for #179/#184.
36
+
37
+ Extension with no local content inherits the base's effective mixed content.
38
+ An empty extension of `anyType` preserves opaque child content and its `##any` lax attribute wildcard.
39
+ Restriction of `anyType` replaces child content and permits declared attributes through that base wildcard, while an omitted derived wildcard is removed.
40
+
41
+ ## Attribute-use composition
42
+
43
+ Attribute groups are traversed separately from child model groups.
44
+ Omitted restriction uses inherit base required/optional uses and their constraints.
45
+ A declared prohibition removes an explicit optional use; weakening or prohibiting a required base attribute fails with `invalid-schema`.
46
+ This applies to a direct type restriction; a prohibited use inside an attribute group contributes no attribute use and leaves inherited uses intact.
47
+
48
+ Prohibitions remain traceable tombstones in the view rather than becoming wildcard QName exclusions.
49
+ A matching retained wildcard can still admit that QName; prohibition removes an explicit use only.
50
+ Extension prohibition contributes no new use and never removes a base use; conflicting inherited cases retain a legality obligation.
51
+
52
+ Local redeclarations retain their actual declared types and default/fixed values.
53
+ No missing local type is inferred from the base, and scalar values are never compared through Number or plain lexical equality.
54
+ New restricted attributes require a matching base wildcard; type narrowing and applicable fixed-value equivalence retain both reference/value contexts for their enforcement owners.
55
+
56
+ ## Wildcard composition
57
+
58
+ Each wildcard namespace is interpreted using its original effective namespace.
59
+ `##other` excludes that namespace and the absent namespace; imported groups can therefore have different constraints despite identical lexical spelling.
60
+ Finite sets and complements support exact union, intersection and subset checks without replacing lexical declarations.
61
+
62
+ Group wildcards intersect namespace sets and preserve the first group wildcard's processing mode.
63
+ Extension unions base and local namespace sets using the local processing mode, or inherits the base wildcard when no local wildcard exists.
64
+ Restriction removes an omitted wildcard; an explicit wildcard must be a namespace subset with equal or stronger processing (`skip < lax < strict`).
65
+
66
+ An intersection or union need not be expressible as one legal XSD 1.0 wildcard.
67
+ The view retains the mathematical result and source operands; `wildcard-expressibility` remains an explicit #179 gate.
68
+ Impossible restriction subsets and weakened processing fail here rather than being silently accepted.
69
+
70
+ ## Independent disagreements and remaining obligations
71
+
72
+ Pinned xmlschema 4.2.0 and lxml 6.1.0/libxml2 2.14.6 disagree on duplicate extension uses and some extension prohibitions.
73
+ They also disagree on fixed-value restrictions, group-plus-local wildcard processing and imported `##other` combinations.
74
+ These cases are not added to verified support from either engine alone.
75
+
76
+ Conflicting group/local processing returns `assessment-required` alternatives and original wildcard sources, with no invented selected mode.
77
+ Each nested attribute group preserves its own processing obligation through callers.
78
+ Fixed-value obligations retain both lexical values and type context, including value-equivalent integer spellings such as `1` and `+01`.
79
+ Particle language inclusion, extension/mixed legality, attribute-type derivation, wildcard expressibility and scalar derivation remain explicit #179 obligations; #184 owns payload scalar enforcement.
80
+
81
+ This division follows the existing S06 legality ownership rather than narrowing the approved profile.
82
+ The [decision register](content-model-decisions.md) assigns these concrete evidence qualifications to #179; they block affected assessed plans.
83
+ The S01/#181 disagreement and S02 transport/security qualifications remain unchanged.
84
+
85
+ ## Resources and evidence
86
+
87
+ Composition defaults to 100,000 graph nodes and 1,000,000 work steps with positive safe-integer overrides.
88
+ Iterative derivation order and bounded attribute-group expansion terminate independently of legal element/type recursion.
89
+ Inherited content, attribute, wildcard and obligation copying consumes work; exhaustion returns `resource-limit` without a partial view.
90
+ Provenance source-array copying is counted before allocation, including repeated references and derived merges.
91
+
92
+ [Unit tests](../test/unit/composed-graph.test.ts) exercise contrasting extension/restriction, empty content, immutable siblings, attributes, wildcard operations, scalar/list/union contexts, opaque bases, catalog round trips and exact configured budgets.
93
+ [Independent fixtures](../test/conformance/fixtures/xsd/composition/derivations.xsd) and [Node qualification](../test/conformance/reference/composition-contract.test.ts) assert current schema observations, scoped ordered payload contracts and separately recorded historical disagreements under [NT-CONT-01](reference-validation.md).
94
+
95
+ ```bash
96
+ npx vitest run test/unit/composed-graph.test.ts test/unit/resolved-graph.test.ts
97
+ npx tsc -p test/unit/tsconfig.json
98
+ npm run test:reference:full
99
+ npm run ci
100
+ ```
101
+
102
+ These are internal faithful results; legacy default generation remains active.
103
+ No occurrence summaries, complete legality checker, scalar payload engine, projection, codec or emitter rewrite belongs to S05.
@@ -0,0 +1,79 @@
1
+ # Content Model Decision Register
2
+
3
+ Stable S02 decision IDs, evidence and downstream ownership. See the root [README](../README.md).
4
+
5
+ ## Ownership and dispositions
6
+
7
+ The lead S02 implementation agent owns decision drafting/integration; independent review agents review semantic and integration domains. Maintainer approval is represented by the reviewed normal PR merge. Implementation ownership below means the named issue's assignee when taken up, not volunteering a contributor. The [ADR](decisions/003-content-model-contracts.md) owns the selected contracts.
8
+
9
+ `Resolved` means a selected contract with evidence sufficient for its decision boundary; it does not claim later production code is implemented. `Open/blocking` identifies a decision that must be settled before its listed consumer. The initial draft passed independent semantic and integration review at `2f88ec81f77f4fc5a06b78f2d507ae8e20fe7a7c`; executed SOAP and gateway evidence now reconcile the selected contracts. Final delivery remains subject to the independent joint gate and required checks.
10
+
11
+ ## Register
12
+
13
+ | ID / disposition | Selected contract and artifact | Supporting evidence | Decision owner / implementation owner | Consumers / resolution gate |
14
+ |---|---|---|---|---|
15
+ | S02-D01 Resolved | Ordered input, immutable graph, contextual URI identity; ADR input section | S01 order/count fixtures; XSD structures/namespaces | S02 lead / #171-#180 | S03-S07; independent reviewed draft and final joint gate |
16
+ | S02-D02 Resolved | XML-value versus graph; reversible/normalized/lossy projections; ADR value section | S01 `sequence-order`, `empty-alternative`; epic CM-04/05/08 | S02 lead / #182/#183/#187 | S08/S10/S13; reviewed draft and final joint gate |
17
+ | S02-D03 Resolved | Non-mutating idempotent normalization and three laws; ADR equivalence examples | S01 invisible groups; XSD datatype normalization | S02 lead / #182/#184/#188/#189 | S08/S10/#198; reviewed draft and final joint gate |
18
+ | S02-D04 Resolved | XSD 1.0 profile and scalar/particle matrix; ADR profile section | S01 independent manifest; W3C XSD 1.0 | S02 lead / #179/#180/#184 | #187-#189/#198-#200; independent fixture gates |
19
+ | S02-D05 Resolved | Separate client/HTTP projections; portable formats and fingerprint; ADR bundle section | Flattened-catalog information loss; epic CM-11/17 | S02 lead / #183/#185/#186 | #195/#196/#201; reviewed draft and final joint gate |
20
+ | S02-D06 Resolved | OAS 3.1.1; separate draft-07 lowerings, validated fallback and shared checks; ADR dialect section | Independently reviewed #170 corpus and gateway evidence | S02 lead / #197/#198/#199/#200 | First consumers implement selected lowerings and independent validation |
21
+ | S02-D06-OpenAPI Resolved | OAS 3.1.1 documentation, separate lowerings; ADR dialect section | Gateway evidence: current emitter is OAS 3.1.0; primary OAS 3.1.1 | S02 lead / #197 | #198/#199/#200; selected dialect/completeness must be emitted |
22
+ | S02-D06-runtime Resolved | Strict non-mutating route-local draft-07 Ajv; gateway runtime section | Gateway 19-case corpus: mutation control, recursion, facets, keyword rejection | S02 lead / #198/#199 | #199/#200; missing supplemental plans fail closed |
23
+ | S02-D06-serializer Resolved | Separate draft-07 serializer plan, independent validation; gateway serializer section | Gateway byte preservation and facet counterexamples | S02 lead / #197/#200 | #200; serializer cannot certify response validity |
24
+ | S02-D06-fallback Resolved | Explicit validated JSON fallback; gateway complexity section | Imported current emitter at 149/150 refs; invalid response rejected by proposed boundary | S02 lead / #200 | #198/#200; retain validation schema when serializer schema is omitted |
25
+ | S02-D06-supplemental Resolved | Inject one #180/#184 owner at validation boundaries; ADR scalar/dialect sections | Gateway exact int64/fractionDigits callback; annotation-only failure | S02 lead / #180/#184/#198 | #199/#200; no complete plan without shared checks |
26
+ | S02-D06-closure Resolved | Graph-derived complete closure; no generic allOf merge; gateway composition section | Original closed composition rejects value accepted after current flattening | S02 lead / #197 | #198/#199/#200; each lowering must prove equivalence or diagnose |
27
+ | S02-D07 Resolved | Buffered raw body/event and retained dedicated stream; minimum matrix and verification-before-yield; ADR transport section | Executed #169 HTTP/TLS/signing and raw/fault/cancel seams | S02 lead / #190/#192/#193 | #190/#192/#193 gate all unqualified capabilities before dispatch |
28
+ | S02-D07-stream-qualification Open/consumer-blocking | Reject unqualified stream auth/TLS/version combinations; ADR transport and SOAP matrix | Executed current omissions; no qualified stream security claim | S02 lead / #192/#194 | #192/#194 resolve qualification; blocks affected #196/#200 dispatch, not S03's fixed graph/raw/capability contracts |
29
+ | S02-D07-incoming-verification Open/consumer-blocking | Verify before decoding/yield or reject; ADR security/completion sections | Outgoing signatures verified; incoming/combined security unverified | S02 lead / #190/#192/#193/#194 | Named owners resolve incoming qualification; blocks authenticated yielding, not S03's proven raw access and fixed ordering contract |
30
+ | S02-D08 Resolved | Consumption-driven success certifies declared response scope; ADR completion section | ADR-002 truncation policy; epic CM-13 | S02 lead / #185/#193/#194 | #196/#200/#202; reviewed draft and final joint gate |
31
+ | S02-D09 Resolved | Numeric provisional budgets and errors; ADR budget table | Epic CM-16 boundedness requirement | S02 lead / #171/#172/#179/#180/#184/#193 | All first consumers; #208 refines measured limits |
32
+ | S02-D10 Resolved | Legacy support, source regeneration, mixed rejection; 1.x default preserved; ADR compatibility section | S01 lost structure; current release v1.1.4 | S02 lead / #174/#185/#186/#195/#196/#201 | #204 qualification/#205 retirement; 2.0.0 release/default gate |
33
+ | S02-D11 Resolved | Reject bounds-only, flattening, parse DTOs, one dialect and security bypass; ADR alternatives section | S01 counterexamples; ADR-002 | S02 lead / all semantic and adapter owners | Architecture PRs; reviewed draft and final joint gate |
34
+ | S06-AU-01 Selected | [Repeated attribute-use research](content-model-s06-au-01.md) | C1 and all-original-base source replacement; independent typed/default contrasts | #233 research / #179 schema; #184 payload | Complete local review/delivery; production integration in #179 |
35
+ | S06-RE-01 Open/blocking | [Reordered derivation research](content-model-s06-re-01.md) | Formal witnesses; empty-choice and wildcard counterexamples | #234 research / #179 integration | Complete approved-domain procedure, reviewed predicates and proof |
36
+ | S06-PW-01 Selected | [Group-to-wildcard research](content-model-s06-pw-01.md) | Explicit project R-240 selection; reference disagreement | #235 research / #179 integration | Complete local review/delivery; production integration in #179 |
37
+ | S06-DT-01 Selected | [Calendar research](content-model-s06-dt-01.md) | Explicit candidate A repairs; BCE correction; rollover contrasts | #236 research / #179 schema; #184 payload | Complete local review/delivery; shared implementation in #179/#184 |
38
+
39
+ ## Findings traceability
40
+
41
+ S04's [immutable graph](content-model-graph.md) and [format 2 catalog boundary](content-model-catalog.md) implement the early D01/D04/D09/D10 consumers without changing the approved decisions or activating faithful generation.
42
+ The #151 final handoff records independently reviewed revisions, validation results and the unchanged downstream qualification gates.
43
+
44
+ | Finding | Decision and disposition | Implementation owner / evidence |
45
+ |---|---|---|
46
+ | CM-01/02/03 | D01/D02/D04 implement exact particles/projections | #178/#179/#180/#182/#198; S01 manifest |
47
+ | CM-04/05 | D02/D03/D07 implement ordered values, normalize invisible history | #171 [ordered input](content-model-loading.md); later #182/#188/#189/#190/#192; SOAP probe |
48
+ | CM-06/07 | D01/D04 implement namespace identity, references and derivation | #171/#172 [loading evidence](content-model-loading.md); #173 [graph contract](content-model-graph.md); later #175/#176/#179/#184 |
49
+ | CM-08 | D02/D04 retain absence/empty/nil/attributes | #182/#183/#184/#187/#189; committed SOAP/gateway probes |
50
+ | CM-09/10 | D06 non-mutating validation and independent serialization | #197/#198/#199/#200; committed gateway probe |
51
+ | CM-11/17 | D05/D10 version/fingerprint routing; explicit activation | #174/#185/#186/#195/#196/#201/#204 |
52
+ | CM-12 | D07 tested binding/security adapters, reject unverified combinations | #190/#192; committed SOAP probe |
53
+ | CM-13/14 | D08 completion scope, isolated decoding and bounded lifecycle | #185/#187/#193/#194/#200 |
54
+ | CM-15 | Independent evidence; preserve known oracle disagreement | #181/#207; S01 manifest, not altered by S02 |
55
+ | CM-16 | D09 measurable first-owner limits | #171/#172 [measured loading limits](content-model-loading.md#loading-budgets); later #179/#180/#184/#193/#208 |
56
+
57
+ ## Probe and acceptance checkpoints
58
+
59
+ S05's [derivation evidence](content-model-composition.md) adds concrete #179 qualification inputs without changing the approved profile.
60
+ Duplicate extension uses, fixed-value equivalence, group/local wildcard processing and imported wildcard expressibility require independent reconciliation before affected plans are assessed.
61
+ S05 preserves these as typed obligations with original operands; this is not a new scalar checker or a declaration of verified arbitrary derivation support.
62
+
63
+ The [joint research handoff](content-model-s06-research-handoff.md) coordinates #232 and its four leaves against accepted #178 and the pinned unaccepted #231 draft.
64
+ Its research-only manifest and separately invoked probes preserve primary expectations, conditional proposals and engine observations.
65
+ The maintainer selected C1 with universal source-replacement matching, R-240 and candidate A's three calendar repairs after reviewing concrete alternatives.
66
+ Local acceptance still requires complete independent review and exact delivery gates; RE01's complete negative proof remains open.
67
+ Green research checks do not accept #232/#179/#153 or make S07/S08 Ready.
68
+ The [TypeScript RE01 continuation](content-model-s06-re-01.md#witness-domain-and-comparison-decision) starts from unmerged #254 and separates component representation from recursive endpoint resolution with executable group-incidence, particle and existing-intermediate controls.
69
+ Abstract construction plans plus a separately checked hypothetical graph overlay are recommended for investigation; comparison closure, context-sensitive legality and the full proof remain open, with accepted sibling contracts and existing production guards preserved.
70
+
71
+ The [S02 handoff](content-model-s02-handoff.md) and #149 acceptance record pin reviewed draft/probe revisions and final delivery review/checks/merge. The SOAP source probe at `4d1d3972fbb0f8170232a3bd143f0fcf0adc842d` passed independent integration review; the gateway source probe at `d826ff506a80437bca1b747f40b772727643a506` passed independent semantic/gateway review.
72
+
73
+ No foundational graph, projection, bundle/runtime, base transport or compatibility question remains open. The two open qualification entries block their affected transport/security consumers; their rejection and verification-order contracts are already resolved, so they do not change S03's input contract. Future shared scalar/particle, completion and compatibility implementations remain mandatory first-consumer gates, not already implemented features. S03 starts only after S02's joint gate closes.
74
+
75
+ ## Checked-product entry contract
76
+
77
+ [P1-D01](decisions/003-content-model-contracts.md#checked-product-assessment-amendment-p1-d01) separates scoped, potentially inconclusive diagnostics from universal RE01 research acceptance. #367 owns the additive source API/report and assessment-only CLI; #368 measures that exact interface; #369 implements one later checked buffered client slice. #179/#153 retain full-profile ownership, and #234/#351/#362/#365 retain their unchanged research claims.
78
+
79
+ The native-direct basis and dated-XSD correspondence are separate required dimensions. Unknown runtime capabilities remain unsupported or not-assessed, and whole-Gamma legality remains independent of operation reachability. Conditional admission #370 and public structured activation remain deferred.