@techspokes/typescript-wsdl-client 1.1.5 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (505) hide show
  1. package/README.md +80 -68
  2. package/dist/app/generateApp.d.ts +0 -1
  3. package/dist/app/generateApp.js +1 -1
  4. package/dist/app/generateCheckedApp.d.ts +38 -0
  5. package/dist/app/generateCheckedApp.js +108 -0
  6. package/dist/checkedPipeline.d.ts +155 -0
  7. package/dist/checkedPipeline.js +448 -0
  8. package/dist/checkedPlanning.d.ts +123 -0
  9. package/dist/checkedPlanning.js +268 -0
  10. package/dist/cli.d.ts +0 -1
  11. package/dist/cli.js +92 -2
  12. package/dist/client/checkedDirectRuntime.d.ts +40 -3
  13. package/dist/client/checkedDirectRuntime.js +28 -8
  14. package/dist/client/directClientRuntime.d.ts +27 -2
  15. package/dist/client/directClientRuntime.js +142 -89
  16. package/dist/client/directClientVersion.d.ts +3 -1
  17. package/dist/client/directClientVersion.js +3 -0
  18. package/dist/client/generateClient.d.ts +0 -1
  19. package/dist/client/generateClient.js +98 -28
  20. package/dist/client/generateDirectClient.d.ts +21 -3
  21. package/dist/client/generateDirectClient.js +138 -6
  22. package/dist/client/generateOperations.d.ts +0 -1
  23. package/dist/client/generateOperations.js +30 -11
  24. package/dist/client/generateTypes.d.ts +0 -1
  25. package/dist/client/generateUtils.d.ts +0 -1
  26. package/dist/client/generateUtils.js +7 -1
  27. package/dist/compiler/applicationGroups.d.ts +53 -0
  28. package/dist/compiler/applicationGroups.js +403 -0
  29. package/dist/compiler/buildCanonicalGraph.d.ts +0 -1
  30. package/dist/compiler/canonicalGraph.d.ts +4 -16
  31. package/dist/compiler/canonicalGraph.js +1 -8
  32. package/dist/compiler/catalogErrors.d.ts +0 -1
  33. package/dist/compiler/catalogProvenance.d.ts +0 -1
  34. package/dist/compiler/checkedAssessment.d.ts +0 -1
  35. package/dist/compiler/checkedAssessment.js +1 -1
  36. package/dist/compiler/checkedComponentSource.d.ts +16 -0
  37. package/dist/compiler/checkedComponentSource.js +31 -0
  38. package/dist/compiler/checkedSourcePreparation.d.ts +38 -1
  39. package/dist/compiler/checkedSourcePreparation.js +71 -0
  40. package/dist/compiler/complexTypeContent.d.ts +5 -6
  41. package/dist/compiler/complexTypeContent.js +2 -2
  42. package/dist/compiler/componentCorrespondence.d.ts +32 -0
  43. package/dist/compiler/componentCorrespondence.js +140 -0
  44. package/dist/compiler/componentRecordProjection.d.ts +112 -0
  45. package/dist/compiler/componentRecordProjection.js +329 -0
  46. package/dist/compiler/componentSoapPreparation.d.ts +20 -0
  47. package/dist/compiler/componentSoapPreparation.js +36 -0
  48. package/dist/compiler/composeCanonicalGraph.d.ts +0 -1
  49. package/dist/compiler/dataOwnership.d.ts +0 -1
  50. package/dist/compiler/dataOwnership.js +14 -4
  51. package/dist/compiler/datatypeValues.d.ts +0 -1
  52. package/dist/compiler/declarationIdentity.d.ts +22 -0
  53. package/dist/compiler/declarationIdentity.js +9 -0
  54. package/dist/compiler/directCodec.d.ts +79 -2
  55. package/dist/compiler/directCodec.js +310 -92
  56. package/dist/compiler/directExecutionPolicy.d.ts +0 -1
  57. package/dist/compiler/directOperation.d.ts +72 -8
  58. package/dist/compiler/directOperation.js +164 -19
  59. package/dist/compiler/directSoap.d.ts +29 -5
  60. package/dist/compiler/directSoap.js +154 -44
  61. package/dist/compiler/directSoapSource.d.ts +24 -1
  62. package/dist/compiler/directSoapSource.js +166 -19
  63. package/dist/compiler/directSourceCapsule.d.ts +74 -2
  64. package/dist/compiler/directSourceCapsule.js +484 -6
  65. package/dist/compiler/directStructure.d.ts +83 -6
  66. package/dist/compiler/directStructure.js +353 -58
  67. package/dist/compiler/directStructurePlan.d.ts +144 -2
  68. package/dist/compiler/directStructurePlan.js +615 -30
  69. package/dist/compiler/directValues.d.ts +76 -5
  70. package/dist/compiler/directValues.js +967 -117
  71. package/dist/compiler/finiteRe01Construction.d.ts +69 -0
  72. package/dist/compiler/finiteRe01Construction.js +422 -0
  73. package/dist/compiler/finiteRe01Verification.d.ts +81 -3
  74. package/dist/compiler/finiteRe01Verification.js +391 -4
  75. package/dist/compiler/generateCatalog.d.ts +0 -1
  76. package/dist/compiler/graphTraversal.d.ts +0 -1
  77. package/dist/compiler/hypotheticalScopedIdentity.d.ts +0 -1
  78. package/dist/compiler/legacyDeclarations.d.ts +26 -0
  79. package/dist/compiler/legacyDeclarations.js +144 -0
  80. package/dist/compiler/occurrenceAnalysis.d.ts +2 -1
  81. package/dist/compiler/occurrenceAnalysis.js +23 -7
  82. package/dist/compiler/originalSourceMembership.d.ts +0 -1
  83. package/dist/compiler/particleAttribution.d.ts +0 -1
  84. package/dist/compiler/particleAttribution.js +20 -0
  85. package/dist/compiler/particleDeclarationConsistency.d.ts +0 -1
  86. package/dist/compiler/particleDeclarationConsistency.js +9 -0
  87. package/dist/compiler/particleExtension.d.ts +0 -1
  88. package/dist/compiler/particleExtension.js +5 -1
  89. package/dist/compiler/particleLocalAssessment.d.ts +0 -1
  90. package/dist/compiler/particleRestriction.d.ts +0 -1
  91. package/dist/compiler/particleRestriction.js +6 -1
  92. package/dist/compiler/particleSemanticView.d.ts +2 -1
  93. package/dist/compiler/particleSemanticView.js +16 -3
  94. package/dist/compiler/particleWildcardRelation.d.ts +0 -1
  95. package/dist/compiler/projectionScalar.d.ts +49 -0
  96. package/dist/compiler/projectionScalar.js +218 -0
  97. package/dist/compiler/re01CandidateAssignments.d.ts +95 -0
  98. package/dist/compiler/re01CandidateAssignments.js +341 -0
  99. package/dist/compiler/re01CandidateCorrespondence.d.ts +22 -1
  100. package/dist/compiler/re01CandidateCorrespondence.js +167 -38
  101. package/dist/compiler/re01TypeProperties.d.ts +0 -1
  102. package/dist/compiler/re01TypePropertyValidation.d.ts +0 -1
  103. package/dist/compiler/resolveCanonicalGraph.d.ts +5 -2
  104. package/dist/compiler/resolveCanonicalGraph.js +77 -7
  105. package/dist/compiler/rpcStringValues.d.ts +30 -0
  106. package/dist/compiler/rpcStringValues.js +196 -0
  107. package/dist/compiler/rpcTypedValues.d.ts +48 -0
  108. package/dist/compiler/rpcTypedValues.js +190 -0
  109. package/dist/compiler/scalarSchemaAssessment.d.ts +0 -1
  110. package/dist/compiler/schemaAttributeGroupProperties.d.ts +0 -1
  111. package/dist/compiler/schemaAttributeProperties.d.ts +0 -1
  112. package/dist/compiler/schemaAttributeUses.d.ts +22 -2
  113. package/dist/compiler/schemaAttributeUses.js +86 -13
  114. package/dist/compiler/schemaBinaryWordReconstruction.d.ts +0 -1
  115. package/dist/compiler/schemaBuiltinFacets.d.ts +0 -1
  116. package/dist/compiler/schemaCalendarImages.d.ts +0 -1
  117. package/dist/compiler/schemaCalendarLanguage.d.ts +0 -1
  118. package/dist/compiler/schemaCompiler.d.ts +0 -1
  119. package/dist/compiler/schemaCompiler.js +44 -109
  120. package/dist/compiler/schemaComponentEquality.d.ts +0 -1
  121. package/dist/compiler/schemaConstructionAssessment.d.ts +34 -1
  122. package/dist/compiler/schemaConstructionAssessment.js +88 -6
  123. package/dist/compiler/schemaDatatypeValues.d.ts +0 -1
  124. package/dist/compiler/schemaDecimalLanguage.d.ts +0 -1
  125. package/dist/compiler/schemaDeclarationPrimitives.d.ts +7 -2
  126. package/dist/compiler/schemaDeclarationPrimitives.js +18 -1
  127. package/dist/compiler/schemaDocumentSyntax.d.ts +0 -1
  128. package/dist/compiler/schemaDurationLanguage.d.ts +0 -1
  129. package/dist/compiler/schemaElementInstance.d.ts +30 -0
  130. package/dist/compiler/schemaElementInstance.js +45 -0
  131. package/dist/compiler/schemaElementProperties.d.ts +0 -1
  132. package/dist/compiler/schemaEndpointWordCapacity.d.ts +0 -1
  133. package/dist/compiler/schemaExactCalendar.d.ts +0 -1
  134. package/dist/compiler/schemaFacetAnnotation.d.ts +0 -1
  135. package/dist/compiler/schemaGeneratedScalarShape.d.ts +0 -1
  136. package/dist/compiler/schemaGeneratedScalarShape.js +2 -0
  137. package/dist/compiler/schemaIdentityConstraints.d.ts +0 -1
  138. package/dist/compiler/schemaIeeeLanguage.d.ts +0 -1
  139. package/dist/compiler/schemaIntegerImages.d.ts +0 -1
  140. package/dist/compiler/schemaLexicalPredicates.d.ts +0 -1
  141. package/dist/compiler/schemaNotationProperties.d.ts +0 -1
  142. package/dist/compiler/schemaNumericImageConditions.d.ts +0 -1
  143. package/dist/compiler/schemaParticleWildcardProperties.d.ts +0 -1
  144. package/dist/compiler/schemaPattern.d.ts +0 -1
  145. package/dist/compiler/schemaRegularLanguage.d.ts +0 -1
  146. package/dist/compiler/schemaScalarContext.d.ts +5 -1
  147. package/dist/compiler/schemaScalarKernel.d.ts +0 -1
  148. package/dist/compiler/schemaScalarWitnesses.d.ts +0 -1
  149. package/dist/compiler/schemaSimpleTypeProperties.d.ts +0 -1
  150. package/dist/compiler/schemaSourceGrammar.d.ts +0 -1
  151. package/dist/compiler/schemaSourceLexical.d.ts +0 -1
  152. package/dist/compiler/schemaSourceValues.d.ts +0 -1
  153. package/dist/compiler/schemaSourceWildcards.d.ts +1 -2
  154. package/dist/compiler/schemaSourceWildcards.js +3 -1
  155. package/dist/compiler/schemaSymbolicSequences.d.ts +0 -1
  156. package/dist/compiler/schemaSymbolicValueSets.d.ts +0 -1
  157. package/dist/compiler/schemaSyntaxAssessment.d.ts +0 -1
  158. package/dist/compiler/schemaTemporalAliases.d.ts +0 -1
  159. package/dist/compiler/schemaTokenImages.d.ts +0 -1
  160. package/dist/compiler/schemaTypeIdentity.d.ts +0 -1
  161. package/dist/compiler/schemaTypeIdentity.js +2 -0
  162. package/dist/compiler/schemaTypeRelations.d.ts +0 -1
  163. package/dist/compiler/schemaUri.d.ts +0 -1
  164. package/dist/compiler/schemaValueContext.d.ts +0 -1
  165. package/dist/compiler/schemaValueImages.d.ts +0 -1
  166. package/dist/compiler/schemaValueSequences.d.ts +0 -1
  167. package/dist/compiler/semanticBudget.d.ts +18 -1
  168. package/dist/compiler/semanticBudget.js +17 -2
  169. package/dist/compiler/semanticCatalog.d.ts +2 -3
  170. package/dist/compiler/semanticContext.d.ts +12 -1
  171. package/dist/compiler/semanticContext.js +39 -0
  172. package/dist/compiler/semanticTypeDependencies.d.ts +0 -1
  173. package/dist/compiler/semanticTypeReference.d.ts +0 -1
  174. package/dist/compiler/shapeResolver.d.ts +0 -1
  175. package/dist/compiler/soapHeaders.d.ts +16 -0
  176. package/dist/compiler/soapHeaders.js +42 -0
  177. package/dist/compiler/sourceSchemaBinding.d.ts +0 -1
  178. package/dist/compiler/standardSchemaComponents.d.ts +71 -0
  179. package/dist/compiler/standardSchemaComponents.js +74 -0
  180. package/dist/compiler/standardSchemaConstruction.d.ts +20 -0
  181. package/dist/compiler/standardSchemaConstruction.js +34 -0
  182. package/dist/compiler/structuralCompanions.d.ts +0 -1
  183. package/dist/compiler/validateSemanticGraph.d.ts +0 -1
  184. package/dist/compiler/wildcardAlgebra.d.ts +0 -1
  185. package/dist/compiler/wsdlPolicyRequirements.d.ts +43 -0
  186. package/dist/compiler/wsdlPolicyRequirements.js +239 -0
  187. package/dist/config.d.ts +0 -1
  188. package/dist/gateway/generateCheckedGateway.d.ts +32 -0
  189. package/dist/gateway/generateCheckedGateway.js +293 -0
  190. package/dist/gateway/generateComposedGateway.d.ts +16 -0
  191. package/dist/gateway/generateComposedGateway.js +65 -0
  192. package/dist/gateway/generateGateway.d.ts +0 -1
  193. package/dist/gateway/generateGateway.js +1 -0
  194. package/dist/gateway/generators.d.ts +0 -1
  195. package/dist/gateway/generators.js +19 -4
  196. package/dist/gateway/helpers.d.ts +1 -1
  197. package/dist/gateway/helpers.js +15 -0
  198. package/dist/generation/componentShape.d.ts +14 -0
  199. package/dist/generation/componentShape.js +293 -0
  200. package/dist/generation/preamble.d.ts +0 -1
  201. package/dist/generation/sourceLayout.d.ts +13 -0
  202. package/dist/generation/sourceLayout.js +40 -0
  203. package/dist/generation/writeGeneratedSource.d.ts +0 -1
  204. package/dist/index.d.ts +11 -2
  205. package/dist/index.js +4 -1
  206. package/dist/loader/fetch.d.ts +0 -1
  207. package/dist/loader/orderedSyntax.d.ts +12 -1
  208. package/dist/loader/orderedSyntax.js +40 -6
  209. package/dist/loader/resolutionDepth.d.ts +0 -1
  210. package/dist/loader/schemaInput.d.ts +28 -1
  211. package/dist/loader/schemaInput.js +41 -4
  212. package/dist/loader/schemaResources.d.ts +2 -1
  213. package/dist/loader/schemaResources.js +45 -4
  214. package/dist/loader/wsdlLoader.d.ts +0 -1
  215. package/dist/multiServicePipeline.d.ts +41 -0
  216. package/dist/multiServicePipeline.js +287 -0
  217. package/dist/openapi/casing.d.ts +0 -1
  218. package/dist/openapi/composeOpenAPI.d.ts +29 -0
  219. package/dist/openapi/composeOpenAPI.js +322 -0
  220. package/dist/openapi/generateOpenAPI.d.ts +0 -1
  221. package/dist/openapi/generatePaths.d.ts +0 -1
  222. package/dist/openapi/generateSchemas.d.ts +0 -1
  223. package/dist/openapi/security.d.ts +0 -1
  224. package/dist/pipeline.d.ts +7 -3
  225. package/dist/pipeline.js +15 -0
  226. package/dist/test/generateCheckedTests.d.ts +17 -0
  227. package/dist/test/generateCheckedTests.js +60 -0
  228. package/dist/test/generateTests.d.ts +0 -1
  229. package/dist/test/generators.d.ts +0 -1
  230. package/dist/test/mockData.d.ts +0 -1
  231. package/dist/test/mockData.js +20 -14
  232. package/dist/util/attributeWildcards.d.ts +0 -1
  233. package/dist/util/builder.d.ts +0 -1
  234. package/dist/util/catalogMeta.d.ts +0 -1
  235. package/dist/util/checkedCliDiagnostics.d.ts +11 -0
  236. package/dist/util/checkedCliDiagnostics.js +22 -0
  237. package/dist/util/cli.d.ts +0 -1
  238. package/dist/util/errors.d.ts +0 -1
  239. package/dist/util/imports.d.ts +0 -1
  240. package/dist/util/runtimeSource.d.ts +0 -1
  241. package/dist/util/runtimeSource.js +3 -5
  242. package/dist/util/securityConfig.d.ts +0 -1
  243. package/dist/util/streamConfig.d.ts +0 -1
  244. package/dist/util/tools.d.ts +0 -1
  245. package/dist/util/xmlWhitespace.d.ts +0 -1
  246. package/dist/xsd/primitives.d.ts +0 -1
  247. package/docs/agent-skill.md +12 -1
  248. package/docs/api-reference.md +127 -9
  249. package/docs/checked-gateway.md +212 -0
  250. package/docs/checked-generation.md +167 -0
  251. package/docs/cli-reference.md +48 -6
  252. package/docs/concepts.md +139 -5
  253. package/docs/configuration.md +15 -4
  254. package/docs/corpus.md +33 -0
  255. package/docs/direct-values.md +13 -13
  256. package/docs/examples/checked-forecast.wsdl +19 -0
  257. package/docs/gateway-guide.md +104 -27
  258. package/docs/generated-code.md +22 -11
  259. package/docs/mapping-contract.md +114 -0
  260. package/docs/migration-playbook.md +5 -1
  261. package/docs/migration.md +124 -6
  262. package/docs/output-anatomy.md +21 -18
  263. package/docs/production.md +7 -5
  264. package/docs/start-here.md +19 -3
  265. package/docs/supported-patterns.md +24 -3
  266. package/docs/testing.md +119 -31
  267. package/docs/troubleshooting.md +3 -1
  268. package/llms.txt +16 -8
  269. package/package.json +64 -23
  270. package/src/runtime/checkedGatewayHost.tpl.txt +157 -0
  271. package/src/runtime/clientStreamMethods.tpl.txt +156 -148
  272. package/src/runtime/operationsStreamHelper.tpl.txt +6 -6
  273. package/src/runtime/streamXml.ts +49 -21
  274. package/dist/app/generateApp.d.ts.map +0 -1
  275. package/dist/cli.d.ts.map +0 -1
  276. package/dist/client/checkedDirectRuntime.d.ts.map +0 -1
  277. package/dist/client/directClientRuntime.d.ts.map +0 -1
  278. package/dist/client/directClientVersion.d.ts.map +0 -1
  279. package/dist/client/generateClient.d.ts.map +0 -1
  280. package/dist/client/generateDirectClient.d.ts.map +0 -1
  281. package/dist/client/generateOperations.d.ts.map +0 -1
  282. package/dist/client/generateTypes.d.ts.map +0 -1
  283. package/dist/client/generateUtils.d.ts.map +0 -1
  284. package/dist/compiler/buildCanonicalGraph.d.ts.map +0 -1
  285. package/dist/compiler/canonicalGraph.d.ts.map +0 -1
  286. package/dist/compiler/catalogErrors.d.ts.map +0 -1
  287. package/dist/compiler/catalogProvenance.d.ts.map +0 -1
  288. package/dist/compiler/checkedAssessment.d.ts.map +0 -1
  289. package/dist/compiler/checkedSourcePreparation.d.ts.map +0 -1
  290. package/dist/compiler/complexTypeContent.d.ts.map +0 -1
  291. package/dist/compiler/composeCanonicalGraph.d.ts.map +0 -1
  292. package/dist/compiler/dataOwnership.d.ts.map +0 -1
  293. package/dist/compiler/datatypeValues.d.ts.map +0 -1
  294. package/dist/compiler/directCodec.d.ts.map +0 -1
  295. package/dist/compiler/directExecutionPolicy.d.ts.map +0 -1
  296. package/dist/compiler/directOperation.d.ts.map +0 -1
  297. package/dist/compiler/directSoap.d.ts.map +0 -1
  298. package/dist/compiler/directSoapSource.d.ts.map +0 -1
  299. package/dist/compiler/directSourceCapsule.d.ts.map +0 -1
  300. package/dist/compiler/directStructure.d.ts.map +0 -1
  301. package/dist/compiler/directStructurePlan.d.ts.map +0 -1
  302. package/dist/compiler/directValues.d.ts.map +0 -1
  303. package/dist/compiler/finiteRe01Verification.d.ts.map +0 -1
  304. package/dist/compiler/generateCatalog.d.ts.map +0 -1
  305. package/dist/compiler/graphTraversal.d.ts.map +0 -1
  306. package/dist/compiler/hypotheticalScopedIdentity.d.ts.map +0 -1
  307. package/dist/compiler/occurrenceAnalysis.d.ts.map +0 -1
  308. package/dist/compiler/originalSourceMembership.d.ts.map +0 -1
  309. package/dist/compiler/particleAttribution.d.ts.map +0 -1
  310. package/dist/compiler/particleDeclarationConsistency.d.ts.map +0 -1
  311. package/dist/compiler/particleExtension.d.ts.map +0 -1
  312. package/dist/compiler/particleLocalAssessment.d.ts.map +0 -1
  313. package/dist/compiler/particleRestriction.d.ts.map +0 -1
  314. package/dist/compiler/particleSemanticView.d.ts.map +0 -1
  315. package/dist/compiler/particleWildcardRelation.d.ts.map +0 -1
  316. package/dist/compiler/re01CandidateCorrespondence.d.ts.map +0 -1
  317. package/dist/compiler/re01TypeProperties.d.ts.map +0 -1
  318. package/dist/compiler/re01TypePropertyValidation.d.ts.map +0 -1
  319. package/dist/compiler/resolveCanonicalGraph.d.ts.map +0 -1
  320. package/dist/compiler/scalarSchemaAssessment.d.ts.map +0 -1
  321. package/dist/compiler/schemaAttributeGroupProperties.d.ts.map +0 -1
  322. package/dist/compiler/schemaAttributeProperties.d.ts.map +0 -1
  323. package/dist/compiler/schemaAttributeUses.d.ts.map +0 -1
  324. package/dist/compiler/schemaBinaryWordReconstruction.d.ts.map +0 -1
  325. package/dist/compiler/schemaBuiltinFacets.d.ts.map +0 -1
  326. package/dist/compiler/schemaCalendarImages.d.ts.map +0 -1
  327. package/dist/compiler/schemaCalendarLanguage.d.ts.map +0 -1
  328. package/dist/compiler/schemaCompiler.d.ts.map +0 -1
  329. package/dist/compiler/schemaComponentEquality.d.ts.map +0 -1
  330. package/dist/compiler/schemaConstructionAssessment.d.ts.map +0 -1
  331. package/dist/compiler/schemaDatatypeValues.d.ts.map +0 -1
  332. package/dist/compiler/schemaDecimalLanguage.d.ts.map +0 -1
  333. package/dist/compiler/schemaDeclarationPrimitives.d.ts.map +0 -1
  334. package/dist/compiler/schemaDocumentSyntax.d.ts.map +0 -1
  335. package/dist/compiler/schemaDurationLanguage.d.ts.map +0 -1
  336. package/dist/compiler/schemaElementProperties.d.ts.map +0 -1
  337. package/dist/compiler/schemaEndpointWordCapacity.d.ts.map +0 -1
  338. package/dist/compiler/schemaExactCalendar.d.ts.map +0 -1
  339. package/dist/compiler/schemaFacetAnnotation.d.ts.map +0 -1
  340. package/dist/compiler/schemaGeneratedScalarShape.d.ts.map +0 -1
  341. package/dist/compiler/schemaIdentityConstraints.d.ts.map +0 -1
  342. package/dist/compiler/schemaIeeeLanguage.d.ts.map +0 -1
  343. package/dist/compiler/schemaIntegerImages.d.ts.map +0 -1
  344. package/dist/compiler/schemaLexicalPredicates.d.ts.map +0 -1
  345. package/dist/compiler/schemaNotationProperties.d.ts.map +0 -1
  346. package/dist/compiler/schemaNumericImageConditions.d.ts.map +0 -1
  347. package/dist/compiler/schemaParticleWildcardProperties.d.ts.map +0 -1
  348. package/dist/compiler/schemaPattern.d.ts.map +0 -1
  349. package/dist/compiler/schemaRegularLanguage.d.ts.map +0 -1
  350. package/dist/compiler/schemaScalarContext.d.ts.map +0 -1
  351. package/dist/compiler/schemaScalarKernel.d.ts.map +0 -1
  352. package/dist/compiler/schemaScalarWitnesses.d.ts.map +0 -1
  353. package/dist/compiler/schemaSimpleTypeProperties.d.ts.map +0 -1
  354. package/dist/compiler/schemaSourceGrammar.d.ts.map +0 -1
  355. package/dist/compiler/schemaSourceLexical.d.ts.map +0 -1
  356. package/dist/compiler/schemaSourceValues.d.ts.map +0 -1
  357. package/dist/compiler/schemaSourceWildcards.d.ts.map +0 -1
  358. package/dist/compiler/schemaSymbolicSequences.d.ts.map +0 -1
  359. package/dist/compiler/schemaSymbolicValueSets.d.ts.map +0 -1
  360. package/dist/compiler/schemaSyntaxAssessment.d.ts.map +0 -1
  361. package/dist/compiler/schemaTemporalAliases.d.ts.map +0 -1
  362. package/dist/compiler/schemaTokenImages.d.ts.map +0 -1
  363. package/dist/compiler/schemaTypeIdentity.d.ts.map +0 -1
  364. package/dist/compiler/schemaTypeRelations.d.ts.map +0 -1
  365. package/dist/compiler/schemaUri.d.ts.map +0 -1
  366. package/dist/compiler/schemaValueContext.d.ts.map +0 -1
  367. package/dist/compiler/schemaValueImages.d.ts.map +0 -1
  368. package/dist/compiler/schemaValueSequences.d.ts.map +0 -1
  369. package/dist/compiler/semanticBudget.d.ts.map +0 -1
  370. package/dist/compiler/semanticCatalog.d.ts.map +0 -1
  371. package/dist/compiler/semanticContext.d.ts.map +0 -1
  372. package/dist/compiler/semanticTypeDependencies.d.ts.map +0 -1
  373. package/dist/compiler/semanticTypeReference.d.ts.map +0 -1
  374. package/dist/compiler/shapeResolver.d.ts.map +0 -1
  375. package/dist/compiler/sourceSchemaBinding.d.ts.map +0 -1
  376. package/dist/compiler/structuralCompanions.d.ts.map +0 -1
  377. package/dist/compiler/validateSemanticGraph.d.ts.map +0 -1
  378. package/dist/compiler/wildcardAlgebra.d.ts.map +0 -1
  379. package/dist/config.d.ts.map +0 -1
  380. package/dist/gateway/generateGateway.d.ts.map +0 -1
  381. package/dist/gateway/generators.d.ts.map +0 -1
  382. package/dist/gateway/helpers.d.ts.map +0 -1
  383. package/dist/generation/preamble.d.ts.map +0 -1
  384. package/dist/generation/writeGeneratedSource.d.ts.map +0 -1
  385. package/dist/index.d.ts.map +0 -1
  386. package/dist/loader/fetch.d.ts.map +0 -1
  387. package/dist/loader/orderedSyntax.d.ts.map +0 -1
  388. package/dist/loader/resolutionDepth.d.ts.map +0 -1
  389. package/dist/loader/schemaInput.d.ts.map +0 -1
  390. package/dist/loader/schemaResources.d.ts.map +0 -1
  391. package/dist/loader/wsdlLoader.d.ts.map +0 -1
  392. package/dist/openapi/casing.d.ts.map +0 -1
  393. package/dist/openapi/generateOpenAPI.d.ts.map +0 -1
  394. package/dist/openapi/generatePaths.d.ts.map +0 -1
  395. package/dist/openapi/generateSchemas.d.ts.map +0 -1
  396. package/dist/openapi/security.d.ts.map +0 -1
  397. package/dist/pipeline.d.ts.map +0 -1
  398. package/dist/runtime/jsonArray.d.ts +0 -24
  399. package/dist/runtime/jsonArray.d.ts.map +0 -1
  400. package/dist/runtime/jsonArray.js +0 -52
  401. package/dist/runtime/ndjson.d.ts +0 -24
  402. package/dist/runtime/ndjson.d.ts.map +0 -1
  403. package/dist/runtime/ndjson.js +0 -30
  404. package/dist/runtime/streamXml.d.ts +0 -45
  405. package/dist/runtime/streamXml.d.ts.map +0 -1
  406. package/dist/runtime/streamXml.js +0 -212
  407. package/dist/test/generateTests.d.ts.map +0 -1
  408. package/dist/test/generators.d.ts.map +0 -1
  409. package/dist/test/mockData.d.ts.map +0 -1
  410. package/dist/util/attributeWildcards.d.ts.map +0 -1
  411. package/dist/util/builder.d.ts.map +0 -1
  412. package/dist/util/catalogMeta.d.ts.map +0 -1
  413. package/dist/util/cli.d.ts.map +0 -1
  414. package/dist/util/errors.d.ts.map +0 -1
  415. package/dist/util/imports.d.ts.map +0 -1
  416. package/dist/util/runtimeSource.d.ts.map +0 -1
  417. package/dist/util/securityConfig.d.ts.map +0 -1
  418. package/dist/util/streamConfig.d.ts.map +0 -1
  419. package/dist/util/tools.d.ts.map +0 -1
  420. package/dist/util/xmlWhitespace.d.ts.map +0 -1
  421. package/dist/xsd/primitives.d.ts.map +0 -1
  422. package/docs/AGENTS.md +0 -47
  423. package/docs/README.md +0 -69
  424. package/docs/architecture.md +0 -158
  425. package/docs/content-model-analysis.md +0 -92
  426. package/docs/content-model-baseline.md +0 -121
  427. package/docs/content-model-catalog.md +0 -116
  428. package/docs/content-model-companions.md +0 -90
  429. package/docs/content-model-composition.md +0 -103
  430. package/docs/content-model-decisions.md +0 -79
  431. package/docs/content-model-gateway-feasibility.md +0 -169
  432. package/docs/content-model-graph.md +0 -121
  433. package/docs/content-model-loading.md +0 -163
  434. package/docs/content-model-matching.md +0 -85
  435. package/docs/content-model-readiness.md +0 -144
  436. package/docs/content-model-resolution.md +0 -81
  437. package/docs/content-model-s02-handoff.md +0 -98
  438. package/docs/content-model-s06-au-01.md +0 -425
  439. package/docs/content-model-s06-dt-01.md +0 -386
  440. package/docs/content-model-s06-pw-01.md +0 -350
  441. package/docs/content-model-s06-re-01-resolver-implementation.md +0 -869
  442. package/docs/content-model-s06-re-01-resolver.md +0 -513
  443. package/docs/content-model-s06-re-01-scalar-witnesses.md +0 -1423
  444. package/docs/content-model-s06-re-01-support-reconstruction.md +0 -6337
  445. package/docs/content-model-s06-re-01.md +0 -7477
  446. package/docs/content-model-s06-research-handoff.md +0 -909
  447. package/docs/content-model-shipped-fix.md +0 -83
  448. package/docs/content-model-soap-feasibility.md +0 -165
  449. package/docs/decisions/001-test-generation.md +0 -36
  450. package/docs/decisions/002-streamable-responses.md +0 -332
  451. package/docs/decisions/003-content-model-contracts.md +0 -280
  452. package/docs/file-naming-and-path-organization.md +0 -213
  453. package/docs/reference-validation.md +0 -243
  454. package/docs/releases/README.md +0 -94
  455. package/docs/releases/v0.20.0.md +0 -22
  456. package/docs/releases/v0.21.0.md +0 -30
  457. package/docs/releases/v0.22.0.md +0 -30
  458. package/docs/releases/v0.23.0.md +0 -31
  459. package/docs/releases/v0.24.0.md +0 -38
  460. package/docs/releases/v0.25.0.md +0 -31
  461. package/docs/releases/v0.25.2.md +0 -32
  462. package/docs/releases/v0.26.0.md +0 -32
  463. package/docs/releases/v0.27.0.md +0 -31
  464. package/docs/releases/v0.28.0.md +0 -32
  465. package/docs/releases/v0.29.0.md +0 -32
  466. package/docs/releases/v0.30.0.md +0 -30
  467. package/docs/releases/v0.30.1.md +0 -31
  468. package/docs/releases/v0.30.2.md +0 -30
  469. package/docs/releases/v0.30.3.md +0 -33
  470. package/docs/releases/v0.31.0.md +0 -33
  471. package/docs/releases/v0.32.0.md +0 -33
  472. package/docs/releases/v0.33.0.md +0 -34
  473. package/docs/releases/v0.34.0.md +0 -30
  474. package/docs/releases/v0.35.0.md +0 -33
  475. package/docs/releases/v0.36.0.md +0 -32
  476. package/docs/releases/v0.37.0.md +0 -33
  477. package/docs/releases/v0.38.0.md +0 -35
  478. package/docs/releases/v0.39.0.md +0 -35
  479. package/docs/releases/v0.40.0.md +0 -45
  480. package/docs/releases/v0.40.1.md +0 -34
  481. package/docs/releases/v1.0.0.md +0 -42
  482. package/docs/releases/v1.0.1.md +0 -38
  483. package/docs/releases/v1.0.2.md +0 -51
  484. package/docs/releases/v1.0.3.md +0 -37
  485. package/docs/releases/v1.0.4.md +0 -45
  486. package/docs/releases/v1.0.5.md +0 -41
  487. package/docs/releases/v1.0.6.md +0 -35
  488. package/docs/releases/v1.0.7.md +0 -36
  489. package/docs/releases/v1.1.0.md +0 -42
  490. package/docs/releases/v1.1.1.md +0 -44
  491. package/docs/releases/v1.1.2.md +0 -42
  492. package/docs/releases/v1.1.3.md +0 -36
  493. package/docs/releases/v1.1.4.md +0 -36
  494. package/docs/releases/v1.1.5.md +0 -38
  495. package/docs/roadmap/README.md +0 -107
  496. package/docs/roadmap/v1.0-capability-conformance-framework.md +0 -582
  497. package/docs/roadmap/v1.0-choice-union-mode.md +0 -90
  498. package/docs/roadmap/v1.0-contract-audit.md +0 -75
  499. package/docs/roadmap/v1.0-json-array-streaming.md +0 -101
  500. package/docs/roadmap/v1.0-openapi-fastify-compatibility.md +0 -99
  501. package/docs/roadmap/v1.0-release-candidate-gates.md +0 -92
  502. package/docs/roadmap/v1.0-wsdl-coverage-matrix.md +0 -200
  503. package/docs/roadmap/v1.0-xs-anyattribute-wildcard-bag.md +0 -932
  504. package/src/runtime/jsonArray.ts +0 -55
  505. package/src/runtime/ndjson.ts +0 -32
@@ -20,6 +20,43 @@ class CorrespondenceAbort extends Error {
20
20
  this.result = result;
21
21
  }
22
22
  }
23
+ /** Read effective original properties through the existing native source owners; cached data grants no validity. */
24
+ function mapActualComplexProperties(actual, id) {
25
+ const b = actual.budget, charge = b.chargeWork;
26
+ let cache = actualMappings.get(actual);
27
+ if (!cache) {
28
+ charge(2);
29
+ cache = new Map();
30
+ actualMappings.set(actual, cache);
31
+ }
32
+ const cached = cache.get(id);
33
+ if (cached)
34
+ return cached;
35
+ const found = actual.lookup(id);
36
+ if (found.kind !== 'found' || found.node.kind !== 'complexType')
37
+ throw new CorrespondenceAbort(Object.freeze({ kind: 'invalid-evidence',
38
+ rule: 'original-property-correspondence', component: id, message: 'Expected an original complex type' }));
39
+ const original = found.node;
40
+ const content = deriveActualComplexContent(actual, id), attrs = assessSourceAttributeUses(actual, id);
41
+ if (content.kind !== 'checked')
42
+ throw new CorrespondenceAbort(content.kind === 'resource-limit' ? content
43
+ : { ...content, kind: content.kind === 'invalid-input' ? 'invalid-evidence' : 'unresolved' });
44
+ if (attrs.kind !== 'checked')
45
+ throw new CorrespondenceAbort(attrs);
46
+ charge(20 + attrs.value.uses.length);
47
+ const properties = {
48
+ type: id, derivation: { method: original.derivation?.kind ?? 'restriction', base: original.derivation?.base ?? ANY_TYPE },
49
+ targetNamespace: original.context.effectiveNamespace,
50
+ abstract: original.abstract, final: declarationMethods(actual, original, 'final'),
51
+ block: declarationMethods(actual, original, 'block'), content: content.view.content,
52
+ attributeUses: attrs.value.uses.map(use => use.id), wildcard: attrs.value.wildcard, provenance: { kind: 'actual-mapped', original: id },
53
+ };
54
+ charge(9);
55
+ const result = Object.freeze({ properties: b.freeze(b.snapshot(properties)), context: actual,
56
+ view: content.view, synthetic: content.view.synthetic, scalarObligations: attrs.scalarObligations, typeDependencies: attrs.typeDependencies });
57
+ cache.set(id, result);
58
+ return result;
59
+ }
23
60
  export function assertCandidateCorrespondence(context, receipt) {
24
61
  assertSemanticContext(context);
25
62
  if (issued.get(receipt) !== context)
@@ -311,47 +348,12 @@ export function checkCandidateCorrespondence(actual, parent, candidate, target,
311
348
  }
312
349
  return { properties: prior, context: parent, synthetic: [], scalarObligations: [], typeDependencies: [] };
313
350
  }
314
- let cache = actualMappings.get(actual);
315
- if (!cache) {
316
- charge(2);
317
- cache = new Map();
318
- actualMappings.set(actual, cache);
319
- }
320
- const cached = cache.get(id);
321
- if (cached) {
322
- typeDependencies.add(cached.typeDependencies);
323
- for (const obligation of cached.scalarObligations) {
324
- charge(3);
325
- scalarObligations.push({ contextId: obligation.contextId ?? actual.contextId, obligation });
326
- }
327
- return cached;
328
- }
329
- const original = node(actual, id);
330
- if (original.kind !== 'complexType')
331
- return fail('original-property-correspondence', id, 'Expected an original complex type', 'invalid-evidence');
332
- const content = deriveActualComplexContent(actual, id), attrs = assessSourceAttributeUses(actual, id);
333
- if (content.kind !== 'checked')
334
- throw new CorrespondenceAbort(content.kind === 'resource-limit' ? content
335
- : { ...content, kind: content.kind === 'invalid-input' ? 'invalid-evidence' : 'unresolved' });
336
- if (attrs.kind !== 'checked')
337
- throw new CorrespondenceAbort(attrs);
338
- typeDependencies.add(attrs.typeDependencies);
339
- for (const obligation of attrs.scalarObligations) {
351
+ const result = mapActualComplexProperties(actual, id);
352
+ typeDependencies.add(result.typeDependencies);
353
+ for (const obligation of result.scalarObligations) {
340
354
  charge(3);
341
355
  scalarObligations.push({ contextId: obligation.contextId ?? actual.contextId, obligation });
342
356
  }
343
- charge(20 + attrs.value.uses.length);
344
- const properties = {
345
- type: id, derivation: { method: original.derivation?.kind ?? 'restriction', base: original.derivation?.base ?? ANY_TYPE },
346
- targetNamespace: original.context.effectiveNamespace,
347
- abstract: original.abstract, final: declarationMethods(actual, original, 'final'),
348
- block: declarationMethods(actual, original, 'block'), content: content.view.content,
349
- attributeUses: attrs.value.uses.map(use => use.id), wildcard: attrs.value.wildcard, provenance: { kind: 'actual-mapped', original: id },
350
- };
351
- charge(9);
352
- const result = Object.freeze({ properties: b.freeze(b.snapshot(properties)), context: actual,
353
- view: content.view, synthetic: content.view.synthetic, scalarObligations: attrs.scalarObligations, typeDependencies: attrs.typeDependencies });
354
- cache.set(id, result);
355
357
  return result;
356
358
  };
357
359
  const typeNamespace = (context, id, properties) => {
@@ -570,3 +572,130 @@ export function checkCandidateCorrespondence(actual, parent, candidate, target,
570
572
  }
571
573
  });
572
574
  }
575
+ const additiveProperties = new WeakMap();
576
+ /** Authenticate simple-content property correspondence independently of construction and dated interpretation. */
577
+ export function assertAdditiveSimpleProperties(actual, context, receipt) {
578
+ assertSemanticContext(actual);
579
+ assertSemanticContext(context);
580
+ const issued = additiveProperties.get(receipt);
581
+ if (!issued || issued.actual !== actual || issued.context !== context)
582
+ throw new TypeError('Fresh matching additive property correspondence required');
583
+ }
584
+ /** Compare fresh simple-content representatives with native effective source properties, preserving every original binding.
585
+ * @remarks Identity/name and derivation are deliberately distinct for the fresh restriction representative.
586
+ * Its other effective complex properties must match the original target. The middle carries the same attributes
587
+ * and extends the exact designated simple ancestor. Local legality, aggregate closure and dated interpretation
588
+ * remain separate obligations; producer provenance labels grant none of them.
589
+ * @returns Authenticated native property correspondence or an explicit mismatch/unavailable/resource result.
590
+ * @throws TypeError For unauthenticated or unrelated contexts.
591
+ */
592
+ export function checkAdditiveSimpleProperties(actual, candidate, target, intermediate, representative) {
593
+ assertSemanticContext(actual);
594
+ assertSemanticContext(candidate);
595
+ if (!contextsShareRequest(actual, candidate) || !isSemanticCandidateOf(actual, candidate))
596
+ throw new TypeError('Expected a direct child of this actual request');
597
+ const b = actual.budget, charge = b.chargeWork;
598
+ return b.guard(() => {
599
+ const fail = (rule, message, kind = 'candidate-rejected') => {
600
+ charge(32 + rule.length + message.length + target.length);
601
+ throw new CorrespondenceAbort(Object.freeze({ kind, rule, component: target, contextId: candidate.contextId, message }));
602
+ };
603
+ try {
604
+ if (actual.kind !== 'actual' || actual.membership !== 'complete-actual-plus-additions' || candidate.membership !== 'complete-actual-plus-additions')
605
+ return fail('additive-source-context', 'Complete actual source membership is required', 'unresolved');
606
+ if (intermediate === representative || actual.lookup(intermediate).kind !== 'missing' || actual.lookup(representative).kind !== 'missing'
607
+ || candidate.members.length !== actual.members.length + 2)
608
+ return fail('additive-fresh-types', 'Exactly two fresh type components are required');
609
+ for (const id of actual.members) {
610
+ charge(16 + id.length);
611
+ const before = actual.lookup(id), after = candidate.lookup(id);
612
+ if (before.kind !== 'found' || after.kind !== 'found' || before.node !== after.node
613
+ || actual.rawTypeProperties(id) !== candidate.rawTypeProperties(id)
614
+ || actual.rawSimpleTypeProperties(id) !== candidate.rawSimpleTypeProperties(id)
615
+ || actual.rawElementProperties(id) !== candidate.rawElementProperties(id)
616
+ || actual.rawAttributeProperties(id) !== candidate.rawAttributeProperties(id)
617
+ || actual.rawAttributeGroupProperties(id) !== candidate.rawAttributeGroupProperties(id)
618
+ || actual.rawParticleWildcardProperties(id) !== candidate.rawParticleWildcardProperties(id)
619
+ || actual.owner(id) !== candidate.owner(id))
620
+ return fail('additive-original-preservation', 'An original component or scope binding changed');
621
+ }
622
+ const e = candidate.lookup(intermediate), c = candidate.lookup(representative);
623
+ if (e.kind !== 'found' || c.kind !== 'found' || e.node.kind !== 'complexType' || c.node.kind !== 'complexType')
624
+ return fail('additive-fresh-types', 'Fresh extension and restriction complex types are required');
625
+ const original = mapActualComplexProperties(actual, target), middle = candidate.rawTypeProperties(intermediate), end = candidate.rawTypeProperties(representative);
626
+ if (!middle || !end)
627
+ return fail('additive-raw-properties', 'Complete fresh complex properties are required', 'unresolved');
628
+ if (original.properties.content.kind !== 'simple' || middle.content.kind !== 'simple' || end.content.kind !== 'simple')
629
+ return fail('additive-simple-content-family', 'This property route supports only simple content', 'unresolved');
630
+ const designated = re01Ancestor(actual, target);
631
+ if (designated.kind !== 'checked')
632
+ throw new CorrespondenceAbort(designated);
633
+ const typeDependencies = collectSemanticTypeDependencies(candidate);
634
+ typeDependencies.add(original.typeDependencies);
635
+ typeDependencies.add(designated.typeDependencies);
636
+ const key = (context, reference) => {
637
+ const resolved = resolveSemanticType(context, reference);
638
+ if (!('identity' in resolved))
639
+ return fail('additive-type-reference', 'A property type is unavailable', 'unresolved');
640
+ typeDependencies.add([{ contextId: context.contextId, type: resolved.identity }]);
641
+ return semanticTypeKey(context, resolved.identity);
642
+ };
643
+ const sameSet = (left, right) => {
644
+ charge(4);
645
+ const a = new Set(), z = new Set();
646
+ for (const value of left) {
647
+ charge(2 + value.length);
648
+ a.add(value);
649
+ }
650
+ for (const value of right) {
651
+ charge(2 + value.length);
652
+ z.add(value);
653
+ }
654
+ if (a.size !== z.size)
655
+ return false;
656
+ for (const value of a) {
657
+ charge(2 + value.length);
658
+ if (!z.has(value))
659
+ return false;
660
+ }
661
+ return true;
662
+ };
663
+ const sameWildcard = (left, right) => {
664
+ charge(4);
665
+ if (!left.wildcard || !right.wildcard)
666
+ return left.wildcard === right.wildcard;
667
+ return left.wildcard.processContents === right.wildcard.processContents
668
+ && namespaceSetSubset(left.wildcard.namespace, right.wildcard.namespace, charge)
669
+ && namespaceSetSubset(right.wildcard.namespace, left.wildcard.namespace, charge);
670
+ };
671
+ if (middle.derivation.method !== 'extension' || end.derivation.method !== 'restriction'
672
+ || key(candidate, middle.derivation.base) !== key(actual, designated.ancestor)
673
+ || key(candidate, end.derivation.base) !== key(candidate, { kind: 'local', target: intermediate }))
674
+ return fail('additive-derivation-chain', 'The representatives do not have the required extension/restriction chain');
675
+ if (key(candidate, middle.content.type) !== key(actual, designated.ancestor)
676
+ || key(candidate, end.content.type) !== key(actual, original.properties.content.type))
677
+ return fail('additive-content-correspondence', 'Representative scalar content differs from its native source property');
678
+ const prior = original.properties;
679
+ if (end.targetNamespace !== prior.targetNamespace || end.abstract !== prior.abstract
680
+ || !sameSet(end.final, prior.final) || !sameSet(end.block, prior.block)
681
+ || !sameSet(end.attributeUses, prior.attributeUses) || !sameWildcard(end, prior))
682
+ return fail('additive-target-properties', 'The restriction representative changed an effective target property');
683
+ if (middle.targetNamespace !== prior.targetNamespace || middle.abstract || middle.final.length || middle.block.length
684
+ || !sameSet(middle.attributeUses, prior.attributeUses) || !sameWildcard(middle, prior))
685
+ return fail('additive-middle-properties', 'The extension representative changed the selected middle properties');
686
+ charge(128);
687
+ const result = Object.freeze({ kind: 'checked-additive-simple-properties', actualContextId: actual.contextId,
688
+ contextId: candidate.contextId, target, intermediate, representative, scalarObligations: original.scalarObligations,
689
+ typeDependencies: typeDependencies.snapshot(), datedInterpretation: 'unassessed' });
690
+ additiveProperties.set(result, Object.freeze({ actual, context: candidate }));
691
+ return result;
692
+ }
693
+ catch (error) {
694
+ if (error instanceof CorrespondenceAbort)
695
+ return error.result;
696
+ if (error instanceof RelationProblem)
697
+ return Object.freeze({ kind: 'unresolved', rule: error.result.rule, component: error.result.component, message: error.message });
698
+ throw error;
699
+ }
700
+ });
701
+ }
@@ -68,4 +68,3 @@ export type RawComplexTypeProperties = Readonly<{
68
68
  /** Runtime data-shape boundary, shared by preparation and property consumers. */
69
69
  export declare function assertRawComplexTypeShape(value: unknown, budget: SemanticBudget): asserts value is RawComplexTypeProperties;
70
70
  export {};
71
- //# sourceMappingURL=re01TypeProperties.d.ts.map
@@ -20,4 +20,3 @@ export type RawTypeValidation = Readonly<{
20
20
  }> | ResourceLimitFailure;
21
21
  /** The context has already copied data and rejected accessors. No caller labels authenticate actual mapping. */
22
22
  export declare function validateRawComplexTypeProperties(context: SemanticContext, typeId: NodeId, correspondence?: CorrespondenceReceipt): RawTypeValidation;
23
- //# sourceMappingURL=re01TypePropertyValidation.d.ts.map
@@ -1,5 +1,6 @@
1
1
  import type { CanonicalGraph, GraphNode, NodeId, Reference } from "./canonicalGraph.js";
2
2
  import type { SyntaxSource } from "../loader/orderedSyntax.js";
3
+ import type { StandardSchemaLibrary, StandardSchemaElementDeclaration } from './standardSchemaComponents.js';
3
4
  export declare class SemanticError extends Error {
4
5
  readonly category: "invalid-schema" | "unsupported-capability" | "incompatible-artifact" | "resource-limit";
5
6
  readonly component?: NodeId | undefined;
@@ -11,6 +12,7 @@ export type SemanticLimits = {
11
12
  maxNodes?: number;
12
13
  maxSteps?: number;
13
14
  requestBudget?: import("./semanticBudget.js").SemanticBudget;
15
+ standardLibraries?: readonly StandardSchemaLibrary[];
14
16
  };
15
17
  export declare function semanticBudget(limits?: SemanticLimits): {
16
18
  maxNodes: number;
@@ -32,7 +34,8 @@ export type ResolvedGraph = Readonly<{
32
34
  steps: number;
33
35
  }>;
34
36
  }>;
37
+ /** Native acquired dependencies only; copied graph reports cannot recreate this association. */
38
+ export declare function standardSchemaLibrariesForResolved(resolved: ResolvedGraph): readonly StandardSchemaLibrary[] | undefined;
35
39
  /** Resolve against a node index, never against generated names or an asserted stored target. */
36
- export declare function referenceTarget(reference: Reference, nodes: ReadonlyMap<NodeId, GraphNode>, owner: GraphNode): NodeId | undefined;
40
+ export declare function referenceTarget(reference: Reference, nodes: ReadonlyMap<NodeId, GraphNode>, owner: GraphNode, standards?: ReadonlyMap<NodeId, StandardSchemaElementDeclaration>): NodeId | undefined;
37
41
  export declare function resolveCanonicalGraph(graph: CanonicalGraph, limits?: SemanticLimits): ResolvedGraph;
38
- //# sourceMappingURL=resolveCanonicalGraph.d.ts.map
@@ -3,6 +3,8 @@ import { deepFreeze, DEFAULT_GRAPH_NODES, globalId, isBuiltinType } from "./cano
3
3
  import { positiveLimit } from "./catalogErrors.js";
4
4
  import { referenceSlots, containedNodes } from "./graphTraversal.js";
5
5
  import { syntaxAttribute, XSD_NAMESPACE } from "../loader/orderedSyntax.js";
6
+ import { normalizeWhitespace } from '../util/xmlWhitespace.js';
7
+ import { standardSchemaElement, inspectStandardSchemaElement } from './standardSchemaComponents.js';
6
8
  export class SemanticError extends Error {
7
9
  category;
8
10
  component;
@@ -17,6 +19,12 @@ export class SemanticError extends Error {
17
19
  this.name = "SemanticError";
18
20
  }
19
21
  }
22
+ /** Internal missing-symbol detail; source resolution must distinguish absent import resources from disproved declarations. */
23
+ class MissingReferenceError extends SemanticError {
24
+ constructor(reference, owner, id) {
25
+ super('invalid-schema', `Missing reference target ${id}`, owner.id, reference.kind === 'symbol' ? reference.lexical.context.source : owner.context.source);
26
+ }
27
+ }
20
28
  export function semanticBudget(limits = {}) {
21
29
  const maxNodes = positiveLimit(limits.maxNodes, DEFAULT_GRAPH_NODES, "maxNodes");
22
30
  const maxSteps = positiveLimit(limits.maxSteps, 1_000_000, "maxSteps");
@@ -47,8 +55,13 @@ export function countSemanticData(value, budget, node) {
47
55
  }
48
56
  }
49
57
  }
58
+ const resolvedStandards = new WeakMap();
59
+ /** Native acquired dependencies only; copied graph reports cannot recreate this association. */
60
+ export function standardSchemaLibrariesForResolved(resolved) {
61
+ return resolvedStandards.get(resolved);
62
+ }
50
63
  /** Resolve against a node index, never against generated names or an asserted stored target. */
51
- export function referenceTarget(reference, nodes, owner) {
64
+ export function referenceTarget(reference, nodes, owner, standards) {
52
65
  if (reference.kind === "builtin") {
53
66
  if (reference.name.namespace !== XSD_NAMESPACE || !isBuiltinType(reference.name.local))
54
67
  throw new SemanticError("invalid-schema", "Unknown builtin type", owner.id, owner.context.source);
@@ -56,8 +69,16 @@ export function referenceTarget(reference, nodes, owner) {
56
69
  }
57
70
  const id = reference.kind === "symbol" ? globalId(reference.role, reference.name) : reference.target;
58
71
  const target = nodes.get(id);
59
- if (!target)
60
- throw new SemanticError("invalid-schema", `Missing reference target ${id}`, owner.id, reference.kind === "symbol" ? reference.lexical.context.source : owner.context.source);
72
+ if (!target) {
73
+ const supplied = standards?.get(id);
74
+ if (!supplied)
75
+ throw new MissingReferenceError(reference, owner, id);
76
+ inspectStandardSchemaElement(supplied);
77
+ if (reference.kind !== 'symbol' || reference.role !== 'element' || supplied.id !== id
78
+ || reference.target !== undefined && reference.target !== id)
79
+ throw new SemanticError('invalid-schema', 'Standard declaration reference role/identity mismatch', owner.id, owner.context.source);
80
+ return id;
81
+ }
61
82
  if (reference.kind === "symbol" && (target.identity.kind !== "global" || target.identity.role !== reference.role || (reference.target !== undefined && reference.target !== id))) {
62
83
  throw new SemanticError("invalid-schema", `Reference role/identity mismatch ${id}`, owner.id, reference.lexical.context.source);
63
84
  }
@@ -78,9 +99,23 @@ export function resolveCanonicalGraph(graph, limits = {}) {
78
99
  const nodes = new Map(graph.nodes.map(n => [n.id, n]));
79
100
  if (nodes.size !== graph.nodes.length)
80
101
  throw new SemanticError("invalid-schema", "Duplicate graph identities");
102
+ const standards = new Map(), selectedLibraries = [];
103
+ for (const library of limits.standardLibraries ?? []) {
104
+ budget.step();
105
+ const declaration = standardSchemaElement(library, { namespace: XSD_NAMESPACE, local: 'schema' });
106
+ if (!declaration)
107
+ throw new SemanticError('unsupported-capability', 'Standard library supplies no implemented schema element');
108
+ if (standards.has(declaration.id))
109
+ throw new SemanticError('unsupported-capability', 'Duplicate standard library selection');
110
+ if (nodes.has(declaration.id))
111
+ throw new SemanticError('unsupported-capability', 'Acquired standard declaration conflicts with explicit schema source; select one source authority');
112
+ standards.set(declaration.id, declaration);
113
+ selectedLibraries.push(library);
114
+ }
81
115
  // Imports authorize foreign namespaces in the declaring interpretation only.
82
116
  // Including/importing documents do not lend their import permissions to a reference.
83
117
  const imports = new Map(), unknownImports = new Set();
118
+ const unlocatedImports = new Map();
84
119
  const sourceKey = (source) => JSON.stringify([source.uri, source.digest, source.path]);
85
120
  const importSyntax = new Map(graph.schemaRetained.filter(r => r.syntax.name.namespace === XSD_NAMESPACE && r.syntax.name.local === "import")
86
121
  .map(r => [sourceKey(r.syntax.source), r.syntax]));
@@ -89,7 +124,7 @@ export function resolveCanonicalGraph(graph, limits = {}) {
89
124
  if (edge.kind !== "import")
90
125
  continue;
91
126
  const syntax = importSyntax.get(sourceKey(edge.source));
92
- const ns = syntax ? syntaxAttribute(syntax, "namespace") ?? "" : edge.to ? interpretation(edge.to).namespace : undefined;
127
+ const ns = syntax ? normalizeWhitespace(syntaxAttribute(syntax, "namespace") ?? "", 'collapse') : edge.to ? interpretation(edge.to).namespace : undefined;
93
128
  if (ns === undefined) {
94
129
  unknownImports.add(edge.from);
95
130
  continue;
@@ -99,13 +134,42 @@ export function resolveCanonicalGraph(graph, limits = {}) {
99
134
  const values = imports.get(edge.from) ?? new Set();
100
135
  values.add(ns);
101
136
  imports.set(edge.from, values);
137
+ if (!edge.to && syntax && syntaxAttribute(syntax, 'schemaLocation') === undefined) {
138
+ const pending = unlocatedImports.get(edge.from) ?? new Set();
139
+ pending.add(ns);
140
+ unlocatedImports.set(edge.from, pending);
141
+ }
102
142
  }
103
143
  const links = [];
144
+ let unresolvedImport;
104
145
  for (const node of graph.nodes) {
105
146
  budget.step(node);
106
147
  for (const slot of referenceSlots(node)) {
107
148
  budget.step(node);
108
- const ref = slot.reference, target = referenceTarget(ref, nodes, node);
149
+ const ref = slot.reference;
150
+ let target;
151
+ let unavailable;
152
+ try {
153
+ target = referenceTarget(ref, nodes, node, standards);
154
+ }
155
+ catch (error) {
156
+ if (error instanceof MissingReferenceError && ref.kind === 'symbol' && node.kind !== 'wsdl') {
157
+ for (const origin of graph.origins[node.id] ?? []) {
158
+ budget.step(node);
159
+ if (ref.name.namespace !== origin.context.effectiveNamespace && unlocatedImports.get(origin.interpretation)?.has(ref.name.namespace)) {
160
+ unavailable = new SemanticError('unsupported-capability', `Missing declaration in namespace ${ref.name.namespace}; supply the locationless import dependency explicitly`, node.id, ref.lexical.context.source);
161
+ break;
162
+ }
163
+ }
164
+ }
165
+ if (!unavailable)
166
+ throw error;
167
+ }
168
+ // @why P1-D01: missing dependency evidence must not mask independent actual reference failures.
169
+ if (unavailable) {
170
+ unresolvedImport ??= unavailable;
171
+ continue;
172
+ }
109
173
  if (ref.kind === "symbol" && node.kind !== "wsdl") {
110
174
  for (const origin of graph.origins[node.id] ?? []) {
111
175
  budget.step(node);
@@ -121,6 +185,8 @@ export function resolveCanonicalGraph(graph, limits = {}) {
121
185
  links.push({ owner: node.id, path: slot.path, reference: ref, ...(target ? { target } : {}) });
122
186
  }
123
187
  }
188
+ if (unresolvedImport)
189
+ throw unresolvedImport;
124
190
  // Only expansion/base edges enter this DAG. Element -> type and particle -> element
125
191
  // are deliberately excluded: crossing an element admits complete recursive values.
126
192
  const forbidden = (n) => {
@@ -130,7 +196,9 @@ export function resolveCanonicalGraph(graph, limits = {}) {
130
196
  const expansion = n.kind === "simpleType" || n.kind === "complexType" || n.kind === "attributeGroupUse" ||
131
197
  (n.kind === "particle" && n.term.kind === "group") || (n.kind === "element" && slot.path === "substitutionGroup");
132
198
  if (expansion) {
133
- const target = referenceTarget(slot.reference, nodes, n);
199
+ const target = referenceTarget(slot.reference, nodes, n, standards);
200
+ if (target && standards.has(target))
201
+ throw new SemanticError('unsupported-capability', 'Substitution affiliation to an acquired standard element is not implemented', n.id, n.context.source);
134
202
  if (target)
135
203
  result.push(target);
136
204
  }
@@ -166,5 +234,7 @@ export function resolveCanonicalGraph(graph, limits = {}) {
166
234
  }
167
235
  }
168
236
  const result = { graph, links, metrics: { steps: budget.steps } };
169
- return limits.requestBudget ? limits.requestBudget.freeze(result) : deepFreeze(result);
237
+ const frozen = limits.requestBudget ? limits.requestBudget.freeze(result) : deepFreeze(result);
238
+ resolvedStandards.set(frozen, Object.freeze(selectedLibraries));
239
+ return frozen;
170
240
  }
@@ -0,0 +1,30 @@
1
+ import type { SyntaxElement } from '../loader/orderedSyntax.js';
2
+ import type { RpcMessageRoot } from './directOperation.js';
3
+ import type { SemanticBudget } from './semanticBudget.js';
4
+ type Fail = (kind: 'value-invalid' | 'unsupported' | 'mismatch', rule: string, node?: SyntaxElement) => never;
5
+ type Control = {
6
+ budget: SemanticBudget;
7
+ check(): void;
8
+ fail: Fail;
9
+ };
10
+ /** Build canonical inline string parameters in source declaration order.
11
+ * @param root Source-owned typed parameters.
12
+ * @param value Data-only application object.
13
+ * @param control Shared invocation ownership and work budget.
14
+ * @returns A generated RPC wrapper and preserved string values.
15
+ * @throws Through the supplied failure callback for invalid application values.
16
+ */
17
+ export declare function expandRpcStrings(root: RpcMessageRoot, value: unknown, control: Control): {
18
+ payload: SyntaxElement;
19
+ value: Readonly<Record<string, string>>;
20
+ };
21
+ /** Decode only the selected inline/local-reference string profile within one retained Body.
22
+ * @param root Source-owned typed parameters and body namespace.
23
+ * @param payload Observed RPC wrapper or observed SOAP Body.
24
+ * @param output Whether SOAP response local names are insignificant.
25
+ * @param control Shared native invocation budget and explicit failure callback.
26
+ * @returns Values keyed by the original WSDL part names.
27
+ * @throws Through the failure callback for malformed, ambiguous or unsupported encoded values.
28
+ */
29
+ export declare function readRpcStrings(root: RpcMessageRoot, payload: SyntaxElement, output: boolean, control: Control): Readonly<Record<string, string>>;
30
+ export {};
@@ -0,0 +1,196 @@
1
+ /** Bounded SOAP 1.1 RPC string serialization, without a second schema engine.
2
+ * @since 1.1.9
3
+ * @see https://www.w3.org/TR/2000/NOTE-SOAP-20000508/ Sections 5 and 7.
4
+ */
5
+ import { isXmlNCName, resolveLexicalQName, syntaxAttribute, syntaxElements, XSD_NAMESPACE, XML_NAMESPACE } from '../loader/orderedSyntax.js';
6
+ import { isXmlCharacters } from './directStructurePlan.js';
7
+ import { directDataOwnership } from './directExecutionPolicy.js';
8
+ const SOAP = 'http://schemas.xmlsoap.org/soap/envelope/';
9
+ const ENC = 'http://schemas.xmlsoap.org/soap/encoding/';
10
+ const XSI = 'http://www.w3.org/2001/XMLSchema-instance';
11
+ /** Build canonical inline string parameters in source declaration order.
12
+ * @param root Source-owned typed parameters.
13
+ * @param value Data-only application object.
14
+ * @param control Shared invocation ownership and work budget.
15
+ * @returns A generated RPC wrapper and preserved string values.
16
+ * @throws Through the supplied failure callback for invalid application values.
17
+ */
18
+ export function expandRpcStrings(root, value, control) {
19
+ const { budget, check, fail } = control;
20
+ let owned;
21
+ try {
22
+ owned = directDataOwnership(budget).snapshot(value, check);
23
+ }
24
+ catch (error) {
25
+ if (error instanceof TypeError)
26
+ return fail('value-invalid', 'rpc-data-object-required');
27
+ throw error;
28
+ }
29
+ if (!owned || typeof owned !== 'object' || Array.isArray(owned))
30
+ return fail('value-invalid', 'rpc-data-object-required');
31
+ const object = owned;
32
+ const keys = Object.keys(object), names = new Set(root.parts.map(part => { check(); return part.name; }));
33
+ budget.chargeWork(64 + keys.length * 32 + names.size * 32);
34
+ if (keys.length !== root.parts.length || keys.some(key => { check(); return !names.has(key); }))
35
+ return fail('value-invalid', 'rpc-required-string-parts');
36
+ const namespaces = { xml: XML_NAMESPACE, '': '', rpc: root.bodyNamespace, xsi: XSI, xsd: XSD_NAMESPACE, enc: ENC, soap: SOAP };
37
+ const attribute = (namespace, local, value) => ({ name: { namespace, local }, lexicalName: local, value });
38
+ const result = Object.create(null);
39
+ const children = root.parts.map(part => {
40
+ check();
41
+ const text = object[part.name];
42
+ if (typeof text !== 'string')
43
+ return fail('value-invalid', 'rpc-required-string-parts');
44
+ budget.chargeWork(64 + text.length * 8);
45
+ if (!isXmlCharacters(text))
46
+ return fail('value-invalid', 'rpc-string-xml-characters');
47
+ result[part.name] = text;
48
+ return { kind: 'element', name: { namespace: '', local: part.name }, lexicalName: part.name, namespaces, baseUri: root.source.uri,
49
+ attributes: [attribute(XSI, 'type', 'xsd:string')], children: [{ kind: 'text', value: text, source: root.source }], source: root.source };
50
+ });
51
+ return { payload: { kind: 'element', name: root.wrapper, lexicalName: 'rpc:' + root.wrapper.local, namespaces,
52
+ baseUri: root.source.uri, attributes: [attribute(SOAP, 'encodingStyle', ENC)], children, source: root.source }, value: result };
53
+ }
54
+ /** Decode only the selected inline/local-reference string profile within one retained Body.
55
+ * @param root Source-owned typed parameters and body namespace.
56
+ * @param payload Observed RPC wrapper or observed SOAP Body.
57
+ * @param output Whether SOAP response local names are insignificant.
58
+ * @param control Shared native invocation budget and explicit failure callback.
59
+ * @returns Values keyed by the original WSDL part names.
60
+ * @throws Through the failure callback for malformed, ambiguous or unsupported encoded values.
61
+ */
62
+ export function readRpcStrings(root, payload, output, control) {
63
+ const { budget, check, fail } = control;
64
+ const elements = (node) => {
65
+ check();
66
+ budget.chargeWork(32 + node.children.length * 8 + node.attributes.length * 16);
67
+ if (node.children.some(c => c.kind === 'text' && /[^\t\r\n ]/.test(c.value)))
68
+ return fail('mismatch', 'rpc-unexpected-text', node);
69
+ return syntaxElements(node);
70
+ };
71
+ const encoding = (node) => {
72
+ const declared = syntaxAttribute(node, 'encodingStyle', SOAP);
73
+ if (declared !== undefined && declared.trim() !== ENC)
74
+ return fail('unsupported', 'rpc-encoding-style', node);
75
+ };
76
+ const rootMarker = (node) => {
77
+ const marker = syntaxAttribute(node, 'root', ENC);
78
+ if (marker !== undefined && marker !== '0' && marker !== '1')
79
+ return fail('mismatch', 'rpc-root-marker', node);
80
+ return marker;
81
+ };
82
+ const attrs = (node, wrapper = false) => {
83
+ encoding(node);
84
+ rootMarker(node);
85
+ for (const attr of node.attributes) {
86
+ check();
87
+ if (attr.name.namespace === SOAP && attr.name.local === 'encodingStyle' || attr.name.namespace === ENC && attr.name.local === 'root'
88
+ || attr.name.namespace === '' && attr.name.local === 'id' || !wrapper && (attr.name.namespace === '' && attr.name.local === 'href'
89
+ || attr.name.namespace === XSI && attr.name.local === 'type'))
90
+ continue;
91
+ return fail('unsupported', 'rpc-encoded-attribute', node);
92
+ }
93
+ };
94
+ const body = payload.name.namespace === SOAP && payload.name.local === 'Body' ? payload : undefined;
95
+ if (body) {
96
+ encoding(body);
97
+ if (body.attributes.some(a => a.name.namespace !== SOAP || a.name.local !== 'encodingStyle'))
98
+ return fail('unsupported', 'rpc-body-attribute', body);
99
+ }
100
+ const top = body ? elements(body) : [payload];
101
+ const ids = new Map();
102
+ const pending = [...top];
103
+ while (pending.length) {
104
+ check();
105
+ const node = pending.pop();
106
+ budget.chargeWork(32 + node.children.length * 8);
107
+ const id = syntaxAttribute(node, 'id');
108
+ if (id !== undefined) {
109
+ if (!isXmlNCName(id) || ids.has(id))
110
+ return fail('mismatch', 'rpc-duplicate-or-invalid-id', node);
111
+ ids.set(id, node);
112
+ }
113
+ pending.push(...syntaxElements(node));
114
+ }
115
+ const wrappers = top.filter(node => {
116
+ check();
117
+ return node.name.namespace === root.bodyNamespace && rootMarker(node) !== '0'
118
+ && syntaxAttribute(node, 'href') === undefined && syntaxAttribute(node, 'type', XSI) === undefined
119
+ && (!output ? node.name.local === root.wrapper.local : true);
120
+ });
121
+ if (wrappers.length !== 1)
122
+ return fail('mismatch', 'rpc-unambiguous-response-root', payload);
123
+ const wrapper = wrappers[0];
124
+ attrs(wrapper, true);
125
+ const parameters = elements(wrapper);
126
+ if (parameters.length !== root.parts.length)
127
+ return fail('mismatch', 'rpc-result-accessor-count', wrapper);
128
+ const visited = new Set([wrapper]);
129
+ const stringValue = (initial) => {
130
+ const chain = new Set();
131
+ let node = initial, inheritedType = true;
132
+ // @constraints Flat local-reference chains must not consume the JavaScript call stack.
133
+ for (;;) {
134
+ check();
135
+ budget.chargeWork(32 + node.children.length * 8);
136
+ attrs(node);
137
+ if (chain.has(node))
138
+ return fail('unsupported', 'rpc-cyclic-reference', node);
139
+ chain.add(node);
140
+ visited.add(node);
141
+ const explicit = syntaxAttribute(node, 'type', XSI);
142
+ const implicit = node.name.namespace === ENC && node.name.local === 'string';
143
+ if (node.name.namespace === ENC && !implicit)
144
+ return fail('unsupported', 'rpc-string-type', node);
145
+ if (explicit !== undefined) {
146
+ let type;
147
+ try {
148
+ type = resolveLexicalQName(explicit, node);
149
+ }
150
+ catch {
151
+ return fail('unsupported', 'rpc-string-type', node);
152
+ }
153
+ if (type.local !== 'string' || type.namespace !== XSD_NAMESPACE && type.namespace !== ENC)
154
+ return fail('unsupported', 'rpc-string-type', node);
155
+ }
156
+ else if (!inheritedType && !implicit)
157
+ return fail('unsupported', 'rpc-string-type-required', node);
158
+ const href = syntaxAttribute(node, 'href');
159
+ if (href !== undefined) {
160
+ if (syntaxElements(node).length || node.children.some(c => c.kind === 'text' && /[^\t\r\n ]/.test(c.value)))
161
+ return fail('mismatch', 'rpc-reference-content', node);
162
+ if (!href.startsWith('#') || !isXmlNCName(href.slice(1)))
163
+ return fail('unsupported', 'rpc-local-reference-required', node);
164
+ const target = ids.get(href.slice(1));
165
+ if (!target)
166
+ return fail('mismatch', 'rpc-dangling-reference', node);
167
+ node = target;
168
+ inheritedType = false;
169
+ continue;
170
+ }
171
+ if (syntaxElements(node).length)
172
+ return fail('unsupported', 'rpc-string-compound-value', node);
173
+ const value = node.children.map(c => c.kind === 'text' ? c.value : '').join('');
174
+ budget.chargeWork(32 + value.length * 8);
175
+ return value;
176
+ }
177
+ };
178
+ const result = Object.create(null);
179
+ root.parts.forEach((part, index) => {
180
+ check();
181
+ const accessor = parameters[index];
182
+ if (accessor.name.namespace !== '' || !output && accessor.name.local !== part.name)
183
+ return fail('mismatch', 'rpc-parameter-name-order', accessor);
184
+ if (rootMarker(accessor) !== undefined)
185
+ return fail('unsupported', 'rpc-accessor-root-marker', accessor);
186
+ result[part.name] = stringValue(accessor);
187
+ });
188
+ for (const independent of top) {
189
+ check();
190
+ if (independent === wrapper)
191
+ continue;
192
+ if (!visited.has(independent) || rootMarker(independent) === '1')
193
+ return fail('mismatch', 'rpc-unexpected-body-content', independent);
194
+ }
195
+ return result;
196
+ }