@techspokes/typescript-wsdl-client 1.1.4 → 1.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. package/README.md +81 -35
  2. package/dist/app/generateApp.d.ts +0 -1
  3. package/dist/app/generateApp.js +8 -6
  4. package/dist/app/generateCheckedApp.d.ts +38 -0
  5. package/dist/app/generateCheckedApp.js +108 -0
  6. package/dist/checkedPipeline.d.ts +155 -0
  7. package/dist/checkedPipeline.js +448 -0
  8. package/dist/checkedPlanning.d.ts +123 -0
  9. package/dist/checkedPlanning.js +245 -0
  10. package/dist/cli.d.ts +0 -1
  11. package/dist/cli.js +123 -5
  12. package/dist/client/checkedDirectRuntime.d.ts +96 -0
  13. package/dist/client/checkedDirectRuntime.js +43 -0
  14. package/dist/client/directClientRuntime.d.ts +74 -0
  15. package/dist/client/directClientRuntime.js +165 -0
  16. package/dist/client/directClientVersion.d.ts +6 -0
  17. package/dist/client/directClientVersion.js +6 -0
  18. package/dist/client/generateClient.d.ts +0 -1
  19. package/dist/client/generateClient.js +26 -12
  20. package/dist/client/generateDirectClient.d.ts +32 -0
  21. package/dist/client/generateDirectClient.js +268 -0
  22. package/dist/client/generateOperations.d.ts +0 -1
  23. package/dist/client/generateTypes.d.ts +0 -1
  24. package/dist/client/generateUtils.d.ts +0 -1
  25. package/dist/client/generateUtils.js +3 -1
  26. package/dist/compiler/applicationGroups.d.ts +53 -0
  27. package/dist/compiler/applicationGroups.js +403 -0
  28. package/dist/compiler/buildCanonicalGraph.d.ts +6 -0
  29. package/dist/compiler/buildCanonicalGraph.js +381 -0
  30. package/dist/compiler/canonicalGraph.d.ts +197 -0
  31. package/dist/compiler/canonicalGraph.js +37 -0
  32. package/dist/compiler/catalogErrors.d.ts +17 -0
  33. package/dist/compiler/catalogErrors.js +86 -0
  34. package/dist/compiler/catalogProvenance.d.ts +14 -0
  35. package/dist/compiler/catalogProvenance.js +229 -0
  36. package/dist/compiler/checkedAssessment.d.ts +90 -0
  37. package/dist/compiler/checkedAssessment.js +300 -0
  38. package/dist/compiler/checkedComponentSource.d.ts +16 -0
  39. package/dist/compiler/checkedComponentSource.js +31 -0
  40. package/dist/compiler/checkedSourcePreparation.d.ts +72 -0
  41. package/dist/compiler/checkedSourcePreparation.js +202 -0
  42. package/dist/compiler/complexTypeContent.d.ts +58 -0
  43. package/dist/compiler/complexTypeContent.js +558 -0
  44. package/dist/compiler/componentCorrespondence.d.ts +32 -0
  45. package/dist/compiler/componentCorrespondence.js +140 -0
  46. package/dist/compiler/componentRecordProjection.d.ts +109 -0
  47. package/dist/compiler/componentRecordProjection.js +319 -0
  48. package/dist/compiler/componentSoapPreparation.d.ts +20 -0
  49. package/dist/compiler/componentSoapPreparation.js +36 -0
  50. package/dist/compiler/composeCanonicalGraph.d.ts +68 -0
  51. package/dist/compiler/composeCanonicalGraph.js +252 -0
  52. package/dist/compiler/dataOwnership.d.ts +21 -0
  53. package/dist/compiler/dataOwnership.js +167 -0
  54. package/dist/compiler/datatypeValues.d.ts +46 -0
  55. package/dist/compiler/datatypeValues.js +275 -0
  56. package/dist/compiler/directCodec.d.ts +116 -0
  57. package/dist/compiler/directCodec.js +377 -0
  58. package/dist/compiler/directExecutionPolicy.d.ts +9 -0
  59. package/dist/compiler/directExecutionPolicy.js +17 -0
  60. package/dist/compiler/directOperation.d.ts +114 -0
  61. package/dist/compiler/directOperation.js +373 -0
  62. package/dist/compiler/directSoap.d.ts +66 -0
  63. package/dist/compiler/directSoap.js +391 -0
  64. package/dist/compiler/directSoapSource.d.ts +38 -0
  65. package/dist/compiler/directSoapSource.js +233 -0
  66. package/dist/compiler/directSourceCapsule.d.ts +169 -0
  67. package/dist/compiler/directSourceCapsule.js +727 -0
  68. package/dist/compiler/directStructure.d.ts +128 -0
  69. package/dist/compiler/directStructure.js +543 -0
  70. package/dist/compiler/directStructurePlan.d.ts +149 -0
  71. package/dist/compiler/directStructurePlan.js +623 -0
  72. package/dist/compiler/directValues.d.ts +128 -0
  73. package/dist/compiler/directValues.js +1116 -0
  74. package/dist/compiler/finiteRe01Construction.d.ts +69 -0
  75. package/dist/compiler/finiteRe01Construction.js +422 -0
  76. package/dist/compiler/finiteRe01Verification.d.ts +218 -0
  77. package/dist/compiler/finiteRe01Verification.js +1217 -0
  78. package/dist/compiler/generateCatalog.d.ts +0 -1
  79. package/dist/compiler/graphTraversal.d.ts +10 -0
  80. package/dist/compiler/graphTraversal.js +37 -0
  81. package/dist/compiler/hypotheticalScopedIdentity.d.ts +22 -0
  82. package/dist/compiler/hypotheticalScopedIdentity.js +81 -0
  83. package/dist/compiler/occurrenceAnalysis.d.ts +66 -0
  84. package/dist/compiler/occurrenceAnalysis.js +316 -0
  85. package/dist/compiler/originalSourceMembership.d.ts +5 -0
  86. package/dist/compiler/originalSourceMembership.js +31 -0
  87. package/dist/compiler/particleAttribution.d.ts +16 -0
  88. package/dist/compiler/particleAttribution.js +494 -0
  89. package/dist/compiler/particleDeclarationConsistency.d.ts +23 -0
  90. package/dist/compiler/particleDeclarationConsistency.js +206 -0
  91. package/dist/compiler/particleExtension.d.ts +21 -0
  92. package/dist/compiler/particleExtension.js +123 -0
  93. package/dist/compiler/particleLocalAssessment.d.ts +19 -0
  94. package/dist/compiler/particleLocalAssessment.js +92 -0
  95. package/dist/compiler/particleRestriction.d.ts +23 -0
  96. package/dist/compiler/particleRestriction.js +494 -0
  97. package/dist/compiler/particleSemanticView.d.ts +51 -0
  98. package/dist/compiler/particleSemanticView.js +310 -0
  99. package/dist/compiler/particleWildcardRelation.d.ts +87 -0
  100. package/dist/compiler/particleWildcardRelation.js +143 -0
  101. package/dist/compiler/projectionScalar.d.ts +32 -0
  102. package/dist/compiler/projectionScalar.js +184 -0
  103. package/dist/compiler/re01CandidateAssignments.d.ts +95 -0
  104. package/dist/compiler/re01CandidateAssignments.js +341 -0
  105. package/dist/compiler/re01CandidateCorrespondence.d.ts +85 -0
  106. package/dist/compiler/re01CandidateCorrespondence.js +701 -0
  107. package/dist/compiler/re01TypeProperties.d.ts +70 -0
  108. package/dist/compiler/re01TypeProperties.js +120 -0
  109. package/dist/compiler/re01TypePropertyValidation.d.ts +22 -0
  110. package/dist/compiler/re01TypePropertyValidation.js +161 -0
  111. package/dist/compiler/resolveCanonicalGraph.d.ts +41 -0
  112. package/dist/compiler/resolveCanonicalGraph.js +240 -0
  113. package/dist/compiler/scalarSchemaAssessment.d.ts +424 -0
  114. package/dist/compiler/scalarSchemaAssessment.js +5198 -0
  115. package/dist/compiler/schemaAttributeGroupProperties.d.ts +16 -0
  116. package/dist/compiler/schemaAttributeGroupProperties.js +53 -0
  117. package/dist/compiler/schemaAttributeProperties.d.ts +9 -0
  118. package/dist/compiler/schemaAttributeProperties.js +11 -0
  119. package/dist/compiler/schemaAttributeUses.d.ts +110 -0
  120. package/dist/compiler/schemaAttributeUses.js +798 -0
  121. package/dist/compiler/schemaBinaryWordReconstruction.d.ts +9 -0
  122. package/dist/compiler/schemaBinaryWordReconstruction.js +33 -0
  123. package/dist/compiler/schemaBuiltinFacets.d.ts +13 -0
  124. package/dist/compiler/schemaBuiltinFacets.js +51 -0
  125. package/dist/compiler/schemaCalendarImages.d.ts +7 -0
  126. package/dist/compiler/schemaCalendarImages.js +204 -0
  127. package/dist/compiler/schemaCalendarLanguage.d.ts +10 -0
  128. package/dist/compiler/schemaCalendarLanguage.js +227 -0
  129. package/dist/compiler/schemaCompiler.d.ts +0 -1
  130. package/dist/compiler/schemaComponentEquality.d.ts +27 -0
  131. package/dist/compiler/schemaComponentEquality.js +446 -0
  132. package/dist/compiler/schemaConstructionAssessment.d.ts +79 -0
  133. package/dist/compiler/schemaConstructionAssessment.js +745 -0
  134. package/dist/compiler/schemaDatatypeValues.d.ts +3 -0
  135. package/dist/compiler/schemaDatatypeValues.js +2 -0
  136. package/dist/compiler/schemaDecimalLanguage.d.ts +6 -0
  137. package/dist/compiler/schemaDecimalLanguage.js +102 -0
  138. package/dist/compiler/schemaDeclarationPrimitives.d.ts +39 -0
  139. package/dist/compiler/schemaDeclarationPrimitives.js +211 -0
  140. package/dist/compiler/schemaDocumentSyntax.d.ts +54 -0
  141. package/dist/compiler/schemaDocumentSyntax.js +294 -0
  142. package/dist/compiler/schemaDurationLanguage.d.ts +10 -0
  143. package/dist/compiler/schemaDurationLanguage.js +170 -0
  144. package/dist/compiler/schemaElementInstance.d.ts +30 -0
  145. package/dist/compiler/schemaElementInstance.js +45 -0
  146. package/dist/compiler/schemaElementProperties.d.ts +15 -0
  147. package/dist/compiler/schemaElementProperties.js +23 -0
  148. package/dist/compiler/schemaEndpointWordCapacity.d.ts +35 -0
  149. package/dist/compiler/schemaEndpointWordCapacity.js +39 -0
  150. package/dist/compiler/schemaExactCalendar.d.ts +72 -0
  151. package/dist/compiler/schemaExactCalendar.js +264 -0
  152. package/dist/compiler/schemaFacetAnnotation.d.ts +31 -0
  153. package/dist/compiler/schemaFacetAnnotation.js +199 -0
  154. package/dist/compiler/schemaGeneratedScalarShape.d.ts +34 -0
  155. package/dist/compiler/schemaGeneratedScalarShape.js +178 -0
  156. package/dist/compiler/schemaIdentityConstraints.d.ts +72 -0
  157. package/dist/compiler/schemaIdentityConstraints.js +362 -0
  158. package/dist/compiler/schemaIeeeLanguage.d.ts +42 -0
  159. package/dist/compiler/schemaIeeeLanguage.js +759 -0
  160. package/dist/compiler/schemaIntegerImages.d.ts +10 -0
  161. package/dist/compiler/schemaIntegerImages.js +113 -0
  162. package/dist/compiler/schemaLexicalPredicates.d.ts +28 -0
  163. package/dist/compiler/schemaLexicalPredicates.js +63 -0
  164. package/dist/compiler/schemaNotationProperties.d.ts +31 -0
  165. package/dist/compiler/schemaNotationProperties.js +84 -0
  166. package/dist/compiler/schemaNumericImageConditions.d.ts +23 -0
  167. package/dist/compiler/schemaNumericImageConditions.js +66 -0
  168. package/dist/compiler/schemaParticleWildcardProperties.d.ts +19 -0
  169. package/dist/compiler/schemaParticleWildcardProperties.js +43 -0
  170. package/dist/compiler/schemaPattern.d.ts +1061 -0
  171. package/dist/compiler/schemaPattern.js +581 -0
  172. package/dist/compiler/schemaRegularLanguage.d.ts +66 -0
  173. package/dist/compiler/schemaRegularLanguage.js +1166 -0
  174. package/dist/compiler/schemaScalarContext.d.ts +85 -0
  175. package/dist/compiler/schemaScalarContext.js +78 -0
  176. package/dist/compiler/schemaScalarKernel.d.ts +181 -0
  177. package/dist/compiler/schemaScalarKernel.js +391 -0
  178. package/dist/compiler/schemaScalarWitnesses.d.ts +5 -0
  179. package/dist/compiler/schemaScalarWitnesses.js +118 -0
  180. package/dist/compiler/schemaSimpleTypeProperties.d.ts +94 -0
  181. package/dist/compiler/schemaSimpleTypeProperties.js +103 -0
  182. package/dist/compiler/schemaSourceGrammar.d.ts +26 -0
  183. package/dist/compiler/schemaSourceGrammar.js +290 -0
  184. package/dist/compiler/schemaSourceLexical.d.ts +3 -0
  185. package/dist/compiler/schemaSourceLexical.js +12 -0
  186. package/dist/compiler/schemaSourceValues.d.ts +50 -0
  187. package/dist/compiler/schemaSourceValues.js +225 -0
  188. package/dist/compiler/schemaSourceWildcards.d.ts +27 -0
  189. package/dist/compiler/schemaSourceWildcards.js +249 -0
  190. package/dist/compiler/schemaSymbolicSequences.d.ts +15 -0
  191. package/dist/compiler/schemaSymbolicSequences.js +99 -0
  192. package/dist/compiler/schemaSymbolicValueSets.d.ts +31 -0
  193. package/dist/compiler/schemaSymbolicValueSets.js +149 -0
  194. package/dist/compiler/schemaSyntaxAssessment.d.ts +24 -0
  195. package/dist/compiler/schemaSyntaxAssessment.js +361 -0
  196. package/dist/compiler/schemaTemporalAliases.d.ts +5 -0
  197. package/dist/compiler/schemaTemporalAliases.js +195 -0
  198. package/dist/compiler/schemaTokenImages.d.ts +8 -0
  199. package/dist/compiler/schemaTokenImages.js +142 -0
  200. package/dist/compiler/schemaTypeIdentity.d.ts +38 -0
  201. package/dist/compiler/schemaTypeIdentity.js +80 -0
  202. package/dist/compiler/schemaTypeRelations.d.ts +37 -0
  203. package/dist/compiler/schemaTypeRelations.js +576 -0
  204. package/dist/compiler/schemaUri.d.ts +12 -0
  205. package/dist/compiler/schemaUri.js +103 -0
  206. package/dist/compiler/schemaValueContext.d.ts +25 -0
  207. package/dist/compiler/schemaValueContext.js +1 -0
  208. package/dist/compiler/schemaValueImages.d.ts +9 -0
  209. package/dist/compiler/schemaValueImages.js +142 -0
  210. package/dist/compiler/schemaValueSequences.d.ts +14 -0
  211. package/dist/compiler/schemaValueSequences.js +19 -0
  212. package/dist/compiler/semanticBudget.d.ts +67 -0
  213. package/dist/compiler/semanticBudget.js +193 -0
  214. package/dist/compiler/semanticCatalog.d.ts +121 -0
  215. package/dist/compiler/semanticCatalog.js +160 -0
  216. package/dist/compiler/semanticContext.d.ts +183 -0
  217. package/dist/compiler/semanticContext.js +1207 -0
  218. package/dist/compiler/semanticTypeDependencies.d.ts +7 -0
  219. package/dist/compiler/semanticTypeDependencies.js +64 -0
  220. package/dist/compiler/semanticTypeReference.d.ts +23 -0
  221. package/dist/compiler/semanticTypeReference.js +36 -0
  222. package/dist/compiler/shapeResolver.d.ts +1 -1
  223. package/dist/compiler/shapeResolver.js +7 -9
  224. package/dist/compiler/soapHeaders.d.ts +16 -0
  225. package/dist/compiler/soapHeaders.js +42 -0
  226. package/dist/compiler/sourceSchemaBinding.d.ts +25 -0
  227. package/dist/compiler/sourceSchemaBinding.js +39 -0
  228. package/dist/compiler/standardSchemaComponents.d.ts +71 -0
  229. package/dist/compiler/standardSchemaComponents.js +74 -0
  230. package/dist/compiler/standardSchemaConstruction.d.ts +20 -0
  231. package/dist/compiler/standardSchemaConstruction.js +34 -0
  232. package/dist/compiler/structuralCompanions.d.ts +15 -0
  233. package/dist/compiler/structuralCompanions.js +232 -0
  234. package/dist/compiler/validateSemanticGraph.d.ts +4 -0
  235. package/dist/compiler/validateSemanticGraph.js +376 -0
  236. package/dist/compiler/wildcardAlgebra.d.ts +25 -0
  237. package/dist/compiler/wildcardAlgebra.js +155 -0
  238. package/dist/compiler/wsdlPolicyRequirements.d.ts +43 -0
  239. package/dist/compiler/wsdlPolicyRequirements.js +239 -0
  240. package/dist/config.d.ts +0 -1
  241. package/dist/gateway/generateCheckedGateway.d.ts +32 -0
  242. package/dist/gateway/generateCheckedGateway.js +293 -0
  243. package/dist/gateway/generateGateway.d.ts +0 -1
  244. package/dist/gateway/generateGateway.js +2 -2
  245. package/dist/gateway/generators.d.ts +0 -1
  246. package/dist/gateway/helpers.d.ts +0 -1
  247. package/dist/generation/componentShape.d.ts +14 -0
  248. package/dist/generation/componentShape.js +269 -0
  249. package/dist/generation/preamble.d.ts +0 -1
  250. package/dist/generation/sourceLayout.d.ts +13 -0
  251. package/dist/generation/sourceLayout.js +40 -0
  252. package/dist/generation/writeGeneratedSource.d.ts +0 -1
  253. package/dist/index.d.ts +9 -1
  254. package/dist/index.js +3 -0
  255. package/dist/loader/fetch.d.ts +0 -1
  256. package/dist/loader/orderedSyntax.d.ts +84 -0
  257. package/dist/loader/orderedSyntax.js +222 -0
  258. package/dist/loader/resolutionDepth.d.ts +6 -0
  259. package/dist/loader/resolutionDepth.js +65 -0
  260. package/dist/loader/schemaInput.d.ts +80 -0
  261. package/dist/loader/schemaInput.js +249 -0
  262. package/dist/loader/schemaResources.d.ts +60 -0
  263. package/dist/loader/schemaResources.js +333 -0
  264. package/dist/loader/wsdlLoader.d.ts +0 -1
  265. package/dist/openapi/casing.d.ts +0 -1
  266. package/dist/openapi/generateOpenAPI.d.ts +0 -1
  267. package/dist/openapi/generateOpenAPI.js +2 -2
  268. package/dist/openapi/generatePaths.d.ts +0 -1
  269. package/dist/openapi/generateSchemas.d.ts +0 -1
  270. package/dist/openapi/security.d.ts +0 -1
  271. package/dist/pipeline.d.ts +6 -2
  272. package/dist/pipeline.js +13 -0
  273. package/dist/test/generateCheckedTests.d.ts +17 -0
  274. package/dist/test/generateCheckedTests.js +60 -0
  275. package/dist/test/generateTests.d.ts +0 -1
  276. package/dist/test/generateTests.js +2 -2
  277. package/dist/test/generators.d.ts +0 -1
  278. package/dist/test/mockData.d.ts +0 -1
  279. package/dist/test/mockData.js +20 -14
  280. package/dist/util/attributeWildcards.d.ts +0 -1
  281. package/dist/util/builder.d.ts +0 -1
  282. package/dist/util/catalogMeta.d.ts +0 -1
  283. package/dist/util/checkedCliDiagnostics.d.ts +11 -0
  284. package/dist/util/checkedCliDiagnostics.js +22 -0
  285. package/dist/util/cli.d.ts +0 -1
  286. package/dist/util/errors.d.ts +0 -1
  287. package/dist/util/imports.d.ts +0 -1
  288. package/dist/util/runtimeSource.d.ts +0 -1
  289. package/dist/util/runtimeSource.js +3 -5
  290. package/dist/util/securityConfig.d.ts +0 -1
  291. package/dist/util/streamConfig.d.ts +0 -1
  292. package/dist/util/tools.d.ts +0 -1
  293. package/dist/util/xmlWhitespace.d.ts +2 -0
  294. package/dist/util/xmlWhitespace.js +4 -0
  295. package/dist/xsd/primitives.d.ts +0 -1
  296. package/docs/agent-skill.md +2 -0
  297. package/docs/api-reference.md +1 -1
  298. package/docs/checked-gateway.md +210 -0
  299. package/docs/checked-generation.md +161 -0
  300. package/docs/cli-reference.md +43 -1
  301. package/docs/concepts.md +136 -1
  302. package/docs/configuration.md +5 -1
  303. package/docs/corpus.md +33 -0
  304. package/docs/direct-values.md +311 -0
  305. package/docs/examples/checked-forecast.wsdl +19 -0
  306. package/docs/gateway-guide.md +1 -1
  307. package/docs/generated-code.md +10 -5
  308. package/docs/mapping-contract.md +114 -0
  309. package/docs/migration-playbook.md +1 -1
  310. package/docs/output-anatomy.md +1 -1
  311. package/docs/start-here.md +8 -2
  312. package/docs/supported-patterns.md +17 -5
  313. package/docs/testing.md +117 -31
  314. package/llms.txt +7 -7
  315. package/package.json +79 -25
  316. package/src/generation/preambles/direct-client/typescript.preamble +3 -0
  317. package/src/runtime/checkedGatewayHost.tpl.txt +157 -0
  318. package/src/runtime/streamXml.ts +1 -1
  319. package/dist/app/generateApp.d.ts.map +0 -1
  320. package/dist/cli.d.ts.map +0 -1
  321. package/dist/client/generateClient.d.ts.map +0 -1
  322. package/dist/client/generateOperations.d.ts.map +0 -1
  323. package/dist/client/generateTypes.d.ts.map +0 -1
  324. package/dist/client/generateUtils.d.ts.map +0 -1
  325. package/dist/compiler/generateCatalog.d.ts.map +0 -1
  326. package/dist/compiler/schemaCompiler.d.ts.map +0 -1
  327. package/dist/compiler/shapeResolver.d.ts.map +0 -1
  328. package/dist/config.d.ts.map +0 -1
  329. package/dist/gateway/generateGateway.d.ts.map +0 -1
  330. package/dist/gateway/generators.d.ts.map +0 -1
  331. package/dist/gateway/helpers.d.ts.map +0 -1
  332. package/dist/generation/preamble.d.ts.map +0 -1
  333. package/dist/generation/writeGeneratedSource.d.ts.map +0 -1
  334. package/dist/index.d.ts.map +0 -1
  335. package/dist/loader/fetch.d.ts.map +0 -1
  336. package/dist/loader/wsdlLoader.d.ts.map +0 -1
  337. package/dist/openapi/casing.d.ts.map +0 -1
  338. package/dist/openapi/generateOpenAPI.d.ts.map +0 -1
  339. package/dist/openapi/generatePaths.d.ts.map +0 -1
  340. package/dist/openapi/generateSchemas.d.ts.map +0 -1
  341. package/dist/openapi/security.d.ts.map +0 -1
  342. package/dist/pipeline.d.ts.map +0 -1
  343. package/dist/runtime/jsonArray.d.ts +0 -24
  344. package/dist/runtime/jsonArray.d.ts.map +0 -1
  345. package/dist/runtime/jsonArray.js +0 -52
  346. package/dist/runtime/ndjson.d.ts +0 -24
  347. package/dist/runtime/ndjson.d.ts.map +0 -1
  348. package/dist/runtime/ndjson.js +0 -30
  349. package/dist/runtime/streamXml.d.ts +0 -45
  350. package/dist/runtime/streamXml.d.ts.map +0 -1
  351. package/dist/runtime/streamXml.js +0 -212
  352. package/dist/test/generateTests.d.ts.map +0 -1
  353. package/dist/test/generators.d.ts.map +0 -1
  354. package/dist/test/mockData.d.ts.map +0 -1
  355. package/dist/util/attributeWildcards.d.ts.map +0 -1
  356. package/dist/util/builder.d.ts.map +0 -1
  357. package/dist/util/catalogMeta.d.ts.map +0 -1
  358. package/dist/util/cli.d.ts.map +0 -1
  359. package/dist/util/errors.d.ts.map +0 -1
  360. package/dist/util/imports.d.ts.map +0 -1
  361. package/dist/util/runtimeSource.d.ts.map +0 -1
  362. package/dist/util/securityConfig.d.ts.map +0 -1
  363. package/dist/util/streamConfig.d.ts.map +0 -1
  364. package/dist/util/tools.d.ts.map +0 -1
  365. package/dist/xsd/primitives.d.ts.map +0 -1
  366. package/docs/AGENTS.md +0 -47
  367. package/docs/README.md +0 -56
  368. package/docs/architecture.md +0 -149
  369. package/docs/decisions/001-test-generation.md +0 -36
  370. package/docs/decisions/002-streamable-responses.md +0 -330
  371. package/docs/file-naming-and-path-organization.md +0 -213
  372. package/docs/releases/README.md +0 -94
  373. package/docs/releases/v0.20.0.md +0 -22
  374. package/docs/releases/v0.21.0.md +0 -30
  375. package/docs/releases/v0.22.0.md +0 -30
  376. package/docs/releases/v0.23.0.md +0 -31
  377. package/docs/releases/v0.24.0.md +0 -38
  378. package/docs/releases/v0.25.0.md +0 -31
  379. package/docs/releases/v0.25.2.md +0 -32
  380. package/docs/releases/v0.26.0.md +0 -32
  381. package/docs/releases/v0.27.0.md +0 -31
  382. package/docs/releases/v0.28.0.md +0 -32
  383. package/docs/releases/v0.29.0.md +0 -32
  384. package/docs/releases/v0.30.0.md +0 -30
  385. package/docs/releases/v0.30.1.md +0 -31
  386. package/docs/releases/v0.30.2.md +0 -30
  387. package/docs/releases/v0.30.3.md +0 -33
  388. package/docs/releases/v0.31.0.md +0 -33
  389. package/docs/releases/v0.32.0.md +0 -33
  390. package/docs/releases/v0.33.0.md +0 -34
  391. package/docs/releases/v0.34.0.md +0 -30
  392. package/docs/releases/v0.35.0.md +0 -33
  393. package/docs/releases/v0.36.0.md +0 -32
  394. package/docs/releases/v0.37.0.md +0 -33
  395. package/docs/releases/v0.38.0.md +0 -35
  396. package/docs/releases/v0.39.0.md +0 -35
  397. package/docs/releases/v0.40.0.md +0 -45
  398. package/docs/releases/v0.40.1.md +0 -34
  399. package/docs/releases/v1.0.0.md +0 -42
  400. package/docs/releases/v1.0.1.md +0 -38
  401. package/docs/releases/v1.0.2.md +0 -51
  402. package/docs/releases/v1.0.3.md +0 -37
  403. package/docs/releases/v1.0.4.md +0 -45
  404. package/docs/releases/v1.0.5.md +0 -41
  405. package/docs/releases/v1.0.6.md +0 -35
  406. package/docs/releases/v1.0.7.md +0 -36
  407. package/docs/releases/v1.1.0.md +0 -42
  408. package/docs/releases/v1.1.1.md +0 -44
  409. package/docs/releases/v1.1.2.md +0 -42
  410. package/docs/releases/v1.1.3.md +0 -36
  411. package/docs/releases/v1.1.4.md +0 -36
  412. package/docs/roadmap/README.md +0 -107
  413. package/docs/roadmap/v1.0-capability-conformance-framework.md +0 -582
  414. package/docs/roadmap/v1.0-choice-union-mode.md +0 -90
  415. package/docs/roadmap/v1.0-contract-audit.md +0 -75
  416. package/docs/roadmap/v1.0-json-array-streaming.md +0 -101
  417. package/docs/roadmap/v1.0-openapi-fastify-compatibility.md +0 -99
  418. package/docs/roadmap/v1.0-release-candidate-gates.md +0 -92
  419. package/docs/roadmap/v1.0-wsdl-coverage-matrix.md +0 -200
  420. package/docs/roadmap/v1.0-xs-anyattribute-wildcard-bag.md +0 -932
  421. package/src/runtime/jsonArray.ts +0 -55
  422. package/src/runtime/ndjson.ts +0 -32
@@ -0,0 +1,310 @@
1
+ import { readParticleWildcard } from './schemaParticleWildcardProperties.js';
2
+ import { semanticContextGraphMetadata } from './semanticContext.js';
3
+ import { assertParticleContentView, particleContentNode } from './complexTypeContent.js';
4
+ import { analyzeOccurrences, occurrenceAlgebra } from './occurrenceAnalysis.js';
5
+ import { effectiveSubstitutionMembers } from './schemaTypeRelations.js';
6
+ import { SemanticError } from './resolveCanonicalGraph.js';
7
+ import { collectSemanticTypeDependencies } from './semanticTypeDependencies.js';
8
+ const authority = new WeakMap();
9
+ const cache = new WeakMap();
10
+ const ONE = Object.freeze({ min: '1', max: '1' });
11
+ const EMPTY = Object.freeze([]);
12
+ class Incomplete extends Error {
13
+ result;
14
+ constructor(result) {
15
+ super(result.kind);
16
+ this.result = result;
17
+ }
18
+ }
19
+ export function assertSemanticParticleView(context, view) {
20
+ const owner = authority.get(view);
21
+ if (!owner || owner !== context)
22
+ throw new TypeError('Unauthenticated or foreign semantic particle view');
23
+ assertParticleContentView(context, view.content);
24
+ }
25
+ export function prepareSemanticParticleView(context, content, purpose) {
26
+ assertParticleContentView(context, content);
27
+ const budget = context.budget, charge = (n = 1) => budget.chargeWork(n);
28
+ return budget.guard(() => {
29
+ const fail = (component, message) => {
30
+ charge(10 + component.length + message.length);
31
+ throw new Incomplete(Object.freeze({ kind: 'unresolved', rule: 'particle-view', component, message }));
32
+ };
33
+ try {
34
+ charge(16);
35
+ if (purpose !== 'declared' && purpose !== 'restriction')
36
+ return fail(content.type, 'Unknown particle view purpose');
37
+ let entries = cache.get(content);
38
+ if (!entries) {
39
+ charge(2);
40
+ entries = new Map();
41
+ cache.set(content, entries);
42
+ }
43
+ const prior = entries.get(purpose);
44
+ if (prior) {
45
+ charge(3);
46
+ return Object.freeze({ kind: 'checked', view: prior });
47
+ }
48
+ if (content.content.kind === 'simple' || content.content.kind === 'opaque-builtin')
49
+ return fail(content.type, 'Particle view requires empty or particle content');
50
+ const typeDependencies = collectSemanticTypeDependencies(context);
51
+ const memo = new Map(), active = new Set();
52
+ const algebra = occurrenceAlgebra(charge);
53
+ let serial = 0;
54
+ const get = (id) => particleContentNode(context, content, id) ?? fail(id, 'Missing semantic view component');
55
+ const target = (reference, owner) => {
56
+ const found = context.resolve(reference);
57
+ return found.kind === 'found' ? found.node : fail(owner, 'Particle target unavailable');
58
+ };
59
+ const shape = (source, kind, occurs, children, origins = [source]) => {
60
+ budget.reserveNodes(1);
61
+ charge(20 + source.length + content.contextId.length + purpose.length);
62
+ const id = `${content.contextId}/${purpose}/${++serial}/${source}`;
63
+ charge(3);
64
+ return { id, source, kind, occurs, children, orderBlocks: children.length ? [{ kind: 'explicit', children }] : EMPTY,
65
+ origins, urTypeWildcard: false, orderUnspecified: false };
66
+ };
67
+ const frame = (id) => {
68
+ const node = get(id);
69
+ if (node.kind !== 'particle')
70
+ return fail(id, 'Particle child must be a particle');
71
+ algebra.validate(node.occurs);
72
+ let term = node;
73
+ if (node.term.kind === 'group') {
74
+ const group = target(node.term.reference, id);
75
+ if (group.kind !== 'group')
76
+ return fail(id, 'Group use must reference a model group');
77
+ const groupTerm = get(group.content);
78
+ if (groupTerm.kind !== 'particle' || !('children' in groupTerm.term))
79
+ return fail(id, 'Model-group definition requires a compositor');
80
+ if (groupTerm.occurs.min !== '1' || groupTerm.occurs.max !== '1')
81
+ return fail(id, 'Named model-group compositor must have occurrence 1..1');
82
+ term = groupTerm;
83
+ }
84
+ charge(7);
85
+ return { node, term, children: 'children' in term.term
86
+ ? context.originalCompositorChildren(term.id) ?? term.term.children : EMPTY, index: 0 };
87
+ };
88
+ const build = (f) => {
89
+ const { node, term } = f;
90
+ if (node.occurs.max === '0')
91
+ return undefined;
92
+ if (term.term.kind === 'group')
93
+ return fail(node.id, 'Unexpanded group reference');
94
+ charge(2 + f.children.length);
95
+ const children = [];
96
+ for (const id of f.children) {
97
+ charge(2 + id.length);
98
+ const child = memo.get(id);
99
+ if (child)
100
+ children.push(child);
101
+ }
102
+ let p = shape(node.id, term.term.kind, node.occurs, children, node.id === term.id ? [node.id] : [node.id, term.id]);
103
+ const original = context.lookup(node.id);
104
+ charge(1 + content.synthetic.length);
105
+ if (original.kind === 'found' && original.node === node && original.node.kind === 'particle'
106
+ || content.synthetic.includes(node.id))
107
+ p.originalParticle = node.id;
108
+ if (term.term.kind === 'element') {
109
+ const selected = context.resolve(term.term.declaration);
110
+ if (selected.kind === 'standard-element') {
111
+ p.standardElement = selected.declaration;
112
+ return p;
113
+ }
114
+ const declaration = selected.kind === 'found' ? selected.node : fail(node.id, 'Element target unavailable');
115
+ if (declaration.kind !== 'element')
116
+ return fail(node.id, 'Element particle requires an element declaration');
117
+ p.element = declaration;
118
+ if (purpose === 'restriction' && declaration.identity.kind === 'global') {
119
+ if (context.membership !== 'complete-actual-plus-additions')
120
+ return fail(node.id, 'Complete substitution universe required');
121
+ const members = effectiveSubstitutionMembers(context, declaration.id);
122
+ if (members.kind !== 'checked')
123
+ throw new Incomplete(members);
124
+ typeDependencies.add(members.typeDependencies);
125
+ charge(1 + members.value.length);
126
+ if (members.value.some(id => id !== declaration.id)) {
127
+ charge(2);
128
+ const virtual = [];
129
+ for (const id of members.value) {
130
+ const member = get(id);
131
+ if (member.kind !== 'element')
132
+ return fail(id, 'Substitution member is not an element');
133
+ const leaf = shape(node.id, 'element', ONE, EMPTY);
134
+ leaf.element = member;
135
+ charge();
136
+ virtual.push(leaf);
137
+ }
138
+ p.kind = 'choice';
139
+ p.children = virtual;
140
+ p.element = undefined;
141
+ p.orderUnspecified = true;
142
+ charge(4);
143
+ p.orderBlocks = [{ kind: 'implicit', particle: node.id, head: declaration.id, children: virtual }];
144
+ }
145
+ }
146
+ }
147
+ else if (term.term.kind === 'any') {
148
+ p.wildcard = readParticleWildcard(context, term);
149
+ p.urTypeWildcard = content.urTypeWildcards.includes(term.id);
150
+ }
151
+ if (purpose !== 'restriction' || !('children' in term.term))
152
+ return p;
153
+ if (!children.length && (p.kind !== 'choice' || p.occurs.min === '0'))
154
+ return undefined;
155
+ charge(3);
156
+ const flattened = [], blocks = [];
157
+ for (const child of children) {
158
+ charge(4);
159
+ if (child.kind === p.kind && p.kind !== 'all' && child.occurs.min === '1' && child.occurs.max === '1') {
160
+ charge(child.children.length + child.orderBlocks.length);
161
+ flattened.push(...child.children);
162
+ blocks.push(...child.orderBlocks);
163
+ p.orderUnspecified ||= child.orderUnspecified;
164
+ }
165
+ else {
166
+ charge(4);
167
+ flattened.push(child);
168
+ blocks.push({ kind: 'explicit', children: [child] });
169
+ }
170
+ }
171
+ p.children = flattened;
172
+ p.orderBlocks = blocks;
173
+ // Flattening unit choices can remove the last comparison member.
174
+ if (!flattened.length && (p.kind !== 'choice' || p.occurs.min === '0'))
175
+ return undefined;
176
+ if (flattened.length === 1 && (p.kind === 'all' || p.occurs.min === '1' && p.occurs.max === '1')) {
177
+ const child = flattened[0];
178
+ charge(4 + p.origins.length + child.origins.length);
179
+ p = { ...child, id: p.id, originalParticle: p.originalParticle, occurs: p.kind === 'all' ? Object.freeze(algebra.product(p.occurs, child.occurs)) : child.occurs,
180
+ origins: Object.freeze([...p.origins, ...child.origins]) };
181
+ }
182
+ return p;
183
+ };
184
+ let root;
185
+ if ('particle' in content.content) {
186
+ charge(3);
187
+ const stack = [frame(content.content.particle)];
188
+ active.add(content.content.particle);
189
+ while (stack.length) {
190
+ charge(4);
191
+ const top = stack[stack.length - 1];
192
+ if (top.index < top.children.length) {
193
+ const id = top.children[top.index++];
194
+ charge(2 + id.length);
195
+ if (active.has(id))
196
+ return fail(id, 'Particle containment cycle');
197
+ if (!memo.has(id)) {
198
+ charge(2);
199
+ active.add(id);
200
+ stack.push(frame(id));
201
+ }
202
+ continue;
203
+ }
204
+ const value = build(top);
205
+ charge(3);
206
+ memo.set(top.node.id, value);
207
+ active.delete(top.node.id);
208
+ stack.pop();
209
+ }
210
+ root = memo.get(content.content.particle);
211
+ }
212
+ root ??= shape(content.type, 'sequence', ONE, EMPTY);
213
+ // Only the semantic particle view is analyzed. Declared source records
214
+ // remain immutable outside this nonpersistent graph projection.
215
+ charge(5);
216
+ const shapes = new Map(), pending = [root];
217
+ while (pending.length) {
218
+ charge(3);
219
+ const item = pending.pop();
220
+ if (shapes.has(item.id))
221
+ continue;
222
+ shapes.set(item.id, item);
223
+ charge(item.children.length);
224
+ pending.push(...item.children);
225
+ }
226
+ charge(3 + shapes.size * 2);
227
+ const nodes = [], declarations = new Map();
228
+ const standardElements = new Map();
229
+ for (const p of shapes.values())
230
+ if (p.element) {
231
+ charge(2 + p.element.id.length);
232
+ declarations.set(p.element.id, p.element);
233
+ }
234
+ for (const p of shapes.values())
235
+ if (p.standardElement) {
236
+ charge(2 + p.standardElement.id.length);
237
+ standardElements.set(p.standardElement.id, p.standardElement);
238
+ }
239
+ charge(declarations.size);
240
+ nodes.push(...declarations.values());
241
+ let wildcardRealization;
242
+ for (const p of shapes.values()) {
243
+ const original = get(p.source);
244
+ charge(20 + p.children.length);
245
+ const term = p.kind === 'element' ? Object.freeze({ kind: 'element', declaration: p.standardElement
246
+ ? original.kind === 'particle' && original.term.kind === 'element' ? original.term.declaration : fail(p.source, 'Standard element source unavailable')
247
+ : Object.freeze({ kind: 'local', target: p.element.id }) })
248
+ : p.kind === 'any' ? Object.freeze({ kind: 'any', wildcard: Object.freeze({ namespace: p.wildcard.lexical,
249
+ processContents: p.wildcard.processContents }) })
250
+ : Object.freeze({ kind: p.kind, children: Object.freeze(p.children.map(child => child.id)) });
251
+ if (p.wildcard?.namespace.kind === 'set' && !p.wildcard.namespace.namespaces.length) {
252
+ if (!wildcardRealization) {
253
+ charge(3);
254
+ wildcardRealization = new Map();
255
+ }
256
+ charge(3 + p.id.length);
257
+ wildcardRealization.set(p.id, false);
258
+ }
259
+ nodes.push(Object.freeze({ ...original, id: p.id, kind: 'particle', occurs: p.occurs, term }));
260
+ }
261
+ charge(18);
262
+ const graph = Object.freeze({ ...semanticContextGraphMetadata(context), nodes: Object.freeze(nodes), globals: EMPTY });
263
+ const composed = Object.freeze({ resolved: Object.freeze({ graph, links: EMPTY, metrics: Object.freeze({ steps: 0 }) }), types: EMPTY, metrics: Object.freeze({ steps: 0 }) });
264
+ const analysis = analyzeOccurrences(composed, { maxNodes: Number.MAX_SAFE_INTEGER, maxSteps: Number.MAX_SAFE_INTEGER }, { budget, wildcardRealization, standardElements });
265
+ if (analysis.kind === 'resource-limit')
266
+ return analysis;
267
+ if (analysis.kind === 'failure')
268
+ return fail(analysis.diagnostic.component ?? content.type, analysis.diagnostic.message);
269
+ charge(4 + analysis.analysis.particles.length * 2);
270
+ const summaries = new Map(analysis.analysis.particles.map(row => [row.id, row]));
271
+ const completed = new Map();
272
+ charge(2);
273
+ const stack = [{ p: root, done: false }];
274
+ while (stack.length) {
275
+ charge(3);
276
+ const current = stack.pop(), p = current.p;
277
+ if (completed.has(p.id))
278
+ continue;
279
+ if (!current.done) {
280
+ charge(2 + p.children.length * 2);
281
+ stack.push({ p, done: true });
282
+ for (const child of p.children)
283
+ stack.push({ p: child, done: false });
284
+ continue;
285
+ }
286
+ charge(16 + p.children.length + p.origins.length + p.orderBlocks.length);
287
+ const orderBlocks = p.orderBlocks.map(block => {
288
+ charge(5 + block.children.length);
289
+ return Object.freeze({ ...block, children: Object.freeze(block.children.map(child => completed.get(child.id))) });
290
+ });
291
+ completed.set(p.id, Object.freeze({ ...p, origins: Object.freeze([...p.origins]), children: Object.freeze(p.children.map(child => completed.get(child.id))),
292
+ orderBlocks: Object.freeze(orderBlocks), summary: summaries.get(p.id) }));
293
+ }
294
+ charge(8);
295
+ const view = Object.freeze({ contextId: context.contextId, content, purpose, root: completed.get(root.id), typeDependencies: typeDependencies.snapshot() });
296
+ authority.set(view, context);
297
+ entries.set(purpose, view);
298
+ return Object.freeze({ kind: 'checked', view });
299
+ }
300
+ catch (error) {
301
+ if (error instanceof Incomplete)
302
+ return error.result;
303
+ if (error instanceof SemanticError) {
304
+ budget.chargeWork(10 + error.message.length);
305
+ return Object.freeze({ kind: 'invalid-input', rule: 'particle-view', component: error.component, message: error.message });
306
+ }
307
+ throw error;
308
+ }
309
+ });
310
+ }
@@ -0,0 +1,87 @@
1
+ import type { SemanticContext } from './semanticContext.js';
2
+ import type { ResourceLimitFailure } from './semanticBudget.js';
3
+ export type Occurs = Readonly<{
4
+ min: string;
5
+ max: string;
6
+ }>;
7
+ export type Origin = Readonly<{
8
+ id: string;
9
+ context: {
10
+ source: Readonly<{
11
+ path: string;
12
+ }>;
13
+ };
14
+ }>;
15
+ export type NamespaceConstraint = Readonly<{
16
+ kind: "set" | "not";
17
+ namespaces: readonly string[];
18
+ }>;
19
+ export type WildcardOperand = Readonly<{
20
+ constraint: NamespaceConstraint;
21
+ processContents: "skip" | "lax" | "strict";
22
+ /** Original lexical/effective namespace context survives decoded constraints. */
23
+ lexical: Readonly<{
24
+ value: string;
25
+ effectiveNamespace: string;
26
+ }>;
27
+ }>;
28
+ export type DecisionParticle = Readonly<{
29
+ owner: Origin;
30
+ kind: "sequence" | "choice" | "all" | "element" | "any";
31
+ occurs: Occurs;
32
+ /** Supplied by #178; this experiment never calculates an effective range. */
33
+ total: Occurs;
34
+ members: readonly DecisionParticle[];
35
+ namespace?: string;
36
+ wildcard?: WildcardOperand;
37
+ }>;
38
+ export type Interpretation = "literal2004" | "proposed2232";
39
+ export type Callbacks = Readonly<{
40
+ arithmetic: (charge: (count?: number) => void) => {
41
+ validate(range: Occurs): void;
42
+ compare(a: string, b: string): number;
43
+ };
44
+ namespaces: (derived: DecisionParticle, base: DecisionParticle, charge: (count?: number) => void) => boolean;
45
+ }>;
46
+ export type Failure = Readonly<{
47
+ category: "invalid-schema" | "resource-limit";
48
+ message: string;
49
+ component: string;
50
+ source: Origin["context"]["source"];
51
+ }>;
52
+ export type PredicateResult = Readonly<{
53
+ kind: "answer";
54
+ validRestriction: boolean;
55
+ steps: number;
56
+ } | {
57
+ kind: "failure";
58
+ diagnostic: Failure;
59
+ steps: number;
60
+ }>;
61
+ export declare class ParticleWildcardInputError extends Error {
62
+ readonly owner: Origin;
63
+ constructor(message: string, owner: Origin);
64
+ }
65
+ /** Shared control flow. Callbacks exist only for pinned historical research comparisons. */
66
+ export declare function evaluateGroupWildcard(root: DecisionParticle, base: DecisionParticle, interpretation: Interpretation, callbacks: Callbacks, charge: (count?: number) => void, baseIsUrTypeWildcard?: boolean, currentOwner?: (owner: Origin) => void): boolean;
67
+ /** Internal concrete adapter for an authenticated semantic-view owner. */
68
+ export declare function evaluatePreparedGroupWildcard(root: DecisionParticle, base: DecisionParticle, charge: (count?: number) => void, urTypeWildcard?: boolean): boolean;
69
+ export declare const PW_RELATION_REQUIREMENTS: readonly ["restriction-normalized-view", "view-total-ranges-from-178", "source-local-particle-legality", "upa-edc", "enclosing-derivation"];
70
+ export type QualifiedWildcardResult = Readonly<{
71
+ kind: 'conditional-relation';
72
+ contextId: string;
73
+ ruleVersion: 'PW-R-240-v1';
74
+ validRestriction: boolean;
75
+ requirements: typeof PW_RELATION_REQUIREMENTS;
76
+ }> | Readonly<{
77
+ kind: 'input-error';
78
+ component: string;
79
+ message: string;
80
+ }> | ResourceLimitFailure;
81
+ /**
82
+ * Fixed semantic owners and one caller budget. This function checks the named
83
+ * relation over supplied normalized operands, not their normalization or schema.
84
+ * The actual ur-type identity exception requires a future authenticated operand
85
+ * adapter and is deliberately not inferred from ##any or lax spelling here.
86
+ */
87
+ export declare function restrictParticleToWildcard(context: SemanticContext, root: DecisionParticle, base: DecisionParticle): QualifiedWildcardResult;
@@ -0,0 +1,143 @@
1
+ /** Shared local PW R-240 relation; normalized-view qualifications remain explicit. */
2
+ import { occurrenceAlgebra } from './occurrenceAnalysis.js';
3
+ import { namespaceAllows, namespaceSubset, processContentsRestricts } from './wildcardAlgebra.js';
4
+ import { assertSemanticContext } from './semanticContext.js';
5
+ export class ParticleWildcardInputError extends Error {
6
+ owner;
7
+ constructor(message, owner) {
8
+ super(message);
9
+ this.owner = owner;
10
+ }
11
+ }
12
+ /** Shared control flow. Callbacks exist only for pinned historical research comparisons. */
13
+ export function evaluateGroupWildcard(root, base, interpretation, callbacks, charge, baseIsUrTypeWildcard = false, currentOwner) {
14
+ let current = base.owner;
15
+ currentOwner?.(current);
16
+ const algebra = callbacks.arithmetic(charge);
17
+ const within = (actual, min) => algebra.compare(actual.min, min) >= 0 && algebra.compare(actual.max, base.occurs.max) <= 0;
18
+ try {
19
+ if (base.kind !== 'any' || !base.wildcard)
20
+ throw new ParticleWildcardInputError('PW01 requires an original wildcard particle', current);
21
+ algebra.validate(base.occurs);
22
+ charge(2);
23
+ const memo = new Map();
24
+ const active = new Set();
25
+ charge(2);
26
+ const stack = [{ particle: root, min: base.occurs.min, index: 0, entered: false, valid: true }];
27
+ active.add(root);
28
+ while (stack.length) {
29
+ const frame = stack[stack.length - 1], p = frame.particle;
30
+ current = p.owner;
31
+ currentOwner?.(current);
32
+ charge();
33
+ if (!frame.entered) {
34
+ frame.entered = true;
35
+ algebra.validate(p.occurs);
36
+ algebra.validate(p.total);
37
+ frame.valid = within(p.kind === 'element' || p.kind === 'any' ? p.occurs : p.total, frame.min);
38
+ if (p.kind === 'any' && !p.wildcard)
39
+ throw new ParticleWildcardInputError('Missing wildcard operand', current);
40
+ if (p.kind === 'element' || p.kind === 'any')
41
+ frame.valid &&= callbacks.namespaces(p, base, charge);
42
+ if (p.kind === 'any')
43
+ frame.valid &&= baseIsUrTypeWildcard || processContentsRestricts(p.wildcard.processContents, base.wildcard.processContents, charge);
44
+ }
45
+ if (frame.valid && p.kind !== 'element' && p.kind !== 'any' && frame.index < p.members.length) {
46
+ const child = p.members[frame.index], min = interpretation === 'proposed2232' ? '0' : frame.min;
47
+ charge();
48
+ const known = memo.get(child)?.get(min);
49
+ if (known !== undefined) {
50
+ frame.valid &&= known;
51
+ frame.index++;
52
+ }
53
+ else {
54
+ charge();
55
+ if (active.has(child))
56
+ throw new ParticleWildcardInputError('Forbidden normalized particle cycle', child.owner);
57
+ charge(2);
58
+ active.add(child);
59
+ stack.push({ particle: child, min, index: 0, entered: false, valid: true });
60
+ }
61
+ continue;
62
+ }
63
+ charge();
64
+ let values = memo.get(p);
65
+ if (!values) {
66
+ charge();
67
+ values = new Map();
68
+ memo.set(p, values);
69
+ }
70
+ charge(2);
71
+ values.set(frame.min, frame.valid);
72
+ active.delete(p);
73
+ stack.pop();
74
+ if (!stack.length)
75
+ return frame.valid;
76
+ }
77
+ throw new Error('Missing PW01 predicate result');
78
+ }
79
+ catch (error) {
80
+ if (error instanceof Error && 'category' in error && error.category === 'invalid-schema')
81
+ throw new ParticleWildcardInputError(error.message, current);
82
+ throw error;
83
+ }
84
+ }
85
+ const concreteCallbacks = Object.freeze({
86
+ arithmetic: (charge) => occurrenceAlgebra(charge),
87
+ namespaces: (derived, base, charge) => {
88
+ const constraint = base.wildcard.constraint;
89
+ return derived.kind === 'element' ? namespaceAllows(constraint, derived.namespace ?? '', charge)
90
+ : namespaceSubset(derived.wildcard.constraint, constraint, charge);
91
+ },
92
+ });
93
+ /** Internal concrete adapter for an authenticated semantic-view owner. */
94
+ export function evaluatePreparedGroupWildcard(root, base, charge, urTypeWildcard = false) {
95
+ return evaluateGroupWildcard(root, base, 'proposed2232', concreteCallbacks, charge, urTypeWildcard);
96
+ }
97
+ export const PW_RELATION_REQUIREMENTS = Object.freeze([
98
+ 'restriction-normalized-view', 'view-total-ranges-from-178',
99
+ 'source-local-particle-legality', 'upa-edc', 'enclosing-derivation',
100
+ ]);
101
+ /**
102
+ * Fixed semantic owners and one caller budget. This function checks the named
103
+ * relation over supplied normalized operands, not their normalization or schema.
104
+ * The actual ur-type identity exception requires a future authenticated operand
105
+ * adapter and is deliberately not inferred from ##any or lax spelling here.
106
+ */
107
+ export function restrictParticleToWildcard(context, root, base) {
108
+ assertSemanticContext(context);
109
+ const budget = context.budget;
110
+ return budget.guard(() => {
111
+ const input = budget.freeze(budget.snapshot({ root, base }));
112
+ budget.chargeWork(3);
113
+ const seen = new Set(), stack = [input.root, input.base];
114
+ while (stack.length) {
115
+ budget.chargeWork(2);
116
+ const particle = stack.pop();
117
+ if (seen.has(particle))
118
+ continue;
119
+ budget.chargeWork();
120
+ seen.add(particle);
121
+ const result = context.lookup(particle.owner.id);
122
+ if (result.kind !== 'found' || result.node.kind !== 'particle') {
123
+ budget.chargeWork(5);
124
+ return Object.freeze({ kind: 'input-error', component: particle.owner.id, message: 'Normalized operand requires an active original particle owner' });
125
+ }
126
+ for (const child of particle.members) {
127
+ budget.chargeWork();
128
+ stack.push(child);
129
+ }
130
+ }
131
+ try {
132
+ const validRestriction = evaluateGroupWildcard(input.root, input.base, 'proposed2232', concreteCallbacks, budget.chargeWork);
133
+ budget.chargeWork(8);
134
+ return Object.freeze({ kind: 'conditional-relation', contextId: context.contextId, ruleVersion: 'PW-R-240-v1', validRestriction, requirements: PW_RELATION_REQUIREMENTS });
135
+ }
136
+ catch (error) {
137
+ if (!(error instanceof ParticleWildcardInputError))
138
+ throw error;
139
+ budget.chargeWork(5 + error.message.length);
140
+ return Object.freeze({ kind: 'input-error', component: error.owner.id, message: error.message });
141
+ }
142
+ });
143
+ }
@@ -0,0 +1,32 @@
1
+ import type { SemanticContext } from './semanticContext.js';
2
+ import type { AttributeNode, ElementNode } from './canonicalGraph.js';
3
+ import type { DatatypeOperand } from './datatypeValues.js';
4
+ import type { ExpandedName } from '../loader/orderedSyntax.js';
5
+ import type { ResourceLimitFailure } from './semanticBudget.js';
6
+ import type { DatatypeLexicalOperand } from './schemaValueContext.js';
7
+ type Declaration = AttributeNode | ElementNode;
8
+ export type ProjectionScalarFailure = Readonly<{
9
+ kind: 'unavailable' | 'scalar-invalid';
10
+ rule: string;
11
+ }>;
12
+ export interface ProjectionScalarList {
13
+ readonly builtin: ExpandedName;
14
+ readonly whitespace: 'preserve' | 'replace' | 'collapse';
15
+ readonly retainLexical?: true;
16
+ }
17
+ export type ProjectionScalarDescription = Readonly<{
18
+ kind: 'projection-scalar-type';
19
+ builtin: ExpandedName;
20
+ retainLexical?: true;
21
+ list?: ProjectionScalarList;
22
+ }>;
23
+ type DescriptionResult = ProjectionScalarDescription | ProjectionScalarFailure | ResourceLimitFailure;
24
+ type OperandResult = Readonly<{
25
+ kind: 'projection-scalar-operand';
26
+ operand: DatatypeOperand;
27
+ }> | ProjectionScalarFailure | ResourceLimitFailure;
28
+ /** Native declaration lookup and source-type formation precede any payload calculation. */
29
+ export declare function describeProjectionScalar(context: SemanticContext, declaration: Declaration, check?: () => void): DescriptionResult;
30
+ /** A successful calculation is payload-only data; it grants no schema, operation or portable artifact authority. */
31
+ export declare function assessProjectionScalarOperand(context: SemanticContext, declaration: Declaration, lexical: DatatypeLexicalOperand, check?: () => void): OperandResult;
32
+ export {};