@techspokes/typescript-wsdl-client 1.1.4 → 1.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. package/README.md +81 -35
  2. package/dist/app/generateApp.d.ts +0 -1
  3. package/dist/app/generateApp.js +8 -6
  4. package/dist/app/generateCheckedApp.d.ts +38 -0
  5. package/dist/app/generateCheckedApp.js +108 -0
  6. package/dist/checkedPipeline.d.ts +155 -0
  7. package/dist/checkedPipeline.js +448 -0
  8. package/dist/checkedPlanning.d.ts +123 -0
  9. package/dist/checkedPlanning.js +245 -0
  10. package/dist/cli.d.ts +0 -1
  11. package/dist/cli.js +123 -5
  12. package/dist/client/checkedDirectRuntime.d.ts +96 -0
  13. package/dist/client/checkedDirectRuntime.js +43 -0
  14. package/dist/client/directClientRuntime.d.ts +74 -0
  15. package/dist/client/directClientRuntime.js +165 -0
  16. package/dist/client/directClientVersion.d.ts +6 -0
  17. package/dist/client/directClientVersion.js +6 -0
  18. package/dist/client/generateClient.d.ts +0 -1
  19. package/dist/client/generateClient.js +26 -12
  20. package/dist/client/generateDirectClient.d.ts +32 -0
  21. package/dist/client/generateDirectClient.js +268 -0
  22. package/dist/client/generateOperations.d.ts +0 -1
  23. package/dist/client/generateTypes.d.ts +0 -1
  24. package/dist/client/generateUtils.d.ts +0 -1
  25. package/dist/client/generateUtils.js +3 -1
  26. package/dist/compiler/applicationGroups.d.ts +53 -0
  27. package/dist/compiler/applicationGroups.js +403 -0
  28. package/dist/compiler/buildCanonicalGraph.d.ts +6 -0
  29. package/dist/compiler/buildCanonicalGraph.js +381 -0
  30. package/dist/compiler/canonicalGraph.d.ts +197 -0
  31. package/dist/compiler/canonicalGraph.js +37 -0
  32. package/dist/compiler/catalogErrors.d.ts +17 -0
  33. package/dist/compiler/catalogErrors.js +86 -0
  34. package/dist/compiler/catalogProvenance.d.ts +14 -0
  35. package/dist/compiler/catalogProvenance.js +229 -0
  36. package/dist/compiler/checkedAssessment.d.ts +90 -0
  37. package/dist/compiler/checkedAssessment.js +300 -0
  38. package/dist/compiler/checkedComponentSource.d.ts +16 -0
  39. package/dist/compiler/checkedComponentSource.js +31 -0
  40. package/dist/compiler/checkedSourcePreparation.d.ts +72 -0
  41. package/dist/compiler/checkedSourcePreparation.js +202 -0
  42. package/dist/compiler/complexTypeContent.d.ts +58 -0
  43. package/dist/compiler/complexTypeContent.js +558 -0
  44. package/dist/compiler/componentCorrespondence.d.ts +32 -0
  45. package/dist/compiler/componentCorrespondence.js +140 -0
  46. package/dist/compiler/componentRecordProjection.d.ts +109 -0
  47. package/dist/compiler/componentRecordProjection.js +319 -0
  48. package/dist/compiler/componentSoapPreparation.d.ts +20 -0
  49. package/dist/compiler/componentSoapPreparation.js +36 -0
  50. package/dist/compiler/composeCanonicalGraph.d.ts +68 -0
  51. package/dist/compiler/composeCanonicalGraph.js +252 -0
  52. package/dist/compiler/dataOwnership.d.ts +21 -0
  53. package/dist/compiler/dataOwnership.js +167 -0
  54. package/dist/compiler/datatypeValues.d.ts +46 -0
  55. package/dist/compiler/datatypeValues.js +275 -0
  56. package/dist/compiler/directCodec.d.ts +116 -0
  57. package/dist/compiler/directCodec.js +377 -0
  58. package/dist/compiler/directExecutionPolicy.d.ts +9 -0
  59. package/dist/compiler/directExecutionPolicy.js +17 -0
  60. package/dist/compiler/directOperation.d.ts +114 -0
  61. package/dist/compiler/directOperation.js +373 -0
  62. package/dist/compiler/directSoap.d.ts +66 -0
  63. package/dist/compiler/directSoap.js +391 -0
  64. package/dist/compiler/directSoapSource.d.ts +38 -0
  65. package/dist/compiler/directSoapSource.js +233 -0
  66. package/dist/compiler/directSourceCapsule.d.ts +169 -0
  67. package/dist/compiler/directSourceCapsule.js +727 -0
  68. package/dist/compiler/directStructure.d.ts +128 -0
  69. package/dist/compiler/directStructure.js +543 -0
  70. package/dist/compiler/directStructurePlan.d.ts +149 -0
  71. package/dist/compiler/directStructurePlan.js +623 -0
  72. package/dist/compiler/directValues.d.ts +128 -0
  73. package/dist/compiler/directValues.js +1116 -0
  74. package/dist/compiler/finiteRe01Construction.d.ts +69 -0
  75. package/dist/compiler/finiteRe01Construction.js +422 -0
  76. package/dist/compiler/finiteRe01Verification.d.ts +218 -0
  77. package/dist/compiler/finiteRe01Verification.js +1217 -0
  78. package/dist/compiler/generateCatalog.d.ts +0 -1
  79. package/dist/compiler/graphTraversal.d.ts +10 -0
  80. package/dist/compiler/graphTraversal.js +37 -0
  81. package/dist/compiler/hypotheticalScopedIdentity.d.ts +22 -0
  82. package/dist/compiler/hypotheticalScopedIdentity.js +81 -0
  83. package/dist/compiler/occurrenceAnalysis.d.ts +66 -0
  84. package/dist/compiler/occurrenceAnalysis.js +316 -0
  85. package/dist/compiler/originalSourceMembership.d.ts +5 -0
  86. package/dist/compiler/originalSourceMembership.js +31 -0
  87. package/dist/compiler/particleAttribution.d.ts +16 -0
  88. package/dist/compiler/particleAttribution.js +494 -0
  89. package/dist/compiler/particleDeclarationConsistency.d.ts +23 -0
  90. package/dist/compiler/particleDeclarationConsistency.js +206 -0
  91. package/dist/compiler/particleExtension.d.ts +21 -0
  92. package/dist/compiler/particleExtension.js +123 -0
  93. package/dist/compiler/particleLocalAssessment.d.ts +19 -0
  94. package/dist/compiler/particleLocalAssessment.js +92 -0
  95. package/dist/compiler/particleRestriction.d.ts +23 -0
  96. package/dist/compiler/particleRestriction.js +494 -0
  97. package/dist/compiler/particleSemanticView.d.ts +51 -0
  98. package/dist/compiler/particleSemanticView.js +310 -0
  99. package/dist/compiler/particleWildcardRelation.d.ts +87 -0
  100. package/dist/compiler/particleWildcardRelation.js +143 -0
  101. package/dist/compiler/projectionScalar.d.ts +32 -0
  102. package/dist/compiler/projectionScalar.js +184 -0
  103. package/dist/compiler/re01CandidateAssignments.d.ts +95 -0
  104. package/dist/compiler/re01CandidateAssignments.js +341 -0
  105. package/dist/compiler/re01CandidateCorrespondence.d.ts +85 -0
  106. package/dist/compiler/re01CandidateCorrespondence.js +701 -0
  107. package/dist/compiler/re01TypeProperties.d.ts +70 -0
  108. package/dist/compiler/re01TypeProperties.js +120 -0
  109. package/dist/compiler/re01TypePropertyValidation.d.ts +22 -0
  110. package/dist/compiler/re01TypePropertyValidation.js +161 -0
  111. package/dist/compiler/resolveCanonicalGraph.d.ts +41 -0
  112. package/dist/compiler/resolveCanonicalGraph.js +240 -0
  113. package/dist/compiler/scalarSchemaAssessment.d.ts +424 -0
  114. package/dist/compiler/scalarSchemaAssessment.js +5198 -0
  115. package/dist/compiler/schemaAttributeGroupProperties.d.ts +16 -0
  116. package/dist/compiler/schemaAttributeGroupProperties.js +53 -0
  117. package/dist/compiler/schemaAttributeProperties.d.ts +9 -0
  118. package/dist/compiler/schemaAttributeProperties.js +11 -0
  119. package/dist/compiler/schemaAttributeUses.d.ts +110 -0
  120. package/dist/compiler/schemaAttributeUses.js +798 -0
  121. package/dist/compiler/schemaBinaryWordReconstruction.d.ts +9 -0
  122. package/dist/compiler/schemaBinaryWordReconstruction.js +33 -0
  123. package/dist/compiler/schemaBuiltinFacets.d.ts +13 -0
  124. package/dist/compiler/schemaBuiltinFacets.js +51 -0
  125. package/dist/compiler/schemaCalendarImages.d.ts +7 -0
  126. package/dist/compiler/schemaCalendarImages.js +204 -0
  127. package/dist/compiler/schemaCalendarLanguage.d.ts +10 -0
  128. package/dist/compiler/schemaCalendarLanguage.js +227 -0
  129. package/dist/compiler/schemaCompiler.d.ts +0 -1
  130. package/dist/compiler/schemaComponentEquality.d.ts +27 -0
  131. package/dist/compiler/schemaComponentEquality.js +446 -0
  132. package/dist/compiler/schemaConstructionAssessment.d.ts +79 -0
  133. package/dist/compiler/schemaConstructionAssessment.js +745 -0
  134. package/dist/compiler/schemaDatatypeValues.d.ts +3 -0
  135. package/dist/compiler/schemaDatatypeValues.js +2 -0
  136. package/dist/compiler/schemaDecimalLanguage.d.ts +6 -0
  137. package/dist/compiler/schemaDecimalLanguage.js +102 -0
  138. package/dist/compiler/schemaDeclarationPrimitives.d.ts +39 -0
  139. package/dist/compiler/schemaDeclarationPrimitives.js +211 -0
  140. package/dist/compiler/schemaDocumentSyntax.d.ts +54 -0
  141. package/dist/compiler/schemaDocumentSyntax.js +294 -0
  142. package/dist/compiler/schemaDurationLanguage.d.ts +10 -0
  143. package/dist/compiler/schemaDurationLanguage.js +170 -0
  144. package/dist/compiler/schemaElementInstance.d.ts +30 -0
  145. package/dist/compiler/schemaElementInstance.js +45 -0
  146. package/dist/compiler/schemaElementProperties.d.ts +15 -0
  147. package/dist/compiler/schemaElementProperties.js +23 -0
  148. package/dist/compiler/schemaEndpointWordCapacity.d.ts +35 -0
  149. package/dist/compiler/schemaEndpointWordCapacity.js +39 -0
  150. package/dist/compiler/schemaExactCalendar.d.ts +72 -0
  151. package/dist/compiler/schemaExactCalendar.js +264 -0
  152. package/dist/compiler/schemaFacetAnnotation.d.ts +31 -0
  153. package/dist/compiler/schemaFacetAnnotation.js +199 -0
  154. package/dist/compiler/schemaGeneratedScalarShape.d.ts +34 -0
  155. package/dist/compiler/schemaGeneratedScalarShape.js +178 -0
  156. package/dist/compiler/schemaIdentityConstraints.d.ts +72 -0
  157. package/dist/compiler/schemaIdentityConstraints.js +362 -0
  158. package/dist/compiler/schemaIeeeLanguage.d.ts +42 -0
  159. package/dist/compiler/schemaIeeeLanguage.js +759 -0
  160. package/dist/compiler/schemaIntegerImages.d.ts +10 -0
  161. package/dist/compiler/schemaIntegerImages.js +113 -0
  162. package/dist/compiler/schemaLexicalPredicates.d.ts +28 -0
  163. package/dist/compiler/schemaLexicalPredicates.js +63 -0
  164. package/dist/compiler/schemaNotationProperties.d.ts +31 -0
  165. package/dist/compiler/schemaNotationProperties.js +84 -0
  166. package/dist/compiler/schemaNumericImageConditions.d.ts +23 -0
  167. package/dist/compiler/schemaNumericImageConditions.js +66 -0
  168. package/dist/compiler/schemaParticleWildcardProperties.d.ts +19 -0
  169. package/dist/compiler/schemaParticleWildcardProperties.js +43 -0
  170. package/dist/compiler/schemaPattern.d.ts +1061 -0
  171. package/dist/compiler/schemaPattern.js +581 -0
  172. package/dist/compiler/schemaRegularLanguage.d.ts +66 -0
  173. package/dist/compiler/schemaRegularLanguage.js +1166 -0
  174. package/dist/compiler/schemaScalarContext.d.ts +85 -0
  175. package/dist/compiler/schemaScalarContext.js +78 -0
  176. package/dist/compiler/schemaScalarKernel.d.ts +181 -0
  177. package/dist/compiler/schemaScalarKernel.js +391 -0
  178. package/dist/compiler/schemaScalarWitnesses.d.ts +5 -0
  179. package/dist/compiler/schemaScalarWitnesses.js +118 -0
  180. package/dist/compiler/schemaSimpleTypeProperties.d.ts +94 -0
  181. package/dist/compiler/schemaSimpleTypeProperties.js +103 -0
  182. package/dist/compiler/schemaSourceGrammar.d.ts +26 -0
  183. package/dist/compiler/schemaSourceGrammar.js +290 -0
  184. package/dist/compiler/schemaSourceLexical.d.ts +3 -0
  185. package/dist/compiler/schemaSourceLexical.js +12 -0
  186. package/dist/compiler/schemaSourceValues.d.ts +50 -0
  187. package/dist/compiler/schemaSourceValues.js +225 -0
  188. package/dist/compiler/schemaSourceWildcards.d.ts +27 -0
  189. package/dist/compiler/schemaSourceWildcards.js +249 -0
  190. package/dist/compiler/schemaSymbolicSequences.d.ts +15 -0
  191. package/dist/compiler/schemaSymbolicSequences.js +99 -0
  192. package/dist/compiler/schemaSymbolicValueSets.d.ts +31 -0
  193. package/dist/compiler/schemaSymbolicValueSets.js +149 -0
  194. package/dist/compiler/schemaSyntaxAssessment.d.ts +24 -0
  195. package/dist/compiler/schemaSyntaxAssessment.js +361 -0
  196. package/dist/compiler/schemaTemporalAliases.d.ts +5 -0
  197. package/dist/compiler/schemaTemporalAliases.js +195 -0
  198. package/dist/compiler/schemaTokenImages.d.ts +8 -0
  199. package/dist/compiler/schemaTokenImages.js +142 -0
  200. package/dist/compiler/schemaTypeIdentity.d.ts +38 -0
  201. package/dist/compiler/schemaTypeIdentity.js +80 -0
  202. package/dist/compiler/schemaTypeRelations.d.ts +37 -0
  203. package/dist/compiler/schemaTypeRelations.js +576 -0
  204. package/dist/compiler/schemaUri.d.ts +12 -0
  205. package/dist/compiler/schemaUri.js +103 -0
  206. package/dist/compiler/schemaValueContext.d.ts +25 -0
  207. package/dist/compiler/schemaValueContext.js +1 -0
  208. package/dist/compiler/schemaValueImages.d.ts +9 -0
  209. package/dist/compiler/schemaValueImages.js +142 -0
  210. package/dist/compiler/schemaValueSequences.d.ts +14 -0
  211. package/dist/compiler/schemaValueSequences.js +19 -0
  212. package/dist/compiler/semanticBudget.d.ts +67 -0
  213. package/dist/compiler/semanticBudget.js +193 -0
  214. package/dist/compiler/semanticCatalog.d.ts +121 -0
  215. package/dist/compiler/semanticCatalog.js +160 -0
  216. package/dist/compiler/semanticContext.d.ts +183 -0
  217. package/dist/compiler/semanticContext.js +1207 -0
  218. package/dist/compiler/semanticTypeDependencies.d.ts +7 -0
  219. package/dist/compiler/semanticTypeDependencies.js +64 -0
  220. package/dist/compiler/semanticTypeReference.d.ts +23 -0
  221. package/dist/compiler/semanticTypeReference.js +36 -0
  222. package/dist/compiler/shapeResolver.d.ts +1 -1
  223. package/dist/compiler/shapeResolver.js +7 -9
  224. package/dist/compiler/soapHeaders.d.ts +16 -0
  225. package/dist/compiler/soapHeaders.js +42 -0
  226. package/dist/compiler/sourceSchemaBinding.d.ts +25 -0
  227. package/dist/compiler/sourceSchemaBinding.js +39 -0
  228. package/dist/compiler/standardSchemaComponents.d.ts +71 -0
  229. package/dist/compiler/standardSchemaComponents.js +74 -0
  230. package/dist/compiler/standardSchemaConstruction.d.ts +20 -0
  231. package/dist/compiler/standardSchemaConstruction.js +34 -0
  232. package/dist/compiler/structuralCompanions.d.ts +15 -0
  233. package/dist/compiler/structuralCompanions.js +232 -0
  234. package/dist/compiler/validateSemanticGraph.d.ts +4 -0
  235. package/dist/compiler/validateSemanticGraph.js +376 -0
  236. package/dist/compiler/wildcardAlgebra.d.ts +25 -0
  237. package/dist/compiler/wildcardAlgebra.js +155 -0
  238. package/dist/compiler/wsdlPolicyRequirements.d.ts +43 -0
  239. package/dist/compiler/wsdlPolicyRequirements.js +239 -0
  240. package/dist/config.d.ts +0 -1
  241. package/dist/gateway/generateCheckedGateway.d.ts +32 -0
  242. package/dist/gateway/generateCheckedGateway.js +293 -0
  243. package/dist/gateway/generateGateway.d.ts +0 -1
  244. package/dist/gateway/generateGateway.js +2 -2
  245. package/dist/gateway/generators.d.ts +0 -1
  246. package/dist/gateway/helpers.d.ts +0 -1
  247. package/dist/generation/componentShape.d.ts +14 -0
  248. package/dist/generation/componentShape.js +269 -0
  249. package/dist/generation/preamble.d.ts +0 -1
  250. package/dist/generation/sourceLayout.d.ts +13 -0
  251. package/dist/generation/sourceLayout.js +40 -0
  252. package/dist/generation/writeGeneratedSource.d.ts +0 -1
  253. package/dist/index.d.ts +9 -1
  254. package/dist/index.js +3 -0
  255. package/dist/loader/fetch.d.ts +0 -1
  256. package/dist/loader/orderedSyntax.d.ts +84 -0
  257. package/dist/loader/orderedSyntax.js +222 -0
  258. package/dist/loader/resolutionDepth.d.ts +6 -0
  259. package/dist/loader/resolutionDepth.js +65 -0
  260. package/dist/loader/schemaInput.d.ts +80 -0
  261. package/dist/loader/schemaInput.js +249 -0
  262. package/dist/loader/schemaResources.d.ts +60 -0
  263. package/dist/loader/schemaResources.js +333 -0
  264. package/dist/loader/wsdlLoader.d.ts +0 -1
  265. package/dist/openapi/casing.d.ts +0 -1
  266. package/dist/openapi/generateOpenAPI.d.ts +0 -1
  267. package/dist/openapi/generateOpenAPI.js +2 -2
  268. package/dist/openapi/generatePaths.d.ts +0 -1
  269. package/dist/openapi/generateSchemas.d.ts +0 -1
  270. package/dist/openapi/security.d.ts +0 -1
  271. package/dist/pipeline.d.ts +6 -2
  272. package/dist/pipeline.js +13 -0
  273. package/dist/test/generateCheckedTests.d.ts +17 -0
  274. package/dist/test/generateCheckedTests.js +60 -0
  275. package/dist/test/generateTests.d.ts +0 -1
  276. package/dist/test/generateTests.js +2 -2
  277. package/dist/test/generators.d.ts +0 -1
  278. package/dist/test/mockData.d.ts +0 -1
  279. package/dist/test/mockData.js +20 -14
  280. package/dist/util/attributeWildcards.d.ts +0 -1
  281. package/dist/util/builder.d.ts +0 -1
  282. package/dist/util/catalogMeta.d.ts +0 -1
  283. package/dist/util/checkedCliDiagnostics.d.ts +11 -0
  284. package/dist/util/checkedCliDiagnostics.js +22 -0
  285. package/dist/util/cli.d.ts +0 -1
  286. package/dist/util/errors.d.ts +0 -1
  287. package/dist/util/imports.d.ts +0 -1
  288. package/dist/util/runtimeSource.d.ts +0 -1
  289. package/dist/util/runtimeSource.js +3 -5
  290. package/dist/util/securityConfig.d.ts +0 -1
  291. package/dist/util/streamConfig.d.ts +0 -1
  292. package/dist/util/tools.d.ts +0 -1
  293. package/dist/util/xmlWhitespace.d.ts +2 -0
  294. package/dist/util/xmlWhitespace.js +4 -0
  295. package/dist/xsd/primitives.d.ts +0 -1
  296. package/docs/agent-skill.md +2 -0
  297. package/docs/api-reference.md +1 -1
  298. package/docs/checked-gateway.md +210 -0
  299. package/docs/checked-generation.md +161 -0
  300. package/docs/cli-reference.md +43 -1
  301. package/docs/concepts.md +136 -1
  302. package/docs/configuration.md +5 -1
  303. package/docs/corpus.md +33 -0
  304. package/docs/direct-values.md +311 -0
  305. package/docs/examples/checked-forecast.wsdl +19 -0
  306. package/docs/gateway-guide.md +1 -1
  307. package/docs/generated-code.md +10 -5
  308. package/docs/mapping-contract.md +114 -0
  309. package/docs/migration-playbook.md +1 -1
  310. package/docs/output-anatomy.md +1 -1
  311. package/docs/start-here.md +8 -2
  312. package/docs/supported-patterns.md +17 -5
  313. package/docs/testing.md +117 -31
  314. package/llms.txt +7 -7
  315. package/package.json +79 -25
  316. package/src/generation/preambles/direct-client/typescript.preamble +3 -0
  317. package/src/runtime/checkedGatewayHost.tpl.txt +157 -0
  318. package/src/runtime/streamXml.ts +1 -1
  319. package/dist/app/generateApp.d.ts.map +0 -1
  320. package/dist/cli.d.ts.map +0 -1
  321. package/dist/client/generateClient.d.ts.map +0 -1
  322. package/dist/client/generateOperations.d.ts.map +0 -1
  323. package/dist/client/generateTypes.d.ts.map +0 -1
  324. package/dist/client/generateUtils.d.ts.map +0 -1
  325. package/dist/compiler/generateCatalog.d.ts.map +0 -1
  326. package/dist/compiler/schemaCompiler.d.ts.map +0 -1
  327. package/dist/compiler/shapeResolver.d.ts.map +0 -1
  328. package/dist/config.d.ts.map +0 -1
  329. package/dist/gateway/generateGateway.d.ts.map +0 -1
  330. package/dist/gateway/generators.d.ts.map +0 -1
  331. package/dist/gateway/helpers.d.ts.map +0 -1
  332. package/dist/generation/preamble.d.ts.map +0 -1
  333. package/dist/generation/writeGeneratedSource.d.ts.map +0 -1
  334. package/dist/index.d.ts.map +0 -1
  335. package/dist/loader/fetch.d.ts.map +0 -1
  336. package/dist/loader/wsdlLoader.d.ts.map +0 -1
  337. package/dist/openapi/casing.d.ts.map +0 -1
  338. package/dist/openapi/generateOpenAPI.d.ts.map +0 -1
  339. package/dist/openapi/generatePaths.d.ts.map +0 -1
  340. package/dist/openapi/generateSchemas.d.ts.map +0 -1
  341. package/dist/openapi/security.d.ts.map +0 -1
  342. package/dist/pipeline.d.ts.map +0 -1
  343. package/dist/runtime/jsonArray.d.ts +0 -24
  344. package/dist/runtime/jsonArray.d.ts.map +0 -1
  345. package/dist/runtime/jsonArray.js +0 -52
  346. package/dist/runtime/ndjson.d.ts +0 -24
  347. package/dist/runtime/ndjson.d.ts.map +0 -1
  348. package/dist/runtime/ndjson.js +0 -30
  349. package/dist/runtime/streamXml.d.ts +0 -45
  350. package/dist/runtime/streamXml.d.ts.map +0 -1
  351. package/dist/runtime/streamXml.js +0 -212
  352. package/dist/test/generateTests.d.ts.map +0 -1
  353. package/dist/test/generators.d.ts.map +0 -1
  354. package/dist/test/mockData.d.ts.map +0 -1
  355. package/dist/util/attributeWildcards.d.ts.map +0 -1
  356. package/dist/util/builder.d.ts.map +0 -1
  357. package/dist/util/catalogMeta.d.ts.map +0 -1
  358. package/dist/util/cli.d.ts.map +0 -1
  359. package/dist/util/errors.d.ts.map +0 -1
  360. package/dist/util/imports.d.ts.map +0 -1
  361. package/dist/util/runtimeSource.d.ts.map +0 -1
  362. package/dist/util/securityConfig.d.ts.map +0 -1
  363. package/dist/util/streamConfig.d.ts.map +0 -1
  364. package/dist/util/tools.d.ts.map +0 -1
  365. package/dist/xsd/primitives.d.ts.map +0 -1
  366. package/docs/AGENTS.md +0 -47
  367. package/docs/README.md +0 -56
  368. package/docs/architecture.md +0 -149
  369. package/docs/decisions/001-test-generation.md +0 -36
  370. package/docs/decisions/002-streamable-responses.md +0 -330
  371. package/docs/file-naming-and-path-organization.md +0 -213
  372. package/docs/releases/README.md +0 -94
  373. package/docs/releases/v0.20.0.md +0 -22
  374. package/docs/releases/v0.21.0.md +0 -30
  375. package/docs/releases/v0.22.0.md +0 -30
  376. package/docs/releases/v0.23.0.md +0 -31
  377. package/docs/releases/v0.24.0.md +0 -38
  378. package/docs/releases/v0.25.0.md +0 -31
  379. package/docs/releases/v0.25.2.md +0 -32
  380. package/docs/releases/v0.26.0.md +0 -32
  381. package/docs/releases/v0.27.0.md +0 -31
  382. package/docs/releases/v0.28.0.md +0 -32
  383. package/docs/releases/v0.29.0.md +0 -32
  384. package/docs/releases/v0.30.0.md +0 -30
  385. package/docs/releases/v0.30.1.md +0 -31
  386. package/docs/releases/v0.30.2.md +0 -30
  387. package/docs/releases/v0.30.3.md +0 -33
  388. package/docs/releases/v0.31.0.md +0 -33
  389. package/docs/releases/v0.32.0.md +0 -33
  390. package/docs/releases/v0.33.0.md +0 -34
  391. package/docs/releases/v0.34.0.md +0 -30
  392. package/docs/releases/v0.35.0.md +0 -33
  393. package/docs/releases/v0.36.0.md +0 -32
  394. package/docs/releases/v0.37.0.md +0 -33
  395. package/docs/releases/v0.38.0.md +0 -35
  396. package/docs/releases/v0.39.0.md +0 -35
  397. package/docs/releases/v0.40.0.md +0 -45
  398. package/docs/releases/v0.40.1.md +0 -34
  399. package/docs/releases/v1.0.0.md +0 -42
  400. package/docs/releases/v1.0.1.md +0 -38
  401. package/docs/releases/v1.0.2.md +0 -51
  402. package/docs/releases/v1.0.3.md +0 -37
  403. package/docs/releases/v1.0.4.md +0 -45
  404. package/docs/releases/v1.0.5.md +0 -41
  405. package/docs/releases/v1.0.6.md +0 -35
  406. package/docs/releases/v1.0.7.md +0 -36
  407. package/docs/releases/v1.1.0.md +0 -42
  408. package/docs/releases/v1.1.1.md +0 -44
  409. package/docs/releases/v1.1.2.md +0 -42
  410. package/docs/releases/v1.1.3.md +0 -36
  411. package/docs/releases/v1.1.4.md +0 -36
  412. package/docs/roadmap/README.md +0 -107
  413. package/docs/roadmap/v1.0-capability-conformance-framework.md +0 -582
  414. package/docs/roadmap/v1.0-choice-union-mode.md +0 -90
  415. package/docs/roadmap/v1.0-contract-audit.md +0 -75
  416. package/docs/roadmap/v1.0-json-array-streaming.md +0 -101
  417. package/docs/roadmap/v1.0-openapi-fastify-compatibility.md +0 -99
  418. package/docs/roadmap/v1.0-release-candidate-gates.md +0 -92
  419. package/docs/roadmap/v1.0-wsdl-coverage-matrix.md +0 -200
  420. package/docs/roadmap/v1.0-xs-anyattribute-wildcard-bag.md +0 -932
  421. package/src/runtime/jsonArray.ts +0 -55
  422. package/src/runtime/ndjson.ts +0 -32
@@ -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,26 @@
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;
@@ -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,3 @@
1
+ export declare function schemaBooleanLexical(value: string): boolean;
2
+ export declare function schemaNonNegativeIntegerLexical(value: string): boolean;
3
+ export declare function schemaPositiveIntegerLexical(value: string): boolean;
@@ -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,50 @@
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 {};