@techspokes/typescript-wsdl-client 1.1.5 → 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 (480) hide show
  1. package/README.md +64 -66
  2. package/dist/app/generateApp.d.ts +0 -1
  3. package/dist/app/generateApp.js +1 -1
  4. package/dist/app/generateCheckedApp.d.ts +38 -0
  5. package/dist/app/generateCheckedApp.js +108 -0
  6. package/dist/checkedPipeline.d.ts +155 -0
  7. package/dist/checkedPipeline.js +448 -0
  8. package/dist/checkedPlanning.d.ts +123 -0
  9. package/dist/checkedPlanning.js +245 -0
  10. package/dist/cli.d.ts +0 -1
  11. package/dist/cli.js +75 -1
  12. package/dist/client/checkedDirectRuntime.d.ts +40 -3
  13. package/dist/client/checkedDirectRuntime.js +28 -8
  14. package/dist/client/directClientRuntime.d.ts +27 -2
  15. package/dist/client/directClientRuntime.js +142 -89
  16. package/dist/client/directClientVersion.d.ts +3 -1
  17. package/dist/client/directClientVersion.js +3 -0
  18. package/dist/client/generateClient.d.ts +0 -1
  19. package/dist/client/generateClient.js +26 -12
  20. package/dist/client/generateDirectClient.d.ts +21 -3
  21. package/dist/client/generateDirectClient.js +138 -6
  22. package/dist/client/generateOperations.d.ts +0 -1
  23. package/dist/client/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 +0 -1
  29. package/dist/compiler/canonicalGraph.d.ts +0 -1
  30. package/dist/compiler/catalogErrors.d.ts +0 -1
  31. package/dist/compiler/catalogProvenance.d.ts +0 -1
  32. package/dist/compiler/checkedAssessment.d.ts +0 -1
  33. package/dist/compiler/checkedAssessment.js +1 -1
  34. package/dist/compiler/checkedComponentSource.d.ts +16 -0
  35. package/dist/compiler/checkedComponentSource.js +31 -0
  36. package/dist/compiler/checkedSourcePreparation.d.ts +38 -1
  37. package/dist/compiler/checkedSourcePreparation.js +71 -0
  38. package/dist/compiler/complexTypeContent.d.ts +5 -6
  39. package/dist/compiler/complexTypeContent.js +2 -2
  40. package/dist/compiler/componentCorrespondence.d.ts +32 -0
  41. package/dist/compiler/componentCorrespondence.js +140 -0
  42. package/dist/compiler/componentRecordProjection.d.ts +109 -0
  43. package/dist/compiler/componentRecordProjection.js +319 -0
  44. package/dist/compiler/componentSoapPreparation.d.ts +20 -0
  45. package/dist/compiler/componentSoapPreparation.js +36 -0
  46. package/dist/compiler/composeCanonicalGraph.d.ts +0 -1
  47. package/dist/compiler/dataOwnership.d.ts +0 -1
  48. package/dist/compiler/dataOwnership.js +14 -4
  49. package/dist/compiler/datatypeValues.d.ts +0 -1
  50. package/dist/compiler/directCodec.d.ts +59 -2
  51. package/dist/compiler/directCodec.js +275 -90
  52. package/dist/compiler/directExecutionPolicy.d.ts +0 -1
  53. package/dist/compiler/directOperation.d.ts +46 -4
  54. package/dist/compiler/directOperation.js +105 -14
  55. package/dist/compiler/directSoap.d.ts +29 -5
  56. package/dist/compiler/directSoap.js +130 -37
  57. package/dist/compiler/directSoapSource.d.ts +24 -1
  58. package/dist/compiler/directSoapSource.js +166 -19
  59. package/dist/compiler/directSourceCapsule.d.ts +74 -2
  60. package/dist/compiler/directSourceCapsule.js +428 -6
  61. package/dist/compiler/directStructure.d.ts +83 -6
  62. package/dist/compiler/directStructure.js +349 -58
  63. package/dist/compiler/directStructurePlan.d.ts +135 -2
  64. package/dist/compiler/directStructurePlan.js +594 -29
  65. package/dist/compiler/directValues.d.ts +63 -4
  66. package/dist/compiler/directValues.js +950 -116
  67. package/dist/compiler/finiteRe01Construction.d.ts +69 -0
  68. package/dist/compiler/finiteRe01Construction.js +422 -0
  69. package/dist/compiler/finiteRe01Verification.d.ts +81 -3
  70. package/dist/compiler/finiteRe01Verification.js +391 -4
  71. package/dist/compiler/generateCatalog.d.ts +0 -1
  72. package/dist/compiler/graphTraversal.d.ts +0 -1
  73. package/dist/compiler/hypotheticalScopedIdentity.d.ts +0 -1
  74. package/dist/compiler/occurrenceAnalysis.d.ts +2 -1
  75. package/dist/compiler/occurrenceAnalysis.js +23 -7
  76. package/dist/compiler/originalSourceMembership.d.ts +0 -1
  77. package/dist/compiler/particleAttribution.d.ts +0 -1
  78. package/dist/compiler/particleAttribution.js +20 -0
  79. package/dist/compiler/particleDeclarationConsistency.d.ts +0 -1
  80. package/dist/compiler/particleDeclarationConsistency.js +9 -0
  81. package/dist/compiler/particleExtension.d.ts +0 -1
  82. package/dist/compiler/particleExtension.js +5 -1
  83. package/dist/compiler/particleLocalAssessment.d.ts +0 -1
  84. package/dist/compiler/particleRestriction.d.ts +0 -1
  85. package/dist/compiler/particleRestriction.js +6 -1
  86. package/dist/compiler/particleSemanticView.d.ts +2 -1
  87. package/dist/compiler/particleSemanticView.js +16 -3
  88. package/dist/compiler/particleWildcardRelation.d.ts +0 -1
  89. package/dist/compiler/projectionScalar.d.ts +32 -0
  90. package/dist/compiler/projectionScalar.js +184 -0
  91. package/dist/compiler/re01CandidateAssignments.d.ts +95 -0
  92. package/dist/compiler/re01CandidateAssignments.js +341 -0
  93. package/dist/compiler/re01CandidateCorrespondence.d.ts +22 -1
  94. package/dist/compiler/re01CandidateCorrespondence.js +167 -38
  95. package/dist/compiler/re01TypeProperties.d.ts +0 -1
  96. package/dist/compiler/re01TypePropertyValidation.d.ts +0 -1
  97. package/dist/compiler/resolveCanonicalGraph.d.ts +5 -2
  98. package/dist/compiler/resolveCanonicalGraph.js +77 -7
  99. package/dist/compiler/scalarSchemaAssessment.d.ts +0 -1
  100. package/dist/compiler/schemaAttributeGroupProperties.d.ts +0 -1
  101. package/dist/compiler/schemaAttributeProperties.d.ts +0 -1
  102. package/dist/compiler/schemaAttributeUses.d.ts +22 -2
  103. package/dist/compiler/schemaAttributeUses.js +86 -13
  104. package/dist/compiler/schemaBinaryWordReconstruction.d.ts +0 -1
  105. package/dist/compiler/schemaBuiltinFacets.d.ts +0 -1
  106. package/dist/compiler/schemaCalendarImages.d.ts +0 -1
  107. package/dist/compiler/schemaCalendarLanguage.d.ts +0 -1
  108. package/dist/compiler/schemaCompiler.d.ts +0 -1
  109. package/dist/compiler/schemaComponentEquality.d.ts +0 -1
  110. package/dist/compiler/schemaConstructionAssessment.d.ts +34 -1
  111. package/dist/compiler/schemaConstructionAssessment.js +88 -6
  112. package/dist/compiler/schemaDatatypeValues.d.ts +0 -1
  113. package/dist/compiler/schemaDecimalLanguage.d.ts +0 -1
  114. package/dist/compiler/schemaDeclarationPrimitives.d.ts +7 -2
  115. package/dist/compiler/schemaDeclarationPrimitives.js +18 -1
  116. package/dist/compiler/schemaDocumentSyntax.d.ts +0 -1
  117. package/dist/compiler/schemaDurationLanguage.d.ts +0 -1
  118. package/dist/compiler/schemaElementInstance.d.ts +30 -0
  119. package/dist/compiler/schemaElementInstance.js +45 -0
  120. package/dist/compiler/schemaElementProperties.d.ts +0 -1
  121. package/dist/compiler/schemaEndpointWordCapacity.d.ts +0 -1
  122. package/dist/compiler/schemaExactCalendar.d.ts +0 -1
  123. package/dist/compiler/schemaFacetAnnotation.d.ts +0 -1
  124. package/dist/compiler/schemaGeneratedScalarShape.d.ts +0 -1
  125. package/dist/compiler/schemaGeneratedScalarShape.js +2 -0
  126. package/dist/compiler/schemaIdentityConstraints.d.ts +0 -1
  127. package/dist/compiler/schemaIeeeLanguage.d.ts +0 -1
  128. package/dist/compiler/schemaIntegerImages.d.ts +0 -1
  129. package/dist/compiler/schemaLexicalPredicates.d.ts +0 -1
  130. package/dist/compiler/schemaNotationProperties.d.ts +0 -1
  131. package/dist/compiler/schemaNumericImageConditions.d.ts +0 -1
  132. package/dist/compiler/schemaParticleWildcardProperties.d.ts +0 -1
  133. package/dist/compiler/schemaPattern.d.ts +0 -1
  134. package/dist/compiler/schemaRegularLanguage.d.ts +0 -1
  135. package/dist/compiler/schemaScalarContext.d.ts +5 -1
  136. package/dist/compiler/schemaScalarKernel.d.ts +0 -1
  137. package/dist/compiler/schemaScalarWitnesses.d.ts +0 -1
  138. package/dist/compiler/schemaSimpleTypeProperties.d.ts +0 -1
  139. package/dist/compiler/schemaSourceGrammar.d.ts +0 -1
  140. package/dist/compiler/schemaSourceLexical.d.ts +0 -1
  141. package/dist/compiler/schemaSourceValues.d.ts +0 -1
  142. package/dist/compiler/schemaSourceWildcards.d.ts +1 -2
  143. package/dist/compiler/schemaSourceWildcards.js +3 -1
  144. package/dist/compiler/schemaSymbolicSequences.d.ts +0 -1
  145. package/dist/compiler/schemaSymbolicValueSets.d.ts +0 -1
  146. package/dist/compiler/schemaSyntaxAssessment.d.ts +0 -1
  147. package/dist/compiler/schemaTemporalAliases.d.ts +0 -1
  148. package/dist/compiler/schemaTokenImages.d.ts +0 -1
  149. package/dist/compiler/schemaTypeIdentity.d.ts +0 -1
  150. package/dist/compiler/schemaTypeIdentity.js +2 -0
  151. package/dist/compiler/schemaTypeRelations.d.ts +0 -1
  152. package/dist/compiler/schemaUri.d.ts +0 -1
  153. package/dist/compiler/schemaValueContext.d.ts +0 -1
  154. package/dist/compiler/schemaValueImages.d.ts +0 -1
  155. package/dist/compiler/schemaValueSequences.d.ts +0 -1
  156. package/dist/compiler/semanticBudget.d.ts +18 -1
  157. package/dist/compiler/semanticBudget.js +17 -2
  158. package/dist/compiler/semanticCatalog.d.ts +1 -2
  159. package/dist/compiler/semanticContext.d.ts +12 -1
  160. package/dist/compiler/semanticContext.js +39 -0
  161. package/dist/compiler/semanticTypeDependencies.d.ts +0 -1
  162. package/dist/compiler/semanticTypeReference.d.ts +0 -1
  163. package/dist/compiler/shapeResolver.d.ts +0 -1
  164. package/dist/compiler/soapHeaders.d.ts +16 -0
  165. package/dist/compiler/soapHeaders.js +42 -0
  166. package/dist/compiler/sourceSchemaBinding.d.ts +0 -1
  167. package/dist/compiler/standardSchemaComponents.d.ts +71 -0
  168. package/dist/compiler/standardSchemaComponents.js +74 -0
  169. package/dist/compiler/standardSchemaConstruction.d.ts +20 -0
  170. package/dist/compiler/standardSchemaConstruction.js +34 -0
  171. package/dist/compiler/structuralCompanions.d.ts +0 -1
  172. package/dist/compiler/validateSemanticGraph.d.ts +0 -1
  173. package/dist/compiler/wildcardAlgebra.d.ts +0 -1
  174. package/dist/compiler/wsdlPolicyRequirements.d.ts +43 -0
  175. package/dist/compiler/wsdlPolicyRequirements.js +239 -0
  176. package/dist/config.d.ts +0 -1
  177. package/dist/gateway/generateCheckedGateway.d.ts +32 -0
  178. package/dist/gateway/generateCheckedGateway.js +293 -0
  179. package/dist/gateway/generateGateway.d.ts +0 -1
  180. package/dist/gateway/generators.d.ts +0 -1
  181. package/dist/gateway/helpers.d.ts +0 -1
  182. package/dist/generation/componentShape.d.ts +14 -0
  183. package/dist/generation/componentShape.js +269 -0
  184. package/dist/generation/preamble.d.ts +0 -1
  185. package/dist/generation/sourceLayout.d.ts +13 -0
  186. package/dist/generation/sourceLayout.js +40 -0
  187. package/dist/generation/writeGeneratedSource.d.ts +0 -1
  188. package/dist/index.d.ts +7 -2
  189. package/dist/index.js +2 -1
  190. package/dist/loader/fetch.d.ts +0 -1
  191. package/dist/loader/orderedSyntax.d.ts +8 -1
  192. package/dist/loader/orderedSyntax.js +26 -6
  193. package/dist/loader/resolutionDepth.d.ts +0 -1
  194. package/dist/loader/schemaInput.d.ts +28 -1
  195. package/dist/loader/schemaInput.js +41 -4
  196. package/dist/loader/schemaResources.d.ts +2 -1
  197. package/dist/loader/schemaResources.js +45 -4
  198. package/dist/loader/wsdlLoader.d.ts +0 -1
  199. package/dist/openapi/casing.d.ts +0 -1
  200. package/dist/openapi/generateOpenAPI.d.ts +0 -1
  201. package/dist/openapi/generatePaths.d.ts +0 -1
  202. package/dist/openapi/generateSchemas.d.ts +0 -1
  203. package/dist/openapi/security.d.ts +0 -1
  204. package/dist/pipeline.d.ts +6 -2
  205. package/dist/pipeline.js +13 -0
  206. package/dist/test/generateCheckedTests.d.ts +17 -0
  207. package/dist/test/generateCheckedTests.js +60 -0
  208. package/dist/test/generateTests.d.ts +0 -1
  209. package/dist/test/generators.d.ts +0 -1
  210. package/dist/test/mockData.d.ts +0 -1
  211. package/dist/test/mockData.js +20 -14
  212. package/dist/util/attributeWildcards.d.ts +0 -1
  213. package/dist/util/builder.d.ts +0 -1
  214. package/dist/util/catalogMeta.d.ts +0 -1
  215. package/dist/util/checkedCliDiagnostics.d.ts +11 -0
  216. package/dist/util/checkedCliDiagnostics.js +22 -0
  217. package/dist/util/cli.d.ts +0 -1
  218. package/dist/util/errors.d.ts +0 -1
  219. package/dist/util/imports.d.ts +0 -1
  220. package/dist/util/runtimeSource.d.ts +0 -1
  221. package/dist/util/runtimeSource.js +3 -5
  222. package/dist/util/securityConfig.d.ts +0 -1
  223. package/dist/util/streamConfig.d.ts +0 -1
  224. package/dist/util/tools.d.ts +0 -1
  225. package/dist/util/xmlWhitespace.d.ts +0 -1
  226. package/dist/xsd/primitives.d.ts +0 -1
  227. package/docs/agent-skill.md +2 -0
  228. package/docs/api-reference.md +1 -1
  229. package/docs/checked-gateway.md +210 -0
  230. package/docs/checked-generation.md +161 -0
  231. package/docs/cli-reference.md +23 -1
  232. package/docs/concepts.md +136 -1
  233. package/docs/configuration.md +5 -1
  234. package/docs/corpus.md +33 -0
  235. package/docs/direct-values.md +13 -13
  236. package/docs/examples/checked-forecast.wsdl +19 -0
  237. package/docs/gateway-guide.md +1 -1
  238. package/docs/generated-code.md +10 -5
  239. package/docs/mapping-contract.md +114 -0
  240. package/docs/migration-playbook.md +1 -1
  241. package/docs/output-anatomy.md +1 -1
  242. package/docs/start-here.md +8 -2
  243. package/docs/supported-patterns.md +7 -3
  244. package/docs/testing.md +117 -31
  245. package/llms.txt +7 -7
  246. package/package.json +63 -22
  247. package/src/runtime/checkedGatewayHost.tpl.txt +157 -0
  248. package/src/runtime/streamXml.ts +1 -1
  249. package/dist/app/generateApp.d.ts.map +0 -1
  250. package/dist/cli.d.ts.map +0 -1
  251. package/dist/client/checkedDirectRuntime.d.ts.map +0 -1
  252. package/dist/client/directClientRuntime.d.ts.map +0 -1
  253. package/dist/client/directClientVersion.d.ts.map +0 -1
  254. package/dist/client/generateClient.d.ts.map +0 -1
  255. package/dist/client/generateDirectClient.d.ts.map +0 -1
  256. package/dist/client/generateOperations.d.ts.map +0 -1
  257. package/dist/client/generateTypes.d.ts.map +0 -1
  258. package/dist/client/generateUtils.d.ts.map +0 -1
  259. package/dist/compiler/buildCanonicalGraph.d.ts.map +0 -1
  260. package/dist/compiler/canonicalGraph.d.ts.map +0 -1
  261. package/dist/compiler/catalogErrors.d.ts.map +0 -1
  262. package/dist/compiler/catalogProvenance.d.ts.map +0 -1
  263. package/dist/compiler/checkedAssessment.d.ts.map +0 -1
  264. package/dist/compiler/checkedSourcePreparation.d.ts.map +0 -1
  265. package/dist/compiler/complexTypeContent.d.ts.map +0 -1
  266. package/dist/compiler/composeCanonicalGraph.d.ts.map +0 -1
  267. package/dist/compiler/dataOwnership.d.ts.map +0 -1
  268. package/dist/compiler/datatypeValues.d.ts.map +0 -1
  269. package/dist/compiler/directCodec.d.ts.map +0 -1
  270. package/dist/compiler/directExecutionPolicy.d.ts.map +0 -1
  271. package/dist/compiler/directOperation.d.ts.map +0 -1
  272. package/dist/compiler/directSoap.d.ts.map +0 -1
  273. package/dist/compiler/directSoapSource.d.ts.map +0 -1
  274. package/dist/compiler/directSourceCapsule.d.ts.map +0 -1
  275. package/dist/compiler/directStructure.d.ts.map +0 -1
  276. package/dist/compiler/directStructurePlan.d.ts.map +0 -1
  277. package/dist/compiler/directValues.d.ts.map +0 -1
  278. package/dist/compiler/finiteRe01Verification.d.ts.map +0 -1
  279. package/dist/compiler/generateCatalog.d.ts.map +0 -1
  280. package/dist/compiler/graphTraversal.d.ts.map +0 -1
  281. package/dist/compiler/hypotheticalScopedIdentity.d.ts.map +0 -1
  282. package/dist/compiler/occurrenceAnalysis.d.ts.map +0 -1
  283. package/dist/compiler/originalSourceMembership.d.ts.map +0 -1
  284. package/dist/compiler/particleAttribution.d.ts.map +0 -1
  285. package/dist/compiler/particleDeclarationConsistency.d.ts.map +0 -1
  286. package/dist/compiler/particleExtension.d.ts.map +0 -1
  287. package/dist/compiler/particleLocalAssessment.d.ts.map +0 -1
  288. package/dist/compiler/particleRestriction.d.ts.map +0 -1
  289. package/dist/compiler/particleSemanticView.d.ts.map +0 -1
  290. package/dist/compiler/particleWildcardRelation.d.ts.map +0 -1
  291. package/dist/compiler/re01CandidateCorrespondence.d.ts.map +0 -1
  292. package/dist/compiler/re01TypeProperties.d.ts.map +0 -1
  293. package/dist/compiler/re01TypePropertyValidation.d.ts.map +0 -1
  294. package/dist/compiler/resolveCanonicalGraph.d.ts.map +0 -1
  295. package/dist/compiler/scalarSchemaAssessment.d.ts.map +0 -1
  296. package/dist/compiler/schemaAttributeGroupProperties.d.ts.map +0 -1
  297. package/dist/compiler/schemaAttributeProperties.d.ts.map +0 -1
  298. package/dist/compiler/schemaAttributeUses.d.ts.map +0 -1
  299. package/dist/compiler/schemaBinaryWordReconstruction.d.ts.map +0 -1
  300. package/dist/compiler/schemaBuiltinFacets.d.ts.map +0 -1
  301. package/dist/compiler/schemaCalendarImages.d.ts.map +0 -1
  302. package/dist/compiler/schemaCalendarLanguage.d.ts.map +0 -1
  303. package/dist/compiler/schemaCompiler.d.ts.map +0 -1
  304. package/dist/compiler/schemaComponentEquality.d.ts.map +0 -1
  305. package/dist/compiler/schemaConstructionAssessment.d.ts.map +0 -1
  306. package/dist/compiler/schemaDatatypeValues.d.ts.map +0 -1
  307. package/dist/compiler/schemaDecimalLanguage.d.ts.map +0 -1
  308. package/dist/compiler/schemaDeclarationPrimitives.d.ts.map +0 -1
  309. package/dist/compiler/schemaDocumentSyntax.d.ts.map +0 -1
  310. package/dist/compiler/schemaDurationLanguage.d.ts.map +0 -1
  311. package/dist/compiler/schemaElementProperties.d.ts.map +0 -1
  312. package/dist/compiler/schemaEndpointWordCapacity.d.ts.map +0 -1
  313. package/dist/compiler/schemaExactCalendar.d.ts.map +0 -1
  314. package/dist/compiler/schemaFacetAnnotation.d.ts.map +0 -1
  315. package/dist/compiler/schemaGeneratedScalarShape.d.ts.map +0 -1
  316. package/dist/compiler/schemaIdentityConstraints.d.ts.map +0 -1
  317. package/dist/compiler/schemaIeeeLanguage.d.ts.map +0 -1
  318. package/dist/compiler/schemaIntegerImages.d.ts.map +0 -1
  319. package/dist/compiler/schemaLexicalPredicates.d.ts.map +0 -1
  320. package/dist/compiler/schemaNotationProperties.d.ts.map +0 -1
  321. package/dist/compiler/schemaNumericImageConditions.d.ts.map +0 -1
  322. package/dist/compiler/schemaParticleWildcardProperties.d.ts.map +0 -1
  323. package/dist/compiler/schemaPattern.d.ts.map +0 -1
  324. package/dist/compiler/schemaRegularLanguage.d.ts.map +0 -1
  325. package/dist/compiler/schemaScalarContext.d.ts.map +0 -1
  326. package/dist/compiler/schemaScalarKernel.d.ts.map +0 -1
  327. package/dist/compiler/schemaScalarWitnesses.d.ts.map +0 -1
  328. package/dist/compiler/schemaSimpleTypeProperties.d.ts.map +0 -1
  329. package/dist/compiler/schemaSourceGrammar.d.ts.map +0 -1
  330. package/dist/compiler/schemaSourceLexical.d.ts.map +0 -1
  331. package/dist/compiler/schemaSourceValues.d.ts.map +0 -1
  332. package/dist/compiler/schemaSourceWildcards.d.ts.map +0 -1
  333. package/dist/compiler/schemaSymbolicSequences.d.ts.map +0 -1
  334. package/dist/compiler/schemaSymbolicValueSets.d.ts.map +0 -1
  335. package/dist/compiler/schemaSyntaxAssessment.d.ts.map +0 -1
  336. package/dist/compiler/schemaTemporalAliases.d.ts.map +0 -1
  337. package/dist/compiler/schemaTokenImages.d.ts.map +0 -1
  338. package/dist/compiler/schemaTypeIdentity.d.ts.map +0 -1
  339. package/dist/compiler/schemaTypeRelations.d.ts.map +0 -1
  340. package/dist/compiler/schemaUri.d.ts.map +0 -1
  341. package/dist/compiler/schemaValueContext.d.ts.map +0 -1
  342. package/dist/compiler/schemaValueImages.d.ts.map +0 -1
  343. package/dist/compiler/schemaValueSequences.d.ts.map +0 -1
  344. package/dist/compiler/semanticBudget.d.ts.map +0 -1
  345. package/dist/compiler/semanticCatalog.d.ts.map +0 -1
  346. package/dist/compiler/semanticContext.d.ts.map +0 -1
  347. package/dist/compiler/semanticTypeDependencies.d.ts.map +0 -1
  348. package/dist/compiler/semanticTypeReference.d.ts.map +0 -1
  349. package/dist/compiler/shapeResolver.d.ts.map +0 -1
  350. package/dist/compiler/sourceSchemaBinding.d.ts.map +0 -1
  351. package/dist/compiler/structuralCompanions.d.ts.map +0 -1
  352. package/dist/compiler/validateSemanticGraph.d.ts.map +0 -1
  353. package/dist/compiler/wildcardAlgebra.d.ts.map +0 -1
  354. package/dist/config.d.ts.map +0 -1
  355. package/dist/gateway/generateGateway.d.ts.map +0 -1
  356. package/dist/gateway/generators.d.ts.map +0 -1
  357. package/dist/gateway/helpers.d.ts.map +0 -1
  358. package/dist/generation/preamble.d.ts.map +0 -1
  359. package/dist/generation/writeGeneratedSource.d.ts.map +0 -1
  360. package/dist/index.d.ts.map +0 -1
  361. package/dist/loader/fetch.d.ts.map +0 -1
  362. package/dist/loader/orderedSyntax.d.ts.map +0 -1
  363. package/dist/loader/resolutionDepth.d.ts.map +0 -1
  364. package/dist/loader/schemaInput.d.ts.map +0 -1
  365. package/dist/loader/schemaResources.d.ts.map +0 -1
  366. package/dist/loader/wsdlLoader.d.ts.map +0 -1
  367. package/dist/openapi/casing.d.ts.map +0 -1
  368. package/dist/openapi/generateOpenAPI.d.ts.map +0 -1
  369. package/dist/openapi/generatePaths.d.ts.map +0 -1
  370. package/dist/openapi/generateSchemas.d.ts.map +0 -1
  371. package/dist/openapi/security.d.ts.map +0 -1
  372. package/dist/pipeline.d.ts.map +0 -1
  373. package/dist/runtime/jsonArray.d.ts +0 -24
  374. package/dist/runtime/jsonArray.d.ts.map +0 -1
  375. package/dist/runtime/jsonArray.js +0 -52
  376. package/dist/runtime/ndjson.d.ts +0 -24
  377. package/dist/runtime/ndjson.d.ts.map +0 -1
  378. package/dist/runtime/ndjson.js +0 -30
  379. package/dist/runtime/streamXml.d.ts +0 -45
  380. package/dist/runtime/streamXml.d.ts.map +0 -1
  381. package/dist/runtime/streamXml.js +0 -212
  382. package/dist/test/generateTests.d.ts.map +0 -1
  383. package/dist/test/generators.d.ts.map +0 -1
  384. package/dist/test/mockData.d.ts.map +0 -1
  385. package/dist/util/attributeWildcards.d.ts.map +0 -1
  386. package/dist/util/builder.d.ts.map +0 -1
  387. package/dist/util/catalogMeta.d.ts.map +0 -1
  388. package/dist/util/cli.d.ts.map +0 -1
  389. package/dist/util/errors.d.ts.map +0 -1
  390. package/dist/util/imports.d.ts.map +0 -1
  391. package/dist/util/runtimeSource.d.ts.map +0 -1
  392. package/dist/util/securityConfig.d.ts.map +0 -1
  393. package/dist/util/streamConfig.d.ts.map +0 -1
  394. package/dist/util/tools.d.ts.map +0 -1
  395. package/dist/util/xmlWhitespace.d.ts.map +0 -1
  396. package/dist/xsd/primitives.d.ts.map +0 -1
  397. package/docs/AGENTS.md +0 -47
  398. package/docs/README.md +0 -69
  399. package/docs/architecture.md +0 -158
  400. package/docs/content-model-analysis.md +0 -92
  401. package/docs/content-model-baseline.md +0 -121
  402. package/docs/content-model-catalog.md +0 -116
  403. package/docs/content-model-companions.md +0 -90
  404. package/docs/content-model-composition.md +0 -103
  405. package/docs/content-model-decisions.md +0 -79
  406. package/docs/content-model-gateway-feasibility.md +0 -169
  407. package/docs/content-model-graph.md +0 -121
  408. package/docs/content-model-loading.md +0 -163
  409. package/docs/content-model-matching.md +0 -85
  410. package/docs/content-model-readiness.md +0 -144
  411. package/docs/content-model-resolution.md +0 -81
  412. package/docs/content-model-s02-handoff.md +0 -98
  413. package/docs/content-model-s06-au-01.md +0 -425
  414. package/docs/content-model-s06-dt-01.md +0 -386
  415. package/docs/content-model-s06-pw-01.md +0 -350
  416. package/docs/content-model-s06-re-01-resolver-implementation.md +0 -869
  417. package/docs/content-model-s06-re-01-resolver.md +0 -513
  418. package/docs/content-model-s06-re-01-scalar-witnesses.md +0 -1423
  419. package/docs/content-model-s06-re-01-support-reconstruction.md +0 -6337
  420. package/docs/content-model-s06-re-01.md +0 -7477
  421. package/docs/content-model-s06-research-handoff.md +0 -909
  422. package/docs/content-model-shipped-fix.md +0 -83
  423. package/docs/content-model-soap-feasibility.md +0 -165
  424. package/docs/decisions/001-test-generation.md +0 -36
  425. package/docs/decisions/002-streamable-responses.md +0 -332
  426. package/docs/decisions/003-content-model-contracts.md +0 -280
  427. package/docs/file-naming-and-path-organization.md +0 -213
  428. package/docs/reference-validation.md +0 -243
  429. package/docs/releases/README.md +0 -94
  430. package/docs/releases/v0.20.0.md +0 -22
  431. package/docs/releases/v0.21.0.md +0 -30
  432. package/docs/releases/v0.22.0.md +0 -30
  433. package/docs/releases/v0.23.0.md +0 -31
  434. package/docs/releases/v0.24.0.md +0 -38
  435. package/docs/releases/v0.25.0.md +0 -31
  436. package/docs/releases/v0.25.2.md +0 -32
  437. package/docs/releases/v0.26.0.md +0 -32
  438. package/docs/releases/v0.27.0.md +0 -31
  439. package/docs/releases/v0.28.0.md +0 -32
  440. package/docs/releases/v0.29.0.md +0 -32
  441. package/docs/releases/v0.30.0.md +0 -30
  442. package/docs/releases/v0.30.1.md +0 -31
  443. package/docs/releases/v0.30.2.md +0 -30
  444. package/docs/releases/v0.30.3.md +0 -33
  445. package/docs/releases/v0.31.0.md +0 -33
  446. package/docs/releases/v0.32.0.md +0 -33
  447. package/docs/releases/v0.33.0.md +0 -34
  448. package/docs/releases/v0.34.0.md +0 -30
  449. package/docs/releases/v0.35.0.md +0 -33
  450. package/docs/releases/v0.36.0.md +0 -32
  451. package/docs/releases/v0.37.0.md +0 -33
  452. package/docs/releases/v0.38.0.md +0 -35
  453. package/docs/releases/v0.39.0.md +0 -35
  454. package/docs/releases/v0.40.0.md +0 -45
  455. package/docs/releases/v0.40.1.md +0 -34
  456. package/docs/releases/v1.0.0.md +0 -42
  457. package/docs/releases/v1.0.1.md +0 -38
  458. package/docs/releases/v1.0.2.md +0 -51
  459. package/docs/releases/v1.0.3.md +0 -37
  460. package/docs/releases/v1.0.4.md +0 -45
  461. package/docs/releases/v1.0.5.md +0 -41
  462. package/docs/releases/v1.0.6.md +0 -35
  463. package/docs/releases/v1.0.7.md +0 -36
  464. package/docs/releases/v1.1.0.md +0 -42
  465. package/docs/releases/v1.1.1.md +0 -44
  466. package/docs/releases/v1.1.2.md +0 -42
  467. package/docs/releases/v1.1.3.md +0 -36
  468. package/docs/releases/v1.1.4.md +0 -36
  469. package/docs/releases/v1.1.5.md +0 -38
  470. package/docs/roadmap/README.md +0 -107
  471. package/docs/roadmap/v1.0-capability-conformance-framework.md +0 -582
  472. package/docs/roadmap/v1.0-choice-union-mode.md +0 -90
  473. package/docs/roadmap/v1.0-contract-audit.md +0 -75
  474. package/docs/roadmap/v1.0-json-array-streaming.md +0 -101
  475. package/docs/roadmap/v1.0-openapi-fastify-compatibility.md +0 -99
  476. package/docs/roadmap/v1.0-release-candidate-gates.md +0 -92
  477. package/docs/roadmap/v1.0-wsdl-coverage-matrix.md +0 -200
  478. package/docs/roadmap/v1.0-xs-anyattribute-wildcard-bag.md +0 -932
  479. package/src/runtime/jsonArray.ts +0 -55
  480. package/src/runtime/ndjson.ts +0 -32
@@ -0,0 +1,269 @@
1
+ /** Documentation/static shape lowering only; source, scalar facets and particle languages remain native duties. */
2
+ import { inspectDirectOperation } from '../compiler/directOperation.js';
3
+ import { inspectComponentValueMapping } from '../compiler/directValues.js';
4
+ import { projectionScalarRepresentation, inspectOrderedProjectionWildcards, inspectUnassessedProjectionWildcards } from '../compiler/directStructurePlan.js';
5
+ import { createHash } from 'node:crypto';
6
+ import { isComponentRecordProjection, inspectComponentRecordProjection } from '../compiler/componentRecordProjection.js';
7
+ import { applicationRecordName } from '../compiler/applicationGroups.js';
8
+ const literal = (value) => JSON.stringify(value).replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029');
9
+ /** Lower an authenticated mapping to recursive TypeScript and JSON shape descriptions.
10
+ * @remarks Scalar restrictions, fixed/default semantics, ordered occurrence correlation and strict wildcard
11
+ * declaration membership require native validation. These descriptions never grant source/runtime authority.
12
+ * @returns Role-scoped definitions and root descriptions; no native handles or retrieval paths are emitted.
13
+ * @throws TypeError For foreign mappings or unsupported scalar representation. Caller cancellation propagates.
14
+ */
15
+ export function lowerComponentShape(contract, supplied, role, check) {
16
+ if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(role))
17
+ throw new TypeError('TypeScript role identifier required');
18
+ if (isComponentRecordProjection(supplied)) {
19
+ const owned = inspectComponentRecordProjection(supplied, contract);
20
+ return lowerComponentShape(owned.companion, owned.mapping, role, check);
21
+ }
22
+ const { projection, applicationGroups } = inspectComponentValueMapping(supplied, contract), { context } = inspectDirectOperation(contract);
23
+ const names = new Map(projection.records.map((record, index) => [record.type.id, applicationGroups
24
+ ? applicationRecordName(record.type.id) : `${role}_Record_${index}`]));
25
+ const definitions = Object.create(null);
26
+ const declarations = [];
27
+ const lexicalAttribute = { type: 'object', minProperties: 1, maxProperties: 1, additionalProperties: { anyOf: [
28
+ { type: 'string' }, { type: 'number' }, { type: 'boolean' }, { type: 'array', items: { anyOf: [{ type: 'string' }, { type: 'number' }, { type: 'boolean' }] } },
29
+ { type: 'object', additionalProperties: false, required: ['$namespace', '$value'], properties: {
30
+ $namespace: { type: 'string', minLength: 1 }, $value: {}
31
+ } }
32
+ ] } };
33
+ const lexicalAttributeType = 'Readonly<Record<string, string | number | boolean | readonly (string | number | boolean)[] | {readonly "$namespace": string; readonly "$value": unknown}>>';
34
+ const openName = applicationGroups ? 'ApplicationOpenValue' : `${role}_OpenValue`;
35
+ let openDeclared = false;
36
+ const openShape = () => {
37
+ if (!openDeclared) {
38
+ openDeclared = true;
39
+ const attribute = { type: 'object', minProperties: 1, maxProperties: 1, additionalProperties: { anyOf: [{ type: 'string' },
40
+ { type: 'object', additionalProperties: false, required: ['$namespace', '$value'], properties: { $namespace: { type: 'string', minLength: 1 }, $value: { type: 'string' } } }] } };
41
+ definitions[openName] = { type: 'object', additionalProperties: false, required: ['$namespace', '$content'], properties: {
42
+ $namespace: { type: 'string' }, $namespaces: { type: 'object', additionalProperties: { type: 'string' } }, $attributes: { type: 'array', items: attribute },
43
+ $content: { type: 'array', items: { anyOf: [
44
+ { type: 'object', additionalProperties: false, required: ['$value'], properties: { $value: { type: 'string' } } },
45
+ { type: 'object', minProperties: 1, maxProperties: 1, additionalProperties: { $ref: '#/definitions/' + openName } },
46
+ ] } },
47
+ } };
48
+ declarations.push(`export type ${openName} = {readonly "$namespace": string; readonly "$namespaces"?: Readonly<Record<string, string>>; `
49
+ + 'readonly "$attributes"?: readonly Readonly<Record<string, string | {readonly "$namespace": string; readonly "$value": string}>>[]; '
50
+ + `readonly "$content": readonly ({readonly "$value": string} | Readonly<Record<string, ${openName}>>)[]};`);
51
+ }
52
+ return { type: `Readonly<Record<string, ${openName}>>`, schema: { type: 'object', minProperties: 1, maxProperties: 1,
53
+ additionalProperties: { $ref: '#/definitions/' + openName } } };
54
+ };
55
+ const scalar = (value) => {
56
+ check();
57
+ // @why A list-level pattern retains one lexical witness; its HTTP value is a string rather than an item array.
58
+ const item = value.retainLexical ? value : value.list ?? value;
59
+ const type = item.retainLexical ? 'string' : projectionScalarRepresentation(item.builtin);
60
+ if (!type)
61
+ throw new TypeError('Unsupported native scalar representation');
62
+ const schema = type === 'number' ? { type: 'integer', minimum: -2147483648, maximum: 2147483647 }
63
+ : type === 'string' ? { type, pattern: '^[\\u0009\\u000A\\u000D\\u0020-\\uD7FF\\uE000-\\uFFFD\\u{10000}-\\u{10FFFF}]*$' } : { type };
64
+ return value.list && !value.retainLexical ? { type: `readonly ${type}[]`, schema: { type: 'array', items: schema } } : { type, schema };
65
+ };
66
+ const shape = (value) => {
67
+ check();
68
+ const ordinary = (() => {
69
+ if (value.kind === 'scalar')
70
+ return scalar(value);
71
+ const name = names.get(value.type);
72
+ if (!name)
73
+ throw new TypeError('Missing native projection record');
74
+ return { type: name, schema: { $ref: '#/definitions/' + name } };
75
+ })();
76
+ if (!value.nillable || value.constraint?.kind === 'fixed')
77
+ return ordinary;
78
+ const record = value.kind === 'record' ? projection.records.find(record => record.type.id === value.type) : undefined;
79
+ const attributes = record?.attributes ?? [];
80
+ const properties = Object.create(null);
81
+ properties.$nil = { const: true };
82
+ const required = ['$nil'], members = ['readonly "$nil": true'];
83
+ for (const attribute of attributes) {
84
+ if (attribute.bag)
85
+ continue;
86
+ check();
87
+ const key = attribute.declaration.name.local, description = scalar(attribute);
88
+ properties[key] = description.schema;
89
+ if (attribute.required)
90
+ required.push(key);
91
+ members.push(`readonly ${literal(key)}${attribute.required ? '' : '?'}: ${description.type}`);
92
+ }
93
+ const bag = attributeBag(attributes, !!record?.attributeWildcard);
94
+ if (bag) {
95
+ properties.$attributes = bag.schema;
96
+ members.push(`readonly "$attributes"${bag.required ? '' : '?'}: ${bag.type}`);
97
+ if (bag.required)
98
+ required.push('$attributes');
99
+ }
100
+ if (record?.contextual) {
101
+ properties.$namespaces = { type: 'object', additionalProperties: { type: 'string' } };
102
+ members.push('readonly "$namespaces"?: Readonly<Record<string, string>>');
103
+ }
104
+ // @why Nil and ordinary values are disjoint: source data cannot use reserved $nil, and nil has no content fields.
105
+ return { type: `(${ordinary.type} | {${members.join('; ')}})`, schema: { anyOf: [ordinary.schema,
106
+ { type: 'object', additionalProperties: false, properties, required }] } };
107
+ };
108
+ const attributeBag = (attributes, open = false) => {
109
+ const entries = attributes.filter(attribute => attribute.bag).map(attribute => {
110
+ const key = attribute.declaration.name.local, description = scalar(attribute);
111
+ const ambiguous = !!attribute.declaration.name.namespace && (open || attributes.some(other => other !== attribute && other.declaration.name.local === key));
112
+ const value = ambiguous ? { type: `{readonly "$namespace": ${literal(attribute.declaration.name.namespace)}; readonly "$value": ${description.type}}`,
113
+ schema: { type: 'object', additionalProperties: false, required: ['$namespace', '$value'], properties: {
114
+ $namespace: { const: attribute.declaration.name.namespace }, $value: description.schema
115
+ } } } : description;
116
+ return { type: `{readonly ${literal(key)}: ${value.type}}`, schema: { type: 'object', additionalProperties: false,
117
+ required: [key], properties: { [key]: value.schema } } };
118
+ });
119
+ if (open)
120
+ entries.push({ type: lexicalAttributeType, schema: lexicalAttribute });
121
+ return entries.length ? { type: `readonly (${entries.map(entry => entry.type).join(' | ')})[]`,
122
+ schema: { type: 'array', items: { anyOf: entries.map(entry => entry.schema) } }, required: attributes.some(attribute => attribute.bag && attribute.required) } : undefined;
123
+ };
124
+ const groupObject = (nodes) => {
125
+ const properties = Object.create(null);
126
+ const required = [], members = [];
127
+ const visit = (node) => {
128
+ check();
129
+ if (!node.slot && !node.target) {
130
+ for (const child of node.children)
131
+ visit(child);
132
+ return;
133
+ }
134
+ const key = node.slot?.element.name.local ?? node.target.resolved.propertyName;
135
+ let description;
136
+ if (node.slot)
137
+ description = shape(node.slot.value);
138
+ else {
139
+ const name = node.target.resolved.typeName;
140
+ if (node.alternatives) {
141
+ const alternatives = node.children.map((child, index) => {
142
+ const alternative = node.alternatives[index].resolved.typeName, body = groupObject(child.children);
143
+ definitions[alternative] = body.schema;
144
+ declarations.push(`export type ${alternative} = ${body.type};`);
145
+ return { type: alternative, schema: { $ref: '#/definitions/' + alternative } };
146
+ });
147
+ definitions[name] = { anyOf: alternatives.map(a => a.schema) };
148
+ declarations.push(`export type ${name} = ${alternatives.map(a => a.type).join(' | ')};`);
149
+ }
150
+ else {
151
+ const body = groupObject(node.children);
152
+ definitions[name] = body.schema;
153
+ declarations.push(`export type ${name} = ${body.type};`);
154
+ }
155
+ description = { type: name, schema: { $ref: '#/definitions/' + name } };
156
+ }
157
+ const repeated = node.particle.occurs.max !== '1', mandatory = node.particle.occurs.min !== '0';
158
+ if (repeated)
159
+ description = { type: `readonly (${description.type})[]`, schema: { type: 'array', items: description.schema,
160
+ minItems: Number(node.particle.occurs.min), ...(node.particle.occurs.max === 'unbounded' ? {} : { maxItems: Number(node.particle.occurs.max) }) } };
161
+ properties[key] = description.schema;
162
+ if (mandatory)
163
+ required.push(key);
164
+ members.push(`readonly ${literal(key)}${mandatory ? '' : '?'}: ${description.type}`);
165
+ };
166
+ for (const node of nodes)
167
+ visit(node);
168
+ return { type: `{${members.join('; ')}}`, schema: { type: 'object', properties, required, additionalProperties: false } };
169
+ };
170
+ for (const record of projection.records) {
171
+ check();
172
+ const name = names.get(record.type.id);
173
+ const properties = Object.create(null);
174
+ const required = [], members = [];
175
+ const member = (key, value, mandatory) => {
176
+ check();
177
+ properties[key] = value.schema;
178
+ if (mandatory)
179
+ required.push(key);
180
+ members.push(` readonly ${literal(key)}${mandatory ? '' : '?'}: ${value.type};`);
181
+ };
182
+ for (const attribute of record.attributes)
183
+ if (!attribute.bag)
184
+ member(attribute.declaration.name.local, scalar(attribute), attribute.required);
185
+ const bag = attributeBag(record.attributes, !!record.attributeWildcard);
186
+ if (bag)
187
+ member('$attributes', bag, bag.required);
188
+ if (record.contextual)
189
+ member('$namespaces', { type: 'Readonly<Record<string, string>>', schema: { type: 'object', additionalProperties: { type: 'string' } } }, false);
190
+ if (record.text)
191
+ member('$value', scalar(record.text), true);
192
+ const group = applicationGroups?.records[record.type.id];
193
+ if (group) {
194
+ const description = groupObject(group.children);
195
+ const schema = description.schema;
196
+ Object.assign(properties, schema.properties);
197
+ required.push(...schema.required);
198
+ members.push(description.type.slice(1, -1));
199
+ }
200
+ else if (record.ordered) {
201
+ const variants = new Map();
202
+ for (const slot of record.slots) {
203
+ check();
204
+ const value = shape(slot.value), expanded = slot.element.name, key = literal(expanded);
205
+ if (record.keyed) {
206
+ const ambiguous = !record.fixedOrder && record.slots.some(other => other !== slot && other.element.name.local === expanded.local);
207
+ const scalarValue = slot.value.kind === 'scalar' ? scalar(slot.value) : value;
208
+ const holder = ambiguous ? { type: slot.value.kind === 'scalar'
209
+ ? `{readonly "$namespace": ${literal(expanded.namespace)}; readonly "$value": ${scalarValue.type}}`
210
+ : `(${value.type} & {readonly "$namespace": ${literal(expanded.namespace)}})`,
211
+ schema: slot.value.kind === 'scalar' ? { type: 'object', additionalProperties: false, required: ['$namespace', '$value'], properties: {
212
+ $namespace: { const: expanded.namespace }, $value: scalarValue.schema
213
+ } }
214
+ // @why Native validation owns the record's fixed fields; this structural superset must preserve the identity holder.
215
+ : { type: 'object', required: ['$namespace'], properties: { $namespace: { const: expanded.namespace } }, additionalProperties: true } } : value;
216
+ if (ambiguous && slot.value.kind === 'scalar' && slot.value.nillable && slot.value.constraint?.kind !== 'fixed') {
217
+ holder.type = `(${holder.type} | {readonly "$namespace": ${literal(expanded.namespace)}; readonly "$nil": true})`;
218
+ holder.schema = { anyOf: [holder.schema, { type: 'object', additionalProperties: false, required: ['$namespace', '$nil'], properties: {
219
+ $namespace: { const: expanded.namespace }, $nil: { const: true }
220
+ } }] };
221
+ }
222
+ variants.set(key, { type: `{readonly ${literal(expanded.local)}: ${holder.type}}`, schema: {
223
+ type: 'object', additionalProperties: false, required: [expanded.local], properties: { [expanded.local]: holder.schema }
224
+ } });
225
+ continue;
226
+ }
227
+ variants.set(key, { type: `{readonly name: {readonly namespace: ${literal(expanded.namespace)}; readonly local: ${literal(expanded.local)}}; readonly value: ${value.type}}`,
228
+ schema: { type: 'object', additionalProperties: false, required: ['name', 'value'], properties: {
229
+ name: { type: 'object', additionalProperties: false, required: ['namespace', 'local'], properties: { namespace: { const: expanded.namespace }, local: { const: expanded.local } } }, value: value.schema
230
+ } } });
231
+ }
232
+ if (record.content === 'mixed')
233
+ variants.set('$value', { type: '{readonly "$value": string}', schema: {
234
+ type: 'object', additionalProperties: false, required: ['$value'], properties: { $value: { type: 'string' } }
235
+ } });
236
+ if (inspectOrderedProjectionWildcards(context, record))
237
+ variants.set('*', record.keyed ? {
238
+ type: 'Readonly<Record<string, Readonly<{"$namespace": string; [key: string]: unknown}>>>',
239
+ schema: { type: 'object', minProperties: 1, maxProperties: 1, additionalProperties: { type: 'object',
240
+ required: ['$namespace'], properties: { $namespace: { type: 'string' }, $namespaces: { type: 'object', additionalProperties: { type: 'string' } },
241
+ $attributes: { type: 'array', items: lexicalAttribute }, $content: { type: 'array', items: { type: 'object' } }, $value: {} }, additionalProperties: true } },
242
+ } : {
243
+ type: '{readonly name: {readonly namespace: string; readonly local: string}; readonly value: unknown}',
244
+ schema: { type: 'object', additionalProperties: false, required: ['name', 'value'], properties: { name: { type: 'object', additionalProperties: false,
245
+ required: ['namespace', 'local'], properties: { namespace: { type: 'string' }, local: { type: 'string' } } }, value: {} } },
246
+ });
247
+ if (record.keyed && inspectUnassessedProjectionWildcards(context, record))
248
+ variants.set('*', openShape());
249
+ const entries = [...variants.values()];
250
+ member('$content', { type: `readonly (${entries.map(entry => entry.type).join(' | ') || 'never'})[]`,
251
+ schema: { type: 'array', items: entries.length ? { anyOf: entries.map(entry => entry.schema) } : { not: {} } } }, true);
252
+ }
253
+ else
254
+ for (const slot of record.slots) {
255
+ check();
256
+ const value = shape(slot.value), repeated = slot.particle.occurs.max !== '1';
257
+ member(slot.element.name.local, repeated ? { type: slot.particle.occurs.min === '1'
258
+ ? `readonly [${value.type}, ...(${value.type})[]]` : `readonly (${value.type})[]`, schema: { type: 'array', items: value.schema,
259
+ minItems: Number(slot.particle.occurs.min) } } : value, repeated || slot.particle.occurs.min === '1');
260
+ }
261
+ declarations.push(`export type ${name} = ${members.length ? '{\n' + members.join('\n') + '\n}' : 'Readonly<Record<string, never>>'};`);
262
+ definitions[name] = { type: 'object', properties, required, additionalProperties: false };
263
+ }
264
+ const root = shape(projection.root);
265
+ const id = 'urn:checked-component:shape:' + createHash('sha256').update(JSON.stringify({ selector: contract.selector, role })).digest('hex');
266
+ // @why Nested identified fault schemas must not expose a root-only $ref that recurses during Ajv resource resolution.
267
+ const rootSchema = root.schema.$ref ? { allOf: [root.schema] } : root.schema;
268
+ return { type: root.type, declarations, schema: { $id: id, ...rootSchema, definitions } };
269
+ }
@@ -14,4 +14,3 @@ export declare const resolvePreamble: (artifact: string) => string;
14
14
  * @constraints Embedded fragments must not pass through this composer separately.
15
15
  */
16
16
  export declare function composeGeneratedSource(body: string, preamble: string): string;
17
- //# sourceMappingURL=preamble.d.ts.map
@@ -0,0 +1,13 @@
1
+ /** Physical layout checks only; source interpretation and eligibility remain native responsibilities. */
2
+ import path from 'node:path';
3
+ import type { SchemaInput } from '../loader/schemaInput.js';
4
+ /** Find a finite common directory using complete parent segments, including valid names beginning with two dots.
5
+ * @throws Error For cross-volume inputs, cancellation or an impossible ancestor search.
6
+ */
7
+ export declare function commonSourceDirectory(root: string, files: readonly string[], check: () => void, paths?: Pick<typeof path, 'dirname' | 'parse' | 'relative' | 'isAbsolute' | 'sep'>): string;
8
+ /** Refuse local retrieval aliases that cannot be copied as a relocatable physical tree.
9
+ * @remarks HTTP aliases use generated offline URI records. Local symlink aliases remain unsupported;
10
+ * this scaffold does not invent filesystem links or rewrite original source bytes.
11
+ * @throws TypeError For unowned source input. Error For a nonrelocatable authenticated dependency or cancellation.
12
+ */
13
+ export declare function assertCanonicalSourceLayout(input: SchemaInput, check: () => void): void;
@@ -0,0 +1,40 @@
1
+ /** Physical layout checks only; source interpretation and eligibility remain native responsibilities. */
2
+ import path from 'node:path';
3
+ import { assertLoadedSchemaInput } from '../loader/schemaInput.js';
4
+ /** Find a finite common directory using complete parent segments, including valid names beginning with two dots.
5
+ * @throws Error For cross-volume inputs, cancellation or an impossible ancestor search.
6
+ */
7
+ export function commonSourceDirectory(root, files, check, paths = path) {
8
+ let common = paths.dirname(root);
9
+ for (const file of files) {
10
+ check();
11
+ if (paths.parse(file).root.toLowerCase() !== paths.parse(common).root.toLowerCase())
12
+ throw new Error('Cross-volume source relocation requires explicit consumer source configuration');
13
+ for (;;) {
14
+ check();
15
+ const relative = paths.relative(common, file);
16
+ if (relative !== '..' && !relative.startsWith('..' + paths.sep) && !paths.isAbsolute(relative))
17
+ break;
18
+ const parent = paths.dirname(common);
19
+ if (parent === common)
20
+ throw new Error('Unable to find common source directory');
21
+ common = parent;
22
+ }
23
+ }
24
+ return common;
25
+ }
26
+ /** Refuse local retrieval aliases that cannot be copied as a relocatable physical tree.
27
+ * @remarks HTTP aliases use generated offline URI records. Local symlink aliases remain unsupported;
28
+ * this scaffold does not invent filesystem links or rewrite original source bytes.
29
+ * @throws TypeError For unowned source input. Error For a nonrelocatable authenticated dependency or cancellation.
30
+ */
31
+ export function assertCanonicalSourceLayout(input, check) {
32
+ assertLoadedSchemaInput(input);
33
+ const schemas = new Map(input.schemas.map(schema => [schema.key, schema.documentUri]));
34
+ for (const edge of input.edges) {
35
+ check();
36
+ if (edge.to && edge.referenceUri && new URL(edge.referenceUri).protocol === 'file:' && edge.referenceUri !== (schemas.get(edge.to) ?? edge.to)) {
37
+ throw new Error('Source relocation refuses import retrieval aliases; supply canonical source references or independently configured runtime inputs');
38
+ }
39
+ }
40
+ }
@@ -8,4 +8,3 @@
8
8
  * @constraints Call only after any scaffold skip/force guard.
9
9
  */
10
10
  export declare function writeGeneratedSource(filePath: string, content: string, artifact: string): void;
11
- //# sourceMappingURL=writeGeneratedSource.d.ts.map
package/dist/index.d.ts CHANGED
@@ -4,9 +4,14 @@ export { generateGateway } from "./gateway/generateGateway.js";
4
4
  export { buildSecurity, loadSecurityConfigFile, parseSecurityConfig, SecurityConfigError, type SecurityConfig, } from "./util/securityConfig.js";
5
5
  export { generateTests } from "./test/generateTests.js";
6
6
  export { runGenerationPipeline } from "./pipeline.js";
7
+ export type { PipelineOptions } from './pipeline.js';
8
+ export type { CheckedComponentOptions, CheckedInventory } from './checkedPipeline.js';
9
+ export { planCheckedComponents, formatCheckedComponentPlan, writeCheckedPlanningFile, CheckedPlanningError } from './checkedPlanning.js';
10
+ export type { CheckedComponentPlan, ComponentPlanBlocker } from './checkedPlanning.js';
11
+ export type { ComponentRecordProjectionSpec, ComponentRecordProjectionAssociation } from './compiler/componentRecordProjection.js';
7
12
  export { loadStreamConfigFile, parseStreamConfig, StreamConfigError, type OperationStreamMetadata, type ShapeCatalogRef, type StreamConfig, } from "./util/streamConfig.js";
8
13
  export { applyShapeCatalogs, type ApplyShapeCatalogsOptions } from "./compiler/shapeResolver.js";
9
- export { checkedDirectRuntimeV1 } from './client/checkedDirectRuntime.js';
14
+ export { checkedDirectRuntimeV1, checkedComponentRuntimeV1 } from './client/checkedDirectRuntime.js';
10
15
  /**
11
16
  * Compiles a WSDL file to TypeScript client code
12
17
  *
@@ -37,5 +42,5 @@ export declare function compileWsdlToProject(input: {
37
42
  streamConfig?: import("./util/streamConfig.js").StreamConfig;
38
43
  }): Promise<void>;
39
44
  export { assessSchemaSource, serializeAssessmentReport, parseAssessmentReport, assessmentExitCode, ASSESSMENT_VERSION, ASSESSMENT_BASIS } from './compiler/checkedAssessment.js';
45
+ export type { ApplicationGroupsOptions, ApplicationGroupName } from './compiler/applicationGroups.js';
40
46
  export type { CheckedAssessmentReport, AssessmentObligation, AssessedOperation, AssessmentStatus } from './compiler/checkedAssessment.js';
41
- //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -27,9 +27,10 @@ export { generateGateway } from "./gateway/generateGateway.js";
27
27
  export { buildSecurity, loadSecurityConfigFile, parseSecurityConfig, SecurityConfigError, } from "./util/securityConfig.js";
28
28
  export { generateTests } from "./test/generateTests.js";
29
29
  export { runGenerationPipeline } from "./pipeline.js";
30
+ export { planCheckedComponents, formatCheckedComponentPlan, writeCheckedPlanningFile, CheckedPlanningError } from './checkedPlanning.js';
30
31
  export { loadStreamConfigFile, parseStreamConfig, StreamConfigError, } from "./util/streamConfig.js";
31
32
  export { applyShapeCatalogs } from "./compiler/shapeResolver.js";
32
- export { checkedDirectRuntimeV1 } from './client/checkedDirectRuntime.js';
33
+ export { checkedDirectRuntimeV1, checkedComponentRuntimeV1 } from './client/checkedDirectRuntime.js';
33
34
  // noinspection JSUnusedGlobalSymbols
34
35
  /**
35
36
  * Compiles a WSDL file to TypeScript client code
@@ -33,4 +33,3 @@ export declare function fetchText(urlOrPath: string, base?: string): Promise<{
33
33
  uri: string;
34
34
  text: string;
35
35
  }>;
36
- //# sourceMappingURL=fetch.d.ts.map
@@ -62,8 +62,16 @@ export declare const isXmlNCName: (value: string) => boolean;
62
62
  export declare const isXmlName: (value: string) => boolean;
63
63
  export declare const isXmlNmtoken: (value: string) => boolean;
64
64
  export declare function resolveLexicalQName(lexical: string, node: SyntaxElement): ExpandedName;
65
+ /** Decode private metadata text; original bytes remain the digest and snapshot authority.
66
+ * @remarks ISO-8859-1 maps every byte to the same code point, including C1 controls.
67
+ * HTTP charset headers are not encoding authority here. Runtime XML uses its existing policy.
68
+ * @throws SchemaLoadingError For malformed bytes or incompatible/unsupported declarations.
69
+ */
70
+ export declare function decodeMetadataXml(bytes: Uint8Array): string;
65
71
  /** Positions are one-based lines/columns and zero-based UTF-16 offsets in decoded XML. */
66
72
  export interface OrderedSyntaxOptions {
73
+ /** Internal metadata boundary; payload/capsule callers retain the existing encoding policy. */
74
+ metadataEncoding?: boolean;
67
75
  maxDepth?: number;
68
76
  /** Optional bounded runtime boundary; legacy schema callers retain their policy. */
69
77
  maxBytes?: number;
@@ -74,4 +82,3 @@ export interface OrderedSyntaxOptions {
74
82
  reserveNode?: () => void;
75
83
  }
76
84
  export declare function parseOrderedSyntax(bytes: Uint8Array, uri: string, options?: OrderedSyntaxOptions): SyntaxDocument;
77
- //# sourceMappingURL=orderedSyntax.d.ts.map
@@ -46,15 +46,35 @@ export function resolveLexicalQName(lexical, node) {
46
46
  throw new SchemaLoadingError("invalid-schema", "Unbound QName prefix", node.source);
47
47
  return Object.freeze({ namespace: namespace ?? "", local: parts.at(-1) });
48
48
  }
49
- function decodeXml(bytes, strictBom = false) {
50
- const encoding = bytes[0] === 0xff && bytes[1] === 0xfe ? "utf-16le"
49
+ const xmlEncodingDeclaration = /^<\?xml\s[^?]*encoding\s*=\s*["']([^"']+)["']/i;
50
+ /** Decode private metadata text; original bytes remain the digest and snapshot authority.
51
+ * @remarks ISO-8859-1 maps every byte to the same code point, including C1 controls.
52
+ * HTTP charset headers are not encoding authority here. Runtime XML uses its existing policy.
53
+ * @throws SchemaLoadingError For malformed bytes or incompatible/unsupported declarations.
54
+ */
55
+ export function decodeMetadataXml(bytes) {
56
+ return decodeXml(bytes, true, true);
57
+ }
58
+ function decodeXml(bytes, strictBom = false, metadata = false) {
59
+ let encoding = bytes[0] === 0xff && bytes[1] === 0xfe ? "utf-16le"
51
60
  : bytes[0] === 0xfe && bytes[1] === 0xff ? "utf-16be" : "utf-8";
52
61
  try {
53
- const text = new TextDecoder(encoding, { fatal: true }).decode(bytes);
62
+ const buffer = Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength);
63
+ // @why Sniff only an ASCII declaration, never guess Latin1 after UTF-8 failure.
64
+ // A BOM fixes the encoding and must agree with the decoded declaration.
65
+ if (metadata && encoding === 'utf-8' && !(bytes[0] === 0xef && bytes[1] === 0xbb && bytes[2] === 0xbf)) {
66
+ const end = buffer.indexOf('>');
67
+ const declaration = xmlEncodingDeclaration.exec(buffer.toString('latin1', 0, end < 0 ? 0 : end + 1))?.[1].toLowerCase();
68
+ if (declaration === 'iso-8859-1')
69
+ encoding = 'iso-8859-1';
70
+ }
71
+ // TextDecoder's ISO label aliases Windows-1252; Buffer supplies actual ISO byte identity.
72
+ const text = encoding === 'iso-8859-1' ? buffer.toString('latin1') : new TextDecoder(encoding, { fatal: true }).decode(bytes);
54
73
  if (strictBom && text.startsWith('\ufeff'))
55
74
  throw new SchemaLoadingError('invalid-schema', 'Multiple XML byte order marks');
56
- const declared = /^<\?xml\s[^?]*encoding\s*=\s*["']([^"']+)["']/i.exec(text)?.[1].toLowerCase();
57
- if (declared && !(encoding === "utf-8" ? ["utf-8", "utf8"] : ["utf-16", encoding]).includes(declared)) {
75
+ const declared = xmlEncodingDeclaration.exec(text)?.[1].toLowerCase();
76
+ const allowed = encoding === 'iso-8859-1' ? [encoding] : encoding === 'utf-8' ? ['utf-8', 'utf8'] : ['utf-16', encoding];
77
+ if (declared && !allowed.includes(declared)) {
58
78
  throw new SchemaLoadingError("unsupported-capability", "Unsupported XML byte encoding");
59
79
  }
60
80
  return text;
@@ -87,7 +107,7 @@ export function parseOrderedSyntax(bytes, uri, options = {}) {
87
107
  const charge = (amount) => options.chargeWork?.(amount);
88
108
  charge(4096 + bytes.byteLength * 64);
89
109
  const digest = createHash("sha256").update(bytes).digest("hex");
90
- const text = decodeXml(bytes, options.xml10Only);
110
+ const text = options.metadataEncoding ? decodeMetadataXml(bytes) : decodeXml(bytes, options.xml10Only);
91
111
  const lines = [0];
92
112
  for (let i = 0; i < text.length; i++) {
93
113
  if (text[i] === "\r") {
@@ -4,4 +4,3 @@ export type ResolutionArc = Readonly<{
4
4
  cost: 0 | 1;
5
5
  }>;
6
6
  export declare function resolutionDepthBound(root: string, graph: ReadonlyMap<string, readonly ResolutionArc[]>, terminals: ReadonlySet<string>): number;
7
- //# sourceMappingURL=resolutionDepth.d.ts.map
@@ -26,6 +26,7 @@ export type SchemaInput = Readonly<{
26
26
  documents: readonly SyntaxDocument[];
27
27
  schemas: readonly SchemaInterpretation[];
28
28
  resources: readonly ResourceMetadata[];
29
+ resourceAliases: ReadonlyMap<string, string>;
29
30
  edges: readonly ResolutionEdge[];
30
31
  limits: LoadingLimits;
31
32
  metrics: Readonly<{
@@ -39,15 +40,41 @@ export declare function copyOriginalSchemaResource(input: SchemaInput, uri: stri
39
40
  export declare function assertLoadedSchemaInput(input: SchemaInput): void;
40
41
  export declare function schemaInterpretationKey(node: SyntaxElement, targetNamespace: string, context: SchemaContext): string;
41
42
  export type SchemaInputOptions = {
43
+ /** Generated logical root for independently authorized physical snapshots; confers no I/O authority. */
44
+ sourceUri?: string;
45
+ /** Diagnostic observation only; partial documents never establish loading completeness or eligibility. */
46
+ onDocument?: (document: SyntaxDocument) => void;
42
47
  signal?: AbortSignal;
43
48
  /** Optional request accounting used by the additive assessment boundary. */
44
49
  chargeWork?: (amount: number) => void;
45
50
  policy: SchemaResourcePolicy;
46
51
  limits?: Partial<LoadingLimits>;
47
52
  offlineResources?: ReadonlyMap<string, OfflineSchemaResource>;
53
+ /**
54
+ * Explicit resource locations for XSD imports without schemaLocation.
55
+ * @remarks Keys are exact namespace names (including the empty namespace).
56
+ * Locations resolve against the caller's working directory, never the importing
57
+ * document. Explicit schemaLocation attributes take precedence. Resource policy,
58
+ * digests, namespace matching and loading limits still apply; no namespace is fetched implicitly.
59
+ * @see https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#composition-schemaImport
60
+ */
61
+ namespaceLocations?: ReadonlyMap<string, string>;
48
62
  };
63
+ /** Prepare a closed input set from independently authorized physical metadata snapshots.
64
+ * @remarks Logical import URIs never initiate I/O here. The later native loader still checks their explicit origin/root
65
+ * permissions. Missing snapshots refuse rather than falling back to network or to artifact-embedded bytes.
66
+ * @returns The actual physical root URI and complete offline loading configuration.
67
+ * @throws SchemaLoadingError For non-file physical inputs, duplicates, denied roots or unavailable files.
68
+ */
69
+ export declare function prepareSchemaSnapshotFiles(root: string, files: readonly {
70
+ readonly uri: string;
71
+ readonly file: string;
72
+ readonly canonicalUri?: string;
73
+ }[], options: Omit<SchemaInputOptions, 'offlineResources'>): Promise<{
74
+ source: string;
75
+ loading: SchemaInputOptions;
76
+ }>;
49
77
  /** A fresh compilation-scoped snapshot, with no implicit network or filesystem permission. */
50
78
  export declare function loadSchemaInput(source: string, options: SchemaInputOptions): Promise<SchemaInput>;
51
79
  /** Internal faithful source entry; preserves syntax and the legacy public entry. */
52
80
  export declare function loadSemanticSchemaInput(source: string, options: SchemaInputOptions): Promise<SchemaInput>;
53
- //# sourceMappingURL=schemaInput.d.ts.map
@@ -23,6 +23,29 @@ export function assertLoadedSchemaInput(input) {
23
23
  export function schemaInterpretationKey(node, targetNamespace, context) {
24
24
  return JSON.stringify([node.source.digest, node.source.uri, node.baseUri, targetNamespace, context.kind, context.namespace, node.source.path]);
25
25
  }
26
+ /** Prepare a closed input set from independently authorized physical metadata snapshots.
27
+ * @remarks Logical import URIs never initiate I/O here. The later native loader still checks their explicit origin/root
28
+ * permissions. Missing snapshots refuse rather than falling back to network or to artifact-embedded bytes.
29
+ * @returns The actual physical root URI and complete offline loading configuration.
30
+ * @throws SchemaLoadingError For non-file physical inputs, duplicates, denied roots or unavailable files.
31
+ */
32
+ export async function prepareSchemaSnapshotFiles(root, files, options) {
33
+ const physical = async (reference) => {
34
+ if (new URL(resolveResourceUri(reference)).protocol !== 'file:')
35
+ throw new SchemaLoadingError('unsupported-capability', 'Physical schema snapshot file required');
36
+ return loader.fetchResource(reference);
37
+ };
38
+ const loader = await SchemaResourceLoader.create({ fileRoots: options.policy.fileRoots }, options.limits, undefined, options.chargeWork, options.signal);
39
+ const source = await physical(root), offlineResources = new Map([[source.uri, source]]);
40
+ for (const entry of files) {
41
+ options.chargeWork?.(1);
42
+ const uri = resolveResourceUri(entry.uri);
43
+ if (offlineResources.has(uri))
44
+ throw new SchemaLoadingError('invalid-schema', 'Duplicate logical schema snapshot');
45
+ offlineResources.set(uri, { ...await physical(entry.file), canonicalUri: entry.canonicalUri });
46
+ }
47
+ return { source: source.uri, loading: { ...options, offlineResources } };
48
+ }
26
49
  /** A fresh compilation-scoped snapshot, with no implicit network or filesystem permission. */
27
50
  export function loadSchemaInput(source, options) {
28
51
  return loadSchemaInputWithValues(source, options, false);
@@ -32,6 +55,15 @@ export function loadSemanticSchemaInput(source, options) {
32
55
  return loadSchemaInputWithValues(source, options, true);
33
56
  }
34
57
  async function loadSchemaInputWithValues(source, options, semanticValues) {
58
+ // @why Snapshot caller configuration before the first asynchronous resource read.
59
+ const namespaceLocations = new Map();
60
+ if (options.namespaceLocations)
61
+ for (const [namespace, location] of options.namespaceLocations) {
62
+ if (typeof namespace !== 'string' || typeof location !== 'string' || !location)
63
+ throw new TypeError('Namespace locations require string namespace names and nonempty resource locations');
64
+ options.chargeWork?.(256 + (namespace.length + location.length) * 32);
65
+ namespaceLocations.set(namespace, resolveResourceUri(location));
66
+ }
35
67
  const loader = await SchemaResourceLoader.create(options.policy, options.limits, options.offlineResources, options.chargeWork, options.signal);
36
68
  const documents = new Map();
37
69
  const originalBytes = new Map();
@@ -67,12 +99,13 @@ async function loadSchemaInputWithValues(source, options, semanticValues) {
67
99
  const resource = await loader.fetchResource(uri);
68
100
  let doc = documents.get(resource.uri);
69
101
  if (!doc) {
70
- doc = parseOrderedSyntax(resource.bytes, resource.uri, { maxDepth: loader.limits.syntaxDepth });
102
+ doc = parseOrderedSyntax(resource.bytes, resource.uri, { maxDepth: loader.limits.syntaxDepth, metadataEncoding: true });
71
103
  if (semanticValues) {
72
104
  options.chargeWork?.(128);
73
105
  originalBytes.set(resource.uri, resource.bytes);
74
106
  }
75
107
  documents.set(resource.uri, doc);
108
+ options.onDocument?.(doc);
76
109
  }
77
110
  return doc;
78
111
  };
@@ -94,6 +127,9 @@ async function loadSchemaInputWithValues(source, options, semanticValues) {
94
127
  const referencedDocument = async (reference, node) => {
95
128
  try {
96
129
  const referenceUri = resolveResourceUri(reference, node.baseUri);
130
+ if (new URL(node.source.uri).protocol !== 'file:' && new URL(referenceUri).protocol === 'file:') {
131
+ throw new SchemaLoadingError('unsupported-capability', 'Remote metadata cannot select local resources');
132
+ }
97
133
  return { referenceUri, doc: await getDocument(referenceUri) };
98
134
  }
99
135
  catch (error) {
@@ -136,7 +172,8 @@ async function loadSchemaInputWithValues(source, options, semanticValues) {
136
172
  const missingLocation = semanticValues ? location === undefined : !location;
137
173
  if (missingLocation && kind === "include")
138
174
  throw new SchemaLoadingError("invalid-schema", "Schema include requires schemaLocation", child.source);
139
- if (missingLocation) {
175
+ const suppliedLocation = missingLocation && kind === 'import' ? namespaceLocations.get(importedNamespace ?? '') : undefined;
176
+ if (missingLocation && suppliedLocation === undefined) {
140
177
  recordEdge({ kind, from: key, source: child.source, cycle: false });
141
178
  continue;
142
179
  }
@@ -144,7 +181,7 @@ async function loadSchemaInputWithValues(source, options, semanticValues) {
144
181
  const namespace = kind === "include" ? targetNamespace : importedNamespace ?? "";
145
182
  if (kind === "import" && namespace === targetNamespace)
146
183
  throw new SchemaLoadingError("invalid-schema", "Schema import must name a different namespace", child.source);
147
- const { referenceUri, doc } = await referencedDocument(location, child);
184
+ const { referenceUri, doc } = await referencedDocument(suppliedLocation ?? location, child);
148
185
  const childDeclaredNamespace = xsdUri(doc.root, "targetNamespace");
149
186
  // A successfully supplied import referent must match both presence and
150
187
  // value. An explicit empty import namespace without a referent is not
@@ -204,7 +241,7 @@ async function loadSchemaInputWithValues(source, options, semanticValues) {
204
241
  else
205
242
  throw new SchemaLoadingError("unsupported-capability", "Only WSDL 1.1 or XSD schema inputs are accepted; payload hints cannot resolve schemas", root.root.source);
206
243
  const input = Object.freeze({ root, documents: Object.freeze([...documents.values()]), schemas: Object.freeze([...schemas.values()]),
207
- resources: loader.metadata, edges: Object.freeze(edges), limits: loader.limits, metrics: loader.metrics });
244
+ resources: loader.metadata, resourceAliases: loader.resourceAliases, edges: Object.freeze(edges), limits: loader.limits, metrics: loader.metrics });
208
245
  loadedInputs.add(input);
209
246
  if (semanticValues)
210
247
  originalSources.set(input, originalBytes);
@@ -19,6 +19,7 @@ export type SchemaResourcePolicy = Readonly<{
19
19
  export type OfflineSchemaResource = Readonly<{
20
20
  bytes: Uint8Array;
21
21
  digest: string;
22
+ canonicalUri?: string;
22
23
  }>;
23
24
  export type ResourceMetadata = Readonly<{
24
25
  uri: string;
@@ -53,7 +54,7 @@ export declare class SchemaResourceLoader {
53
54
  totalBytes: number;
54
55
  ioMs: number;
55
56
  }>;
57
+ get resourceAliases(): ReadonlyMap<string, string>;
56
58
  private authorize;
57
59
  fetchResource(reference: string): Promise<FetchedSchemaResource>;
58
60
  }
59
- //# sourceMappingURL=schemaResources.d.ts.map