@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,178 @@
1
+ import { isBuiltinType } from './canonicalGraph.js';
2
+ import { builtinListItem, builtinParents, builtinPrimitive } from './schemaDatatypeValues.js';
3
+ import { XSD_NAMESPACE } from '../loader/orderedSyntax.js';
4
+ import { assertSemanticContext } from './semanticContext.js';
5
+ class ShapeProblem extends Error {
6
+ rule;
7
+ component;
8
+ constructor(rule, message, component) {
9
+ super(message);
10
+ this.rule = rule;
11
+ this.component = component;
12
+ }
13
+ }
14
+ const caches = new WeakMap();
15
+ const builtinRef = (local) => ({ kind: 'builtin', name: { namespace: XSD_NAMESPACE, local } });
16
+ function identityReference(identity) {
17
+ return identity.kind === 'component' ? { kind: 'local', target: identity.id } : identity;
18
+ }
19
+ function sourceShape(context, input) {
20
+ const b = context.budget;
21
+ b.chargeWork(4);
22
+ let cache = caches.get(context);
23
+ if (!cache) {
24
+ cache = new Map();
25
+ caches.set(context, cache);
26
+ }
27
+ const select = (reference) => {
28
+ b.chargeWork(8);
29
+ if (reference.kind === 'original-generated') {
30
+ b.chargeWork(reference.owner.length + 3);
31
+ if (context.lookupScalarSlot(reference).kind !== 'found')
32
+ throw new ShapeProblem('original-generated-owner', 'No original generated scalar component was mapped', reference.owner);
33
+ const node = context.sourceNode(reference.owner);
34
+ if (node?.kind !== 'complexType' || node.derivation?.kind !== 'restriction' || node.derivation.contentKind !== 'simple')
35
+ throw new ShapeProblem('original-generated-owner', 'Original scalar slot requires its source simple-content restriction owner', reference.owner);
36
+ return { key: `slot:${reference.owner}`, node };
37
+ }
38
+ const found = context.resolve(reference);
39
+ if (found.kind === 'builtin') {
40
+ if (found.name.namespace !== XSD_NAMESPACE || !isBuiltinType(found.name.local))
41
+ throw new ShapeProblem('original-scalar-builtin', 'Unknown original builtin');
42
+ b.chargeWork(found.name.local.length + 2);
43
+ return { key: `builtin:${found.name.local}`, builtin: found.name.local };
44
+ }
45
+ if (found.kind === 'standard-element')
46
+ throw new ShapeProblem('original-scalar-role', 'An element declaration has no scalar type identity', found.declaration.id);
47
+ if (found.kind !== 'found')
48
+ throw new ShapeProblem('original-scalar-reference', 'Original scalar reference is unavailable', found.id);
49
+ if (context.originalSourceComponentAbsent(found.node.id))
50
+ throw new ShapeProblem('original-scalar-absent', 'Source projection does not map a component', found.node.id);
51
+ const node = context.sourceNode(found.node.id);
52
+ if (!node || node.kind !== 'simpleType' && node.kind !== 'complexType')
53
+ throw new ShapeProblem('original-scalar-role', 'Original reference has no scalar shape', found.node.id);
54
+ b.chargeWork(node.id.length + 2);
55
+ return { key: node.kind === 'complexType' && node.derivation?.kind === 'restriction' && node.derivation.contentKind === 'simple' ? `slot:${node.id}` : `component:${node.id}`, node };
56
+ };
57
+ const first = select(input), stack = [{ reference: input, selected: first }], active = new Set();
58
+ while (stack.length) {
59
+ b.chargeWork(4);
60
+ const frame = stack[stack.length - 1], { key, node } = frame.selected;
61
+ if (cache.has(key)) {
62
+ stack.pop();
63
+ continue;
64
+ }
65
+ if (!frame.dependencies) {
66
+ if (active.has(key))
67
+ throw new ShapeProblem('original-scalar-shape-cycle', 'Original scalar shape has a dependency cycle', node?.id);
68
+ active.add(key);
69
+ if (frame.selected.builtin) {
70
+ const name = frame.selected.builtin, item = builtinListItem(name);
71
+ const shape = { identity: { kind: 'builtin', name: { namespace: XSD_NAMESPACE, local: name } },
72
+ base: name === 'anyType' ? undefined : builtinRef(name === 'anySimpleType' ? 'anyType' : builtinParents[name] ?? 'anySimpleType'),
73
+ variety: name === 'anyType' ? 'complex' : name === 'anySimpleType' ? 'absent' : item ? 'list' : 'atomic',
74
+ primitive: item || name === 'anySimpleType' || name === 'anyType' ? undefined : builtinPrimitive(name),
75
+ item: item ? builtinRef(item) : undefined, sourceDependencies: [] };
76
+ cache.set(key, b.freeze(b.snapshot(shape)));
77
+ active.delete(key);
78
+ stack.pop();
79
+ continue;
80
+ }
81
+ b.chargeWork(8);
82
+ if (node.kind === 'simpleType')
83
+ frame.dependencies = node.variety.kind === 'restriction' ? [node.variety.base]
84
+ : node.variety.kind === 'list' ? [node.variety.item] : node.variety.members;
85
+ else {
86
+ const source = node;
87
+ if (source.derivation?.contentKind !== 'simple')
88
+ throw new ShapeProblem('original-scalar-role', 'Original complex type has no simple-content shape', source.id);
89
+ frame.dependencies = [source.derivation.kind === 'restriction' && source.derivation.inlineType ? source.derivation.inlineType : source.derivation.base];
90
+ }
91
+ b.chargeWork(frame.dependencies.length * 4 + 1);
92
+ for (let index = frame.dependencies.length - 1; index >= 0; index--) {
93
+ const reference = frame.dependencies[index], selected = select(reference);
94
+ if (!cache.has(selected.key))
95
+ stack.push({ reference, selected });
96
+ }
97
+ continue;
98
+ }
99
+ const read = (reference) => cache.get(select(reference).key);
100
+ b.chargeWork(frame.dependencies.length + 4);
101
+ const dependencies = new Set([node.id]);
102
+ for (const reference of frame.dependencies) {
103
+ const dependency = read(reference);
104
+ b.chargeWork(dependency.sourceDependencies.length + 1);
105
+ for (const id of dependency.sourceDependencies)
106
+ dependencies.add(id);
107
+ }
108
+ let shape;
109
+ if (node.kind === 'simpleType') {
110
+ const source = node;
111
+ if (source.variety.kind === 'restriction') {
112
+ const base = read(source.variety.base);
113
+ shape = { ...base, identity: { kind: 'component', id: source.id }, base: identityReference(base.identity) };
114
+ }
115
+ else if (source.variety.kind === 'list')
116
+ shape = { identity: { kind: 'component', id: source.id }, base: builtinRef('anySimpleType'),
117
+ variety: 'list', item: identityReference(read(source.variety.item).identity) };
118
+ else {
119
+ const members = [];
120
+ for (const reference of source.variety.members) {
121
+ const member = read(reference);
122
+ b.chargeWork(3 + (member.members?.length ?? 1));
123
+ if (member.variety === 'union')
124
+ members.push(...member.members);
125
+ else
126
+ members.push(identityReference(member.identity));
127
+ }
128
+ shape = { identity: { kind: 'component', id: source.id }, base: builtinRef('anySimpleType'), variety: 'union', members };
129
+ }
130
+ }
131
+ else {
132
+ const source = node, base = read(frame.dependencies[0]);
133
+ shape = source.derivation.kind === 'extension' ? base : { ...base,
134
+ identity: { kind: 'original-generated', owner: source.id }, base: identityReference(base.identity) };
135
+ }
136
+ b.chargeWork(dependencies.size + 3);
137
+ cache.set(key, b.freeze(b.snapshot({ ...shape, sourceDependencies: [...dependencies] })));
138
+ active.delete(key);
139
+ stack.pop();
140
+ }
141
+ return cache.get(first.key);
142
+ }
143
+ function run(context, operation) {
144
+ assertSemanticContext(context);
145
+ return context.budget.guard(() => {
146
+ const original = context.originalContext();
147
+ try {
148
+ const { value, sourceDependencies } = operation(original);
149
+ return context.budget.freeze(context.budget.snapshot({ kind: 'checked', value, contextId: original.contextId,
150
+ authority: 'XSD10-original-scalar-shape-v1', acceptance: 'structural-only', sourceDependencies }));
151
+ }
152
+ catch (error) {
153
+ if (!(error instanceof ShapeProblem))
154
+ throw error;
155
+ return context.budget.freeze(context.budget.snapshot({ kind: 'unresolved', rule: error.rule, message: error.message,
156
+ contextId: original.contextId, component: error.component }));
157
+ }
158
+ });
159
+ }
160
+ export function resolveOriginalScalarIdentity(context, reference) {
161
+ return run(context, original => {
162
+ const safe = context.budget.freeze(context.budget.snapshot(reference)), shape = sourceShape(original, safe);
163
+ return { value: shape.identity, sourceDependencies: shape.sourceDependencies };
164
+ });
165
+ }
166
+ export function originalGeneratedShape(context, slot) {
167
+ return run(context, original => {
168
+ const safe = context.budget.freeze(context.budget.snapshot(slot));
169
+ if (safe.kind !== 'original-generated' || typeof safe.owner !== 'string')
170
+ throw new TypeError('Expected original scalar slot');
171
+ const shape = sourceShape(original, safe), source = original.sourceNode(safe.owner);
172
+ if (shape.variety === 'absent' || shape.variety === 'complex' || !shape.base)
173
+ throw new ShapeProblem('original-generated-variety', 'Original generated scalar has no ordinary simple variety', safe.owner);
174
+ return { value: { slot: safe, name: undefined, targetNamespace: source.context.effectiveNamespace, final: [], annotation: 'absent',
175
+ base: shape.base, variety: shape.variety, primitive: shape.primitive, item: shape.item, members: shape.members },
176
+ sourceDependencies: shape.sourceDependencies };
177
+ });
178
+ }
@@ -0,0 +1,72 @@
1
+ import type { ExpandedName, SyntaxElement, SyntaxSource } from '../loader/orderedSyntax.js';
2
+ import type { SchemaInterpretation } from '../loader/schemaInput.js';
3
+ import type { GraphNode, NodeId } from './canonicalGraph.js';
4
+ import type { SemanticContext } from './semanticContext.js';
5
+ import type { ResourceLimitFailure, SemanticBudget } from './semanticBudget.js';
6
+ /** Separate symbol space: these strings are never graph-node or TYPE references. */
7
+ export type OriginalIdentityConstraintId = string;
8
+ export type IdentityConstraintDependency = Readonly<{
9
+ contextId: string;
10
+ identity: OriginalIdentityConstraintId;
11
+ }>;
12
+ export type IdentityConstraintFailure = Readonly<{
13
+ kind: 'unresolved' | 'invalid-schema';
14
+ rule: string;
15
+ component: string;
16
+ message: string;
17
+ source?: SyntaxSource;
18
+ contextId?: string;
19
+ }>;
20
+ export type IdentityConstraintStep = Readonly<{
21
+ axis: 'self' | 'child' | 'attribute';
22
+ name?: ExpandedName;
23
+ wildcard?: true;
24
+ namespace?: string;
25
+ }>;
26
+ export type IdentityConstraintPath = Readonly<{
27
+ descendants: boolean;
28
+ steps: readonly IdentityConstraintStep[];
29
+ }>;
30
+ export type OriginalIdentityConstraint = Readonly<{
31
+ identity: OriginalIdentityConstraintId;
32
+ name: ExpandedName;
33
+ category: 'key' | 'unique' | 'keyref';
34
+ selector: readonly IdentityConstraintPath[];
35
+ fields: readonly (readonly IdentityConstraintPath[])[];
36
+ annotations: readonly SyntaxElement[];
37
+ /** Authentic selector/field annotations and all static lexical bindings stay intact. */
38
+ syntax: SyntaxElement;
39
+ referencedKey?: OriginalIdentityConstraintId;
40
+ source: SyntaxSource;
41
+ }>;
42
+ export type OriginalIdentityConstraintRegistry = Readonly<{
43
+ sourceBound: boolean;
44
+ identities: readonly OriginalIdentityConstraintId[];
45
+ read(identity: OriginalIdentityConstraintId): OriginalIdentityConstraint | IdentityConstraintFailure;
46
+ element(node: GraphNode): readonly OriginalIdentityConstraintId[] | undefined;
47
+ ownsSyntax(node: GraphNode, syntax: SyntaxElement): boolean;
48
+ }>;
49
+ export declare function originalIdentityConstraintId(name: ExpandedName): OriginalIdentityConstraintId;
50
+ /** The dated restricted XPath grammar, with only its standard abbreviations. */
51
+ export declare function parseIdentityConstraintXPath(value: string, syntax: SyntaxElement, field: boolean, budget: SemanticBudget): readonly IdentityConstraintPath[] | IdentityConstraintFailure;
52
+ /** Pure SOURCE mapper: only grammar-issued element roles expose IC occurrences. */
53
+ export declare function createOriginalIdentityConstraintRegistry(schemas: readonly SchemaInterpretation[] | undefined, budget: SemanticBudget): OriginalIdentityConstraintRegistry;
54
+ export type ElementIdentityConstraintsResult = Readonly<{
55
+ kind: 'checked';
56
+ value: readonly OriginalIdentityConstraintId[];
57
+ identityConstraintDependencies: readonly IdentityConstraintDependency[];
58
+ }> | IdentityConstraintFailure | ResourceLimitFailure;
59
+ export declare function readElementIdentityConstraints(context: SemanticContext, element: NodeId): ElementIdentityConstraintsResult;
60
+ export type IdentityConstraintReceipt = Readonly<{
61
+ kind: 'checked';
62
+ contextId: string;
63
+ identity: OriginalIdentityConstraintId;
64
+ authority: 'XSD10-original-identity-constraint-v1';
65
+ value: OriginalIdentityConstraint;
66
+ identityConstraintDependencies: readonly IdentityConstraintDependency[];
67
+ }>;
68
+ export declare function checkIdentityConstraintFormation(context: SemanticContext, identity: OriginalIdentityConstraintId): IdentityConstraintReceipt | IdentityConstraintFailure | ResourceLimitFailure;
69
+ export declare function collectIdentityConstraintDependencies(context: SemanticContext): Readonly<{
70
+ add(dependencies: readonly IdentityConstraintDependency[]): void;
71
+ snapshot(): readonly IdentityConstraintDependency[];
72
+ }>;
@@ -0,0 +1,362 @@
1
+ /** Original schema identity constraints. No instance XPath evaluator or fresh definitions. */
2
+ import { isXmlNCName, XML_NAMESPACE, XSD_NAMESPACE } from '../loader/orderedSyntax.js';
3
+ import { assessSourceGrammar } from './schemaSourceGrammar.js';
4
+ import { assessSchemaSourceWildcards } from './schemaSourceWildcards.js';
5
+ import { sourceNotationNamespace } from './schemaNotationProperties.js';
6
+ import { assertSemanticContext } from './semanticContext.js';
7
+ const icNames = new Set(['key', 'unique', 'keyref']);
8
+ const empty = Object.freeze([]);
9
+ function failure(rule, message, syntax) {
10
+ return Object.freeze({ kind: 'invalid-schema', rule, component: syntax?.source.path ?? 'identityConstraint', message, ...(syntax ? { source: syntax.source } : {}) });
11
+ }
12
+ export function originalIdentityConstraintId(name) {
13
+ return JSON.stringify(['identityConstraint', name.namespace, name.local]);
14
+ }
15
+ function attribute(node, name, budget) {
16
+ for (const a of node.attributes) {
17
+ budget.chargeWork(4 + a.name.local.length);
18
+ if (!a.name.namespace && a.name.local === name) {
19
+ budget.chargeWork(4 * a.value.length + 2);
20
+ return a.value.replace(/[\t\r\n ]+/g, ' ').trim();
21
+ }
22
+ }
23
+ }
24
+ function occurrence(source, namespace, budget) {
25
+ budget.chargeWork(40 + 6 * (source.uri.length + source.digest.length + source.path.length + namespace.length));
26
+ return JSON.stringify([source.uri, source.digest, source.path, namespace]);
27
+ }
28
+ function boundName(lexical, syntax, xpath, budget) {
29
+ budget.chargeWork(12 + lexical.length * 5);
30
+ const parts = lexical.split(':');
31
+ if (parts.length > 2 || parts.some(part => !isXmlNCName(part)) || parts.length === 2 && parts[0] === 'xmlns')
32
+ return;
33
+ const prefix = parts.length === 2 ? parts[0] : '';
34
+ const namespace = prefix === 'xml' ? XML_NAMESPACE : prefix || !xpath ? syntax.namespaces[prefix] ?? '' : '';
35
+ if (prefix && !namespace || namespace === 'http://www.w3.org/2000/xmlns/' || prefix !== 'xml' && namespace === XML_NAMESPACE)
36
+ return;
37
+ budget.chargeWork(3);
38
+ return Object.freeze({ namespace, local: parts.at(-1) });
39
+ }
40
+ /** The dated restricted XPath grammar, with only its standard abbreviations. */
41
+ export function parseIdentityConstraintXPath(value, syntax, field, budget) {
42
+ budget.chargeWork(20 + value.length * 12);
43
+ // Whitespace separates tokens; it must not join QName characters.
44
+ const tokens = value.match(/::|\/\/|[|/@]|[^\t\r\n |/@:]+(?::(?!:)[^\t\r\n |/@:]+)?|:/gu) ?? [];
45
+ budget.chargeWork(tokens.length * 10 + 3);
46
+ let at = 0;
47
+ const result = [];
48
+ const invalid = () => failure('c-props-correct', 'Invalid restricted identity-constraint XPath', syntax);
49
+ while (at < tokens.length) {
50
+ let descendants = false;
51
+ const steps = [];
52
+ // The sole descendant abbreviation is a leading .// (or its full spelling).
53
+ if (tokens[at] === '.' && tokens[at + 1] === '//') {
54
+ descendants = true;
55
+ at += 2;
56
+ }
57
+ else if (tokens[at] === 'self' && tokens[at + 1] === '::' && tokens[at + 2] === 'node()'
58
+ && tokens[at + 3] === '/' && tokens[at + 4] === 'descendant-or-self' && tokens[at + 5] === '::'
59
+ && tokens[at + 6] === 'node()' && tokens[at + 7] === '/') {
60
+ descendants = true;
61
+ at += 8;
62
+ }
63
+ while (at < tokens.length && tokens[at] !== '|') {
64
+ budget.chargeWork(12);
65
+ let axis = 'child';
66
+ if (tokens[at] === '.') {
67
+ at++;
68
+ steps.push(Object.freeze({ axis: 'self' }));
69
+ }
70
+ else if (tokens[at] === 'self' && tokens[at + 1] === '::' && tokens[at + 2] === 'node()') {
71
+ at += 3;
72
+ steps.push(Object.freeze({ axis: 'self' }));
73
+ }
74
+ else {
75
+ if (tokens[at] === '@') {
76
+ axis = 'attribute';
77
+ at++;
78
+ }
79
+ else if (tokens[at + 1] === '::') {
80
+ if (tokens[at] !== 'child' && tokens[at] !== 'attribute')
81
+ return invalid();
82
+ axis = tokens[at];
83
+ at += 2;
84
+ }
85
+ if (axis === 'attribute' && !field)
86
+ return invalid();
87
+ const first = tokens[at++];
88
+ if (!first)
89
+ return invalid();
90
+ if (first === '*')
91
+ steps.push(Object.freeze({ axis, wildcard: true }));
92
+ else if (first.endsWith(':*')) {
93
+ const name = boundName(first.slice(0, -1) + 'wildcard', syntax, true, budget);
94
+ if (!name || !name.namespace)
95
+ return invalid();
96
+ steps.push(Object.freeze({ axis, wildcard: true, namespace: name.namespace }));
97
+ }
98
+ else {
99
+ const name = boundName(first, syntax, true, budget);
100
+ if (!name)
101
+ return invalid();
102
+ steps.push(Object.freeze({ axis, name }));
103
+ }
104
+ if (axis === 'attribute' && at < tokens.length && tokens[at] !== '|')
105
+ return invalid();
106
+ }
107
+ if (at < tokens.length && tokens[at] !== '|') {
108
+ if (tokens[at++] !== '/' || at === tokens.length || tokens[at] === '|')
109
+ return invalid();
110
+ }
111
+ }
112
+ if (!steps.length)
113
+ return invalid();
114
+ budget.chargeWork(4 + steps.length);
115
+ result.push(Object.freeze({ descendants, steps: Object.freeze(steps) }));
116
+ if (tokens[at] === '|') {
117
+ at++;
118
+ if (at === tokens.length)
119
+ return invalid();
120
+ }
121
+ }
122
+ return result.length ? Object.freeze(result) : invalid();
123
+ }
124
+ /** Pure SOURCE mapper: only grammar-issued element roles expose IC occurrences. */
125
+ export function createOriginalIdentityConstraintRegistry(schemas, budget) {
126
+ budget.chargeWork(20);
127
+ const entries = new Map();
128
+ const sets = new Map();
129
+ const ownedSyntax = new Map();
130
+ const complete = new Map();
131
+ const sourceChecks = new WeakMap();
132
+ for (const schema of schemas ?? []) {
133
+ const namespace = sourceNotationNamespace(schema, budget);
134
+ const chameleon = schema.context.kind === 'include' && attribute(schema.syntax, 'targetNamespace', budget) === undefined;
135
+ budget.chargeWork(8);
136
+ const imports = new Set();
137
+ for (const node of schema.syntax.children) {
138
+ budget.chargeWork(4);
139
+ if (node.kind === 'element' && node.name.namespace === XSD_NAMESPACE && node.name.local === 'import')
140
+ imports.add(attribute(node, 'namespace', budget) ?? '');
141
+ }
142
+ budget.chargeWork(6);
143
+ const stack = [{ node: schema.syntax, role: 'schema' }];
144
+ while (stack.length) {
145
+ budget.chargeWork(6);
146
+ const { node, role } = stack.pop();
147
+ const grammar = assessSourceGrammar(role, node, budget);
148
+ // Physical S4S reports malformed enclosing structure separately. Do not
149
+ // manufacture a complete element-set from an unrecognised occurrence.
150
+ if (grammar.kind !== 'checked')
151
+ continue;
152
+ if (['topLevelElement', 'localElement', 'narrowMaxMin'].includes(role)) {
153
+ budget.chargeWork(8);
154
+ const ids = [], children = new Set();
155
+ for (const child of grammar.children) {
156
+ budget.chargeWork(5);
157
+ if (child.role !== 'keybase' && child.role !== 'keyref')
158
+ continue;
159
+ const syntax = node.children[child.index];
160
+ const local = attribute(syntax, 'name', budget) ?? '';
161
+ budget.chargeWork(20 + local.length + namespace.length);
162
+ const identity = originalIdentityConstraintId({ namespace, local });
163
+ const prior = entries.get(identity);
164
+ // Canonical composition reacquires the same interpreted component
165
+ // for equal digest/path, including identical bytes at another URI.
166
+ // URI still belongs to the separate source-association keys below.
167
+ const conflict = prior && (budget.compareText(prior.syntax.source.digest, syntax.source.digest) !== 0
168
+ || budget.compareText(prior.syntax.source.path, syntax.source.path) !== 0);
169
+ if (!prior) {
170
+ budget.reserveNodes(1);
171
+ entries.set(identity, Object.freeze({ syntax, schema: schema.syntax, namespace, chameleon, imports }));
172
+ }
173
+ else if (conflict && !prior.failure) {
174
+ budget.chargeWork(6);
175
+ entries.set(identity, Object.freeze({ ...prior, failure: failure('sch-props-correct.2', 'Duplicate identity-constraint name', syntax) }));
176
+ }
177
+ ids.push(identity);
178
+ children.add(occurrence(syntax.source, namespace, budget));
179
+ }
180
+ const key = occurrence(node.source, namespace, budget);
181
+ budget.chargeWork(ids.length + 4);
182
+ sets.set(key, Object.freeze(ids));
183
+ ownedSyntax.set(key, children);
184
+ }
185
+ for (const child of grammar.children) {
186
+ budget.chargeWork(4);
187
+ if (child.role && child.role !== 'annotation')
188
+ stack.push({ node: node.children[child.index], role: child.role });
189
+ }
190
+ }
191
+ }
192
+ const read = (identity) => {
193
+ budget.chargeWork(5 + identity.length);
194
+ const previous = complete.get(identity);
195
+ if (previous)
196
+ return previous;
197
+ const entry = entries.get(identity);
198
+ if (!entry)
199
+ return Object.freeze({ kind: schemas ? 'invalid-schema' : 'unresolved', rule: 'src-identity-constraint', component: identity,
200
+ message: schemas ? 'Identity constraint is absent from the complete original schema universe' : 'Original identity-constraint source universe is unavailable' });
201
+ const { syntax, namespace, chameleon, imports } = entry;
202
+ const form = () => {
203
+ if (entry.failure)
204
+ return entry.failure;
205
+ // Fixed S4S ID/IDREF and annotations belong to the physical schema root,
206
+ // not to an artificial IC subtree episode. This never invokes FULL(owner).
207
+ let source = sourceChecks.get(entry.schema);
208
+ if (!source) {
209
+ source = assessSchemaSourceWildcards(entry.schema, budget);
210
+ budget.chargeWork(3);
211
+ sourceChecks.set(entry.schema, source);
212
+ }
213
+ if (source.kind === 'resource-limit') {
214
+ budget.chargeWork();
215
+ throw new Error('Unreachable exhausted IC source budget');
216
+ }
217
+ if (source.kind !== 'checked')
218
+ return { ...source, component: identity };
219
+ if (source.remaining.length)
220
+ return Object.freeze({ kind: 'unresolved', rule: source.remaining[0].rule,
221
+ component: identity, message: 'Identity-constraint SOURCE metadata has an unassessed prerequisite', source: syntax.source });
222
+ const name = attribute(syntax, 'name', budget) ?? '';
223
+ if (!isXmlNCName(name))
224
+ return failure('c-props-correct', 'Identity-constraint name must be an NCName', syntax);
225
+ const grammar = assessSourceGrammar(syntax.name.local === 'keyref' ? 'keyref' : 'keybase', syntax, budget);
226
+ if (grammar.kind !== 'checked')
227
+ return { ...grammar, component: identity };
228
+ budget.chargeWork(grammar.children.length * 8 + 8);
229
+ let selector;
230
+ const fields = [], annotations = [];
231
+ for (const child of grammar.children) {
232
+ const node = syntax.children[child.index];
233
+ budget.chargeWork(5);
234
+ if (child.role === 'annotation') {
235
+ annotations.push(node);
236
+ continue;
237
+ }
238
+ const local = assessSourceGrammar(child.role, node, budget);
239
+ if (local.kind !== 'checked')
240
+ return { ...local, component: identity };
241
+ const expression = parseIdentityConstraintXPath(attribute(node, 'xpath', budget) ?? '', node, child.role === 'field', budget);
242
+ if ('kind' in expression)
243
+ return expression;
244
+ if (child.role === 'selector')
245
+ selector = expression;
246
+ else
247
+ fields.push(expression);
248
+ // The IC annotation set includes all three source levels. Their exact
249
+ // selector/field association and lexical maps remain in authentic syntax.
250
+ for (const annotation of local.children) {
251
+ budget.chargeWork(3);
252
+ if (annotation.role === 'annotation')
253
+ annotations.push(node.children[annotation.index]);
254
+ }
255
+ }
256
+ if (!selector || !fields.length)
257
+ return failure('c-props-correct', 'One selector and a nonempty ordered field list are required', syntax);
258
+ let referencedKey;
259
+ if (syntax.name.local === 'keyref') {
260
+ const lexicalName = boundName(attribute(syntax, 'refer', budget) ?? '', syntax, false, budget);
261
+ if (!lexicalName)
262
+ return failure('src-resolve', 'Invalid or unbound keyref QName', syntax);
263
+ const name = !lexicalName.namespace && chameleon ? { namespace, local: lexicalName.local } : lexicalName;
264
+ if (name.namespace !== namespace && !imports.has(name.namespace))
265
+ return failure('src-resolve', 'Keyref namespace requires schema import access', syntax);
266
+ budget.chargeWork(20 + name.namespace.length + name.local.length);
267
+ referencedKey = originalIdentityConstraintId(name);
268
+ const target = entries.get(referencedKey);
269
+ if (!target)
270
+ return failure('src-resolve', 'Referenced key/unique is absent from the original schema universe', syntax);
271
+ if (target.syntax.name.local === 'keyref')
272
+ return failure('c-props-correct', 'Keyref must reference a key or unique', syntax);
273
+ const formed = read(referencedKey);
274
+ if ('kind' in formed)
275
+ return formed;
276
+ if (formed.fields.length !== fields.length)
277
+ return failure('c-props-correct.2', 'Keyref and referenced key must have the same field arity', syntax);
278
+ }
279
+ budget.chargeWork(20 + fields.length + annotations.length);
280
+ return Object.freeze({ identity, name: Object.freeze({ namespace, local: name }), category: syntax.name.local,
281
+ selector, fields: Object.freeze(fields), annotations: Object.freeze(annotations), syntax,
282
+ ...(referencedKey ? { referencedKey } : {}), source: syntax.source });
283
+ };
284
+ const formed = form();
285
+ budget.chargeWork(3);
286
+ const result = 'kind' in formed ? Object.freeze({ ...formed, component: identity }) : formed;
287
+ complete.set(identity, result);
288
+ return result;
289
+ };
290
+ budget.chargeWork(10 + entries.size);
291
+ return Object.freeze({ sourceBound: schemas !== undefined, identities: Object.freeze([...entries.keys()]), read,
292
+ element(node) { return sets.get(occurrence(node.context.source, node.context.effectiveNamespace, budget)); },
293
+ ownsSyntax(node, syntax) {
294
+ return ownedSyntax.get(occurrence(node.context.source, node.context.effectiveNamespace, budget))
295
+ ?.has(occurrence(syntax.source, node.context.effectiveNamespace, budget)) === true;
296
+ },
297
+ });
298
+ }
299
+ export function readElementIdentityConstraints(context, element) {
300
+ assertSemanticContext(context);
301
+ return context.budget.guard(() => {
302
+ const found = context.lookup(element);
303
+ if (found.kind !== 'found' || found.node.kind !== 'element')
304
+ return Object.freeze({ kind: 'unresolved', rule: 'component-identity-constraint-properties', component: element, message: 'Element is unavailable' });
305
+ const node = found.node, registry = context.originalIdentityConstraints();
306
+ const original = context.sourceNode(element);
307
+ const mapped = original ? registry.element(original) : undefined;
308
+ for (const syntax of node.retained) {
309
+ context.budget.chargeWork(4 + syntax.name.local.length + syntax.name.namespace.length);
310
+ if (syntax.name.namespace === XSD_NAMESPACE && icNames.has(syntax.name.local) && (!original || !registry.ownsSyntax(original, syntax)))
311
+ return Object.freeze({ kind: 'unresolved', rule: 'component-identity-constraint-properties', component: element, message: 'Retained identity-constraint syntax has no authentic original mapping' });
312
+ }
313
+ if (original && registry.sourceBound && mapped === undefined)
314
+ return Object.freeze({ kind: 'unresolved', rule: 'component-identity-constraint-properties', component: element, message: 'Original element IC occurrence is unavailable' });
315
+ const selected = original ? mapped ?? empty : context.rawElementProperties(element)?.identityConstraints ?? empty;
316
+ // An IC-free diagnostic property projection does not admit a suppressed
317
+ // ELEMENT to FULL. Nonempty sets still require an actual ELEMENT component.
318
+ if (original && selected.length && context.originalSourceComponentAbsent(element))
319
+ return Object.freeze({ kind: 'unresolved',
320
+ rule: 'identity-constraint-element-component', component: element, message: 'Suppressed source syntax has no ELEMENT component IC set' });
321
+ context.budget.chargeWork(8 + selected.length * 5);
322
+ const ids = new Set(), dependencies = [];
323
+ for (const id of selected) {
324
+ const value = registry.read(id);
325
+ if ('kind' in value)
326
+ return value.kind === 'invalid-schema'
327
+ ? Object.freeze({ ...value, contextId: context.originalContext().contextId }) : value;
328
+ if (!ids.has(id)) {
329
+ context.budget.chargeWork(6);
330
+ ids.add(id);
331
+ dependencies.push(Object.freeze({ contextId: context.contextId, identity: id }));
332
+ }
333
+ }
334
+ context.budget.chargeWork(5 + ids.size);
335
+ return Object.freeze({ kind: 'checked', value: Object.freeze([...ids]), identityConstraintDependencies: Object.freeze(dependencies) });
336
+ });
337
+ }
338
+ export function checkIdentityConstraintFormation(context, identity) {
339
+ assertSemanticContext(context);
340
+ return context.budget.guard(() => {
341
+ const value = context.originalIdentityConstraints().read(identity);
342
+ if ('kind' in value)
343
+ return value.kind === 'invalid-schema'
344
+ ? Object.freeze({ ...value, contextId: context.originalContext().contextId }) : value;
345
+ context.budget.chargeWork(12 + context.contextId.length + identity.length);
346
+ return Object.freeze({ kind: 'checked', contextId: context.contextId, identity, authority: 'XSD10-original-identity-constraint-v1', value,
347
+ identityConstraintDependencies: value.referencedKey ? Object.freeze([Object.freeze({ contextId: context.contextId, identity: value.referencedKey })]) : Object.freeze([]) });
348
+ });
349
+ }
350
+ export function collectIdentityConstraintDependencies(context) {
351
+ const budget = context.budget;
352
+ budget.chargeWork(6);
353
+ const facts = new Map();
354
+ return Object.freeze({ add(dependencies) {
355
+ for (const dependency of dependencies) {
356
+ budget.chargeWork(12 + dependency.contextId.length + dependency.identity.length);
357
+ const key = JSON.stringify([dependency.contextId, dependency.identity]);
358
+ if (!facts.has(key))
359
+ facts.set(key, Object.freeze({ contextId: dependency.contextId, identity: dependency.identity }));
360
+ }
361
+ }, snapshot() { budget.chargeWork(3 + facts.size); return Object.freeze([...facts.values()]); } });
362
+ }
@@ -0,0 +1,42 @@
1
+ /** Exact IEEE inverse images through finite significand/count/exponent products. */
2
+ import type { SchemaOperand } from './schemaDatatypeValues.js';
3
+ import type { RegularLanguage } from './schemaRegularLanguage.js';
4
+ import { schemaRegularLanguages } from './schemaRegularLanguage.js';
5
+ import type { SchemaPatternContext } from './schemaValueContext.js';
6
+ type Decimal = {
7
+ coefficient: bigint;
8
+ scale: number;
9
+ digits?: number;
10
+ };
11
+ type Endpoint = {
12
+ value: Decimal;
13
+ inclusive: boolean;
14
+ };
15
+ export type IeeeInputInterval = Readonly<{
16
+ negative: boolean;
17
+ lower?: Endpoint;
18
+ upper?: Endpoint;
19
+ }>;
20
+ export type IeeeBound = Readonly<{
21
+ name: 'minInclusive' | 'minExclusive' | 'maxInclusive' | 'maxExclusive';
22
+ value: SchemaOperand;
23
+ }>;
24
+ export declare function schemaIeeeLanguages<Owner>(c: SchemaPatternContext<Owner>, regular: ReturnType<typeof schemaRegularLanguages<Owner>>, expression: (expression: string, owner: Owner) => RegularLanguage): {
25
+ witness: (language: RegularLanguage, target: SchemaOperand, owner: Owner) => string | undefined;
26
+ inverseIntervals: (target: SchemaOperand, owner: Owner) => readonly IeeeInputInterval[];
27
+ intervalWitness: (language: RegularLanguage, interval: IeeeInputInterval, owner: Owner) => string | undefined;
28
+ wideningWitness: (language: RegularLanguage, family: "float" | "double", supplied: readonly IeeeBound[], prior: IeeeBound, owner: Owner) => string | undefined;
29
+ boundIntervals: (family: "float" | "double", bounds: readonly IeeeBound[], owner: Owner) => {
30
+ intervals: Readonly<{
31
+ negative: boolean;
32
+ lower?: Endpoint;
33
+ upper?: Endpoint;
34
+ }>[];
35
+ literals: string[];
36
+ };
37
+ subtractIntervals: (input: readonly IeeeInputInterval[], removed: readonly IeeeInputInterval[], owner: Owner) => readonly IeeeInputInterval[];
38
+ formatValues: (family: "float" | "double", owner: Owner) => Generator<SchemaOperand>;
39
+ decimalInputLanguage: (intervals: readonly IeeeInputInterval[], literals: readonly string[], owner: Owner) => RegularLanguage;
40
+ unsignedExponentialLanguage: (source: RegularLanguage, intervals: readonly IeeeInputInterval[], owner: Owner) => RegularLanguage;
41
+ };
42
+ export {};