@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,275 @@
1
+ import { isXmlNCName, isXmlName, isXmlNmtoken } from "../loader/orderedSyntax.js";
2
+ import { parseCalendar, parseReduced, parseDuration, compareCalendar, compareDuration, ProbeFailure } from "./schemaExactCalendar.js";
3
+ import { schemaUri } from "./schemaUri.js";
4
+ import { normalizeWhitespace } from '../util/xmlWhitespace.js';
5
+ export const builtinListItem = (name) => name === 'NMTOKENS' ? 'NMTOKEN' : name === 'IDREFS' ? 'IDREF' : name === 'ENTITIES' ? 'ENTITY' : undefined;
6
+ export const builtinParents = Object.freeze({
7
+ normalizedString: "string", token: "normalizedString", language: "token", NMTOKEN: "token", Name: "token", NCName: "Name",
8
+ ID: "NCName", IDREF: "NCName", ENTITY: "NCName", integer: "decimal", nonPositiveInteger: "integer", negativeInteger: "nonPositiveInteger",
9
+ long: "integer", int: "long", short: "int", byte: "short", nonNegativeInteger: "integer", unsignedLong: "nonNegativeInteger",
10
+ unsignedInt: "unsignedLong", unsignedShort: "unsignedInt", unsignedByte: "unsignedShort", positiveInteger: "nonNegativeInteger",
11
+ });
12
+ export const integerBounds = Object.freeze({
13
+ nonPositiveInteger: [undefined, "0"], negativeInteger: [undefined, "-1"], nonNegativeInteger: ["0", undefined], positiveInteger: ["1", undefined],
14
+ long: ["-9223372036854775808", "9223372036854775807"], int: ["-2147483648", "2147483647"], short: ["-32768", "32767"], byte: ["-128", "127"],
15
+ unsignedLong: ["0", "18446744073709551615"], unsignedInt: ["0", "4294967295"], unsignedShort: ["0", "65535"], unsignedByte: ["0", "255"],
16
+ });
17
+ export const builtinPrimitive = (name) => {
18
+ while (builtinParents[name])
19
+ name = builtinParents[name];
20
+ return name;
21
+ };
22
+ export const whitespaceFor = (name) => name === "string" || name === "anySimpleType" ? "preserve" : name === "normalizedString" ? "replace" : "collapse";
23
+ export { normalizeWhitespace } from '../util/xmlWhitespace.js';
24
+ export function datatypeValues(c) {
25
+ const invalid = (owner, lexical) => c.fail(owner, "cvc-datatype-valid", "Schema operand is outside the datatype's lexical/value space", lexical.context.source);
26
+ const decimal = (text, owner) => {
27
+ c.text(text, owner);
28
+ if (!/^[+-]?(?:[0-9]+(?:\.[0-9]*)?|\.[0-9]+)$/.test(text))
29
+ c.fail(owner, "cvc-datatype-valid", "Schema numeric operand must be an exact decimal");
30
+ const dot = text.indexOf("."), scale = dot < 0 ? 0 : text.length - dot - 1;
31
+ c.step(owner, (text.length + 2) ** 2);
32
+ let coefficient = BigInt(text.replace(".", "")), resultScale = scale;
33
+ while (resultScale && coefficient % 10n === 0n) {
34
+ c.step(owner, text.length + 1);
35
+ coefficient /= 10n;
36
+ resultScale--;
37
+ }
38
+ return { coefficient, scale: resultScale, digits: text.length };
39
+ };
40
+ const scaleTo = (value, scale, owner) => {
41
+ c.step(owner, (scale - value.scale + (value.digits ?? 20) + 2) ** 2);
42
+ return value.coefficient * 10n ** BigInt(scale - value.scale);
43
+ };
44
+ const compareDecimal = (a, b, owner) => {
45
+ const scale = Math.max(a.scale, b.scale), x = scaleTo(a, scale, owner), y = scaleTo(b, scale, owner);
46
+ return x === y ? 0 : x < y ? -1 : 1;
47
+ };
48
+ const decimalKey = (d, owner) => {
49
+ c.step(owner, d.scale + (d.digits ?? 20) + 2);
50
+ const raw = (d.coefficient < 0n ? -d.coefficient : d.coefficient).toString().padStart(d.scale + 1, "0");
51
+ return `${d.coefficient < 0n ? "-" : ""}${d.scale ? raw.slice(0, -d.scale) + "." + raw.slice(-d.scale) : raw}`;
52
+ };
53
+ const addDecimal = (a, b, owner) => {
54
+ const scale = Math.max(a.scale, b.scale);
55
+ return { coefficient: scaleTo(a, scale, owner) + scaleTo(b, scale, owner), scale, digits: Math.max((a.digits ?? 20) + scale - a.scale, (b.digits ?? 20) + scale - b.scale) + 1 };
56
+ };
57
+ const calendarBudget = (owner) => ({
58
+ charge: work => c.step(owner, work), arithmetic: digits => c.step(owner, (digits + 2) ** 2), text: value => c.text(value, owner),
59
+ });
60
+ const temporal = (name, value, lexical, owner) => {
61
+ try {
62
+ const budget = calendarBudget(owner);
63
+ const calendar = name === "date" || name === "dateTime" ? parseCalendar(name, value, budget) : parseReduced(name, value, budget);
64
+ return { family: name, canonical: (calendar.zoned ? "zoned:" : "local:") + decimalKey(calendar.seconds, owner), calendar };
65
+ }
66
+ catch (error) {
67
+ if (error instanceof ProbeFailure && error.kind === "invalid-schema")
68
+ return invalid(owner, lexical);
69
+ throw error;
70
+ }
71
+ };
72
+ /** Round the exact decimal rational directly to its declared IEEE format. */
73
+ const ieee = (value, single, owner) => {
74
+ const negative = value[0] === "-", unsigned = value.replace(/^[+-]/, "");
75
+ const [mantissa, rawExponent = "0"] = unsigned.split(/[eE]/), dot = mantissa.indexOf(".");
76
+ const digits = mantissa.replace(".", "").replace(/^0+/, "");
77
+ if (!digits)
78
+ return 0;
79
+ c.step(owner, (rawExponent.length + 2) ** 2);
80
+ const exponent = BigInt(rawExponent) - BigInt(dot < 0 ? 0 : mantissa.length - dot - 1);
81
+ const order = exponent + BigInt(digits.length - 1);
82
+ // Outside these conservative thresholds, exact IEEE rounding is known
83
+ // without constructing a power from an adversarial exponent literal.
84
+ if (order > BigInt(single ? 39 : 309))
85
+ return negative ? -Infinity : Infinity;
86
+ if (order < BigInt(single ? -47 : -326))
87
+ return 0;
88
+ const magnitude = exponent < 0n ? -exponent : exponent;
89
+ // The inequalities above bound magnitude by input length + 327. Charge
90
+ // decimal powers and binary representations before constructing either.
91
+ c.step(owner, (digits.length * 4 + Number(magnitude) * 4 + 32) ** 2);
92
+ const power = 10n ** magnitude;
93
+ let numerator = BigInt(digits), denominator = 1n;
94
+ if (exponent >= 0n)
95
+ numerator *= power;
96
+ else
97
+ denominator = power;
98
+ const bits = (number) => number.toString(2).length;
99
+ let binaryExponent = bits(numerator) - bits(denominator);
100
+ const below = binaryExponent >= 0 ? numerator < denominator << BigInt(binaryExponent) : numerator << BigInt(-binaryExponent) < denominator;
101
+ if (below)
102
+ binaryExponent--;
103
+ const precision = single ? 24 : 53, minimum = single ? -126 : -1022, maximum = single ? 127 : 1023;
104
+ binaryExponent = Math.max(minimum, binaryExponent);
105
+ const shift = precision - 1 - binaryExponent;
106
+ c.step(owner, Math.abs(shift) + 1);
107
+ if (shift >= 0)
108
+ numerator <<= BigInt(shift);
109
+ else
110
+ denominator <<= BigInt(-shift);
111
+ let significand = numerator / denominator;
112
+ const twiceRemainder = numerator % denominator * 2n;
113
+ if (twiceRemainder > denominator || twiceRemainder === denominator && significand % 2n !== 0n)
114
+ significand++;
115
+ if (significand === 1n << BigInt(precision)) {
116
+ significand >>= 1n;
117
+ binaryExponent++;
118
+ }
119
+ if (binaryExponent > maximum)
120
+ return negative ? -Infinity : Infinity;
121
+ const number = Number(significand) * 2 ** (binaryExponent - precision + 1);
122
+ return negative ? -number : number;
123
+ };
124
+ const atomic = (name, lexical, owner, whitespace = whitespaceFor(name)) => {
125
+ c.text(lexical.value, owner);
126
+ for (const character of lexical.value) {
127
+ c.step(owner);
128
+ const code = character.codePointAt(0);
129
+ if (!(code === 9 || code === 10 || code === 13 || code >= 0x20 && code <= 0xd7ff || code >= 0xe000 && code <= 0xfffd || code >= 0x10000 && code <= 0x10ffff))
130
+ return invalid(owner, lexical);
131
+ }
132
+ const value = normalizeWhitespace(lexical.value, whitespace), family = builtinPrimitive(name);
133
+ if (name === "ENTITY")
134
+ c.unresolved(owner, "datatype:ENTITY", "A schema ENTITY operand requires a DTD declaration context excluded by the loading policy", lexical.context.source);
135
+ if (family === "decimal") {
136
+ if (name !== "decimal" && !/^[+-]?[0-9]+$/.test(value))
137
+ return invalid(owner, lexical);
138
+ const d = decimal(value, owner), bound = integerBounds[name];
139
+ if (bound && (bound[0] !== undefined && compareDecimal(d, decimal(bound[0], owner), owner) < 0 || bound[1] !== undefined && compareDecimal(d, decimal(bound[1], owner), owner) > 0))
140
+ return invalid(owner, lexical);
141
+ return { family, canonical: decimalKey(d, owner), decimal: d };
142
+ }
143
+ if (family === "boolean") {
144
+ if (!["true", "false", "1", "0"].includes(value))
145
+ return invalid(owner, lexical);
146
+ return { family, canonical: value === "true" || value === "1" ? "true" : "false" };
147
+ }
148
+ if (family === "float" || family === "double") {
149
+ if (!["INF", "-INF", "NaN"].includes(value) && !/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?$/.test(value))
150
+ return invalid(owner, lexical);
151
+ const typed = value === "INF" ? Infinity : value === "-INF" ? -Infinity : value === "NaN" ? NaN : ieee(value, family === "float", owner);
152
+ return { family, canonical: Number.isNaN(typed) ? "NaN" : typed === 0 ? "0" : String(typed) };
153
+ }
154
+ if (family === "QName" || family === "NOTATION") {
155
+ const parts = value.split(":");
156
+ if (parts.length > 2 || parts.some(p => !isXmlNCName(p)))
157
+ return invalid(owner, lexical);
158
+ const prefix = parts.length === 2 ? parts[0] : "", namespace = lexical.context.namespaces[prefix];
159
+ if (prefix && namespace === undefined)
160
+ return invalid(owner, lexical);
161
+ c.text(namespace ?? "", owner);
162
+ if (family === "NOTATION")
163
+ c.notation(namespace ?? "", parts.at(-1), owner);
164
+ return { family, canonical: JSON.stringify([namespace ?? "", parts.at(-1)]) };
165
+ }
166
+ if (family === "hexBinary" || family === "base64Binary") {
167
+ let bytes;
168
+ if (family === "hexBinary") {
169
+ if (!/^(?:[0-9a-fA-F]{2})*$/.test(value))
170
+ return invalid(owner, lexical);
171
+ c.step(owner, value.length);
172
+ bytes = Buffer.from(value, "hex");
173
+ }
174
+ else {
175
+ const compact = value.replace(/[\t\r\n ]/g, "");
176
+ if (!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(compact))
177
+ return invalid(owner, lexical);
178
+ c.step(owner, compact.length);
179
+ bytes = Buffer.from(compact, "base64");
180
+ if (bytes.toString("base64") !== compact)
181
+ return invalid(owner, lexical);
182
+ }
183
+ c.step(owner, bytes.length * 2);
184
+ return { family, canonical: bytes.toString("hex"), length: bytes.length.toString() };
185
+ }
186
+ if (["dateTime", "date", "time", "gYearMonth", "gYear", "gMonthDay", "gDay", "gMonth"].includes(family))
187
+ return temporal(family, value, lexical, owner);
188
+ if (family === "duration") {
189
+ try {
190
+ const duration = parseDuration(value, calendarBudget(owner));
191
+ return { family, canonical: duration.months + "/" + decimalKey(duration.seconds, owner), duration };
192
+ }
193
+ catch (error) {
194
+ if (error instanceof ProbeFailure && error.kind === "invalid-schema")
195
+ return invalid(owner, lexical);
196
+ throw error;
197
+ }
198
+ }
199
+ if (family === "string" || family === "anySimpleType" || family === "anyURI") {
200
+ if (name === "language" && !/^[a-zA-Z]{1,8}(?:-[a-zA-Z0-9]{1,8})*$/.test(value))
201
+ return invalid(owner, lexical);
202
+ if (["Name", "NCName", "NMTOKEN", "ID", "IDREF", "ENTITY"].includes(name)) {
203
+ if (!(name === "NMTOKEN" ? isXmlNmtoken(value) : name === "Name" ? isXmlName(value) : isXmlNCName(value)))
204
+ return invalid(owner, lexical);
205
+ }
206
+ // anyURI is an IRI reference after escaping; relative/empty values are legal.
207
+ if (family === "anyURI" && !schemaUri(value, owner, c))
208
+ return invalid(owner, lexical);
209
+ let length = 0;
210
+ for (const ignored of value) {
211
+ c.step(owner);
212
+ length++;
213
+ }
214
+ return { family: family === "anySimpleType" ? "string" : family, canonical: value, length: length.toString() };
215
+ }
216
+ return c.unsupported(owner, `datatype:${name}`, "Datatype is outside the approved scalar profile", lexical.context.source);
217
+ };
218
+ const sameValue = (a, b, owner) => {
219
+ c.text(a.canonical, owner);
220
+ c.text(b.canonical, owner);
221
+ return a.family === b.family && a.canonical === b.canonical;
222
+ };
223
+ const compare = (a, b, owner) => {
224
+ c.step(owner);
225
+ if (a.family !== b.family)
226
+ return undefined;
227
+ if (a.decimal && b.decimal)
228
+ return compareDecimal(a.decimal, b.decimal, owner);
229
+ if (a.family === "float" || a.family === "double") {
230
+ if (a.canonical === "NaN" || b.canonical === "NaN")
231
+ return a.canonical === b.canonical ? 0 : undefined;
232
+ const x = Number(a.canonical), y = Number(b.canonical);
233
+ return x === y ? 0 : x < y ? -1 : 1;
234
+ }
235
+ if (a.calendar && b.calendar || a.duration && b.duration) {
236
+ const order = a.calendar && b.calendar ? compareCalendar(a.calendar, b.calendar, calendarBudget(owner))
237
+ : compareDuration(a.duration, b.duration, calendarBudget(owner));
238
+ return order === "less" ? -1 : order === "greater" ? 1 : order === "equal" ? 0 : undefined;
239
+ }
240
+ return sameValue(a, b, owner) ? 0 : undefined;
241
+ };
242
+ const listTokens = (lexical, owner) => {
243
+ c.text(lexical.value, owner);
244
+ const normalized = normalizeWhitespace(lexical.value, 'collapse');
245
+ c.step(owner, normalized.length + 3);
246
+ return { normalized, tokens: normalized ? normalized.split(' ') : [], source: lexical.context.source };
247
+ };
248
+ const listOperand = (tokens, items, owner, builtinName) => {
249
+ c.step(owner, items.length * 2 + 4);
250
+ if (tokens.tokens.length !== items.length)
251
+ throw new TypeError('Internally assessed list item count differs from token count');
252
+ if (builtinName && builtinListItem(builtinName) && !items.length)
253
+ c.fail(owner, 'cvc-minLength-valid', 'Builtin token list requires at least one item', tokens.source);
254
+ const keys = [];
255
+ for (const item of items) {
256
+ c.step(owner, 8 * (item.family.length + item.canonical.length) + 16);
257
+ keys.push(JSON.stringify([item.family, item.canonical]));
258
+ }
259
+ for (const key of keys)
260
+ c.step(owner, key.length * 8 + 4);
261
+ return { family: 'list', canonical: JSON.stringify(keys), length: items.length.toString(), normalized: tokens.normalized, items };
262
+ };
263
+ const builtin = (name, lexical, owner) => {
264
+ c.step(owner);
265
+ const itemName = builtinListItem(name);
266
+ if (!itemName)
267
+ return atomic(name, lexical, owner);
268
+ const tokens = listTokens(lexical, owner), items = [];
269
+ c.step(owner, tokens.tokens.length * 3);
270
+ for (const value of tokens.tokens)
271
+ items.push(atomic(itemName, { value, context: lexical.context }, owner));
272
+ return listOperand(tokens, items, owner, name);
273
+ };
274
+ return { atomic, builtin, listTokens, listOperand, decimal, decimalKey, compareDecimal, sameValue, compare };
275
+ }
@@ -0,0 +1,59 @@
1
+ import type { DirectOperationContract } from './directOperation.js';
2
+ import type { DirectValueMapping, DirectValueReceipt, DirectValueFailure, DirectExpandedValue } from './directValues.js';
3
+ import type { SyntaxElement, SyntaxSource } from '../loader/orderedSyntax.js';
4
+ import type { ResolverUsage } from './semanticBudget.js';
5
+ export interface DirectXmlLimits {
6
+ readonly maxBytes?: number;
7
+ readonly maxDepth?: number;
8
+ readonly maxNodes?: number;
9
+ /** Aggregate parsed/emitted text in UTF-16 units, excluding markup. */
10
+ readonly maxText?: number;
11
+ }
12
+ export declare const DIRECT_XML_LIMITS: Readonly<{
13
+ maxBytes: number;
14
+ maxDepth: 256;
15
+ maxNodes: 100000;
16
+ maxText: number;
17
+ }>;
18
+ type Options = Readonly<{
19
+ signal?: AbortSignal;
20
+ limits?: DirectXmlLimits;
21
+ }>;
22
+ /** Internal protocol selection over the same parsed observed document. */
23
+ export interface DirectPayloadSelection {
24
+ readonly payload: SyntaxElement;
25
+ readonly mapping: DirectValueMapping;
26
+ }
27
+ export interface DirectCodecFailure {
28
+ readonly kind: DirectValueFailure['kind'] | 'xml-invalid' | 'mismatch';
29
+ readonly rule: string;
30
+ readonly source?: SyntaxSource;
31
+ readonly schemaPath?: string;
32
+ readonly payloadPath?: string;
33
+ readonly usage: ResolverUsage;
34
+ }
35
+ export interface DirectEncodedXml {
36
+ readonly kind: 'direct-encoded';
37
+ readonly admitted: false;
38
+ readonly encoding: 'utf-8';
39
+ /** Owned mutable output bytes; bytes are data, never receipt authority. */
40
+ readonly bytes: Uint8Array;
41
+ readonly expanded: DirectExpandedValue;
42
+ readonly usage: ResolverUsage;
43
+ }
44
+ export interface DirectDecodedXml {
45
+ readonly kind: 'direct-decoded';
46
+ readonly admitted: false;
47
+ readonly payload: SyntaxElement;
48
+ readonly validated: DirectValueReceipt;
49
+ readonly usage: ResolverUsage;
50
+ }
51
+ /** Validate fresh values using the delivered inverse, then emit deterministic UTF-8. */
52
+ export declare function encodeDirectXml(contract: DirectOperationContract, mapping: unknown, application: unknown, options?: Options): DirectEncodedXml | DirectCodecFailure;
53
+ /** Bounded observed bytes -> ordered syntax -> existing structural/scalar checks. */
54
+ export declare function decodeDirectXml(contract: DirectOperationContract, mapping: unknown, bytes: Uint8Array, options?: Options & Readonly<{
55
+ uri?: string;
56
+ selectPayload?: (root: SyntaxElement) => DirectPayloadSelection;
57
+ }>): DirectDecodedXml | DirectCodecFailure;
58
+ export {};
59
+ //# sourceMappingURL=directCodec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directCodec.d.ts","sourceRoot":"","sources":["../../src/compiler/directCodec.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,sBAAsB,CAAC;AAElE,OAAO,KAAK,EAAC,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AAGvH,OAAO,KAAK,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EAAiB,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAEvE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,uEAAuE;IACvE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AACD,eAAO,MAAM,iBAAiB;;;;;EAAiG,CAAC;AAChI,KAAK,OAAO,GAAG,QAAQ,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,eAAe,CAAA;CAAC,CAAC,CAAC;AAC1E,0EAA0E;AAC1E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;CACtC;AACD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,aAAa,GAAG,UAAU,CAAC;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;CAC/B;AACD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IACtF,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;CAC/B;AACD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IAC1D,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACxE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;CAC/B;AA0DD,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,uBAAuB,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAE,OAAY,GAAG,gBAAgB,GAAG,kBAAkB,CAqDvK;AAED,qFAAqF;AACrF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,uBAAuB,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EACpG,OAAO,GAAE,OAAO,GAAG,QAAQ,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,sBAAsB,CAAA;CAAC,CAAM,GAAG,gBAAgB,GAAG,kBAAkB,CAoC1J"}
@@ -0,0 +1,192 @@
1
+ import { directDataOwnership, directLimit } from './directExecutionPolicy.js';
2
+ /** Internal, buffered, bare-root XML codec. No SOAP envelope or dispatch. */
3
+ import { checkSemanticBudget } from './semanticBudget.js';
4
+ import { DataOwnershipLimitError } from './dataOwnership.js';
5
+ import { types } from 'node:util';
6
+ import { inspectDirectOperation } from './directOperation.js';
7
+ import { inspectDirectValueMapping, expandDirectValue, assessDirectScalars } from './directValues.js';
8
+ import { matchDirectOperation } from './directStructure.js';
9
+ import { parseOrderedSyntax, SchemaLoadingError, XML_NAMESPACE } from '../loader/orderedSyntax.js';
10
+ export const DIRECT_XML_LIMITS = Object.freeze({ maxBytes: 1024 * 1024, maxDepth: 256, maxNodes: 100_000, maxText: 1024 * 1024 });
11
+ class Stop extends Error {
12
+ kind;
13
+ rule;
14
+ constructor(kind, rule) {
15
+ super(rule);
16
+ this.kind = kind;
17
+ this.rule = rule;
18
+ }
19
+ }
20
+ function run(contract, supplied, options, work) {
21
+ // Identity before all property reads, including version checks.
22
+ const mapping = inspectDirectValueMapping(supplied, contract);
23
+ const { budget } = inspectDirectOperation(contract).context;
24
+ const check = () => { checkSemanticBudget(budget); if (options.signal?.aborted)
25
+ throw new Stop('cancelled', 'cooperative-cancellation'); };
26
+ try {
27
+ const result = budget.guard(() => {
28
+ check();
29
+ if (mapping.version !== 'direct-values-v1' || mapping.contextId !== contract.contextId
30
+ || contract.basis !== 'native-direct-premises-v1' || contract.correspondence !== 'dated-XSD-2004-direct-v1'
31
+ || contract.binding.version !== '1.1' || contract.binding.style !== 'document' || contract.binding.use !== 'literal'
32
+ || contract.binding.transport !== 'http://schemas.xmlsoap.org/soap/http')
33
+ throw new Stop('unsupported', 'direct-codec-version');
34
+ const direction = mapping.direction;
35
+ const root = direction.kind === 'fault' ? contract.faults.find(f => {
36
+ check();
37
+ return budget.compareText(f.name, direction.name) === 0;
38
+ })?.root : contract[direction.kind];
39
+ if (mapping.root !== root)
40
+ throw new TypeError('Incompatible direct codec root');
41
+ const configured = options.limits === undefined ? {} : directDataOwnership(budget).snapshot(options.limits, check);
42
+ if (!configured || typeof configured !== 'object' || Array.isArray(configured))
43
+ throw new TypeError('Data-only XML limits required');
44
+ for (const key of Reflect.ownKeys(configured)) {
45
+ if (typeof key !== 'string' || !['maxBytes', 'maxDepth', 'maxNodes', 'maxText'].includes(key))
46
+ throw new TypeError('Unknown XML limit');
47
+ }
48
+ const limits = {
49
+ maxBytes: directLimit(budget, DIRECT_XML_LIMITS.maxBytes), maxDepth: directLimit(budget, DIRECT_XML_LIMITS.maxDepth),
50
+ maxNodes: directLimit(budget, DIRECT_XML_LIMITS.maxNodes), maxText: directLimit(budget, DIRECT_XML_LIMITS.maxText),
51
+ };
52
+ for (const key of ['maxBytes', 'maxDepth', 'maxNodes', 'maxText']) {
53
+ const value = configured[key];
54
+ if (value !== undefined) {
55
+ if (!Number.isSafeInteger(value) || value < 1)
56
+ throw new RangeError('XML limits must be positive safe integers');
57
+ limits[key] = value;
58
+ }
59
+ }
60
+ const result = work(mapping, { budget, limits, check });
61
+ // Native failures remain terminal even though publication has no synthetic work price.
62
+ check();
63
+ return Object.freeze({ ...result, usage: Object.freeze({ ...budget.usage() }) });
64
+ });
65
+ if (budget.exhausted())
66
+ return { kind: 'resource-limit', rule: 'request-budget', usage: budget.usage() };
67
+ return result;
68
+ }
69
+ catch (error) {
70
+ if (budget.exhausted())
71
+ return { kind: 'resource-limit', rule: 'request-budget', usage: budget.usage() };
72
+ if (error instanceof DataOwnershipLimitError)
73
+ return { kind: 'resource-limit', rule: error.message, usage: budget.usage() };
74
+ if (error instanceof Stop)
75
+ return Object.freeze({ kind: error.kind, rule: error.rule, usage: Object.freeze({ ...budget.usage() }) });
76
+ if (error instanceof SchemaLoadingError)
77
+ return Object.freeze({ kind: error.category === 'invalid-schema' ? 'xml-invalid'
78
+ : error.category === 'resource-limit' ? 'resource-limit' : 'unsupported', rule: error.message, source: error.source,
79
+ usage: Object.freeze({ ...budget.usage() }) });
80
+ throw error;
81
+ }
82
+ }
83
+ /** Validate fresh values using the delivered inverse, then emit deterministic UTF-8. */
84
+ export function encodeDirectXml(contract, mapping, application, options = {}) {
85
+ return run(contract, mapping, options, (owned, { budget, limits, check }) => {
86
+ const expanded = expandDirectValue(contract, owned, application, { ...options, maxText: Math.min(limits.maxText, limits.maxBytes), maxItems: Math.min(limits.maxNodes, limits.maxBytes) });
87
+ if (expanded.kind !== 'direct-expanded')
88
+ return expanded;
89
+ const pieces = [];
90
+ let byteLength = 0, nodes = 0, textUnits = 0, nextPrefix = 0;
91
+ const prefixes = new Map();
92
+ const append = (text) => {
93
+ check();
94
+ const size = Buffer.byteLength(text, 'utf8');
95
+ if (size > limits.maxBytes - byteLength)
96
+ throw new Stop('resource-limit', 'XML byte limit');
97
+ byteLength += size;
98
+ pieces.push(text);
99
+ };
100
+ const escape = (text, attribute = false) => {
101
+ check();
102
+ return text.replace(/[&<>\r"\t\n]/g, c => c === '&' ? '&amp;' : c === '<' ? '&lt;' : c === '>' ? '&gt;'
103
+ : c === '\r' ? '&#13;' : attribute && c === '"' ? '&quot;' : attribute && c === '\t' ? '&#9;'
104
+ : attribute && c === '\n' ? '&#10;' : c);
105
+ };
106
+ const emit = (node, depth) => {
107
+ check();
108
+ budget.reserveNodes(1);
109
+ if (++nodes > limits.maxNodes || depth > limits.maxDepth)
110
+ throw new Stop('resource-limit', 'XML node/depth limit');
111
+ const namespace = node.name.namespace;
112
+ let prefix = namespace === XML_NAMESPACE ? 'xml' : prefixes.get(namespace);
113
+ if (namespace && prefix === undefined) {
114
+ prefix = `n${nextPrefix++}`;
115
+ prefixes.set(namespace, prefix);
116
+ }
117
+ // Bind at each use: a prefix first encountered on one sibling is not in
118
+ // scope at its next sibling. Never use a default namespace, so local
119
+ // unqualified children need no inherited-default reset.
120
+ const declaration = namespace && prefix !== 'xml' ? ` xmlns:${prefix}="${escape(namespace, true)}"` : '';
121
+ const name = prefix ? `${prefix}:${node.name.local}` : node.name.local;
122
+ append(`<${name}${declaration}>`);
123
+ for (const child of node.children) {
124
+ check();
125
+ if (child.kind === 'element')
126
+ emit(child, depth + 1);
127
+ else {
128
+ budget.reserveNodes(1);
129
+ if (++nodes > limits.maxNodes || child.value.length > limits.maxText - textUnits)
130
+ throw new Stop('resource-limit', 'XML node/text limit');
131
+ textUnits += child.value.length;
132
+ append(escape(child.value));
133
+ }
134
+ }
135
+ append(`</${name}>`);
136
+ };
137
+ emit(expanded.payload, 1);
138
+ // Actual output bytes were bounded by append; bytes are caller-owned data, not authority.
139
+ check();
140
+ const bytes = Buffer.from(pieces.join(''), 'utf8');
141
+ check();
142
+ return Object.freeze({ kind: 'direct-encoded', admitted: false, encoding: 'utf-8',
143
+ bytes, expanded, usage: Object.freeze({ ...budget.usage() }) });
144
+ });
145
+ }
146
+ /** Bounded observed bytes -> ordered syntax -> existing structural/scalar checks. */
147
+ export function decodeDirectXml(contract, mapping, bytes, options = {}) {
148
+ return run(contract, mapping, options, (owned, { budget, limits, check }) => {
149
+ if (!types.isUint8Array(bytes) || types.isProxy(bytes))
150
+ throw new TypeError('XML requires Uint8Array bytes');
151
+ // Use native internal-slot access, avoiding subclass/own length, buffer and
152
+ // iterator getters. Shared backing stores are outside the data-only contract.
153
+ const typed = Object.getPrototypeOf(Uint8Array.prototype);
154
+ const length = Object.getOwnPropertyDescriptor(typed, 'byteLength').get.call(bytes);
155
+ const backing = Object.getOwnPropertyDescriptor(typed, 'buffer').get.call(bytes);
156
+ if (types.isSharedArrayBuffer(backing))
157
+ throw new TypeError('Shared XML bytes are unsupported');
158
+ if (length > limits.maxBytes)
159
+ throw new Stop('resource-limit', 'XML byte limit');
160
+ check();
161
+ const input = new Uint8Array(length);
162
+ Uint8Array.prototype.set.call(input, bytes);
163
+ const uri = options.uri ?? 'urn:typescript-wsdl-client:observed-direct-xml';
164
+ if (typeof uri !== 'string')
165
+ throw new TypeError('XML source URI must be a string');
166
+ check();
167
+ const root = parseOrderedSyntax(input, uri, { ...limits, xml10Only: true,
168
+ chargeWork: () => check(), reserveNode: () => { check(); budget.reserveNodes(1); } }).root;
169
+ const selection = options.selectPayload?.(root) ?? { payload: root, mapping: owned };
170
+ const payload = selection.payload;
171
+ const selectedMapping = inspectDirectValueMapping(selection.mapping, contract);
172
+ // Protocol selection may only return an actual node from this parse, never
173
+ // a synthetic tree relabeled with the observed document's provenance.
174
+ const contains = (node) => {
175
+ check();
176
+ return node === payload || node.children.some(child => child.kind === 'element' && contains(child));
177
+ };
178
+ if (!contains(root))
179
+ throw new TypeError('Protocol payload must belong to the observed document');
180
+ const structural = matchDirectOperation(contract, selectedMapping.direction, payload, options);
181
+ if (structural.kind !== 'structural-match')
182
+ return structural;
183
+ const validated = assessDirectScalars(contract, structural, options);
184
+ if (validated.kind !== 'direct-value')
185
+ return validated;
186
+ check();
187
+ directDataOwnership(budget).freeze(payload);
188
+ check();
189
+ return Object.freeze({ kind: 'direct-decoded', admitted: false, payload, validated,
190
+ usage: Object.freeze({ ...budget.usage() }) });
191
+ });
192
+ }
@@ -0,0 +1,10 @@
1
+ import type { SemanticBudget } from './semanticBudget.js';
2
+ import type { LoadingLimits } from '../loader/schemaResources.js';
3
+ export declare const DIRECT_REPRESENTATION_MAX: number;
4
+ export declare function directDataOwnership(budget: SemanticBudget): Readonly<{
5
+ snapshot: <T>(value: T, check?: () => void) => T;
6
+ freeze: <T>(value: T) => Readonly<T>;
7
+ }>;
8
+ export declare function directLimit(budget: SemanticBudget, boundedProfile: number): number;
9
+ export declare function directLoadingLimits(budget: SemanticBudget, overrides?: Partial<LoadingLimits>): Partial<LoadingLimits>;
10
+ //# sourceMappingURL=directExecutionPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directExecutionPolicy.d.ts","sourceRoot":"","sources":["../../src/compiler/directExecutionPolicy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAC;AAEhE,eAAO,MAAM,yBAAyB,QAA0B,CAAC;AACjE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc;;;GAEzD;AACD,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAElF;AACD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAItH"}
@@ -0,0 +1,17 @@
1
+ /** Application-selected resource policy; numeric maxima below are representation ceilings, not quotas. */
2
+ import { createDataOwnership, dataOwnership } from './dataOwnership.js';
3
+ import { isApplicationUnmetered } from './semanticBudget.js';
4
+ import { DEFAULT_LOADING_LIMITS } from '../loader/schemaResources.js';
5
+ const unrestrictedData = createDataOwnership(() => { });
6
+ export const DIRECT_REPRESENTATION_MAX = Number.MAX_SAFE_INTEGER;
7
+ export function directDataOwnership(budget) {
8
+ return isApplicationUnmetered(budget) ? unrestrictedData : dataOwnership;
9
+ }
10
+ export function directLimit(budget, boundedProfile) {
11
+ return isApplicationUnmetered(budget) ? DIRECT_REPRESENTATION_MAX : boundedProfile;
12
+ }
13
+ export function directLoadingLimits(budget, overrides) {
14
+ if (!isApplicationUnmetered(budget))
15
+ return overrides ?? {};
16
+ return { ...Object.fromEntries(Object.keys(DEFAULT_LOADING_LIMITS).map(key => [key, key === 'resourceMs' || key === 'totalIoMs' ? 0 : DIRECT_REPRESENTATION_MAX])), ...overrides };
17
+ }
@@ -0,0 +1,72 @@
1
+ import type { SchemaInput, SchemaInputOptions } from '../loader/schemaInput.js';
2
+ import type { ExpandedName, SyntaxSource } from '../loader/orderedSyntax.js';
3
+ import type { ElementNode, Reference } from './canonicalGraph.js';
4
+ import type { SemanticContext } from './semanticContext.js';
5
+ import type { SemanticBudget, SemanticBudgetLimits, ResolverUsage } from './semanticBudget.js';
6
+ import type { DirectSourceQualification } from './checkedSourcePreparation.js';
7
+ export interface DirectOperationSelector {
8
+ readonly portType: ExpandedName;
9
+ readonly binding: ExpandedName;
10
+ readonly operation: string;
11
+ }
12
+ export interface DirectMessageRoot {
13
+ readonly message: ExpandedName;
14
+ readonly part: string;
15
+ readonly element: ElementNode;
16
+ readonly type: Reference;
17
+ readonly source: SyntaxSource;
18
+ }
19
+ export interface DirectOperationContract {
20
+ readonly selector: DirectOperationSelector;
21
+ readonly contextId: string;
22
+ readonly basis: 'native-direct-premises-v1';
23
+ readonly correspondence: 'dated-XSD-2004-direct-v1';
24
+ readonly binding: Readonly<{
25
+ version: '1.1';
26
+ style: 'document';
27
+ use: 'literal';
28
+ transport: string;
29
+ action: string;
30
+ source: SyntaxSource;
31
+ }>;
32
+ readonly input: DirectMessageRoot;
33
+ readonly output: DirectMessageRoot;
34
+ readonly faults: readonly Readonly<{
35
+ name: string;
36
+ root: DirectMessageRoot;
37
+ }>[];
38
+ readonly missingCapabilities: readonly string[];
39
+ readonly admitted: false;
40
+ }
41
+ export type DirectOperationResult = Readonly<{
42
+ kind: 'selected';
43
+ contract: DirectOperationContract;
44
+ usage: ResolverUsage;
45
+ }> | Readonly<{
46
+ kind: 'invalid-schema' | 'inconclusive' | 'unsupported' | 'selection-refused' | 'loading-refused' | 'resource-limit' | 'cancelled';
47
+ rule: string;
48
+ usage: ResolverUsage;
49
+ }>;
50
+ export interface DirectOperationInspection {
51
+ readonly contract: DirectOperationContract;
52
+ readonly context: SemanticContext;
53
+ readonly source: SchemaInput;
54
+ readonly evidence: Extract<DirectSourceQualification, {
55
+ kind: 'qualified-source';
56
+ }>;
57
+ }
58
+ /** Object identity authenticates the exact issued roots; context IDs and digests do not. */
59
+ export declare function inspectDirectOperation(contract: DirectOperationContract, expectedContext?: SemanticContext): DirectOperationInspection;
60
+ /** One load, whole-source qualification, explicit selection and publication on one sticky budget. */
61
+ export declare function selectDirectOperation(source: string, selector: DirectOperationSelector, options: Readonly<{
62
+ loading: SchemaInputOptions;
63
+ limits?: SemanticBudgetLimits;
64
+ signal?: AbortSignal;
65
+ }>): Promise<DirectOperationResult>;
66
+ /** Private-module composition seam: portable reading and selection share one request. */
67
+ export declare function selectDirectOperationInRequest(source: string, selector: DirectOperationSelector, options: Readonly<{
68
+ loading: SchemaInputOptions;
69
+ limits?: SemanticBudgetLimits;
70
+ signal?: AbortSignal;
71
+ }>, budget: SemanticBudget): Promise<DirectOperationResult>;
72
+ //# sourceMappingURL=directOperation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directOperation.d.ts","sourceRoot":"","sources":["../../src/compiler/directOperation.ts"],"names":[],"mappings":"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"}