@techspokes/typescript-wsdl-client 1.1.5 → 1.2.0

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 (505) hide show
  1. package/README.md +80 -68
  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 +268 -0
  10. package/dist/cli.d.ts +0 -1
  11. package/dist/cli.js +92 -2
  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 +98 -28
  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/generateOperations.js +30 -11
  24. package/dist/client/generateTypes.d.ts +0 -1
  25. package/dist/client/generateUtils.d.ts +0 -1
  26. package/dist/client/generateUtils.js +7 -1
  27. package/dist/compiler/applicationGroups.d.ts +53 -0
  28. package/dist/compiler/applicationGroups.js +403 -0
  29. package/dist/compiler/buildCanonicalGraph.d.ts +0 -1
  30. package/dist/compiler/canonicalGraph.d.ts +4 -16
  31. package/dist/compiler/canonicalGraph.js +1 -8
  32. package/dist/compiler/catalogErrors.d.ts +0 -1
  33. package/dist/compiler/catalogProvenance.d.ts +0 -1
  34. package/dist/compiler/checkedAssessment.d.ts +0 -1
  35. package/dist/compiler/checkedAssessment.js +1 -1
  36. package/dist/compiler/checkedComponentSource.d.ts +16 -0
  37. package/dist/compiler/checkedComponentSource.js +31 -0
  38. package/dist/compiler/checkedSourcePreparation.d.ts +38 -1
  39. package/dist/compiler/checkedSourcePreparation.js +71 -0
  40. package/dist/compiler/complexTypeContent.d.ts +5 -6
  41. package/dist/compiler/complexTypeContent.js +2 -2
  42. package/dist/compiler/componentCorrespondence.d.ts +32 -0
  43. package/dist/compiler/componentCorrespondence.js +140 -0
  44. package/dist/compiler/componentRecordProjection.d.ts +112 -0
  45. package/dist/compiler/componentRecordProjection.js +329 -0
  46. package/dist/compiler/componentSoapPreparation.d.ts +20 -0
  47. package/dist/compiler/componentSoapPreparation.js +36 -0
  48. package/dist/compiler/composeCanonicalGraph.d.ts +0 -1
  49. package/dist/compiler/dataOwnership.d.ts +0 -1
  50. package/dist/compiler/dataOwnership.js +14 -4
  51. package/dist/compiler/datatypeValues.d.ts +0 -1
  52. package/dist/compiler/declarationIdentity.d.ts +22 -0
  53. package/dist/compiler/declarationIdentity.js +9 -0
  54. package/dist/compiler/directCodec.d.ts +79 -2
  55. package/dist/compiler/directCodec.js +310 -92
  56. package/dist/compiler/directExecutionPolicy.d.ts +0 -1
  57. package/dist/compiler/directOperation.d.ts +72 -8
  58. package/dist/compiler/directOperation.js +164 -19
  59. package/dist/compiler/directSoap.d.ts +29 -5
  60. package/dist/compiler/directSoap.js +154 -44
  61. package/dist/compiler/directSoapSource.d.ts +24 -1
  62. package/dist/compiler/directSoapSource.js +166 -19
  63. package/dist/compiler/directSourceCapsule.d.ts +74 -2
  64. package/dist/compiler/directSourceCapsule.js +484 -6
  65. package/dist/compiler/directStructure.d.ts +83 -6
  66. package/dist/compiler/directStructure.js +353 -58
  67. package/dist/compiler/directStructurePlan.d.ts +144 -2
  68. package/dist/compiler/directStructurePlan.js +615 -30
  69. package/dist/compiler/directValues.d.ts +76 -5
  70. package/dist/compiler/directValues.js +967 -117
  71. package/dist/compiler/finiteRe01Construction.d.ts +69 -0
  72. package/dist/compiler/finiteRe01Construction.js +422 -0
  73. package/dist/compiler/finiteRe01Verification.d.ts +81 -3
  74. package/dist/compiler/finiteRe01Verification.js +391 -4
  75. package/dist/compiler/generateCatalog.d.ts +0 -1
  76. package/dist/compiler/graphTraversal.d.ts +0 -1
  77. package/dist/compiler/hypotheticalScopedIdentity.d.ts +0 -1
  78. package/dist/compiler/legacyDeclarations.d.ts +26 -0
  79. package/dist/compiler/legacyDeclarations.js +144 -0
  80. package/dist/compiler/occurrenceAnalysis.d.ts +2 -1
  81. package/dist/compiler/occurrenceAnalysis.js +23 -7
  82. package/dist/compiler/originalSourceMembership.d.ts +0 -1
  83. package/dist/compiler/particleAttribution.d.ts +0 -1
  84. package/dist/compiler/particleAttribution.js +20 -0
  85. package/dist/compiler/particleDeclarationConsistency.d.ts +0 -1
  86. package/dist/compiler/particleDeclarationConsistency.js +9 -0
  87. package/dist/compiler/particleExtension.d.ts +0 -1
  88. package/dist/compiler/particleExtension.js +5 -1
  89. package/dist/compiler/particleLocalAssessment.d.ts +0 -1
  90. package/dist/compiler/particleRestriction.d.ts +0 -1
  91. package/dist/compiler/particleRestriction.js +6 -1
  92. package/dist/compiler/particleSemanticView.d.ts +2 -1
  93. package/dist/compiler/particleSemanticView.js +16 -3
  94. package/dist/compiler/particleWildcardRelation.d.ts +0 -1
  95. package/dist/compiler/projectionScalar.d.ts +49 -0
  96. package/dist/compiler/projectionScalar.js +218 -0
  97. package/dist/compiler/re01CandidateAssignments.d.ts +95 -0
  98. package/dist/compiler/re01CandidateAssignments.js +341 -0
  99. package/dist/compiler/re01CandidateCorrespondence.d.ts +22 -1
  100. package/dist/compiler/re01CandidateCorrespondence.js +167 -38
  101. package/dist/compiler/re01TypeProperties.d.ts +0 -1
  102. package/dist/compiler/re01TypePropertyValidation.d.ts +0 -1
  103. package/dist/compiler/resolveCanonicalGraph.d.ts +5 -2
  104. package/dist/compiler/resolveCanonicalGraph.js +77 -7
  105. package/dist/compiler/rpcStringValues.d.ts +30 -0
  106. package/dist/compiler/rpcStringValues.js +196 -0
  107. package/dist/compiler/rpcTypedValues.d.ts +48 -0
  108. package/dist/compiler/rpcTypedValues.js +190 -0
  109. package/dist/compiler/scalarSchemaAssessment.d.ts +0 -1
  110. package/dist/compiler/schemaAttributeGroupProperties.d.ts +0 -1
  111. package/dist/compiler/schemaAttributeProperties.d.ts +0 -1
  112. package/dist/compiler/schemaAttributeUses.d.ts +22 -2
  113. package/dist/compiler/schemaAttributeUses.js +86 -13
  114. package/dist/compiler/schemaBinaryWordReconstruction.d.ts +0 -1
  115. package/dist/compiler/schemaBuiltinFacets.d.ts +0 -1
  116. package/dist/compiler/schemaCalendarImages.d.ts +0 -1
  117. package/dist/compiler/schemaCalendarLanguage.d.ts +0 -1
  118. package/dist/compiler/schemaCompiler.d.ts +0 -1
  119. package/dist/compiler/schemaCompiler.js +44 -109
  120. package/dist/compiler/schemaComponentEquality.d.ts +0 -1
  121. package/dist/compiler/schemaConstructionAssessment.d.ts +34 -1
  122. package/dist/compiler/schemaConstructionAssessment.js +88 -6
  123. package/dist/compiler/schemaDatatypeValues.d.ts +0 -1
  124. package/dist/compiler/schemaDecimalLanguage.d.ts +0 -1
  125. package/dist/compiler/schemaDeclarationPrimitives.d.ts +7 -2
  126. package/dist/compiler/schemaDeclarationPrimitives.js +18 -1
  127. package/dist/compiler/schemaDocumentSyntax.d.ts +0 -1
  128. package/dist/compiler/schemaDurationLanguage.d.ts +0 -1
  129. package/dist/compiler/schemaElementInstance.d.ts +30 -0
  130. package/dist/compiler/schemaElementInstance.js +45 -0
  131. package/dist/compiler/schemaElementProperties.d.ts +0 -1
  132. package/dist/compiler/schemaEndpointWordCapacity.d.ts +0 -1
  133. package/dist/compiler/schemaExactCalendar.d.ts +0 -1
  134. package/dist/compiler/schemaFacetAnnotation.d.ts +0 -1
  135. package/dist/compiler/schemaGeneratedScalarShape.d.ts +0 -1
  136. package/dist/compiler/schemaGeneratedScalarShape.js +2 -0
  137. package/dist/compiler/schemaIdentityConstraints.d.ts +0 -1
  138. package/dist/compiler/schemaIeeeLanguage.d.ts +0 -1
  139. package/dist/compiler/schemaIntegerImages.d.ts +0 -1
  140. package/dist/compiler/schemaLexicalPredicates.d.ts +0 -1
  141. package/dist/compiler/schemaNotationProperties.d.ts +0 -1
  142. package/dist/compiler/schemaNumericImageConditions.d.ts +0 -1
  143. package/dist/compiler/schemaParticleWildcardProperties.d.ts +0 -1
  144. package/dist/compiler/schemaPattern.d.ts +0 -1
  145. package/dist/compiler/schemaRegularLanguage.d.ts +0 -1
  146. package/dist/compiler/schemaScalarContext.d.ts +5 -1
  147. package/dist/compiler/schemaScalarKernel.d.ts +0 -1
  148. package/dist/compiler/schemaScalarWitnesses.d.ts +0 -1
  149. package/dist/compiler/schemaSimpleTypeProperties.d.ts +0 -1
  150. package/dist/compiler/schemaSourceGrammar.d.ts +0 -1
  151. package/dist/compiler/schemaSourceLexical.d.ts +0 -1
  152. package/dist/compiler/schemaSourceValues.d.ts +0 -1
  153. package/dist/compiler/schemaSourceWildcards.d.ts +1 -2
  154. package/dist/compiler/schemaSourceWildcards.js +3 -1
  155. package/dist/compiler/schemaSymbolicSequences.d.ts +0 -1
  156. package/dist/compiler/schemaSymbolicValueSets.d.ts +0 -1
  157. package/dist/compiler/schemaSyntaxAssessment.d.ts +0 -1
  158. package/dist/compiler/schemaTemporalAliases.d.ts +0 -1
  159. package/dist/compiler/schemaTokenImages.d.ts +0 -1
  160. package/dist/compiler/schemaTypeIdentity.d.ts +0 -1
  161. package/dist/compiler/schemaTypeIdentity.js +2 -0
  162. package/dist/compiler/schemaTypeRelations.d.ts +0 -1
  163. package/dist/compiler/schemaUri.d.ts +0 -1
  164. package/dist/compiler/schemaValueContext.d.ts +0 -1
  165. package/dist/compiler/schemaValueImages.d.ts +0 -1
  166. package/dist/compiler/schemaValueSequences.d.ts +0 -1
  167. package/dist/compiler/semanticBudget.d.ts +18 -1
  168. package/dist/compiler/semanticBudget.js +17 -2
  169. package/dist/compiler/semanticCatalog.d.ts +2 -3
  170. package/dist/compiler/semanticContext.d.ts +12 -1
  171. package/dist/compiler/semanticContext.js +39 -0
  172. package/dist/compiler/semanticTypeDependencies.d.ts +0 -1
  173. package/dist/compiler/semanticTypeReference.d.ts +0 -1
  174. package/dist/compiler/shapeResolver.d.ts +0 -1
  175. package/dist/compiler/soapHeaders.d.ts +16 -0
  176. package/dist/compiler/soapHeaders.js +42 -0
  177. package/dist/compiler/sourceSchemaBinding.d.ts +0 -1
  178. package/dist/compiler/standardSchemaComponents.d.ts +71 -0
  179. package/dist/compiler/standardSchemaComponents.js +74 -0
  180. package/dist/compiler/standardSchemaConstruction.d.ts +20 -0
  181. package/dist/compiler/standardSchemaConstruction.js +34 -0
  182. package/dist/compiler/structuralCompanions.d.ts +0 -1
  183. package/dist/compiler/validateSemanticGraph.d.ts +0 -1
  184. package/dist/compiler/wildcardAlgebra.d.ts +0 -1
  185. package/dist/compiler/wsdlPolicyRequirements.d.ts +43 -0
  186. package/dist/compiler/wsdlPolicyRequirements.js +239 -0
  187. package/dist/config.d.ts +0 -1
  188. package/dist/gateway/generateCheckedGateway.d.ts +32 -0
  189. package/dist/gateway/generateCheckedGateway.js +293 -0
  190. package/dist/gateway/generateComposedGateway.d.ts +16 -0
  191. package/dist/gateway/generateComposedGateway.js +65 -0
  192. package/dist/gateway/generateGateway.d.ts +0 -1
  193. package/dist/gateway/generateGateway.js +1 -0
  194. package/dist/gateway/generators.d.ts +0 -1
  195. package/dist/gateway/generators.js +19 -4
  196. package/dist/gateway/helpers.d.ts +1 -1
  197. package/dist/gateway/helpers.js +15 -0
  198. package/dist/generation/componentShape.d.ts +14 -0
  199. package/dist/generation/componentShape.js +293 -0
  200. package/dist/generation/preamble.d.ts +0 -1
  201. package/dist/generation/sourceLayout.d.ts +13 -0
  202. package/dist/generation/sourceLayout.js +40 -0
  203. package/dist/generation/writeGeneratedSource.d.ts +0 -1
  204. package/dist/index.d.ts +11 -2
  205. package/dist/index.js +4 -1
  206. package/dist/loader/fetch.d.ts +0 -1
  207. package/dist/loader/orderedSyntax.d.ts +12 -1
  208. package/dist/loader/orderedSyntax.js +40 -6
  209. package/dist/loader/resolutionDepth.d.ts +0 -1
  210. package/dist/loader/schemaInput.d.ts +28 -1
  211. package/dist/loader/schemaInput.js +41 -4
  212. package/dist/loader/schemaResources.d.ts +2 -1
  213. package/dist/loader/schemaResources.js +45 -4
  214. package/dist/loader/wsdlLoader.d.ts +0 -1
  215. package/dist/multiServicePipeline.d.ts +41 -0
  216. package/dist/multiServicePipeline.js +287 -0
  217. package/dist/openapi/casing.d.ts +0 -1
  218. package/dist/openapi/composeOpenAPI.d.ts +29 -0
  219. package/dist/openapi/composeOpenAPI.js +322 -0
  220. package/dist/openapi/generateOpenAPI.d.ts +0 -1
  221. package/dist/openapi/generatePaths.d.ts +0 -1
  222. package/dist/openapi/generateSchemas.d.ts +0 -1
  223. package/dist/openapi/security.d.ts +0 -1
  224. package/dist/pipeline.d.ts +7 -3
  225. package/dist/pipeline.js +15 -0
  226. package/dist/test/generateCheckedTests.d.ts +17 -0
  227. package/dist/test/generateCheckedTests.js +60 -0
  228. package/dist/test/generateTests.d.ts +0 -1
  229. package/dist/test/generators.d.ts +0 -1
  230. package/dist/test/mockData.d.ts +0 -1
  231. package/dist/test/mockData.js +20 -14
  232. package/dist/util/attributeWildcards.d.ts +0 -1
  233. package/dist/util/builder.d.ts +0 -1
  234. package/dist/util/catalogMeta.d.ts +0 -1
  235. package/dist/util/checkedCliDiagnostics.d.ts +11 -0
  236. package/dist/util/checkedCliDiagnostics.js +22 -0
  237. package/dist/util/cli.d.ts +0 -1
  238. package/dist/util/errors.d.ts +0 -1
  239. package/dist/util/imports.d.ts +0 -1
  240. package/dist/util/runtimeSource.d.ts +0 -1
  241. package/dist/util/runtimeSource.js +3 -5
  242. package/dist/util/securityConfig.d.ts +0 -1
  243. package/dist/util/streamConfig.d.ts +0 -1
  244. package/dist/util/tools.d.ts +0 -1
  245. package/dist/util/xmlWhitespace.d.ts +0 -1
  246. package/dist/xsd/primitives.d.ts +0 -1
  247. package/docs/agent-skill.md +12 -1
  248. package/docs/api-reference.md +127 -9
  249. package/docs/checked-gateway.md +212 -0
  250. package/docs/checked-generation.md +167 -0
  251. package/docs/cli-reference.md +48 -6
  252. package/docs/concepts.md +139 -5
  253. package/docs/configuration.md +15 -4
  254. package/docs/corpus.md +33 -0
  255. package/docs/direct-values.md +13 -13
  256. package/docs/examples/checked-forecast.wsdl +19 -0
  257. package/docs/gateway-guide.md +104 -27
  258. package/docs/generated-code.md +22 -11
  259. package/docs/mapping-contract.md +114 -0
  260. package/docs/migration-playbook.md +5 -1
  261. package/docs/migration.md +124 -6
  262. package/docs/output-anatomy.md +21 -18
  263. package/docs/production.md +7 -5
  264. package/docs/start-here.md +19 -3
  265. package/docs/supported-patterns.md +24 -3
  266. package/docs/testing.md +119 -31
  267. package/docs/troubleshooting.md +3 -1
  268. package/llms.txt +16 -8
  269. package/package.json +64 -23
  270. package/src/runtime/checkedGatewayHost.tpl.txt +157 -0
  271. package/src/runtime/clientStreamMethods.tpl.txt +156 -148
  272. package/src/runtime/operationsStreamHelper.tpl.txt +6 -6
  273. package/src/runtime/streamXml.ts +49 -21
  274. package/dist/app/generateApp.d.ts.map +0 -1
  275. package/dist/cli.d.ts.map +0 -1
  276. package/dist/client/checkedDirectRuntime.d.ts.map +0 -1
  277. package/dist/client/directClientRuntime.d.ts.map +0 -1
  278. package/dist/client/directClientVersion.d.ts.map +0 -1
  279. package/dist/client/generateClient.d.ts.map +0 -1
  280. package/dist/client/generateDirectClient.d.ts.map +0 -1
  281. package/dist/client/generateOperations.d.ts.map +0 -1
  282. package/dist/client/generateTypes.d.ts.map +0 -1
  283. package/dist/client/generateUtils.d.ts.map +0 -1
  284. package/dist/compiler/buildCanonicalGraph.d.ts.map +0 -1
  285. package/dist/compiler/canonicalGraph.d.ts.map +0 -1
  286. package/dist/compiler/catalogErrors.d.ts.map +0 -1
  287. package/dist/compiler/catalogProvenance.d.ts.map +0 -1
  288. package/dist/compiler/checkedAssessment.d.ts.map +0 -1
  289. package/dist/compiler/checkedSourcePreparation.d.ts.map +0 -1
  290. package/dist/compiler/complexTypeContent.d.ts.map +0 -1
  291. package/dist/compiler/composeCanonicalGraph.d.ts.map +0 -1
  292. package/dist/compiler/dataOwnership.d.ts.map +0 -1
  293. package/dist/compiler/datatypeValues.d.ts.map +0 -1
  294. package/dist/compiler/directCodec.d.ts.map +0 -1
  295. package/dist/compiler/directExecutionPolicy.d.ts.map +0 -1
  296. package/dist/compiler/directOperation.d.ts.map +0 -1
  297. package/dist/compiler/directSoap.d.ts.map +0 -1
  298. package/dist/compiler/directSoapSource.d.ts.map +0 -1
  299. package/dist/compiler/directSourceCapsule.d.ts.map +0 -1
  300. package/dist/compiler/directStructure.d.ts.map +0 -1
  301. package/dist/compiler/directStructurePlan.d.ts.map +0 -1
  302. package/dist/compiler/directValues.d.ts.map +0 -1
  303. package/dist/compiler/finiteRe01Verification.d.ts.map +0 -1
  304. package/dist/compiler/generateCatalog.d.ts.map +0 -1
  305. package/dist/compiler/graphTraversal.d.ts.map +0 -1
  306. package/dist/compiler/hypotheticalScopedIdentity.d.ts.map +0 -1
  307. package/dist/compiler/occurrenceAnalysis.d.ts.map +0 -1
  308. package/dist/compiler/originalSourceMembership.d.ts.map +0 -1
  309. package/dist/compiler/particleAttribution.d.ts.map +0 -1
  310. package/dist/compiler/particleDeclarationConsistency.d.ts.map +0 -1
  311. package/dist/compiler/particleExtension.d.ts.map +0 -1
  312. package/dist/compiler/particleLocalAssessment.d.ts.map +0 -1
  313. package/dist/compiler/particleRestriction.d.ts.map +0 -1
  314. package/dist/compiler/particleSemanticView.d.ts.map +0 -1
  315. package/dist/compiler/particleWildcardRelation.d.ts.map +0 -1
  316. package/dist/compiler/re01CandidateCorrespondence.d.ts.map +0 -1
  317. package/dist/compiler/re01TypeProperties.d.ts.map +0 -1
  318. package/dist/compiler/re01TypePropertyValidation.d.ts.map +0 -1
  319. package/dist/compiler/resolveCanonicalGraph.d.ts.map +0 -1
  320. package/dist/compiler/scalarSchemaAssessment.d.ts.map +0 -1
  321. package/dist/compiler/schemaAttributeGroupProperties.d.ts.map +0 -1
  322. package/dist/compiler/schemaAttributeProperties.d.ts.map +0 -1
  323. package/dist/compiler/schemaAttributeUses.d.ts.map +0 -1
  324. package/dist/compiler/schemaBinaryWordReconstruction.d.ts.map +0 -1
  325. package/dist/compiler/schemaBuiltinFacets.d.ts.map +0 -1
  326. package/dist/compiler/schemaCalendarImages.d.ts.map +0 -1
  327. package/dist/compiler/schemaCalendarLanguage.d.ts.map +0 -1
  328. package/dist/compiler/schemaCompiler.d.ts.map +0 -1
  329. package/dist/compiler/schemaComponentEquality.d.ts.map +0 -1
  330. package/dist/compiler/schemaConstructionAssessment.d.ts.map +0 -1
  331. package/dist/compiler/schemaDatatypeValues.d.ts.map +0 -1
  332. package/dist/compiler/schemaDecimalLanguage.d.ts.map +0 -1
  333. package/dist/compiler/schemaDeclarationPrimitives.d.ts.map +0 -1
  334. package/dist/compiler/schemaDocumentSyntax.d.ts.map +0 -1
  335. package/dist/compiler/schemaDurationLanguage.d.ts.map +0 -1
  336. package/dist/compiler/schemaElementProperties.d.ts.map +0 -1
  337. package/dist/compiler/schemaEndpointWordCapacity.d.ts.map +0 -1
  338. package/dist/compiler/schemaExactCalendar.d.ts.map +0 -1
  339. package/dist/compiler/schemaFacetAnnotation.d.ts.map +0 -1
  340. package/dist/compiler/schemaGeneratedScalarShape.d.ts.map +0 -1
  341. package/dist/compiler/schemaIdentityConstraints.d.ts.map +0 -1
  342. package/dist/compiler/schemaIeeeLanguage.d.ts.map +0 -1
  343. package/dist/compiler/schemaIntegerImages.d.ts.map +0 -1
  344. package/dist/compiler/schemaLexicalPredicates.d.ts.map +0 -1
  345. package/dist/compiler/schemaNotationProperties.d.ts.map +0 -1
  346. package/dist/compiler/schemaNumericImageConditions.d.ts.map +0 -1
  347. package/dist/compiler/schemaParticleWildcardProperties.d.ts.map +0 -1
  348. package/dist/compiler/schemaPattern.d.ts.map +0 -1
  349. package/dist/compiler/schemaRegularLanguage.d.ts.map +0 -1
  350. package/dist/compiler/schemaScalarContext.d.ts.map +0 -1
  351. package/dist/compiler/schemaScalarKernel.d.ts.map +0 -1
  352. package/dist/compiler/schemaScalarWitnesses.d.ts.map +0 -1
  353. package/dist/compiler/schemaSimpleTypeProperties.d.ts.map +0 -1
  354. package/dist/compiler/schemaSourceGrammar.d.ts.map +0 -1
  355. package/dist/compiler/schemaSourceLexical.d.ts.map +0 -1
  356. package/dist/compiler/schemaSourceValues.d.ts.map +0 -1
  357. package/dist/compiler/schemaSourceWildcards.d.ts.map +0 -1
  358. package/dist/compiler/schemaSymbolicSequences.d.ts.map +0 -1
  359. package/dist/compiler/schemaSymbolicValueSets.d.ts.map +0 -1
  360. package/dist/compiler/schemaSyntaxAssessment.d.ts.map +0 -1
  361. package/dist/compiler/schemaTemporalAliases.d.ts.map +0 -1
  362. package/dist/compiler/schemaTokenImages.d.ts.map +0 -1
  363. package/dist/compiler/schemaTypeIdentity.d.ts.map +0 -1
  364. package/dist/compiler/schemaTypeRelations.d.ts.map +0 -1
  365. package/dist/compiler/schemaUri.d.ts.map +0 -1
  366. package/dist/compiler/schemaValueContext.d.ts.map +0 -1
  367. package/dist/compiler/schemaValueImages.d.ts.map +0 -1
  368. package/dist/compiler/schemaValueSequences.d.ts.map +0 -1
  369. package/dist/compiler/semanticBudget.d.ts.map +0 -1
  370. package/dist/compiler/semanticCatalog.d.ts.map +0 -1
  371. package/dist/compiler/semanticContext.d.ts.map +0 -1
  372. package/dist/compiler/semanticTypeDependencies.d.ts.map +0 -1
  373. package/dist/compiler/semanticTypeReference.d.ts.map +0 -1
  374. package/dist/compiler/shapeResolver.d.ts.map +0 -1
  375. package/dist/compiler/sourceSchemaBinding.d.ts.map +0 -1
  376. package/dist/compiler/structuralCompanions.d.ts.map +0 -1
  377. package/dist/compiler/validateSemanticGraph.d.ts.map +0 -1
  378. package/dist/compiler/wildcardAlgebra.d.ts.map +0 -1
  379. package/dist/config.d.ts.map +0 -1
  380. package/dist/gateway/generateGateway.d.ts.map +0 -1
  381. package/dist/gateway/generators.d.ts.map +0 -1
  382. package/dist/gateway/helpers.d.ts.map +0 -1
  383. package/dist/generation/preamble.d.ts.map +0 -1
  384. package/dist/generation/writeGeneratedSource.d.ts.map +0 -1
  385. package/dist/index.d.ts.map +0 -1
  386. package/dist/loader/fetch.d.ts.map +0 -1
  387. package/dist/loader/orderedSyntax.d.ts.map +0 -1
  388. package/dist/loader/resolutionDepth.d.ts.map +0 -1
  389. package/dist/loader/schemaInput.d.ts.map +0 -1
  390. package/dist/loader/schemaResources.d.ts.map +0 -1
  391. package/dist/loader/wsdlLoader.d.ts.map +0 -1
  392. package/dist/openapi/casing.d.ts.map +0 -1
  393. package/dist/openapi/generateOpenAPI.d.ts.map +0 -1
  394. package/dist/openapi/generatePaths.d.ts.map +0 -1
  395. package/dist/openapi/generateSchemas.d.ts.map +0 -1
  396. package/dist/openapi/security.d.ts.map +0 -1
  397. package/dist/pipeline.d.ts.map +0 -1
  398. package/dist/runtime/jsonArray.d.ts +0 -24
  399. package/dist/runtime/jsonArray.d.ts.map +0 -1
  400. package/dist/runtime/jsonArray.js +0 -52
  401. package/dist/runtime/ndjson.d.ts +0 -24
  402. package/dist/runtime/ndjson.d.ts.map +0 -1
  403. package/dist/runtime/ndjson.js +0 -30
  404. package/dist/runtime/streamXml.d.ts +0 -45
  405. package/dist/runtime/streamXml.d.ts.map +0 -1
  406. package/dist/runtime/streamXml.js +0 -212
  407. package/dist/test/generateTests.d.ts.map +0 -1
  408. package/dist/test/generators.d.ts.map +0 -1
  409. package/dist/test/mockData.d.ts.map +0 -1
  410. package/dist/util/attributeWildcards.d.ts.map +0 -1
  411. package/dist/util/builder.d.ts.map +0 -1
  412. package/dist/util/catalogMeta.d.ts.map +0 -1
  413. package/dist/util/cli.d.ts.map +0 -1
  414. package/dist/util/errors.d.ts.map +0 -1
  415. package/dist/util/imports.d.ts.map +0 -1
  416. package/dist/util/runtimeSource.d.ts.map +0 -1
  417. package/dist/util/securityConfig.d.ts.map +0 -1
  418. package/dist/util/streamConfig.d.ts.map +0 -1
  419. package/dist/util/tools.d.ts.map +0 -1
  420. package/dist/util/xmlWhitespace.d.ts.map +0 -1
  421. package/dist/xsd/primitives.d.ts.map +0 -1
  422. package/docs/AGENTS.md +0 -47
  423. package/docs/README.md +0 -69
  424. package/docs/architecture.md +0 -158
  425. package/docs/content-model-analysis.md +0 -92
  426. package/docs/content-model-baseline.md +0 -121
  427. package/docs/content-model-catalog.md +0 -116
  428. package/docs/content-model-companions.md +0 -90
  429. package/docs/content-model-composition.md +0 -103
  430. package/docs/content-model-decisions.md +0 -79
  431. package/docs/content-model-gateway-feasibility.md +0 -169
  432. package/docs/content-model-graph.md +0 -121
  433. package/docs/content-model-loading.md +0 -163
  434. package/docs/content-model-matching.md +0 -85
  435. package/docs/content-model-readiness.md +0 -144
  436. package/docs/content-model-resolution.md +0 -81
  437. package/docs/content-model-s02-handoff.md +0 -98
  438. package/docs/content-model-s06-au-01.md +0 -425
  439. package/docs/content-model-s06-dt-01.md +0 -386
  440. package/docs/content-model-s06-pw-01.md +0 -350
  441. package/docs/content-model-s06-re-01-resolver-implementation.md +0 -869
  442. package/docs/content-model-s06-re-01-resolver.md +0 -513
  443. package/docs/content-model-s06-re-01-scalar-witnesses.md +0 -1423
  444. package/docs/content-model-s06-re-01-support-reconstruction.md +0 -6337
  445. package/docs/content-model-s06-re-01.md +0 -7477
  446. package/docs/content-model-s06-research-handoff.md +0 -909
  447. package/docs/content-model-shipped-fix.md +0 -83
  448. package/docs/content-model-soap-feasibility.md +0 -165
  449. package/docs/decisions/001-test-generation.md +0 -36
  450. package/docs/decisions/002-streamable-responses.md +0 -332
  451. package/docs/decisions/003-content-model-contracts.md +0 -280
  452. package/docs/file-naming-and-path-organization.md +0 -213
  453. package/docs/reference-validation.md +0 -243
  454. package/docs/releases/README.md +0 -94
  455. package/docs/releases/v0.20.0.md +0 -22
  456. package/docs/releases/v0.21.0.md +0 -30
  457. package/docs/releases/v0.22.0.md +0 -30
  458. package/docs/releases/v0.23.0.md +0 -31
  459. package/docs/releases/v0.24.0.md +0 -38
  460. package/docs/releases/v0.25.0.md +0 -31
  461. package/docs/releases/v0.25.2.md +0 -32
  462. package/docs/releases/v0.26.0.md +0 -32
  463. package/docs/releases/v0.27.0.md +0 -31
  464. package/docs/releases/v0.28.0.md +0 -32
  465. package/docs/releases/v0.29.0.md +0 -32
  466. package/docs/releases/v0.30.0.md +0 -30
  467. package/docs/releases/v0.30.1.md +0 -31
  468. package/docs/releases/v0.30.2.md +0 -30
  469. package/docs/releases/v0.30.3.md +0 -33
  470. package/docs/releases/v0.31.0.md +0 -33
  471. package/docs/releases/v0.32.0.md +0 -33
  472. package/docs/releases/v0.33.0.md +0 -34
  473. package/docs/releases/v0.34.0.md +0 -30
  474. package/docs/releases/v0.35.0.md +0 -33
  475. package/docs/releases/v0.36.0.md +0 -32
  476. package/docs/releases/v0.37.0.md +0 -33
  477. package/docs/releases/v0.38.0.md +0 -35
  478. package/docs/releases/v0.39.0.md +0 -35
  479. package/docs/releases/v0.40.0.md +0 -45
  480. package/docs/releases/v0.40.1.md +0 -34
  481. package/docs/releases/v1.0.0.md +0 -42
  482. package/docs/releases/v1.0.1.md +0 -38
  483. package/docs/releases/v1.0.2.md +0 -51
  484. package/docs/releases/v1.0.3.md +0 -37
  485. package/docs/releases/v1.0.4.md +0 -45
  486. package/docs/releases/v1.0.5.md +0 -41
  487. package/docs/releases/v1.0.6.md +0 -35
  488. package/docs/releases/v1.0.7.md +0 -36
  489. package/docs/releases/v1.1.0.md +0 -42
  490. package/docs/releases/v1.1.1.md +0 -44
  491. package/docs/releases/v1.1.2.md +0 -42
  492. package/docs/releases/v1.1.3.md +0 -36
  493. package/docs/releases/v1.1.4.md +0 -36
  494. package/docs/releases/v1.1.5.md +0 -38
  495. package/docs/roadmap/README.md +0 -107
  496. package/docs/roadmap/v1.0-capability-conformance-framework.md +0 -582
  497. package/docs/roadmap/v1.0-choice-union-mode.md +0 -90
  498. package/docs/roadmap/v1.0-contract-audit.md +0 -75
  499. package/docs/roadmap/v1.0-json-array-streaming.md +0 -101
  500. package/docs/roadmap/v1.0-openapi-fastify-compatibility.md +0 -99
  501. package/docs/roadmap/v1.0-release-candidate-gates.md +0 -92
  502. package/docs/roadmap/v1.0-wsdl-coverage-matrix.md +0 -200
  503. package/docs/roadmap/v1.0-xs-anyattribute-wildcard-bag.md +0 -932
  504. package/src/runtime/jsonArray.ts +0 -55
  505. package/src/runtime/ndjson.ts +0 -32
@@ -1,14 +1,17 @@
1
1
  import { directLimit } from '../compiler/directExecutionPolicy.js';
2
- import { DIRECT_CLIENT_RUNTIME_VERSION, DIRECT_CLIENT_RUNTIME_REPAIR } from './directClientVersion.js';
3
- /** Internal native-plan generator. Deliberately absent from index.ts and the CLI. */
2
+ import { DIRECT_CLIENT_RUNTIME_VERSION, DIRECT_CLIENT_RUNTIME_REPAIR, COMPONENT_CLIENT_RUNTIME_VERSION, COMPONENT_CLIENT_RUNTIME_REPAIR } from './directClientVersion.js';
3
+ /** Native-plan generator consumed by the opt-in checked pipeline. */
4
4
  import { checkSemanticBudget } from '../compiler/semanticBudget.js';
5
- import { writeFileSync } from 'node:fs';
5
+ import { writeFileSync, mkdirSync } from 'node:fs';
6
+ import path from 'node:path';
6
7
  import { inspectDirectOperation } from '../compiler/directOperation.js';
7
- import { inspectDirectValueMapping } from '../compiler/directValues.js';
8
- import { checkDirectSourceCompatibility, createDirectSourceCapsule } from '../compiler/directSourceCapsule.js';
8
+ import { inspectDirectValueMapping, inspectComponentValueMapping } from '../compiler/directValues.js';
9
+ import { checkDirectSourceCompatibility, createDirectSourceCapsule, componentSourceCapsuleBytes, inspectReconstructedComponentSource, inspectComponentSourceService } from '../compiler/directSourceCapsule.js';
10
+ import { lowerComponentShape } from '../generation/componentShape.js';
9
11
  import { composeGeneratedSource, resolvePreamble } from '../generation/preamble.js';
10
12
  const MAX_SOURCE_BYTES = 512 * 1024;
11
13
  const generatedArtifacts = new WeakMap();
14
+ const componentArtifactOwners = new WeakMap();
12
15
  /** Roles are separate declarations, so equal local names never merge namespace identities. */
13
16
  export function generateDirectClient(expected, signal) {
14
17
  const { budget } = inspectDirectOperation(expected.contract).context;
@@ -67,7 +70,7 @@ export function generateDirectClient(expected, signal) {
67
70
  const faults = mappings.filter(m => m.direction.kind === 'fault');
68
71
  const lines = [
69
72
  '// Checked direct client; inject checkedDirectRuntimeV1 from the package root.',
70
- '// Generation remains internal; this unreleased binding supports only the documented direct grammar.',
73
+ '// Opt-in preview binding supports only the documented direct grammar.',
71
74
  '// Static number types require native int32 validation; native checks enforce exact shapes.',
72
75
  `export type Request = ${shape(input)};`,
73
76
  `export type Response = ${shape(output)};`,
@@ -97,6 +100,7 @@ export function generateDirectClient(expected, signal) {
97
100
  }).join(' | ') : 'never') + ';',
98
101
  'export type Result = Failure | (Common & { readonly kind: "soap-response"; readonly value: Response }) | DeclaredFault;',
99
102
  `const capsule = ${literal(Buffer.from(capsule.bytes).toString('base64'))};`,
103
+ 'export const expectedCapsuleBase64 = capsule;',
100
104
  `export const selection = ${literal(JSON.stringify({ selector: expected.contract.selector, ...expected.selection }))};`,
101
105
  'export function createClient(runtime: Runtime) {',
102
106
  ' return Object.freeze({',
@@ -134,3 +138,131 @@ export function writeDirectClient(file, generated) {
134
138
  checkSemanticBudget(budget);
135
139
  writeFileSync(file, generated.source, 'utf8');
136
140
  }
141
+ /** Emit recursive component types and the existing checked runtime injection protocol.
142
+ * @remarks Native reconstruction and mappings remain authoritative; generated TypeScript is a static description.
143
+ * @returns An authentic writable artifact, or explicit refusal. No legacy catalog or saved report is consumed.
144
+ * @throws TypeError For copied/foreign reconstruction handles. Caller cancellation returns a refusal.
145
+ */
146
+ export async function generateComponentClient(expected, signal) {
147
+ inspectReconstructedComponentSource(expected);
148
+ const { budget } = inspectDirectOperation(expected.contract).context;
149
+ const failure = (kind, rule) => ({ kind, rule,
150
+ repair: COMPONENT_CLIENT_RUNTIME_REPAIR, usage: Object.freeze({ ...budget.usage() }) });
151
+ const check = () => { checkSemanticBudget(budget); if (signal?.aborted)
152
+ throw new Error('cancelled'); };
153
+ try {
154
+ check();
155
+ const capsule = { bytes: componentSourceCapsuleBytes(expected, signal) };
156
+ const literal = (value) => JSON.stringify(value).replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029');
157
+ const mappings = expected.mappings;
158
+ const input = mappings.find(mapping => mapping.direction.kind === 'input');
159
+ const output = mappings.find(mapping => mapping.direction.kind === 'output');
160
+ const request = lowerComponentShape(expected.contract, input, 'Request', check);
161
+ const response = lowerComponentShape(expected.contract, output, 'Response', check);
162
+ const faults = mappings.filter(mapping => mapping.direction.kind === 'fault').map((mapping, index) => ({ mapping,
163
+ shape: lowerComponentShape(expected.contract, mapping, `Fault_${index}`, check) }));
164
+ const grouped = mappings.some(mapping => mapping.kind === 'component-mapping'
165
+ && inspectComponentValueMapping(mapping, expected.contract).applicationGroups);
166
+ const declarations = grouped ? [...new Set([...request.declarations, ...response.declarations, ...faults.flatMap(({ shape }) => shape.declarations)]),
167
+ `export type Request = ${request.type};`, `export type Response = ${response.type};`,
168
+ ...faults.map(({ shape }, index) => `export type Fault_${index} = ${shape.type};`)] : [
169
+ ...request.declarations, `export type Request = ${request.type};`,
170
+ ...response.declarations, `export type Response = ${response.type};`,
171
+ ...faults.flatMap(({ shape }, index) => [...shape.declarations, `export type Fault_${index} = ${shape.type};`])
172
+ ];
173
+ const lines = [
174
+ '// Checked component client; inject checkedComponentRuntimeV1 from the package root.',
175
+ '// Scalar facets, ordered occurrence correlation and wildcard membership remain native runtime duties.',
176
+ ...declarations,
177
+ 'export interface Usage {readonly nodes: number; readonly work: number}',
178
+ 'export interface Name {readonly namespace: string; readonly local: string}',
179
+ 'export interface Options {',
180
+ ' readonly localSource: string; readonly fileRoots: readonly string[]; readonly capsule: Uint8Array;',
181
+ ' readonly sourceResources: readonly {readonly uri: string; readonly file: string; readonly canonicalUri?: string}[]; readonly sourceOrigins: readonly string[];',
182
+ ' readonly sourceUri?: string;',
183
+ ' readonly namespaceLocations?: readonly {readonly namespace: string; readonly location: string}[];',
184
+ ' readonly standardLibraries?: readonly string[];',
185
+ ' readonly recordSources?: readonly {readonly selector: {readonly portType: Name; readonly binding: Name; readonly operation: string}; readonly source: string}[];',
186
+ ' readonly soap: {readonly service: Name; readonly port: string; readonly endpoint?: string;',
187
+ ' readonly allowEndpoint?: (endpoint: URL) => boolean; readonly signal?: AbortSignal; readonly timeoutMs?: number;',
188
+ ' readonly capabilities?: readonly string[]; readonly ca?: string;',
189
+ ' readonly limits?: {readonly maxBytes?: number; readonly maxDepth?: number; readonly maxNodes?: number; readonly maxText?: number}};',
190
+ '}',
191
+ 'export interface Failure {readonly kind: "incompatible-artifact" | "unsupported" | "missing-authority" | "resource-limit" | "cancelled" | "inconclusive" | "invalid-schema" | "scalar-invalid" | "value-invalid" | "xml-invalid" | "mismatch" | "transport" | "protocol";',
192
+ ' readonly rule: string; readonly repair?: string; readonly phase?: "input" | "response"; readonly usage: Usage}',
193
+ 'export interface NativeSuccess {readonly kind: "soap-response" | "soap-fault"; readonly value: unknown; readonly admitted: false;',
194
+ ' readonly status: number; readonly usage: Usage; readonly responseBytes: Uint8Array;',
195
+ ' readonly fault?: {readonly name: string; readonly code: Name; readonly string: string; readonly actor?: string}}',
196
+ `export interface Runtime {readonly version: ${literal(COMPONENT_CLIENT_RUNTIME_VERSION)}; execute(expectedBase64: string, input: unknown, options: Options, version: ${literal(COMPONENT_CLIENT_RUNTIME_VERSION)}): Promise<Failure | NativeSuccess>}`,
197
+ 'type Common = {readonly admitted: false; readonly status: number; readonly usage: Usage; readonly responseBytes: Uint8Array};',
198
+ 'export type Result = Failure | (Common & {readonly kind: "soap-response"; readonly value: Response})',
199
+ ...faults.map(({ mapping }, index) => {
200
+ if (mapping.direction.kind !== 'fault')
201
+ throw new TypeError('Native fault mapping required');
202
+ return ` | (Common & {readonly kind: "soap-fault"; readonly value: Fault_${index}; readonly fault: {readonly name: ${literal(mapping.direction.name)}; readonly code: Name; readonly string: string; readonly actor?: string}})`;
203
+ }),
204
+ ...(faults.length ? [] : [' | (Common & {readonly kind: "soap-fault"; readonly value: never; readonly fault: {readonly name: never; readonly code: Name; readonly string: string; readonly actor?: string}})']),
205
+ ';',
206
+ `export const expectedCapsuleBase64 = ${literal(Buffer.from(capsule.bytes).toString('base64'))};`,
207
+ `export const selection = ${literal(JSON.stringify({ selector: expected.contract.selector, ...expected.selection }))};`,
208
+ 'export function createClient(runtime: Runtime) {',
209
+ ' return Object.freeze({',
210
+ ` [${literal(expected.contract.selector.operation)}]: async (input: Request, options: Options): Promise<Result> => {`,
211
+ ` if (runtime.version !== ${literal(COMPONENT_CLIENT_RUNTIME_VERSION)}) return {kind: "incompatible-artifact", rule: "generated-runtime-version", repair: ${literal(COMPONENT_CLIENT_RUNTIME_REPAIR)}, usage: {nodes: 0, work: 0}};`,
212
+ ` return await runtime.execute(expectedCapsuleBase64, input, options, ${literal(COMPONENT_CLIENT_RUNTIME_VERSION)}) as Result;`,
213
+ ' },', ' });', '}', '',
214
+ ];
215
+ const source = composeGeneratedSource(lines.join('\n'), resolvePreamble('direct-client'));
216
+ if (Buffer.byteLength(source) > directLimit(budget, MAX_SOURCE_BYTES))
217
+ return failure('resource-limit', 'generated-source-byte-limit');
218
+ check();
219
+ const artifact = Object.freeze({ kind: 'generated-component-client', source, capsule: capsule.bytes,
220
+ admitted: false, usage: Object.freeze({ ...budget.usage() }) });
221
+ generatedArtifacts.set(artifact, budget);
222
+ componentArtifactOwners.set(artifact, expected);
223
+ return artifact;
224
+ }
225
+ catch (error) {
226
+ if (budget.exhausted())
227
+ return failure('resource-limit', 'request-budget');
228
+ if (signal?.aborted)
229
+ return failure('cancelled', 'cooperative-cancellation');
230
+ throw error;
231
+ }
232
+ }
233
+ /** Emit a service client index and per-operation native artifacts using the existing component emitter.
234
+ * @remarks All operation artifacts are prepared before writing. The index contains no source authority.
235
+ * @returns Generator-owned relative capsule paths, keyed by exact operation name.
236
+ * @throws For foreign/mixed native operations, refused generation, cancellation or filesystem failure.
237
+ */
238
+ export async function writeComponentServiceClient(expected, directory, signal, prepared) {
239
+ const operations = inspectComponentSourceService(expected);
240
+ const generated = [];
241
+ if (prepared && prepared.length !== operations.length)
242
+ throw new TypeError('Prepared operation artifacts must match the service');
243
+ for (const [index, operation] of operations.entries()) {
244
+ const artifact = prepared?.[index] ?? await generateComponentClient(operation, signal);
245
+ if (artifact.kind !== 'generated-component-client')
246
+ throw new Error(`Checked client refused: ${artifact.kind}: ${artifact.rule}`);
247
+ if (componentArtifactOwners.get(artifact) !== operation)
248
+ throw new TypeError('Prepared client belongs to another native operation');
249
+ generated.push(artifact);
250
+ }
251
+ const files = Object.create(null);
252
+ const lines = operations.flatMap((_, index) => [
253
+ `import {createClient as operation_${index}} from './operations/${index}/client.js';`,
254
+ `export * as Operation_${index} from './operations/${index}/client.js';`,
255
+ ]);
256
+ lines.push("import type {Runtime, Options as OperationOptions} from './operations/0/client.js';", "export type Options = Omit<OperationOptions, 'capsule'>;", `export const selection = ${JSON.stringify(JSON.stringify(operations[0].selection))};`, 'export function createClient(runtime: Runtime) {', ' return Object.freeze({', ...operations.map((_, index) => ` ...operation_${index}(runtime),`), ' });', '}', '');
257
+ for (const [index, operation] of operations.entries()) {
258
+ const dir = path.join(directory, 'operations', String(index));
259
+ mkdirSync(dir, { recursive: true });
260
+ writeDirectClient(path.join(dir, 'client.ts'), generated[index]);
261
+ writeFileSync(path.join(dir, 'contract.json'), generated[index].capsule);
262
+ files[operation.contract.selector.operation] = `operations/${index}/contract.json`;
263
+ }
264
+ const { budget } = inspectDirectOperation(operations[0].contract).context;
265
+ checkSemanticBudget(budget);
266
+ writeFileSync(path.join(directory, 'client.ts'), composeGeneratedSource(lines.join('\n'), resolvePreamble('direct-client')), 'utf8');
267
+ return Object.freeze(files);
268
+ }
@@ -11,4 +11,3 @@ import type { CompiledCatalog } from "../compiler/schemaCompiler.js";
11
11
  * @throws {Error} If a packaged preamble cannot be loaded or the TypeScript file cannot be written.
12
12
  */
13
13
  export declare function generateOperations(outFile: string, compiled: CompiledCatalog): void;
14
- //# sourceMappingURL=generateOperations.d.ts.map
@@ -4,6 +4,7 @@
4
4
  * Generates a fully-typed operations interface for the SOAP client.
5
5
  * This standalone interface enables mocking and testing without importing
6
6
  * the concrete SOAP client class or its runtime dependencies.
7
+ * @since Unreleased
7
8
  */
8
9
  import { writeGeneratedSource } from "../generation/writeGeneratedSource.js";
9
10
  import { deriveClientName, pascal } from "../util/tools.js";
@@ -31,18 +32,25 @@ export function generateOperations(outFile, compiled) {
31
32
  .map(line => line.replace(/\*\//g, "*\\/"));
32
33
  // Collect type names used in method signatures for the import statement
33
34
  const importedTypes = new Set();
35
+ const operationTypes = compiled.operations.map(operation => ({ operation,
36
+ input: operation.inputTypeName ?? (operation.inputElement ? pascal(operation.inputElement.local) : undefined),
37
+ output: operation.outputTypeName ?? (operation.outputElement ? pascal(operation.outputElement.local) : undefined),
38
+ }));
39
+ const reservedTypes = new Set(["Promise", "AsyncIterable", "AbortSignal", "StreamCallOptions", "StreamOperationResponse", `${clientName}Operations`]);
40
+ // @constraints Qualify model references when their public names overlap generated helpers or native transport types.
41
+ const namespaceModels = operationTypes.some(({ operation, input, output }) => [input, output, operation.stream?.recordTypeName].some(name => name !== undefined && reservedTypes.has(name)));
42
+ const modelType = (name) => namespaceModels ? `T.${name}` : name;
34
43
  const methods = [];
35
44
  // Does any operation opt into streaming? If so we also emit the
36
45
  // StreamOperationResponse helper type below.
37
46
  let anyStream = false;
38
- for (const op of compiled.operations) {
39
- const inTypeName = op.inputTypeName ?? (op.inputElement ? pascal(op.inputElement.local) : undefined);
40
- const outTypeName = op.outputTypeName ?? (op.outputElement ? pascal(op.outputElement.local) : undefined);
47
+ for (const { operation: op, input: inTypeName, output: outTypeName } of operationTypes) {
41
48
  if (!inTypeName && !outTypeName) {
42
49
  continue;
43
50
  }
44
- const inTs = inTypeName ?? "Record<string, unknown>";
45
- const outTs = outTypeName ?? "unknown";
51
+ // @constraints WSDL DTOs may be named Record and shadow the built-in utility type.
52
+ const inTs = inTypeName ? modelType(inTypeName) : "{[key: string]: unknown}";
53
+ const outTs = outTypeName ? modelType(outTypeName) : "unknown";
46
54
  if (inTypeName)
47
55
  importedTypes.add(inTypeName);
48
56
  if (outTypeName)
@@ -56,8 +64,9 @@ export function generateOperations(outFile, compiled) {
56
64
  const recordTs = op.stream.recordTypeName;
57
65
  importedTypes.add(recordTs);
58
66
  methods.push(`${docBlock} ${op.name}(\n` +
59
- ` args: ${inTs}\n` +
60
- ` ): Promise<StreamOperationResponse<${recordTs}>>;\n`);
67
+ ` args: ${inTs},\n` +
68
+ ` options?: StreamCallOptions\n` +
69
+ ` ): Promise<StreamOperationResponse<${modelType(recordTs)}>>;\n`);
61
70
  }
62
71
  else {
63
72
  methods.push(`${docBlock} ${op.name}(\n` +
@@ -68,16 +77,26 @@ export function generateOperations(outFile, compiled) {
68
77
  // Build sorted import list for deterministic output
69
78
  const sortedImports = Array.from(importedTypes).sort();
70
79
  const typeImport = sortedImports.length > 0
71
- ? `import type {\n${sortedImports.map((t) => ` ${t},`).join("\n")}\n} from "./types${suffix}";\n\n`
80
+ ? namespaceModels
81
+ ? `import type * as T from "./types${suffix}";\n\n`
82
+ : `import type {\n${sortedImports.map((t) => ` ${t},`).join("\n")}\n} from "./types${suffix}";\n\n`
72
83
  : "";
73
84
  // Emit the StreamOperationResponse helper type iff at least one operation
74
85
  // is stream-configured. Kept inside operations.ts so that mocks and gateway
75
86
  // code can import it without pulling in the SOAP runtime. The raw template
76
87
  // lives in a sibling .tpl file so the IDE does not try to parse embedded
77
- // TypeScript type-parameter defaults (HeadersType = Record<...>) as
78
- // JavaScript assignment expressions.
88
+ // TypeScript generic defaults as JavaScript assignment expressions.
79
89
  const streamHelper = anyStream
80
- ? loadRuntimeSource("operationsStreamHelper.tpl.txt").replace(/__CLIENT_NAME__/g, clientName)
90
+ ? `/**
91
+ * Per-call stream cancellation and total request/response deadline.
92
+ * @since Unreleased
93
+ */
94
+ export interface StreamCallOptions {
95
+ signal?: AbortSignal;
96
+ timeoutMs?: number;
97
+ }
98
+
99
+ ` + loadRuntimeSource("operationsStreamHelper.tpl.txt").replace(/__CLIENT_NAME__/g, clientName)
81
100
  : "";
82
101
  const content = `/**
83
102
  * Typed operations interface for the ${clientName} service.
@@ -20,4 +20,3 @@ import type { CompiledCatalog } from "../compiler/schemaCompiler.js";
20
20
  * @throws {Error} If a packaged preamble cannot be loaded or the TypeScript file cannot be written.
21
21
  */
22
22
  export declare function generateTypes(outFile: string, compiled: CompiledCatalog): void;
23
- //# sourceMappingURL=generateTypes.d.ts.map
@@ -19,4 +19,3 @@ import type { CompiledCatalog } from "../compiler/schemaCompiler.js";
19
19
  * @throws {Error} If a packaged preamble cannot be loaded or the TypeScript file cannot be written.
20
20
  */
21
21
  export declare function generateUtils(outFile: string, compiled: CompiledCatalog): void;
22
- //# sourceMappingURL=generateUtils.d.ts.map
@@ -48,7 +48,9 @@ export function generateUtils(outFile, compiled) {
48
48
  return max === "unbounded" || (typeof max === "number" && max > 1);
49
49
  }).sort(),
50
50
  ]));
51
- const metas = JSON.stringify({ Attributes: attrSpec, ChildrenTypes: childType, RepeatedElements: repeatedElements }, null, 2);
51
+ const metas = JSON.stringify({ Attributes: attrSpec, AttributeTypes: compiled.meta.attrType ?? {}, ChildrenTypes: childType, RepeatedElements: repeatedElements,
52
+ NonNillableElements: Object.fromEntries(Object.entries(compiled.meta.propMeta ?? {}).sort(([a], [b]) => a.localeCompare(b))
53
+ .map(([name, properties]) => [name, Object.keys(properties).filter(key => properties[key].nillable === false).sort()])) }, null, 2);
52
54
  const dataTypes = `/**
53
55
  * ${clientName} WSDL data types for proper serialization/deserialization.
54
56
  * Used to distinguish between XML attributes and elements during conversion.
@@ -56,10 +58,14 @@ export function generateUtils(outFile, compiled) {
56
58
  export interface ${clientName}DataTypes {
57
59
  /** Maps type names to lists of property names that should be treated as XML attributes */
58
60
  Attributes: Record<string, readonly string[]>;
61
+ /** Maps attributes to their projected scalar types for XML response conversion. */
62
+ AttributeTypes?: Record<string, Readonly<Record<string, string>>>;
59
63
  /** Maps type names to their child element types for recursive processing */
60
64
  ChildrenTypes: Record<string, Readonly<Record<string, string>>>;
61
65
  /** Maps type names to repeated child properties; optional for custom metadata compatibility. */
62
66
  RepeatedElements?: Record<string, readonly string[]>;
67
+ /** Distinguishes empty complex nodes collapsed to null by node-soap from declared nullable children. */
68
+ NonNillableElements?: Record<string, readonly string[]>;
63
69
  }
64
70
 
65
71
  export const ${clientConstant}_DATA_TYPES: ${clientName}DataTypes = ${metas} as const;\n`;
@@ -0,0 +1,53 @@
1
+ import type { SemanticContext } from './semanticContext.js';
2
+ import type { SemanticParticle } from './particleSemanticView.js';
3
+ import type { DirectProjectionPlan, DirectProjectionSlot } from './directStructurePlan.js';
4
+ export interface ApplicationGroupName {
5
+ readonly target: string;
6
+ readonly propertyName?: string;
7
+ readonly typeName?: string;
8
+ }
9
+ export interface ApplicationGroupsOptions {
10
+ readonly names?: readonly ApplicationGroupName[];
11
+ }
12
+ export interface ApplicationGroupTarget {
13
+ readonly target: string;
14
+ readonly role: 'choice' | 'sequence' | 'alternative';
15
+ readonly source: string;
16
+ readonly defaults: {
17
+ readonly propertyName?: string;
18
+ readonly typeName: string;
19
+ };
20
+ readonly resolved: {
21
+ readonly propertyName?: string;
22
+ readonly typeName: string;
23
+ };
24
+ }
25
+ export interface ApplicationGroupRecord {
26
+ readonly source: string;
27
+ readonly disposition: 'grouped' | 'retained-ordered' | 'compact';
28
+ readonly reason: string;
29
+ }
30
+ export type GroupNode = {
31
+ readonly particle: SemanticParticle;
32
+ readonly slot?: DirectProjectionSlot;
33
+ readonly children: readonly GroupNode[];
34
+ readonly target?: ApplicationGroupTarget;
35
+ readonly alternatives?: readonly ApplicationGroupTarget[];
36
+ };
37
+ export interface ApplicationGroupPlan {
38
+ readonly records: Readonly<Record<string, GroupNode>>;
39
+ readonly targets: readonly ApplicationGroupTarget[];
40
+ readonly dispositions: readonly ApplicationGroupRecord[];
41
+ }
42
+ /** Stable private record symbol shared across operation directions and schema scopes. */
43
+ export declare const applicationRecordName: (id: string) => string;
44
+ /** Copy strict data-only generation options, rejecting malformed arrays before any source work. */
45
+ export declare function parseApplicationGroups(value: unknown): ApplicationGroupsOptions;
46
+ /** Derive finite group definitions from exact qualified records; no caller inventory is trusted. */
47
+ export declare function planApplicationGroups(context: SemanticContext, projection: DirectProjectionPlan, options: ApplicationGroupsOptions, checkpoint: () => void): ApplicationGroupPlan;
48
+ export declare class ApplicationGroupValueError extends Error {
49
+ }
50
+ /** Convert owned data between grouped and existing ordered values without adding XML wrappers.
51
+ * @constraints Input must first pass the bounded data-only owner; recursive calls are depth-limited.
52
+ */
53
+ export declare function mapApplicationGroups(plan: ApplicationGroupPlan, projection: DirectProjectionPlan, input: unknown, direction: 'to-native' | 'from-native', check: () => void): unknown;