@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,103 @@
1
+ import { assertSemanticTypeReferenceShape } from './semanticTypeReference.js';
2
+ import { validateFacetAnnotation } from './schemaFacetAnnotation.js';
3
+ const object = (value) => !!value && typeof value === 'object' && !Array.isArray(value);
4
+ const facetNames = ['length', 'minLength', 'maxLength', 'pattern', 'enumeration', 'whiteSpace', 'maxInclusive', 'maxExclusive', 'minInclusive', 'minExclusive', 'totalDigits', 'fractionDigits'];
5
+ export function validateRawSimpleTypeShape(value, budget) {
6
+ budget.chargeWork(16);
7
+ if (!object(value) || typeof value.type !== 'string' || !object(value.base) || !Array.isArray(value.final) || !object(value.variety))
8
+ return false;
9
+ assertSemanticTypeReferenceShape(value.base, budget);
10
+ const binding = value.facetBinding;
11
+ const exact = value.facetComponentSet;
12
+ if (binding !== undefined) {
13
+ if (value.facetLayers !== undefined || exact !== undefined || !object(binding) || binding.kind !== 'original')
14
+ return false;
15
+ assertSemanticTypeReferenceShape(binding.type, budget);
16
+ }
17
+ else if (exact !== undefined ? value.facetLayers !== undefined || !Array.isArray(exact) : !Array.isArray(value.facetLayers))
18
+ return false;
19
+ const layers = binding !== undefined ? [] : (exact ?? value.facetLayers);
20
+ if (value.targetNamespace !== undefined && typeof value.targetNamespace !== 'string')
21
+ return false;
22
+ budget.chargeWork(value.type.length + value.final.length * 4 + layers.length * 4);
23
+ if (value.final.some(method => !['restriction', 'list', 'union'].includes(method)))
24
+ return false;
25
+ if (!['atomic', 'list', 'union'].includes(value.variety.kind))
26
+ return false;
27
+ if (value.variety.kind === 'list' && !object(value.variety.item) || value.variety.kind === 'union' && !Array.isArray(value.variety.members))
28
+ return false;
29
+ if (value.variety.kind === 'list')
30
+ assertSemanticTypeReferenceShape(value.variety.item, budget);
31
+ if (value.variety.kind === 'union')
32
+ for (const member of value.variety.members)
33
+ assertSemanticTypeReferenceShape(member, budget);
34
+ for (const layer of layers) {
35
+ budget.chargeWork(4);
36
+ if (!object(layer))
37
+ return false;
38
+ if (exact !== undefined && !('facets' in layer)) {
39
+ const pattern = Object.getOwnPropertyDescriptor(layer, 'builtinPattern');
40
+ if (pattern) {
41
+ if ('baseComponent' in layer || 'annotation' in layer || !('value' in pattern) || !object(pattern.value))
42
+ return false;
43
+ const name = Object.getOwnPropertyDescriptor(pattern.value, 'name'), index = Object.getOwnPropertyDescriptor(pattern.value, 'index');
44
+ if (!name || !('value' in name) || typeof name.value !== 'string' || !name.value
45
+ || !index || !('value' in index) || !Number.isSafeInteger(index.value) || index.value < 0)
46
+ return false;
47
+ budget.chargeWork(name.value.length + 32);
48
+ continue;
49
+ }
50
+ const selected = Object.getOwnPropertyDescriptor(layer, 'baseComponent');
51
+ if ('annotation' in layer || !selected || !('value' in selected)
52
+ || !Number.isSafeInteger(selected.value) || selected.value < 0)
53
+ return false;
54
+ continue;
55
+ }
56
+ if (!Array.isArray(layer.facets) || exact !== undefined && !layer.facets.length)
57
+ return false;
58
+ if (exact !== undefined && 'builtinPattern' in layer)
59
+ return false;
60
+ budget.chargeWork(layer.facets.length * 4);
61
+ if (exact !== undefined) {
62
+ const first = layer.facets[0];
63
+ if (!object(first) || typeof first.name !== 'string'
64
+ || layer.facets.some((facet) => !object(facet) || facet.name !== first.name)
65
+ || layer.facets.length > 1 && !['pattern', 'enumeration'].includes(first.name))
66
+ return false;
67
+ const annotation = Object.getOwnPropertyDescriptor(layer, 'annotation');
68
+ if (annotation && (!('value' in annotation) || annotation.value !== undefined
69
+ && !validateFacetAnnotation(annotation.value, budget)))
70
+ return false;
71
+ }
72
+ for (const facet of layer.facets) {
73
+ budget.chargeWork(8);
74
+ if (!object(facet) || !facetNames.includes(facet.name) || typeof facet.fixed !== 'boolean' || !object(facet.lexical) || typeof facet.lexical.value !== 'string' || !object(facet.lexical.context) || !object(facet.lexical.context.namespaces) || !object(facet.lexical.context.source))
75
+ return false;
76
+ budget.chargeWork(56);
77
+ const annotation = Object.getOwnPropertyDescriptor(facet, 'annotation');
78
+ if (annotation && (!('value' in annotation) || annotation.value !== undefined &&
79
+ (exact !== undefined || annotation.value !== 'absent')))
80
+ return false;
81
+ if (facet.operand !== undefined && (!object(facet.operand) || !object(facet.operand.type) || typeof facet.operand.owner !== 'string' || !['original', 'active'].includes(facet.operand.context)))
82
+ return false;
83
+ if (facet.operand !== undefined && !['enumeration', 'minInclusive', 'minExclusive', 'maxInclusive', 'maxExclusive'].includes(facet.name))
84
+ return false;
85
+ if (facet.operand !== undefined)
86
+ assertSemanticTypeReferenceShape(facet.operand.type, budget);
87
+ budget.chargeWork(facet.lexical.value.length + 4);
88
+ for (const namespace in facet.lexical.context.namespaces) {
89
+ budget.chargeWork(namespace.length + 1);
90
+ if (typeof facet.lexical.context.namespaces[namespace] !== 'string')
91
+ return false;
92
+ }
93
+ }
94
+ }
95
+ if (!object(value.provenance))
96
+ return false;
97
+ if (value.provenance.kind === 'actual-mapped')
98
+ return typeof value.provenance.original === 'string';
99
+ if (value.provenance.kind !== 'hypothetical-abstract' || !Array.isArray(value.provenance.originals))
100
+ return false;
101
+ budget.chargeWork(value.provenance.originals.length + 1);
102
+ return value.provenance.originals.every(id => typeof id === 'string');
103
+ }
@@ -0,0 +1,27 @@
1
+ import type { ExpandedName, SyntaxElement, SyntaxSource } from '../loader/orderedSyntax.js';
2
+ import type { SemanticBudget } from './semanticBudget.js';
3
+ export type SourceGrammarRole = 'schema' | 'include' | 'import' | 'redefine' | 'annotation' | 'appinfo' | 'documentation' | 'openAttrs' | 'annotated' | 'anyType' | 'complexType' | 'topLevelComplexType' | 'localComplexType' | 'complexContent' | 'simpleContent' | 'restrictionType' | 'complexRestrictionType' | 'extensionType' | 'simpleRestrictionType' | 'simpleExtensionType' | 'simpleType' | 'topLevelSimpleType' | 'localSimpleType' | 'restriction' | 'list' | 'union' | 'element' | 'topLevelElement' | 'localElement' | 'narrowMaxMin' | 'attribute' | 'topLevelAttribute' | 'attributeGroup' | 'namedAttributeGroup' | 'attributeGroupRef' | 'group' | 'realGroup' | 'namedGroup' | 'groupRef' | 'explicitGroup' | 'simpleExplicitGroup' | 'all' | 'localAll' | 'wildcard' | 'any' | 'selector' | 'field' | 'keybase' | 'keyref' | 'notation' | 'facet' | 'noFixedFacet' | 'numFacet' | 'totalDigits' | 'whiteSpace' | 'pattern';
4
+ export declare function globalSourceRole(name: ExpandedName): SourceGrammarRole | undefined;
5
+ export declare function namedSourceRole(name: ExpandedName): SourceGrammarRole | undefined;
6
+ export declare function sourceRoleTypeName(role: SourceGrammarRole): string | undefined;
7
+ export declare function abstractSourceRole(role: SourceGrammarRole): boolean;
8
+ export type SourceGrammarResult = Readonly<{
9
+ kind: 'checked';
10
+ hasIdAttributeUse: boolean;
11
+ attributes: readonly Readonly<{
12
+ index: number;
13
+ type: string;
14
+ }>[];
15
+ children: readonly Readonly<{
16
+ index: number;
17
+ role?: SourceGrammarRole;
18
+ }>[];
19
+ }> | Readonly<{
20
+ kind: 'invalid-schema';
21
+ rule: 'schema-for-schemas';
22
+ message: string;
23
+ source: SyntaxSource;
24
+ }>;
25
+ /** Immediate clauses only. The owned walk preserves roles, values and all scopes. */
26
+ export declare function assessSourceGrammar(role: SourceGrammarRole, node: SyntaxElement, budget: SemanticBudget): SourceGrammarResult;
27
+ //# sourceMappingURL=schemaSourceGrammar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaSourceGrammar.d.ts","sourceRoot":"","sources":["../../src/compiler/schemaSourceGrammar.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAC1F,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAExD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,GAAG,eAAe,GACrH,WAAW,GAAG,WAAW,GAAG,SAAS,GAAG,aAAa,GAAG,qBAAqB,GAAG,kBAAkB,GAClG,gBAAgB,GAAG,eAAe,GAAG,iBAAiB,GAAG,wBAAwB,GAAG,eAAe,GACnG,uBAAuB,GAAG,qBAAqB,GAAG,YAAY,GAAG,oBAAoB,GAAG,iBAAiB,GACzG,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,iBAAiB,GAAG,cAAc,GAAG,cAAc,GAClG,WAAW,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,mBAAmB,GAClG,OAAO,GAAG,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,eAAe,GAAG,qBAAqB,GAAG,KAAK,GAAG,UAAU,GAChH,UAAU,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAC7E,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,CAAC;AA2FrF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,iBAAiB,GAAG,SAAS,CAElF;AACD,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,iBAAiB,GAAG,SAAS,CAEjF;AACD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAA+B;AAC9G,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAwC;AAE5G,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAC1D,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,SAAS,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,EAAE,CAAC;IAC/D,QAAQ,EAAE,SAAS,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,iBAAiB,CAAA;KAAC,CAAC,EAAE,CAAC;CAC1E,CAAC,GAAG,QAAQ,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,oBAAoB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAC,CAAC,CAAC;AAE3G,qFAAqF;AACrF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,GAAG,mBAAmB,CAsG7H"}
@@ -0,0 +1,290 @@
1
+ /** Closed contextual grammar of the dated 2004 Structures/Datatypes S4S. */
2
+ import { XSD_NAMESPACE } from '../loader/orderedSyntax.js';
3
+ const id = { id: 'ID' }, occurs = { minOccurs: 'nonNegativeInteger', maxOccurs: 'allNNI' };
4
+ const complexAttrs = { ...id, name: 'NCName', mixed: 'boolean', abstract: 'boolean', final: 'derivationSet', block: 'derivationSet' };
5
+ const commonElement = { ...id, name: 'NCName', type: 'QName', default: 'string', fixed: 'string', nillable: 'boolean', block: 'blockSet' };
6
+ const localElement = { ...commonElement, ref: 'QName', form: 'formChoice', ...occurs };
7
+ const attribute = { ...id, name: 'NCName', ref: 'QName', type: 'QName', use: '#use', default: 'string', fixed: 'string', form: 'formChoice' };
8
+ const wild = { ...id, namespace: 'namespaceList', processContents: '#process' };
9
+ const facet = { ...id, value: 'anySimpleType', fixed: 'boolean' };
10
+ const roles = Object.freeze({
11
+ schema: { attrs: { ...id, targetNamespace: 'anyURI', version: 'token', finalDefault: 'fullDerivationSet', blockDefault: 'blockSet',
12
+ attributeFormDefault: 'formChoice', elementFormDefault: 'formChoice' }, model: 'schema' },
13
+ include: { attrs: { ...id, schemaLocation: 'anyURI' }, required: ['schemaLocation'], annotation: true, model: 'none' },
14
+ import: { attrs: { ...id, namespace: 'anyURI', schemaLocation: 'anyURI' }, annotation: true, model: 'none' },
15
+ redefine: { attrs: { ...id, schemaLocation: 'anyURI' }, required: ['schemaLocation'], model: 'redefine' },
16
+ annotation: { attrs: id, model: 'annotation' },
17
+ appinfo: { attrs: { source: 'anyURI' }, model: 'mixed' }, documentation: { attrs: { source: 'anyURI' }, model: 'mixed' },
18
+ openAttrs: { attrs: {}, model: 'none', empty: true, typeName: 'openAttrs' },
19
+ annotated: { attrs: id, model: 'none', annotation: true, typeName: 'annotated' },
20
+ anyType: { attrs: {}, model: 'mixed', typeName: 'anyType' },
21
+ complexType: { attrs: complexAttrs, annotation: true, model: 'complex', abstract: true, typeName: 'complexType' },
22
+ topLevelComplexType: { attrs: complexAttrs, required: ['name'], annotation: true, model: 'complex', typeName: 'topLevelComplexType' },
23
+ localComplexType: { attrs: { ...id, mixed: 'boolean' }, annotation: true, model: 'complex', typeName: 'localComplexType' },
24
+ complexContent: { attrs: { ...id, mixed: 'boolean' }, annotation: true, model: 'complexContent' },
25
+ simpleContent: { attrs: id, annotation: true, model: 'simpleContent' },
26
+ restrictionType: { attrs: { ...id, base: 'QName' }, required: ['base'], annotation: true, model: 'restrictionType', typeName: 'restrictionType' },
27
+ complexRestrictionType: { attrs: { ...id, base: 'QName' }, required: ['base'], annotation: true, model: 'particleAttrs', typeName: 'complexRestrictionType' },
28
+ extensionType: { attrs: { ...id, base: 'QName' }, required: ['base'], annotation: true, model: 'particleAttrs', typeName: 'extensionType' },
29
+ simpleRestrictionType: { attrs: { ...id, base: 'QName' }, required: ['base'], annotation: true, model: 'simpleAttrs', typeName: 'simpleRestrictionType' },
30
+ simpleExtensionType: { attrs: { ...id, base: 'QName' }, required: ['base'], annotation: true, model: 'attrs', typeName: 'simpleExtensionType' },
31
+ simpleType: { attrs: { ...id, name: 'NCName', final: 'simpleDerivationSet' }, annotation: true, model: 'simple', abstract: true, typeName: 'simpleType' },
32
+ topLevelSimpleType: { attrs: { ...id, name: 'NCName', final: 'simpleDerivationSet' }, required: ['name'], annotation: true, model: 'simple', typeName: 'topLevelSimpleType' },
33
+ localSimpleType: { attrs: id, annotation: true, model: 'simple', typeName: 'localSimpleType' },
34
+ restriction: { attrs: { ...id, base: 'QName' }, annotation: true, model: 'restriction' },
35
+ list: { attrs: { ...id, itemType: 'QName' }, annotation: true, model: 'list' },
36
+ union: { attrs: { ...id, memberTypes: '#qnames' }, annotation: true, model: 'union' },
37
+ element: { attrs: { ...localElement, substitutionGroup: 'QName', abstract: 'boolean', final: 'derivationSet' }, annotation: true,
38
+ model: 'element', abstract: true, typeName: 'element' },
39
+ topLevelElement: { attrs: { ...commonElement, substitutionGroup: 'QName', abstract: 'boolean', final: 'derivationSet' }, required: ['name'],
40
+ annotation: true, model: 'element', typeName: 'topLevelElement' },
41
+ localElement: { attrs: localElement, annotation: true, model: 'element', typeName: 'localElement' },
42
+ narrowMaxMin: { attrs: { ...localElement, minOccurs: '#zeroOne', maxOccurs: '#maxZeroOne' }, annotation: true, model: 'element', typeName: 'narrowMaxMin' },
43
+ attribute: { attrs: attribute, annotation: true, model: 'attribute', typeName: 'attribute' },
44
+ topLevelAttribute: { attrs: { ...id, name: 'NCName', type: 'QName', default: 'string', fixed: 'string' }, required: ['name'],
45
+ annotation: true, model: 'attribute', typeName: 'topLevelAttribute' },
46
+ attributeGroup: { attrs: { ...id, name: 'NCName', ref: 'QName' }, annotation: true, model: 'attrs', abstract: true, typeName: 'attributeGroup' },
47
+ namedAttributeGroup: { attrs: { ...id, name: 'NCName' }, required: ['name'], annotation: true, model: 'attrs', typeName: 'namedAttributeGroup' },
48
+ attributeGroupRef: { attrs: { ...id, ref: 'QName' }, required: ['ref'], annotation: true, model: 'none', typeName: 'attributeGroupRef' },
49
+ group: { attrs: { ...id, name: 'NCName', ref: 'QName', ...occurs }, annotation: true, model: 'group', abstract: true, typeName: 'group' },
50
+ realGroup: { attrs: { ...id, name: 'NCName', ref: 'QName', ...occurs }, annotation: true, model: 'realGroup', typeName: 'realGroup' },
51
+ namedGroup: { attrs: { ...id, name: 'NCName' }, required: ['name'], annotation: true, model: 'namedGroup', typeName: 'namedGroup' },
52
+ groupRef: { attrs: { ...id, ref: 'QName', ...occurs }, required: ['ref'], annotation: true, model: 'none', typeName: 'groupRef' },
53
+ explicitGroup: { attrs: { ...id, ...occurs }, annotation: true, model: 'explicitGroup', typeName: 'explicitGroup' },
54
+ simpleExplicitGroup: { attrs: id, annotation: true, model: 'explicitGroup', typeName: 'simpleExplicitGroup' },
55
+ all: { attrs: { ...id, minOccurs: '#zeroOne', maxOccurs: '#maxOne' }, annotation: true, model: 'all', typeName: 'all' },
56
+ localAll: { attrs: id, annotation: true, model: 'all' },
57
+ wildcard: { attrs: wild, annotation: true, model: 'none', typeName: 'wildcard' },
58
+ any: { attrs: { ...wild, ...occurs }, annotation: true, model: 'none' },
59
+ selector: { attrs: { ...id, xpath: '#selector' }, required: ['xpath'], annotation: true, model: 'none' },
60
+ field: { attrs: { ...id, xpath: '#field' }, required: ['xpath'], annotation: true, model: 'none' },
61
+ keybase: { attrs: { ...id, name: 'NCName' }, required: ['name'], annotation: true, model: 'keybase', typeName: 'keybase' },
62
+ keyref: { attrs: { ...id, name: 'NCName', refer: 'QName' }, required: ['name', 'refer'], annotation: true, model: 'keybase' },
63
+ notation: { attrs: { ...id, name: 'NCName', public: 'public', system: 'anyURI' }, required: ['name'], annotation: true, model: 'none' },
64
+ facet: { attrs: facet, required: ['value'], annotation: true, model: 'none', typeName: 'facet' },
65
+ noFixedFacet: { attrs: { ...id, value: 'anySimpleType' }, required: ['value'], annotation: true, model: 'none', typeName: 'noFixedFacet' },
66
+ numFacet: { attrs: { ...facet, value: 'nonNegativeInteger' }, required: ['value'], annotation: true, model: 'none', typeName: 'numFacet' },
67
+ totalDigits: { attrs: { ...facet, value: 'positiveInteger' }, required: ['value'], annotation: true, model: 'none' },
68
+ whiteSpace: { attrs: { ...facet, value: '#whiteSpace' }, required: ['value'], annotation: true, model: 'none' },
69
+ pattern: { attrs: { ...id, value: 'string' }, required: ['value'], annotation: true, model: 'none' },
70
+ });
71
+ const globals = Object.freeze({
72
+ schema: 'schema', include: 'include', import: 'import', redefine: 'redefine', annotation: 'annotation', appinfo: 'appinfo', documentation: 'documentation',
73
+ complexType: 'topLevelComplexType', simpleType: 'topLevelSimpleType', complexContent: 'complexContent', simpleContent: 'simpleContent',
74
+ restriction: 'restriction', list: 'list', union: 'union', element: 'topLevelElement', attribute: 'topLevelAttribute', group: 'namedGroup',
75
+ attributeGroup: 'namedAttributeGroup', all: 'all', choice: 'explicitGroup', sequence: 'explicitGroup', any: 'any', anyAttribute: 'wildcard',
76
+ selector: 'selector', field: 'field', key: 'keybase', unique: 'keybase', keyref: 'keyref', notation: 'notation',
77
+ minExclusive: 'facet', minInclusive: 'facet', maxExclusive: 'facet', maxInclusive: 'facet', enumeration: 'noFixedFacet',
78
+ totalDigits: 'totalDigits', fractionDigits: 'numFacet', length: 'numFacet', minLength: 'numFacet', maxLength: 'numFacet',
79
+ whiteSpace: 'whiteSpace', pattern: 'pattern',
80
+ });
81
+ const named = new Map(Object.entries(roles).flatMap(([role, definition]) => definition.typeName ? [[definition.typeName, role]] : []));
82
+ const facets = new Set(['minExclusive', 'minInclusive', 'maxExclusive', 'maxInclusive', 'totalDigits', 'fractionDigits', 'length', 'minLength', 'maxLength', 'enumeration', 'whiteSpace', 'pattern']);
83
+ const schemaTop = new Set(['simpleType', 'complexType', 'group', 'attributeGroup', 'element', 'attribute', 'notation']);
84
+ const redefinable = new Set(['simpleType', 'complexType', 'group', 'attributeGroup']);
85
+ const nestedParticles = new Set(['element', 'group', 'choice', 'sequence', 'any']);
86
+ const particles = new Set([...nestedParticles, 'all']);
87
+ export function globalSourceRole(name) {
88
+ return name.namespace === XSD_NAMESPACE && Object.hasOwn(globals, name.local) ? globals[name.local] : undefined;
89
+ }
90
+ export function namedSourceRole(name) {
91
+ return name.namespace === XSD_NAMESPACE ? named.get(name.local) : undefined;
92
+ }
93
+ export function sourceRoleTypeName(role) { return roles[role].typeName; }
94
+ export function abstractSourceRole(role) { return roles[role].abstract === true; }
95
+ /** Immediate clauses only. The owned walk preserves roles, values and all scopes. */
96
+ export function assessSourceGrammar(role, node, budget) {
97
+ budget.chargeWork(15);
98
+ const definition = roles[role];
99
+ const invalid = (message) => ({ kind: 'invalid-schema', rule: 'schema-for-schemas', message, source: node.source });
100
+ const attributes = [], children = [];
101
+ const seen = new Set();
102
+ for (let index = 0; index < node.attributes.length; index++) {
103
+ const attr = node.attributes[index];
104
+ budget.chargeWork(6 + attr.name.local.length + attr.name.namespace.length);
105
+ if (role === 'anyType')
106
+ continue;
107
+ if (attr.name.namespace === XSD_NAMESPACE)
108
+ return invalid('The S4S attribute wildcard excludes the XSD namespace');
109
+ if (attr.name.namespace)
110
+ continue;
111
+ if (!Object.hasOwn(definition.attrs, attr.name.local))
112
+ return invalid('Attribute is not permitted by the selected S4S type');
113
+ budget.chargeWork(3);
114
+ seen.add(attr.name.local);
115
+ attributes.push({ index, type: definition.attrs[attr.name.local] });
116
+ }
117
+ for (const required of definition.required ?? []) {
118
+ budget.chargeWork(2);
119
+ if (!seen.has(required))
120
+ return invalid(`S4S ${required} attribute is required`);
121
+ }
122
+ const elements = [];
123
+ for (let index = 0; index < node.children.length; index++) {
124
+ const child = node.children[index];
125
+ budget.chargeWork(4);
126
+ if (child.kind === 'text') {
127
+ budget.chargeWork(child.value.length * 4);
128
+ if (definition.empty || definition.model !== 'mixed' && /[^\t\r\n ]/.test(child.value))
129
+ return invalid('Text is not permitted by the selected S4S content type');
130
+ }
131
+ else {
132
+ budget.chargeWork(3);
133
+ elements.push({ node: child, index });
134
+ }
135
+ }
136
+ let at = 0;
137
+ const local = () => {
138
+ budget.chargeWork(3);
139
+ const item = elements[at]?.node;
140
+ return item?.name.namespace === XSD_NAMESPACE ? item.name.local : undefined;
141
+ };
142
+ const take = (selected) => { budget.chargeWork(3); children.push({ index: elements[at++].index, role: selected }); };
143
+ const optional = (name, selected) => { if (local() !== name)
144
+ return false; take(selected); return true; };
145
+ const global = () => { const name = local(); take(globals[name]); };
146
+ const particle = () => {
147
+ const name = local();
148
+ if (name === 'group') {
149
+ take('groupRef');
150
+ return true;
151
+ }
152
+ if (name === 'all' || name === 'choice' || name === 'sequence') {
153
+ global();
154
+ return true;
155
+ }
156
+ return false;
157
+ };
158
+ const attrs = () => {
159
+ while (local() === 'attribute' || local() === 'attributeGroup')
160
+ take(local() === 'attribute' ? 'attribute' : 'attributeGroupRef');
161
+ optional('anyAttribute', 'wildcard');
162
+ };
163
+ const simpleRestriction = () => {
164
+ optional('simpleType', 'localSimpleType');
165
+ while (facets.has(local() ?? ''))
166
+ global();
167
+ };
168
+ if (definition.annotation)
169
+ optional('annotation', 'annotation');
170
+ switch (definition.model) {
171
+ case 'mixed':
172
+ while (at < elements.length)
173
+ take();
174
+ break;
175
+ case 'annotation':
176
+ while (local() === 'appinfo' || local() === 'documentation')
177
+ global();
178
+ break;
179
+ case 'schema': {
180
+ while (['include', 'import', 'redefine', 'annotation'].includes(local() ?? ''))
181
+ global();
182
+ while (schemaTop.has(local() ?? '')) {
183
+ global();
184
+ while (local() === 'annotation')
185
+ global();
186
+ }
187
+ break;
188
+ }
189
+ case 'redefine':
190
+ while (local() === 'annotation' || redefinable.has(local() ?? ''))
191
+ global();
192
+ break;
193
+ case 'complex':
194
+ if (local() === 'simpleContent' || local() === 'complexContent')
195
+ global();
196
+ else {
197
+ particle();
198
+ attrs();
199
+ }
200
+ break;
201
+ case 'complexContent':
202
+ case 'simpleContent': {
203
+ const restriction = local() === 'restriction', extension = local() === 'extension';
204
+ if (!restriction && !extension)
205
+ return invalid('Content wrapper requires one derivation child');
206
+ take(definition.model === 'complexContent' ? restriction ? 'complexRestrictionType' : 'extensionType'
207
+ : restriction ? 'simpleRestrictionType' : 'simpleExtensionType');
208
+ break;
209
+ }
210
+ case 'restrictionType':
211
+ if (!particle())
212
+ simpleRestriction();
213
+ attrs();
214
+ break;
215
+ case 'particleAttrs':
216
+ particle();
217
+ attrs();
218
+ break;
219
+ case 'simpleAttrs':
220
+ simpleRestriction();
221
+ attrs();
222
+ break;
223
+ case 'attrs':
224
+ attrs();
225
+ break;
226
+ case 'simple':
227
+ if (!['restriction', 'list', 'union'].includes(local() ?? ''))
228
+ return invalid('Simple type requires one derivation child');
229
+ else
230
+ global();
231
+ break;
232
+ case 'restriction':
233
+ simpleRestriction();
234
+ break;
235
+ case 'list':
236
+ optional('simpleType', 'localSimpleType');
237
+ break;
238
+ case 'union':
239
+ while (optional('simpleType', 'localSimpleType')) {
240
+ budget.chargeWork();
241
+ }
242
+ break;
243
+ case 'element':
244
+ if (local() === 'simpleType' || local() === 'complexType')
245
+ take(local() === 'simpleType' ? 'localSimpleType' : 'localComplexType');
246
+ while (['key', 'unique', 'keyref'].includes(local() ?? ''))
247
+ global();
248
+ break;
249
+ case 'attribute':
250
+ optional('simpleType', 'localSimpleType');
251
+ break;
252
+ case 'namedGroup':
253
+ if (local() === 'all')
254
+ take('localAll');
255
+ else if (local() === 'choice' || local() === 'sequence')
256
+ take('simpleExplicitGroup');
257
+ else
258
+ return invalid('Named group requires one compositor');
259
+ break;
260
+ case 'realGroup':
261
+ if (['all', 'choice', 'sequence'].includes(local() ?? ''))
262
+ global();
263
+ break;
264
+ case 'group':
265
+ case 'explicitGroup':
266
+ while ((definition.model === 'group' ? particles : nestedParticles).has(local() ?? '')) {
267
+ const name = local();
268
+ take(name === 'element' ? 'localElement' : name === 'group' ? 'groupRef' : globals[name]);
269
+ }
270
+ break;
271
+ case 'all':
272
+ while (optional('element', 'narrowMaxMin')) {
273
+ budget.chargeWork();
274
+ }
275
+ break;
276
+ case 'keybase':
277
+ if (!optional('selector', 'selector') || !optional('field', 'field'))
278
+ return invalid('Identity constraint requires selector and at least one field');
279
+ while (optional('field', 'field')) {
280
+ budget.chargeWork();
281
+ }
282
+ break;
283
+ case 'none': break;
284
+ }
285
+ if (at !== elements.length)
286
+ return invalid('Children do not match the selected contextual S4S grammar');
287
+ // Every ID use in this closed grammar is the unqualified id declaration.
288
+ // cvc-complex-type 5.2 depends on the use even when the attribute is absent.
289
+ return { kind: 'checked', hasIdAttributeUse: definition.attrs.id === 'ID', attributes, children };
290
+ }
@@ -0,0 +1,4 @@
1
+ export declare function schemaBooleanLexical(value: string): boolean;
2
+ export declare function schemaNonNegativeIntegerLexical(value: string): boolean;
3
+ export declare function schemaPositiveIntegerLexical(value: string): boolean;
4
+ //# sourceMappingURL=schemaSourceLexical.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaSourceLexical.d.ts","sourceRoot":"","sources":["../../src/compiler/schemaSourceLexical.ts"],"names":[],"mappings":"AAGA,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtE;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGnE"}
@@ -0,0 +1,12 @@
1
+ /** Exact source datatype spellings; callers charge the original lexical length. */
2
+ import { normalizeWhitespace } from '../util/xmlWhitespace.js';
3
+ export function schemaBooleanLexical(value) {
4
+ return ['true', 'false', '1', '0'].includes(normalizeWhitespace(value, 'collapse'));
5
+ }
6
+ export function schemaNonNegativeIntegerLexical(value) {
7
+ return /^(?:\+?[0-9]+|-0+)$/.test(normalizeWhitespace(value, 'collapse'));
8
+ }
9
+ export function schemaPositiveIntegerLexical(value) {
10
+ const normalized = normalizeWhitespace(value, 'collapse');
11
+ return schemaNonNegativeIntegerLexical(normalized) && /[1-9]/.test(normalized);
12
+ }
@@ -0,0 +1,51 @@
1
+ import type { ExpandedName, SyntaxElement, SyntaxSource } from '../loader/orderedSyntax.js';
2
+ import type { SchemaOperand } from './schemaDatatypeValues.js';
3
+ import type { SchemaLexicalOperand } from './schemaValueContext.js';
4
+ import type { ResourceLimitFailure, SemanticBudget } from './semanticBudget.js';
5
+ declare const fixedType: unique symbol;
6
+ export type FixedSimpleTypeHandle = Readonly<{
7
+ [fixedType]: true;
8
+ }>;
9
+ export type SourceIdentityFact = Readonly<{
10
+ kind: 'ID' | 'IDREF';
11
+ value: string;
12
+ source: SyntaxSource;
13
+ }>;
14
+ export type SourceValueObligation = Readonly<{
15
+ rule: string;
16
+ source: SyntaxSource;
17
+ name?: ExpandedName;
18
+ }>;
19
+ export type SourceValueFailure = Readonly<{
20
+ kind: 'invalid-schema' | 'unsupported-capability' | 'unresolved';
21
+ rule: string;
22
+ message: string;
23
+ source: SyntaxSource;
24
+ }>;
25
+ export type SourceValueResult = Readonly<{
26
+ kind: 'checked';
27
+ value: SchemaOperand;
28
+ type: FixedSimpleTypeHandle;
29
+ selectedMembers: readonly FixedSimpleTypeHandle[];
30
+ identityFacts: readonly SourceIdentityFact[];
31
+ obligations: readonly SourceValueObligation[];
32
+ }> | SourceValueFailure | ResourceLimitFailure;
33
+ export type FixedSimpleTypeLookup = Readonly<{
34
+ kind: 'found';
35
+ type: FixedSimpleTypeHandle;
36
+ }> | Readonly<{
37
+ kind: 'missing';
38
+ }> | ResourceLimitFailure;
39
+ /**
40
+ * Internal fixed descriptor factory. Handles are authentic only in this factory.
41
+ * Name/lexical/diagnostic records are borrowed immutable data from the authentic
42
+ * DTD-free ordered source traversal; this leaf does not establish membership.
43
+ */
44
+ export declare function createSchemaSourceValues(budget: SemanticBudget): Readonly<{
45
+ /** Closed internal grammar domain; this never accepts caller descriptors. */
46
+ fixed: (name: string) => FixedSimpleTypeHandle;
47
+ lookup: (name: ExpandedName) => FixedSimpleTypeLookup;
48
+ assess: (type: FixedSimpleTypeHandle, lexical: SchemaLexicalOperand, owner: SyntaxElement) => SourceValueResult;
49
+ }>;
50
+ export {};
51
+ //# sourceMappingURL=schemaSourceValues.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaSourceValues.d.ts","sourceRoot":"","sources":["../../src/compiler/schemaSourceValues.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAE1F,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAC,oBAAoB,EAAqB,MAAM,yBAAyB,CAAC;AAItF,OAAO,KAAK,EAAC,oBAAoB,EAAE,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAE9E,OAAO,CAAC,MAAM,SAAS,EAAE,OAAO,MAAM,CAAC;AACvC,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAA;CAAC,CAAC,CAAC;AAClE,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAC,CAAC,CAAC;AACvG,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAC;IAAC,IAAI,CAAC,EAAE,YAAY,CAAA;CAAC,CAAC,CAAC;AACxG,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IAAC,IAAI,EAAE,gBAAgB,GAAG,wBAAwB,GAAG,YAAY,CAAC;IAC1G,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAC,CAAC,CAAC;AACxD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,qBAAqB,CAAC;IAC3G,eAAe,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAAC,aAAa,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChG,WAAW,EAAE,SAAS,qBAAqB,EAAE,CAAA;CAAC,CAAC,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;AAC9F,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,qBAAqB,CAAA;CAAC,CAAC,GACtF,QAAQ,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAC,CAAC,GAAG,oBAAoB,CAAC;AA2DvD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,cAAc;IAqG3D,6EAA6E;kBAjF1D,MAAM,KAAG,qBAAqB;mBAmFlC,YAAY,KAAG,qBAAqB;mBAOpC,qBAAqB,WAAW,oBAAoB,SAAS,aAAa,KAAG,iBAAiB;GAkBhH"}