@cratis/screenplay-language 4.124.0 → 4.125.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 (396) hide show
  1. package/README.md +50 -0
  2. package/dist/bundles/TypeReferenceSymbol.js +2 -0
  3. package/dist/bundles/TypeReferenceSymbol.js.map +1 -0
  4. package/dist/bundles/_virtual/_virtual/_rolldown/runtime.js +1 -0
  5. package/dist/bundles/bmp-word-characters.js +2 -0
  6. package/dist/bundles/bmp-word-characters.js.map +1 -0
  7. package/dist/bundles/case-authoring.js +3 -0
  8. package/dist/bundles/case-authoring.js.map +1 -0
  9. package/dist/bundles/code-actions.js +2 -0
  10. package/dist/bundles/code-actions.js.map +1 -0
  11. package/dist/bundles/compiler/Authoring/QuickFixes.js +5 -0
  12. package/dist/bundles/compiler/Authoring/QuickFixes.js.map +1 -0
  13. package/dist/bundles/compiler/Dependencies/DeclaredDependencies.js +2 -0
  14. package/dist/bundles/compiler/Dependencies/DeclaredDependencies.js.map +1 -0
  15. package/dist/bundles/compiler/Dependencies/DeclaredDependencyTargets.js +2 -0
  16. package/dist/bundles/compiler/Dependencies/DeclaredDependencyTargets.js.map +1 -0
  17. package/dist/bundles/compiler/Dependencies/DependencyGraph.js +2 -0
  18. package/dist/bundles/compiler/Dependencies/DependencyGraph.js.map +1 -0
  19. package/dist/bundles/compiler/Dependencies/DependencyKind.js +2 -0
  20. package/dist/bundles/compiler/Dependencies/DependencyKind.js.map +1 -0
  21. package/dist/bundles/compiler/Dependencies/InvalidDependencyQuery.js +2 -0
  22. package/dist/bundles/compiler/Dependencies/InvalidDependencyQuery.js.map +1 -0
  23. package/dist/bundles/compiler/Dependencies/SliceReferences.js +2 -0
  24. package/dist/bundles/compiler/Dependencies/SliceReferences.js.map +1 -0
  25. package/dist/bundles/compiler/Dependencies/StronglyConnectedGroups.js +2 -0
  26. package/dist/bundles/compiler/Dependencies/StronglyConnectedGroups.js.map +1 -0
  27. package/dist/bundles/compiler/Dependencies/index.js +1 -0
  28. package/dist/bundles/compiler/Diagnostics/DiagnosticCodes.js +2 -0
  29. package/dist/bundles/compiler/Diagnostics/DiagnosticCodes.js.map +1 -0
  30. package/dist/bundles/compiler/Diagnostics/ProductionDestinationDiagnostics.js +2 -0
  31. package/dist/bundles/compiler/Diagnostics/ProductionDestinationDiagnostics.js.map +1 -0
  32. package/dist/bundles/compiler/Diagnostics/SourceLocation.js +2 -0
  33. package/dist/bundles/compiler/Diagnostics/SourceLocation.js.map +1 -0
  34. package/dist/bundles/compiler/Files/AuthoredOrder.js +2 -0
  35. package/dist/bundles/compiler/Files/AuthoredOrder.js.map +1 -0
  36. package/dist/bundles/compiler/Files/OrderingRoot.js +1 -0
  37. package/dist/bundles/compiler/Files/PlayApplicationAssembly.js +2 -0
  38. package/dist/bundles/compiler/Files/PlayApplicationAssembly.js.map +1 -0
  39. package/dist/bundles/compiler/Files/PlayFolderMerge.js +2 -0
  40. package/dist/bundles/compiler/Files/PlayFolderMerge.js.map +1 -0
  41. package/dist/bundles/compiler/Files/PlayImports.js +1 -0
  42. package/dist/bundles/compiler/Files/PlayPlacement.js +2 -0
  43. package/dist/bundles/compiler/Files/PlayPlacement.js.map +1 -0
  44. package/dist/bundles/compiler/Files/TimelineOrder.js +2 -0
  45. package/dist/bundles/compiler/Files/TimelineOrder.js.map +1 -0
  46. package/dist/bundles/compiler/Parsing/AuthorizeParser.js +2 -0
  47. package/dist/bundles/compiler/Parsing/AuthorizeParser.js.map +1 -0
  48. package/dist/bundles/compiler/Parsing/CaptureParser.js +2 -0
  49. package/dist/bundles/compiler/Parsing/CaptureParser.js.map +1 -0
  50. package/dist/bundles/compiler/Parsing/CodeBlockParser.js +3 -0
  51. package/dist/bundles/compiler/Parsing/CodeBlockParser.js.map +1 -0
  52. package/dist/bundles/compiler/Parsing/CommandDestinationTypes.js +2 -0
  53. package/dist/bundles/compiler/Parsing/CommandDestinationTypes.js.map +1 -0
  54. package/dist/bundles/compiler/Parsing/CommandParser.js +2 -0
  55. package/dist/bundles/compiler/Parsing/CommandParser.js.map +1 -0
  56. package/dist/bundles/compiler/Parsing/CommandReadSources.js +2 -0
  57. package/dist/bundles/compiler/Parsing/CommandReadSources.js.map +1 -0
  58. package/dist/bundles/compiler/Parsing/CommandResponseParser.js +2 -0
  59. package/dist/bundles/compiler/Parsing/CommandResponseParser.js.map +1 -0
  60. package/dist/bundles/compiler/Parsing/CommandStreamCandidates.js +2 -0
  61. package/dist/bundles/compiler/Parsing/CommandStreamCandidates.js.map +1 -0
  62. package/dist/bundles/compiler/Parsing/CompositeStreamIdValidator.js +2 -0
  63. package/dist/bundles/compiler/Parsing/CompositeStreamIdValidator.js.map +1 -0
  64. package/dist/bundles/compiler/Parsing/CompositionParser.js +2 -0
  65. package/dist/bundles/compiler/Parsing/CompositionParser.js.map +1 -0
  66. package/dist/bundles/compiler/Parsing/ConceptComplianceParser.js +2 -0
  67. package/dist/bundles/compiler/Parsing/ConceptComplianceParser.js.map +1 -0
  68. package/dist/bundles/compiler/Parsing/ConditionParser.js +2 -0
  69. package/dist/bundles/compiler/Parsing/ConditionParser.js.map +1 -0
  70. package/dist/bundles/compiler/Parsing/ConstraintParser.js +2 -0
  71. package/dist/bundles/compiler/Parsing/ConstraintParser.js.map +1 -0
  72. package/dist/bundles/compiler/Parsing/ConstraintPropertyValidator.js +2 -0
  73. package/dist/bundles/compiler/Parsing/ConstraintPropertyValidator.js.map +1 -0
  74. package/dist/bundles/compiler/Parsing/DeclarationParsers.js +2 -0
  75. package/dist/bundles/compiler/Parsing/DeclarationParsers.js.map +1 -0
  76. package/dist/bundles/compiler/Parsing/DependencySourceParser.js +2 -0
  77. package/dist/bundles/compiler/Parsing/DependencySourceParser.js.map +1 -0
  78. package/dist/bundles/compiler/Parsing/DependsOnParser.js +2 -0
  79. package/dist/bundles/compiler/Parsing/DependsOnParser.js.map +1 -0
  80. package/dist/bundles/compiler/Parsing/DescriptionParser.js +2 -0
  81. package/dist/bundles/compiler/Parsing/DescriptionParser.js.map +1 -0
  82. package/dist/bundles/compiler/Parsing/DocumentationParser.js +2 -0
  83. package/dist/bundles/compiler/Parsing/DocumentationParser.js.map +1 -0
  84. package/dist/bundles/compiler/Parsing/EventMetadataParser.js +2 -0
  85. package/dist/bundles/compiler/Parsing/EventMetadataParser.js.map +1 -0
  86. package/dist/bundles/compiler/Parsing/EventSourceParser.js +2 -0
  87. package/dist/bundles/compiler/Parsing/EventSourceParser.js.map +1 -0
  88. package/dist/bundles/compiler/Parsing/EventSourceValidator.js +2 -0
  89. package/dist/bundles/compiler/Parsing/EventSourceValidator.js.map +1 -0
  90. package/dist/bundles/compiler/Parsing/EventSubjectValidator.js +2 -0
  91. package/dist/bundles/compiler/Parsing/EventSubjectValidator.js.map +1 -0
  92. package/dist/bundles/compiler/Parsing/ExpressionParser.js +2 -0
  93. package/dist/bundles/compiler/Parsing/ExpressionParser.js.map +1 -0
  94. package/dist/bundles/compiler/Parsing/FeatureBody.js +2 -0
  95. package/dist/bundles/compiler/Parsing/FeatureBody.js.map +1 -0
  96. package/dist/bundles/compiler/Parsing/FileImportParser.js +2 -0
  97. package/dist/bundles/compiler/Parsing/FileImportParser.js.map +1 -0
  98. package/dist/bundles/compiler/Parsing/FileReferences.js +2 -0
  99. package/dist/bundles/compiler/Parsing/FileReferences.js.map +1 -0
  100. package/dist/bundles/compiler/Parsing/GuardedActionParser.js +2 -0
  101. package/dist/bundles/compiler/Parsing/GuardedActionParser.js.map +1 -0
  102. package/dist/bundles/compiler/Parsing/GuardedActionShadowing.js +2 -0
  103. package/dist/bundles/compiler/Parsing/GuardedActionShadowing.js.map +1 -0
  104. package/dist/bundles/compiler/Parsing/GuardedActionValidator.js +2 -0
  105. package/dist/bundles/compiler/Parsing/GuardedActionValidator.js.map +1 -0
  106. package/dist/bundles/compiler/Parsing/IdentifierComplianceValidator.js +2 -0
  107. package/dist/bundles/compiler/Parsing/IdentifierComplianceValidator.js.map +1 -0
  108. package/dist/bundles/compiler/Parsing/IdentityParser.js +2 -0
  109. package/dist/bundles/compiler/Parsing/IdentityParser.js.map +1 -0
  110. package/dist/bundles/compiler/Parsing/IdentityValidator.js +2 -0
  111. package/dist/bundles/compiler/Parsing/IdentityValidator.js.map +1 -0
  112. package/dist/bundles/compiler/Parsing/ImplementationParser.js +3 -0
  113. package/dist/bundles/compiler/Parsing/ImplementationParser.js.map +1 -0
  114. package/dist/bundles/compiler/Parsing/ImportDiscovery.js +1 -0
  115. package/dist/bundles/compiler/Parsing/InlineEventValidator.js +2 -0
  116. package/dist/bundles/compiler/Parsing/InlineEventValidator.js.map +1 -0
  117. package/dist/bundles/compiler/Parsing/InputUses.js +2 -0
  118. package/dist/bundles/compiler/Parsing/InputUses.js.map +1 -0
  119. package/dist/bundles/compiler/Parsing/InteractionAlternatives.js +2 -0
  120. package/dist/bundles/compiler/Parsing/InteractionAlternatives.js.map +1 -0
  121. package/dist/bundles/compiler/Parsing/LineReader.js +2 -0
  122. package/dist/bundles/compiler/Parsing/LineReader.js.map +1 -0
  123. package/dist/bundles/compiler/Parsing/LineText.js +2 -0
  124. package/dist/bundles/compiler/Parsing/LineText.js.map +1 -0
  125. package/dist/bundles/compiler/Parsing/ModuleBody.js +2 -0
  126. package/dist/bundles/compiler/Parsing/ModuleBody.js.map +1 -0
  127. package/dist/bundles/compiler/Parsing/OperationParser.js +2 -0
  128. package/dist/bundles/compiler/Parsing/OperationParser.js.map +1 -0
  129. package/dist/bundles/compiler/Parsing/OperationValidator.js +2 -0
  130. package/dist/bundles/compiler/Parsing/OperationValidator.js.map +1 -0
  131. package/dist/bundles/compiler/Parsing/ParserContext.js +2 -0
  132. package/dist/bundles/compiler/Parsing/ParserContext.js.map +1 -0
  133. package/dist/bundles/compiler/Parsing/PersonaCallerValidator.js +2 -0
  134. package/dist/bundles/compiler/Parsing/PersonaCallerValidator.js.map +1 -0
  135. package/dist/bundles/compiler/Parsing/PolicyParser.js +2 -0
  136. package/dist/bundles/compiler/Parsing/PolicyParser.js.map +1 -0
  137. package/dist/bundles/compiler/Parsing/ProducesParser.js +2 -0
  138. package/dist/bundles/compiler/Parsing/ProducesParser.js.map +1 -0
  139. package/dist/bundles/compiler/Parsing/ProjectionExpressionParser.js +2 -0
  140. package/dist/bundles/compiler/Parsing/ProjectionExpressionParser.js.map +1 -0
  141. package/dist/bundles/compiler/Parsing/ProjectionParser.js +2 -0
  142. package/dist/bundles/compiler/Parsing/ProjectionParser.js.map +1 -0
  143. package/dist/bundles/compiler/Parsing/ProjectionTargetValidator.js +2 -0
  144. package/dist/bundles/compiler/Parsing/ProjectionTargetValidator.js.map +1 -0
  145. package/dist/bundles/compiler/Parsing/PropertyLineParser.js +2 -0
  146. package/dist/bundles/compiler/Parsing/PropertyLineParser.js.map +1 -0
  147. package/dist/bundles/compiler/Parsing/PublicEventMetadataValidator.js +2 -0
  148. package/dist/bundles/compiler/Parsing/PublicEventMetadataValidator.js.map +1 -0
  149. package/dist/bundles/compiler/Parsing/PublicEventUsageCollector.js +2 -0
  150. package/dist/bundles/compiler/Parsing/PublicEventUsageCollector.js.map +1 -0
  151. package/dist/bundles/compiler/Parsing/PublicEventUsageValidator.js +2 -0
  152. package/dist/bundles/compiler/Parsing/PublicEventUsageValidator.js.map +1 -0
  153. package/dist/bundles/compiler/Parsing/PurposeParser.js +2 -0
  154. package/dist/bundles/compiler/Parsing/PurposeParser.js.map +1 -0
  155. package/dist/bundles/compiler/Parsing/PurposeValidator.js +2 -0
  156. package/dist/bundles/compiler/Parsing/PurposeValidator.js.map +1 -0
  157. package/dist/bundles/compiler/Parsing/QueryParser.js +2 -0
  158. package/dist/bundles/compiler/Parsing/QueryParser.js.map +1 -0
  159. package/dist/bundles/compiler/Parsing/ReactionIdentityParser.js +2 -0
  160. package/dist/bundles/compiler/Parsing/ReactionIdentityParser.js.map +1 -0
  161. package/dist/bundles/compiler/Parsing/ReactionParser.js +2 -0
  162. package/dist/bundles/compiler/Parsing/ReactionParser.js.map +1 -0
  163. package/dist/bundles/compiler/Parsing/ReactionRefusalValidator.js +2 -0
  164. package/dist/bundles/compiler/Parsing/ReactionRefusalValidator.js.map +1 -0
  165. package/dist/bundles/compiler/Parsing/RedeliveryValues.js +2 -0
  166. package/dist/bundles/compiler/Parsing/RedeliveryValues.js.map +1 -0
  167. package/dist/bundles/compiler/Parsing/RefusalDeclarations.js +2 -0
  168. package/dist/bundles/compiler/Parsing/RefusalDeclarations.js.map +1 -0
  169. package/dist/bundles/compiler/Parsing/RefusalValueWalker.js +2 -0
  170. package/dist/bundles/compiler/Parsing/RefusalValueWalker.js.map +1 -0
  171. package/dist/bundles/compiler/Parsing/ResponseDateValues.js +2 -0
  172. package/dist/bundles/compiler/Parsing/ResponseDateValues.js.map +1 -0
  173. package/dist/bundles/compiler/Parsing/ResponseValidator.js +2 -0
  174. package/dist/bundles/compiler/Parsing/ResponseValidator.js.map +1 -0
  175. package/dist/bundles/compiler/Parsing/ScreenParser.js +2 -0
  176. package/dist/bundles/compiler/Parsing/ScreenParser.js.map +1 -0
  177. package/dist/bundles/compiler/Parsing/ScreenplayParser.js +2 -0
  178. package/dist/bundles/compiler/Parsing/ScreenplayParser.js.map +1 -0
  179. package/dist/bundles/compiler/Parsing/SeedParser.js +2 -0
  180. package/dist/bundles/compiler/Parsing/SeedParser.js.map +1 -0
  181. package/dist/bundles/compiler/Parsing/SliceParser.js +2 -0
  182. package/dist/bundles/compiler/Parsing/SliceParser.js.map +1 -0
  183. package/dist/bundles/compiler/Parsing/SourceLine.js +2 -0
  184. package/dist/bundles/compiler/Parsing/SourceLine.js.map +1 -0
  185. package/dist/bundles/compiler/Parsing/SourceLineSplitter.js +3 -0
  186. package/dist/bundles/compiler/Parsing/SourceLineSplitter.js.map +1 -0
  187. package/dist/bundles/compiler/Parsing/SourceOptionsParser.js +2 -0
  188. package/dist/bundles/compiler/Parsing/SourceOptionsParser.js.map +1 -0
  189. package/dist/bundles/compiler/Parsing/SpecificationCaseParser.js +2 -0
  190. package/dist/bundles/compiler/Parsing/SpecificationCaseParser.js.map +1 -0
  191. package/dist/bundles/compiler/Parsing/SpecificationCaseValidator.js +2 -0
  192. package/dist/bundles/compiler/Parsing/SpecificationCaseValidator.js.map +1 -0
  193. package/dist/bundles/compiler/Parsing/SpecificationCommandExamples.js +2 -0
  194. package/dist/bundles/compiler/Parsing/SpecificationCommandExamples.js.map +1 -0
  195. package/dist/bundles/compiler/Parsing/SpecificationExampleParser.js +2 -0
  196. package/dist/bundles/compiler/Parsing/SpecificationExampleParser.js.map +1 -0
  197. package/dist/bundles/compiler/Parsing/SpecificationParser.js +2 -0
  198. package/dist/bundles/compiler/Parsing/SpecificationParser.js.map +1 -0
  199. package/dist/bundles/compiler/Parsing/SpecificationRedeliveryValidator.js +2 -0
  200. package/dist/bundles/compiler/Parsing/SpecificationRedeliveryValidator.js.map +1 -0
  201. package/dist/bundles/compiler/Parsing/SpecificationResponseParser.js +2 -0
  202. package/dist/bundles/compiler/Parsing/SpecificationResponseParser.js.map +1 -0
  203. package/dist/bundles/compiler/Parsing/SpecificationRouteComparison.js +2 -0
  204. package/dist/bundles/compiler/Parsing/SpecificationRouteComparison.js.map +1 -0
  205. package/dist/bundles/compiler/Parsing/SpecificationStreamValidator.js +2 -0
  206. package/dist/bundles/compiler/Parsing/SpecificationStreamValidator.js.map +1 -0
  207. package/dist/bundles/compiler/Parsing/StructuredValueParser.js +3 -0
  208. package/dist/bundles/compiler/Parsing/StructuredValueParser.js.map +1 -0
  209. package/dist/bundles/compiler/Parsing/TriggerDataParser.js +2 -0
  210. package/dist/bundles/compiler/Parsing/TriggerDataParser.js.map +1 -0
  211. package/dist/bundles/compiler/Parsing/UiBindingParser.js +2 -0
  212. package/dist/bundles/compiler/Parsing/UiBindingParser.js.map +1 -0
  213. package/dist/bundles/compiler/ScreenplayCompiler.js +2 -0
  214. package/dist/bundles/compiler/ScreenplayCompiler.js.map +1 -0
  215. package/dist/bundles/compiler/Syntax/AuthoringProductionResolver.js +2 -0
  216. package/dist/bundles/compiler/Syntax/AuthoringProductionResolver.js.map +1 -0
  217. package/dist/bundles/compiler/Syntax/CaptureEventsSource.js +2 -0
  218. package/dist/bundles/compiler/Syntax/CaptureEventsSource.js.map +1 -0
  219. package/dist/bundles/compiler/Syntax/DependencySources.js +2 -0
  220. package/dist/bundles/compiler/Syntax/DependencySources.js.map +1 -0
  221. package/dist/bundles/compiler/Syntax/EventDeclarations.js +2 -0
  222. package/dist/bundles/compiler/Syntax/EventDeclarations.js.map +1 -0
  223. package/dist/bundles/compiler/Syntax/EventSourceCatalog.js +2 -0
  224. package/dist/bundles/compiler/Syntax/EventSourceCatalog.js.map +1 -0
  225. package/dist/bundles/compiler/Syntax/EventSourceReadConfidence.js +2 -0
  226. package/dist/bundles/compiler/Syntax/EventSourceReadConfidence.js.map +1 -0
  227. package/dist/bundles/compiler/Syntax/ExactMathFacts.js +2 -0
  228. package/dist/bundles/compiler/Syntax/ExactMathFacts.js.map +1 -0
  229. package/dist/bundles/compiler/Syntax/ExactNumber.js +2 -0
  230. package/dist/bundles/compiler/Syntax/ExactNumber.js.map +1 -0
  231. package/dist/bundles/compiler/Syntax/InvalidSyntaxJson.js +2 -0
  232. package/dist/bundles/compiler/Syntax/InvalidSyntaxJson.js.map +1 -0
  233. package/dist/bundles/compiler/Syntax/LegacyWireProjection.js +2 -0
  234. package/dist/bundles/compiler/Syntax/LegacyWireProjection.js.map +1 -0
  235. package/dist/bundles/compiler/Syntax/Operations.js +2 -0
  236. package/dist/bundles/compiler/Syntax/Operations.js.map +1 -0
  237. package/dist/bundles/compiler/Syntax/PersonaCallers.js +2 -0
  238. package/dist/bundles/compiler/Syntax/PersonaCallers.js.map +1 -0
  239. package/dist/bundles/compiler/Syntax/ProductionDestinations.js +2 -0
  240. package/dist/bundles/compiler/Syntax/ProductionDestinations.js.map +1 -0
  241. package/dist/bundles/compiler/Syntax/PublicEventInvariants.js +2 -0
  242. package/dist/bundles/compiler/Syntax/PublicEventInvariants.js.map +1 -0
  243. package/dist/bundles/compiler/Syntax/ScreenplaySyntaxWalker.js +2 -0
  244. package/dist/bundles/compiler/Syntax/ScreenplaySyntaxWalker.js.map +1 -0
  245. package/dist/bundles/compiler/Syntax/SourceOptions.js +2 -0
  246. package/dist/bundles/compiler/Syntax/SourceOptions.js.map +1 -0
  247. package/dist/bundles/compiler/Syntax/SpecificationCaseOrigin.js +2 -0
  248. package/dist/bundles/compiler/Syntax/SpecificationCaseOrigin.js.map +1 -0
  249. package/dist/bundles/compiler/Syntax/StreamIdFormatter.js +2 -0
  250. package/dist/bundles/compiler/Syntax/StreamIdFormatter.js.map +1 -0
  251. package/dist/bundles/compiler/Syntax/StrictSyntaxJson.js +1 -0
  252. package/dist/bundles/compiler/Syntax/Structure.js +2 -0
  253. package/dist/bundles/compiler/Syntax/Structure.js.map +1 -0
  254. package/dist/bundles/compiler/Syntax/SyntaxCollections.js +2 -0
  255. package/dist/bundles/compiler/Syntax/SyntaxCollections.js.map +1 -0
  256. package/dist/bundles/compiler/Syntax/SyntaxInvariants.js +2 -0
  257. package/dist/bundles/compiler/Syntax/SyntaxInvariants.js.map +1 -0
  258. package/dist/bundles/compiler/Syntax/SyntaxJson.js +2 -0
  259. package/dist/bundles/compiler/Syntax/SyntaxJson.js.map +1 -0
  260. package/dist/bundles/compiler/Syntax/SyntaxMemberContracts.js +2 -0
  261. package/dist/bundles/compiler/Syntax/SyntaxMemberContracts.js.map +1 -0
  262. package/dist/bundles/compiler/Syntax/index.js +1 -0
  263. package/dist/bundles/compiler/Text/ImplementationHintText.js +2 -0
  264. package/dist/bundles/compiler/Text/ImplementationHintText.js.map +1 -0
  265. package/dist/bundles/compiler/Text/ReservedWords.js +2 -0
  266. package/dist/bundles/compiler/Text/ReservedWords.js.map +1 -0
  267. package/dist/bundles/compiler/Text/SourceStreamNames.js +2 -0
  268. package/dist/bundles/compiler/Text/SourceStreamNames.js.map +1 -0
  269. package/dist/bundles/compiler/Text/StringLiteral.js +3 -0
  270. package/dist/bundles/compiler/Text/StringLiteral.js.map +1 -0
  271. package/dist/bundles/compiler/Text/ordinalIgnoreCaseKey.js +2 -0
  272. package/dist/bundles/compiler/Text/ordinalIgnoreCaseKey.js.map +1 -0
  273. package/dist/bundles/compiler/Text/patterns.js +2 -0
  274. package/dist/bundles/compiler/Text/patterns.js.map +1 -0
  275. package/dist/bundles/compiler/index.js +1 -0
  276. package/dist/bundles/completion-items.js +21 -0
  277. package/dist/bundles/completion-items.js.map +1 -0
  278. package/dist/bundles/completion-planner.js +5 -0
  279. package/dist/bundles/completion-planner.js.map +1 -0
  280. package/dist/bundles/completions.js +2 -0
  281. package/dist/bundles/completions.js.map +1 -0
  282. package/dist/bundles/dependency-completions.js +3 -0
  283. package/dist/bundles/dependency-completions.js.map +1 -0
  284. package/dist/bundles/dependency-target-analysis.js +2 -0
  285. package/dist/bundles/dependency-target-analysis.js.map +1 -0
  286. package/dist/bundles/diagnostic-codes.js +2 -0
  287. package/dist/bundles/diagnostic-codes.js.map +1 -0
  288. package/dist/bundles/diagnostics.js +2 -0
  289. package/dist/bundles/diagnostics.js.map +1 -0
  290. package/dist/bundles/document-context.js +2 -0
  291. package/dist/bundles/document-context.js.map +1 -0
  292. package/dist/bundles/documentation-item.js +2 -0
  293. package/dist/bundles/documentation-item.js.map +1 -0
  294. package/dist/bundles/event-analysis-source.js +2 -0
  295. package/dist/bundles/event-analysis-source.js.map +1 -0
  296. package/dist/bundles/event-context-catalog.js +2 -0
  297. package/dist/bundles/event-context-catalog.js.map +1 -0
  298. package/dist/bundles/event-context.js +4 -0
  299. package/dist/bundles/event-context.js.map +1 -0
  300. package/dist/bundles/event-source-authoring.js +13 -0
  301. package/dist/bundles/event-source-authoring.js.map +1 -0
  302. package/dist/bundles/example-analysis.js +3 -0
  303. package/dist/bundles/example-analysis.js.map +1 -0
  304. package/dist/bundles/example-authoring.js +3 -0
  305. package/dist/bundles/example-authoring.js.map +1 -0
  306. package/dist/bundles/example-declaration-items.js +2 -0
  307. package/dist/bundles/example-declaration-items.js.map +1 -0
  308. package/dist/bundles/example-values.js +2 -0
  309. package/dist/bundles/example-values.js.map +1 -0
  310. package/dist/bundles/file-imports.js +2 -0
  311. package/dist/bundles/file-imports.js.map +1 -0
  312. package/dist/bundles/file-references.js +2 -0
  313. package/dist/bundles/file-references.js.map +1 -0
  314. package/dist/bundles/hover-content.js +6 -0
  315. package/dist/bundles/hover-content.js.map +1 -0
  316. package/dist/bundles/hover.js +2 -0
  317. package/dist/bundles/hover.js.map +1 -0
  318. package/dist/bundles/index.js +2 -104
  319. package/dist/bundles/index.js.map +1 -7
  320. package/dist/bundles/inlay-hints.js +2 -0
  321. package/dist/bundles/inlay-hints.js.map +1 -0
  322. package/dist/bundles/inline-completions.js +2 -0
  323. package/dist/bundles/inline-completions.js.map +1 -0
  324. package/dist/bundles/inline-event-validation.js +2 -0
  325. package/dist/bundles/inline-event-validation.js.map +1 -0
  326. package/dist/bundles/keyword-docs.js +2 -0
  327. package/dist/bundles/keyword-docs.js.map +1 -0
  328. package/dist/bundles/language.js +2 -0
  329. package/dist/bundles/language.js.map +1 -0
  330. package/dist/bundles/named-rule-context.js +2 -0
  331. package/dist/bundles/named-rule-context.js.map +1 -0
  332. package/dist/bundles/operation-authoring.js +7 -0
  333. package/dist/bundles/operation-authoring.js.map +1 -0
  334. package/dist/bundles/persona-analysis.js +2 -0
  335. package/dist/bundles/persona-analysis.js.map +1 -0
  336. package/dist/bundles/production-destinations.js +2 -0
  337. package/dist/bundles/production-destinations.js.map +1 -0
  338. package/dist/bundles/purpose-items.js +2 -0
  339. package/dist/bundles/purpose-items.js.map +1 -0
  340. package/dist/bundles/reaction-authoring.js +5 -0
  341. package/dist/bundles/reaction-authoring.js.map +1 -0
  342. package/dist/bundles/refusal-context.js +2 -0
  343. package/dist/bundles/refusal-context.js.map +1 -0
  344. package/dist/bundles/response-analysis.js +7 -0
  345. package/dist/bundles/response-analysis.js.map +1 -0
  346. package/dist/bundles/response-completions.js +2 -0
  347. package/dist/bundles/response-completions.js.map +1 -0
  348. package/dist/bundles/response-tokens.js +3 -0
  349. package/dist/bundles/response-tokens.js.map +1 -0
  350. package/dist/bundles/scope-items.js +18 -0
  351. package/dist/bundles/scope-items.js.map +1 -0
  352. package/dist/bundles/structure-completions.js +7 -0
  353. package/dist/bundles/structure-completions.js.map +1 -0
  354. package/dist/bundles/sub-language-registry.js +2 -0
  355. package/dist/bundles/sub-language-registry.js.map +1 -0
  356. package/dist/bundles/sub-languages/capture/CompletionProvider.js +2 -0
  357. package/dist/bundles/sub-languages/capture/CompletionProvider.js.map +1 -0
  358. package/dist/bundles/sub-languages/capture/HoverProvider.js +60 -0
  359. package/dist/bundles/sub-languages/capture/HoverProvider.js.map +1 -0
  360. package/dist/bundles/sub-languages/capture/Validator.js +2 -0
  361. package/dist/bundles/sub-languages/capture/Validator.js.map +1 -0
  362. package/dist/bundles/sub-languages/capture/index.js +2 -40
  363. package/dist/bundles/sub-languages/capture/index.js.map +1 -7
  364. package/dist/bundles/sub-languages/capture/language.js +2 -0
  365. package/dist/bundles/sub-languages/capture/language.js.map +1 -0
  366. package/dist/bundles/sub-languages/cdl.js +2 -0
  367. package/dist/bundles/sub-languages/cdl.js.map +1 -0
  368. package/dist/bundles/sub-languages/pdl.js +2 -0
  369. package/dist/bundles/sub-languages/pdl.js.map +1 -0
  370. package/dist/bundles/sub-languages/projection/CodeActionProvider.js +2 -0
  371. package/dist/bundles/sub-languages/projection/CodeActionProvider.js.map +1 -0
  372. package/dist/bundles/sub-languages/projection/CompletionProvider.js +2 -0
  373. package/dist/bundles/sub-languages/projection/CompletionProvider.js.map +1 -0
  374. package/dist/bundles/sub-languages/projection/HoverProvider.js +43 -0
  375. package/dist/bundles/sub-languages/projection/HoverProvider.js.map +1 -0
  376. package/dist/bundles/sub-languages/projection/Validator.js +5 -0
  377. package/dist/bundles/sub-languages/projection/Validator.js.map +1 -0
  378. package/dist/bundles/sub-languages/projection/index.js +3 -75
  379. package/dist/bundles/sub-languages/projection/index.js.map +1 -7
  380. package/dist/bundles/sub-languages/projection/language.js +2 -0
  381. package/dist/bundles/sub-languages/projection/language.js.map +1 -0
  382. package/dist/bundles/symbols.js +3 -0
  383. package/dist/bundles/symbols.js.map +1 -0
  384. package/dist/bundles/themes/screenplay-dark.js +2 -0
  385. package/dist/bundles/themes/screenplay-dark.js.map +1 -0
  386. package/dist/bundles/themes/screenplay-light.js +2 -0
  387. package/dist/bundles/themes/screenplay-light.js.map +1 -0
  388. package/dist/bundles/tokens.js +2 -0
  389. package/dist/bundles/tokens.js.map +1 -0
  390. package/dist/bundles/validation.js +3 -0
  391. package/dist/bundles/validation.js.map +1 -0
  392. package/package.json +4 -3
  393. package/dist/bundles/chunk-7GSRLVHB.js +0 -42
  394. package/dist/bundles/chunk-7GSRLVHB.js.map +0 -7
  395. package/dist/bundles/chunk-AYDF3IFZ.js +0 -2
  396. package/dist/bundles/chunk-AYDF3IFZ.js.map +0 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UiBindingParser.js","names":["bindingHead","pattern","literalBindingHead","qualifiedPath","requiredQualifiedPath","mode","nullBehavior","expected","trimmed","text","first","context","location","body","literalHead","DiagnosticCodes","parseMappingSource","head","source","expression","raw","match","componentId","path","next","binding","rest","modifiers","modeMatch","nullMatch","expectedMatch"],"sources":["../../../../../../Compiler/Parsing/UiBindingParser.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DiagnosticCodes } from '../Diagnostics/DiagnosticCodes';\nimport { UiBindingSyntax } from '../Syntax/Screens';\nimport { parseMappingSource } from './ExpressionParser';\nimport { pattern } from '../Text/patterns';\nimport { ParserContext } from './ParserContext';\nimport { SourceLocation } from '../Diagnostics/SourceLocation';\n\nconst bindingHead = pattern('^(data|query|component)\\\\s+(\\\\S+)(.*)$');\nconst literalBindingHead = pattern('^literal\\\\s+(.+?)(?:\\\\s+(mode\\\\s+.+|null\\\\s+.+|expected\\\\s+.+))?$');\nconst qualifiedPath = pattern('^([A-Za-z_]\\\\w*)(?:\\\\.(.+))?$');\nconst requiredQualifiedPath = pattern('^(?:([A-Za-z_]\\\\w*)|\"([^\"\\\\\\\\]*(?:\\\\\\\\.[^\"\\\\\\\\]*)*)\")\\\\.(.+)$');\nconst mode = pattern('^mode\\\\s+(oneWay|twoWay)\\\\b(.*)$');\nconst nullBehavior = pattern('^null\\\\s+(propagate|clear|preserve)\\\\b(.*)$');\nconst expected = pattern('^expected\\\\s+(\\\\w+(?:\\\\.\\\\w+)*)(.*)$');\n\nexport function parseFromClause(context: ParserContext, text: string, location: SourceLocation): UiBindingSyntax {\n const trimmed = text.trim();\n const first = trimmed.split(/\\s+/, 1)[0];\n return first === 'data' || first === 'query' || first === 'component' || first === 'literal'\n ? parseUiBinding(context, `from ${trimmed}`, location)\n : parseUiBinding(context, trimmed, location);\n}\n\nexport function parseUiBinding(context: ParserContext, text: string, location: SourceLocation): UiBindingSyntax {\n const trimmed = text.trim();\n if (!trimmed.startsWith('from ')) {\n return withModifiers(context, create('DataContext', trimmed, location), '', location);\n }\n\n const body = trimmed.substring('from '.length).trim();\n if (body.startsWith('literal ')) {\n const literalHead = literalBindingHead.exec(body);\n if (literalHead === null) {\n context.error(DiagnosticCodes.UnknownScreenDirective, `Invalid UI binding '${trimmed}' - expected 'from literal <value>'`, location);\n return { ...create('Invalid', body, location), rawText: trimmed };\n }\n return withModifiers(context, { ...create('Literal', '', location), literal: parseMappingSource(literalHead[1], location, context) }, literalHead[2] ?? '', location);\n }\n\n const head = bindingHead.exec(body);\n if (head === null) {\n context.error(DiagnosticCodes.UnknownScreenDirective, `Invalid UI binding '${trimmed}' - expected 'from data <path>', 'from query <Query>[.<path>]', 'from component <id>.<path>' or 'from literal <value>'`, location);\n return { ...create('Invalid', body, location), rawText: trimmed };\n }\n\n const binding = parseBindingSource(context, head[1], head[2], trimmed, location);\n return withModifiers(context, binding, head[3], location);\n}\n\nfunction parseBindingSource(context: ParserContext, source: string, expression: string, raw: string, location: SourceLocation): UiBindingSyntax {\n if (source === 'data') return create('DataContext', expression, location);\n if (source === 'query') return queryBinding(context, expression, raw, location);\n\n return componentBinding(context, expression, raw, location);\n}\n\nfunction queryBinding(context: ParserContext, expression: string, raw: string, location: SourceLocation): UiBindingSyntax {\n const match = qualifiedPath.exec(expression);\n if (match === null) {\n context.error(DiagnosticCodes.UnknownScreenDirective, `Invalid query binding '${raw}' - expected 'from query <Query>[.<path>]'.`, location);\n return { ...create('Invalid', expression, location), rawText: raw };\n }\n\n return { ...create('QueryResult', match[2] ?? '', location), query: match[1] };\n}\n\nfunction componentBinding(context: ParserContext, expression: string, raw: string, location: SourceLocation): UiBindingSyntax {\n const match = requiredQualifiedPath.exec(expression);\n if (match === null) {\n context.error(DiagnosticCodes.UnknownScreenDirective, `Invalid component binding '${raw}' - expected 'from component <stableInstanceId>.<outputPath>' or 'from component \"<stableInstanceId>\".<outputPath>'.`, location);\n return { ...create('Invalid', expression, location), rawText: raw };\n }\n\n const componentId = match[1] ?? match[2];\n const path = match[3];\n return { ...create('ComponentProperty', path, location), componentId, componentPropertyPath: path };\n}\n\nfunction withModifiers(context: ParserContext, binding: UiBindingSyntax, modifiers: string, location: SourceLocation): UiBindingSyntax {\n let next = binding;\n let rest = modifiers.trim();\n while (rest.length > 0) {\n const modeMatch = mode.exec(rest);\n if (modeMatch !== null) {\n next = { ...next, mode: modeMatch[1] === 'twoWay' ? 'TwoWay' : 'OneWay' };\n rest = modeMatch[2].trim();\n continue;\n }\n\n const nullMatch = nullBehavior.exec(rest);\n if (nullMatch !== null) {\n next = { ...next, nullBehavior: nullMatch[1] === 'clear' ? 'Clear' : nullMatch[1] === 'preserve' ? 'Preserve' : 'Propagate' };\n rest = nullMatch[2].trim();\n continue;\n }\n\n const expectedMatch = expected.exec(rest);\n if (expectedMatch !== null) {\n next = { ...next, expectedValueType: expectedMatch[1] };\n rest = expectedMatch[2].trim();\n continue;\n }\n\n context.error(DiagnosticCodes.UnknownScreenDirective, `Unsupported UI binding modifier '${rest}' - supported modifiers are 'mode oneWay|twoWay', 'null propagate|clear|preserve' and 'expected <Type>'.`, location);\n return { ...next, rawText: next.rawText ?? rest };\n }\n\n return next;\n}\n\nfunction create(bindingKind: UiBindingSyntax['bindingKind'], path: string, location: SourceLocation): UiBindingSyntax {\n return {\n kind: 'UiBindingSyntax',\n bindingKind,\n path,\n query: null,\n componentId: null,\n componentPropertyPath: null,\n mode: null,\n nullBehavior: null,\n expectedValueType: null,\n literal: null,\n rawText: null,\n location,\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import"../_virtual/_virtual/_rolldown/runtime.js";import{splitLines as e}from"./Parsing/SourceLineSplitter.js";import{validateIdentity as t}from"./Parsing/IdentityValidator.js";import{expandSpecificationExamples as n}from"./Parsing/SpecificationCommandExamples.js";import{validateResponses as r}from"./Parsing/ResponseValidator.js";import{validateSpecificationCases as i}from"./Parsing/SpecificationCaseValidator.js";import{productionDestinationDiagnostics as a}from"./Diagnostics/ProductionDestinationDiagnostics.js";import{validateConstraintProperties as o}from"./Parsing/ConstraintPropertyValidator.js";import{validateDependencyDeclarations as s}from"./Dependencies/DeclaredDependencyTargets.js";import{documentPlacement as c}from"./Files/PlayPlacement.js";import"./Parsing/SpecificationParser.js";import"./Parsing/SpecificationExampleParser.js";import"./Parsing/CaptureParser.js";import"./Parsing/ProjectionParser.js";import"./Parsing/ImportDiscovery.js";import{DeclaredDependencies as l}from"./Dependencies/DeclaredDependencies.js";import{validatePublicEventUsage as u}from"./Parsing/PublicEventUsageValidator.js";import{sourceContext as d}from"./Parsing/SourceOptionsParser.js";import{validateInlineEvents as f}from"./Parsing/InlineEventValidator.js";import{validateOperations as p}from"./Parsing/OperationValidator.js";import{parseApplication as m}from"./Parsing/ScreenplayParser.js";import{CommandStreamCandidates as h}from"./Parsing/CommandStreamCandidates.js";import{validateEventSources as g}from"./Parsing/EventSourceValidator.js";import{validateProjectionTargets as _}from"./Parsing/ProjectionTargetValidator.js";import{validateIdentifierCompliance as v}from"./Parsing/IdentifierComplianceValidator.js";import{validateEventSubjects as y}from"./Parsing/EventSubjectValidator.js";import{validateReactionRefusals as b}from"./Parsing/ReactionRefusalValidator.js";import{validateSpecificationRedelivery as x}from"./Parsing/SpecificationRedeliveryValidator.js";import{validateGuardedActions as S}from"./Parsing/GuardedActionValidator.js";import{validatePersonaCallers as C}from"./Parsing/PersonaCallerValidator.js";import{validatePurposes as w}from"./Parsing/PurposeValidator.js";import{timelineOrderDiagnostics as T}from"./Files/TimelineOrder.js";function parseForAuthoring(E,D,O=c,k=!0,A,j){let M=e(E,!1,D),N=d(M,D,j);N.scope=O,N.streamCandidates=A??h.capture([M],O,j);let P=m(N,M,O);if(k){t(P,N),w(P,N),f(P,N),o(P,N),p(P,N),u(P,N),i(P,N);let e=n(P);r(e,N),g(P,N),_(P,N),v(e,N),y(P,N),b(P,N),x(P,N),S(P,N),C(P,N),P=s(P,N),l.validate(P,N);for(let e of a(P))N.information(e.code,e.message,e.location);for(let e of T(P))N.information(e.code,e.message,e.location)}return{value:P,diagnostics:N.diagnostics,triggerData:N.triggerData,inputUses:N.inputUses,success:!N.diagnostics.some(e=>e.severity===`error`)}}export{parseForAuthoring};
2
+ //# sourceMappingURL=ScreenplayCompiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScreenplayCompiler.js","names":["documentPlacement","lines","splitLines","source","path","context","sourceContext","languages","placement","streamCandidates","CommandStreamCandidates","value","parseApplication","validateResponseContracts","validateIdentity","validatePurposes","validateInlineEvents","validateConstraintProperties","validateOperations","validatePublicEventUsage","validateSpecificationCases","effective","expandSpecificationExamples","validateResponses","validateEventSources","validateProjectionTargets","validateIdentifierCompliance","validateEventSubjects","validateReactionRefusals","validateSpecificationRedelivery","validateGuardedActions","validatePersonaCallers","validateDependencyDeclarations","DeclaredDependencies","diagnostic","productionDestinationDiagnostics","timelineOrderDiagnostics"],"sources":["../../../../../Compiler/ScreenplayCompiler.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { validateIdentity } from './Parsing/IdentityValidator';\nimport { Diagnostic } from './Diagnostics/Diagnostic';\nimport { validateSpecificationCases } from './Parsing/SpecificationCaseValidator';\nimport { expandSpecificationExamples } from './Parsing/SpecificationCommandExamples';\nimport { productionDestinationDiagnostics } from './Diagnostics/ProductionDestinationDiagnostics';\nimport { validateConstraintProperties } from './Parsing/ConstraintPropertyValidator';\nimport { validateDependencyDeclarations } from './Dependencies/DeclaredDependencyTargets';\nimport { DeclaredDependencies } from './Dependencies/DeclaredDependencies';\nimport { documentPlacement, PlayPlacement } from './Files/PlayPlacement';\nimport { DiscoveredImport, discoverImports as discoverImportsIn } from './Parsing/ImportDiscovery';\nimport { InputUse } from './Parsing/InputUses';\nimport { validateResponses } from './Parsing/ResponseValidator';\nimport { validatePublicEventUsage } from './Parsing/PublicEventUsageValidator';\nimport { sourceContext } from './Parsing/SourceOptionsParser';\nimport { validateInlineEvents } from './Parsing/InlineEventValidator';\nimport { validateOperations } from './Parsing/OperationValidator';\nimport { CommandStreamCandidates } from './Parsing/CommandStreamCandidates';\nimport { validateEventSources } from './Parsing/EventSourceValidator';\nimport { validateProjectionTargets } from './Parsing/ProjectionTargetValidator';\nimport { validateIdentifierCompliance } from './Parsing/IdentifierComplianceValidator';\nimport { validateEventSubjects } from './Parsing/EventSubjectValidator';\nimport { validateReactionRefusals } from './Parsing/ReactionRefusalValidator';\nimport { validateSpecificationRedelivery } from './Parsing/SpecificationRedeliveryValidator';\nimport { validateGuardedActions } from './Parsing/GuardedActionValidator';\nimport { validatePersonaCallers } from './Parsing/PersonaCallerValidator';\nimport { validatePurposes } from './Parsing/PurposeValidator';\nimport { parseApplication } from './Parsing/ScreenplayParser';\nimport { splitLines } from './Parsing/SourceLineSplitter';\nimport { PropertySyntax } from './Syntax/Declarations';\nimport { ApplicationSyntax } from './Syntax/Structure';\nimport { ApplicationSyntaxVisitor } from './Syntax/Visitors';\nimport { ProjectionSyntax } from './Syntax/Projections';\nimport { CaptureSyntax } from './Syntax/Captures';\nimport { SpecificationExampleSyntax, SpecificationSyntax } from './Syntax/Specifications';\nimport { SyntaxNode } from './Syntax/SyntaxNode';\nimport { ParserContext } from './Parsing/ParserContext';\nimport { parseProjection } from './Parsing/ProjectionParser';\nimport { parseCapture } from './Parsing/CaptureParser';\nimport { parseSpecification } from './Parsing/SpecificationParser';\nimport { parseExample } from './Parsing/SpecificationExampleParser';\nimport { firstWord } from './Parsing/LineText';\nimport { SourceLine, locationOf } from './Parsing/SourceLine';\nimport { DiagnosticCodes } from './Diagnostics/DiagnosticCodes';\nimport { timelineOrderDiagnostics } from './Files/TimelineOrder';\n\n// What compiling produced: the syntax tree, and the diagnostics found on the way. A tree is always\n// produced, so a document with errors still shows everything that could be read.\nexport interface CompilationResult<T> {\n readonly value: T;\n readonly diagnostics: readonly Diagnostic[];\n readonly success: boolean;\n}\n\n// Parses one .play document - the TypeScript counterpart of the C# ScreenplayCompiler.Parse. The path, when\n// given, is carried on every source location so a folder of documents can be merged and still point back\n// at the file each node came from. A placement says the document's top level belongs to the module or\n// feature an import placed it in: that module and feature are in the tree, marked as placements, holding what\n// the document declares at its top level.\nexport function parse(source: string, path?: string, placement: PlayPlacement = documentPlacement): CompilationResult<ApplicationSyntax> {\n const { value, diagnostics, success } = parseForAuthoring(source, path, placement);\n return { value, diagnostics, success };\n}\n\n// Additive authoring view: do not widen TypeRefSyntax or the cross-compiler SyntaxJson projection.\nexport function parseForAuthoring(source: string, path?: string, placement: PlayPlacement = documentPlacement, validateResponseContracts = true, streamCandidates?: CommandStreamCandidates, languages?: ReadonlySet<string>): CompilationResult<ApplicationSyntax> & { readonly triggerData: readonly PropertySyntax[]; readonly inputUses: readonly InputUse[] } {\n const lines = splitLines(source, false, path);\n const context = sourceContext(lines, path, languages);\n context.scope = placement;\n context.streamCandidates = streamCandidates ?? CommandStreamCandidates.capture([lines], placement, languages);\n let value = parseApplication(context, lines, placement);\n // Folder assembly validates declaration-dependent contracts once against the merged inventory.\n if (validateResponseContracts) {\n validateIdentity(value, context);\n validatePurposes(value, context);\n validateInlineEvents(value, context);\n validateConstraintProperties(value, context);\n validateOperations(value, context);\n validatePublicEventUsage(value, context);\n validateSpecificationCases(value, context);\n const effective = expandSpecificationExamples(value);\n validateResponses(effective, context);\n validateEventSources(value, context);\n validateProjectionTargets(value, context);\n validateIdentifierCompliance(effective, context);\n validateEventSubjects(value, context);\n validateReactionRefusals(value, context);\n validateSpecificationRedelivery(value, context);\n validateGuardedActions(value, context);\n validatePersonaCallers(value, context);\n value = validateDependencyDeclarations(value, context);\n DeclaredDependencies.validate(value, context);\n for (const diagnostic of productionDestinationDiagnostics(value)) context.information(diagnostic.code, diagnostic.message, diagnostic.location);\n for (const diagnostic of timelineOrderDiagnostics(value)) context.information(diagnostic.code, diagnostic.message, diagnostic.location);\n }\n return {\n value,\n diagnostics: context.diagnostics,\n triggerData: context.triggerData,\n inputUses: context.inputUses,\n success: !context.diagnostics.some(diagnostic => diagnostic.severity === 'error'),\n };\n}\n\n/** Checks public boundaries on programmatically authored or decoded assembled syntax. */\nexport function publicEventDiagnostics(application: ApplicationSyntax): readonly Diagnostic[] {\n const context = sourceContext([], application.location.path);\n validatePublicEventUsage(application, context);\n return context.diagnostics;\n}\n\n// Parses a document and hands its syntax tree to a visitor - the counterpart of the C#\n// ScreenplayCompiler.Compile<T>(source, visitor). The visitor runs even when there are errors, over\n// everything that could be read.\nexport function compile<T>(source: string, visitor: ApplicationSyntaxVisitor<T>, path?: string): CompilationResult<T> {\n const parsed = parse(source, path);\n return { value: visitor.visit(parsed.value), diagnostics: parsed.diagnostics, success: parsed.success };\n}\n\n// Finds the files a document imports and where in it each import is written - each import with the module\n// and feature names around it, outermost first. Diagnostics are not collected; parsing the document reports them.\nexport function discoverImports(source: string, path?: string, languages?: ReadonlySet<string>): DiscoveredImport[] {\n const lines = splitLines(source, false, path);\n return discoverImportsIn(sourceContext(lines, path, languages));\n}\n\n// Additive entry points preserve the caller's registry; none can select numeric mode externally.\nexport function parseWithLanguages(source: string, languages: ReadonlySet<string>, path?: string, placement: PlayPlacement = documentPlacement): CompilationResult<ApplicationSyntax> {\n const { value, diagnostics, success } = parseForAuthoring(source, path, placement, true, undefined, languages);\n return { value, diagnostics, success };\n}\n\nexport function parseProjectionSource(source: string, path?: string, languages?: ReadonlySet<string>): CompilationResult<readonly ProjectionSyntax[]> {\n return parseSourceFamily(source, 'projection', parseProjection, path, languages);\n}\n\nexport function parseCaptureSource(source: string, path?: string, languages?: ReadonlySet<string>): CompilationResult<readonly CaptureSyntax[]> {\n return parseSourceFamily(source, 'capture', parseCapture, path, languages);\n}\n\nexport function parseSpecificationSource(source: string, path?: string, languages?: ReadonlySet<string>): CompilationResult<readonly SpecificationSyntax[]> {\n return parseSourceFamily(source, 'specification', parseSpecification, path, languages);\n}\n\nfunction parseSourceFamily<T extends SyntaxNode>(source: string, keyword: string, read: (context: ParserContext, line: SourceLine) => T, path?: string, languages?: ReadonlySet<string>): CompilationResult<readonly T[]> {\n const context = sourceContext(splitLines(source, true, path), path, languages, true);\n const value: T[] = [];\n const examples: SpecificationExampleSyntax[] = [];\n for (let line = context.reader.peekSignificant(); line !== undefined; line = context.reader.peekSignificant()) {\n context.reader.takeSignificant();\n if (keyword === 'specification' && firstWord(line.content) === 'example') examples.push(parseExample(context, line));\n else if (line.content.startsWith(keyword)) value.push(read(context, line));\n else {\n context.error(DiagnosticCodes.UnknownTopLevelConstruct, `Expected '${keyword}', got '${line.content}'`, locationOf(line));\n context.skipOpaqueBlock(line.indent);\n }\n }\n if (context.sourceOptions.numericMode === 'exact' && value.length === 0 && context.diagnostics.length === 0) {\n const code = keyword === 'projection' ? DiagnosticCodes.ProjectionDocumentWithoutProjection : keyword === 'capture' ? DiagnosticCodes.CaptureDocumentWithoutCapture : DiagnosticCodes.SpecificationDocumentWithoutSpecification;\n context.error(code, `Document must contain at least one ${keyword}`, context.start);\n }\n const roots = keyword === 'specification' && examples.length > 0 ? value.map(node => ({ ...node, examples })) : value;\n if (keyword === 'specification') {\n const application = parseApplication(sourceContext([], path, languages), [], documentPlacement);\n validateSpecificationCases({ ...application, examples }, context, roots as unknown as SpecificationSyntax[]);\n }\n return { value: roots, diagnostics: context.diagnostics, success: !context.diagnostics.some(diagnostic => diagnostic.severity === 'error') };\n}\n"],"mappings":"+sEAmEA,SAAgB,kBAAkB,EAAgB,EAAe,EAA2BA,EAAmB,EAA4B,GAAM,EAA4C,EAAsK,CAC/V,IAAMC,EAAQC,EAAWC,EAAQ,GAAOC,CAAI,EACtCC,EAAUC,EAAcL,EAAOG,EAAMG,CAAS,EACpD,EAAQ,MAAQC,EAChB,EAAQ,iBAAmBC,GAAoBC,EAAwB,QAAQ,CAACT,CAAK,EAAGO,EAAWD,CAAS,EAC5G,IAAII,EAAQC,EAAiBP,EAASJ,EAAOO,CAAS,EAEtD,GAAIK,EAA2B,CAC3BC,EAAiBH,EAAON,CAAO,EAC/BU,EAAiBJ,EAAON,CAAO,EAC/BW,EAAqBL,EAAON,CAAO,EACnCY,EAA6BN,EAAON,CAAO,EAC3Ca,EAAmBP,EAAON,CAAO,EACjCc,EAAyBR,EAAON,CAAO,EACvCe,EAA2BT,EAAON,CAAO,EACzC,IAAMgB,EAAYC,EAA4BX,CAAK,EACnDY,EAAkBF,EAAWhB,CAAO,EACpCmB,EAAqBb,EAAON,CAAO,EACnCoB,EAA0Bd,EAAON,CAAO,EACxCqB,EAA6BL,EAAWhB,CAAO,EAC/CsB,EAAsBhB,EAAON,CAAO,EACpCuB,EAAyBjB,EAAON,CAAO,EACvCwB,EAAgClB,EAAON,CAAO,EAC9CyB,EAAuBnB,EAAON,CAAO,EACrC0B,EAAuBpB,EAAON,CAAO,EACrC,EAAQ2B,EAA+BrB,EAAON,CAAO,EACrD4B,EAAqB,SAAStB,EAAON,CAAO,EAC5C,IAAK,IAAM6B,KAAcC,EAAiCxB,CAAK,EAAGN,EAAQ,YAAY6B,EAAW,KAAMA,EAAW,QAASA,EAAW,QAAQ,EAC9I,IAAK,IAAMA,KAAcE,EAAyBzB,CAAK,EAAGN,EAAQ,YAAY6B,EAAW,KAAMA,EAAW,QAASA,EAAW,QAAQ,CAC1I,CACA,MAAO,CACH,QACA,YAAa7B,EAAQ,YACrB,YAAaA,EAAQ,YACrB,UAAWA,EAAQ,UACnB,QAAS,CAACA,EAAQ,YAAY,KAAK,GAAc6B,EAAW,WAAa,OAAO,CACpF,CACJ"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";import{eventDeclarations as e}from"./EventDeclarations.js";import{operationDeclarations as t}from"./Operations.js";var AuthoringProductionResolver=class{declarations=[];slices=[];byName=/* @__PURE__ */ new Map;scopes=/* @__PURE__ */ new Map;resolutions=/* @__PURE__ */ new Map;constructor(n,r){let collect=(e,t)=>{for(let n of e){let e=[...t,n.name];for(let t of n.slices)this.slices.push({slice:t,scope:[...e,t.name]});collect(n.features,e)}};n.modules.forEach(e=>collect(e.features,[e.name]));for(let{slice:n,scope:r}of this.slices){this.scopes.set(n,r);let i=/* @__PURE__ */ new Map;for(let t of e(n)){let e=i.get(t.name)??[];e.push(t),i.set(t.name,e)}let a=[...i.values()].flatMap(e=>new Set(e.map(e=>e.generation)).size===e.length?[e.reduce((e,t)=>e.generation>=t.generation?e:t)]:e);this.declarations.push(...a.map(e=>({kind:`event`,name:e.name,node:e,scope:r})),...t(n).map(e=>({kind:`operation`,name:e.name,node:e,scope:r})))}r!==void 0&&this.declarations.splice(0,this.declarations.length,...r);for(let e of this.declarations){let t=this.byName.get(e.name)??[];t.push(e),this.byName.set(e.name,t)}}resolve(e,t){let n=this.scopes.get(t);if(n===void 0)return{kind:`unresolved`,declaration:null,candidates:[]};let r=this.resolutions.get(t)??/* @__PURE__ */ new Map,i=r.get(e);if(i!==void 0)return i;let a=this.resolveFromScope(e,n);return r.set(e,a),this.resolutions.set(t,r),a}resolveFromScope(e,t){let n=this.candidates(e,t);return n.length===1?{kind:n[0].kind,declaration:n[0],candidates:[]}:{kind:n.length===0?`unresolved`:`ambiguous`,declaration:null,candidates:n}}isOperation(e,t){return e.inlineOperation!=null||this.resolve(e.event,t).kind===`operation`}isEventProduction(e,t){if(e.inlineOperation!=null)return!1;let n=this.resolve(e.event,t);return n.kind!==`operation`&&!(n.kind===`ambiguous`&&n.candidates.some(e=>e.kind===`operation`))}candidates(e,t){let n=e.split(`.`).filter(e=>e.length>0);if(n.length===0)return[];let r=this.byName.get(n.at(-1))??[],i=n.slice(0,-1);if(i.length>0)return r.filter(e=>i.length<=e.scope.length&&i.every((t,n)=>e.scope[e.scope.length-i.length+n]===t));for(let e=t.length;e>=0;e--){let n=r.filter(n=>e<=n.scope.length&&t.slice(0,e).every((e,t)=>n.scope[t]===e));if(n.length>0)return n}return[]}};export{AuthoringProductionResolver};
2
+ //# sourceMappingURL=AuthoringProductionResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthoringProductionResolver.js","names":["feature","features","scope","parent","slice","application","module","events","event","eventDeclarations","generations","logicalEvents","latest","node","operationDeclarations","declarations","entry","named","cache","cached","reference","resolution","candidates","production","candidate","segments","segment","qualifiers","index","value","depth","from","visible"],"sources":["../../../../../../Compiler/Syntax/AuthoringProductionResolver.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { eventDeclarations } from './EventDeclarations';\nimport { EventSyntax } from './Declarations';\nimport { operationDeclarations } from './Operations';\nimport { ProducesSyntax } from './Reactions';\nimport { ApplicationSyntax, FeatureSyntax, SliceSyntax } from './Structure';\n\nimport { AuthoringProductionKind } from './AuthoringProductionKind';\nimport { AuthoringProductionDeclaration } from './AuthoringProductionDeclaration';\nimport { AuthoringProductionResolution } from './AuthoringProductionResolution';\n\nexport { AuthoringProductionKind } from './AuthoringProductionKind';\nexport type { AuthoringProductionDeclaration } from './AuthoringProductionDeclaration';\nexport type { AuthoringProductionResolution } from './AuthoringProductionResolution';\n\nexport class AuthoringProductionResolver {\n readonly declarations: AuthoringProductionDeclaration[] = [];\n readonly slices: { slice: SliceSyntax; scope: readonly string[] }[] = [];\n private readonly byName = new Map<string, AuthoringProductionDeclaration[]>();\n private readonly scopes = new Map<SliceSyntax, readonly string[]>();\n private readonly resolutions = new Map<SliceSyntax, Map<string, AuthoringProductionResolution>>();\n\n constructor(application: ApplicationSyntax, declarations?: readonly AuthoringProductionDeclaration[]) {\n const collect = (features: readonly FeatureSyntax[], parent: readonly string[]): void => {\n for (const feature of features) {\n const scope = [...parent, feature.name];\n for (const slice of feature.slices) this.slices.push({ slice, scope: [...scope, slice.name] });\n collect(feature.features, scope);\n }\n };\n application.modules.forEach(module => collect(module.features, [module.name]));\n for (const { slice, scope } of this.slices) {\n this.scopes.set(slice, scope);\n const events = new Map<string, EventSyntax[]>();\n for (const event of eventDeclarations(slice)) {\n const generations = events.get(event.name) ?? [];\n generations.push(event);\n events.set(event.name, generations);\n }\n // Historical shapes are one logical contract. Duplicate generations remain\n // competing declarations; never erase invalid collision evidence.\n const logicalEvents = [...events.values()].flatMap(generations => new Set(generations.map(event => event.generation)).size !== generations.length\n ? generations : [generations.reduce((latest, event) => latest.generation >= event.generation ? latest : event)]);\n this.declarations.push(...logicalEvents.map(node => ({ kind: AuthoringProductionKind.Event as const, name: node.name, node, scope })),\n ...operationDeclarations(slice).map(node => ({ kind: AuthoringProductionKind.Operation as const, name: node.name, node, scope })));\n }\n if (declarations !== undefined) this.declarations.splice(0, this.declarations.length, ...declarations);\n for (const entry of this.declarations) {\n const named = this.byName.get(entry.name) ?? [];\n named.push(entry);\n this.byName.set(entry.name, named);\n }\n }\n\n resolve(reference: string, slice: SliceSyntax): AuthoringProductionResolution {\n const scope = this.scopes.get(slice);\n if (scope === undefined) return { kind: AuthoringProductionKind.Unresolved, declaration: null, candidates: [] };\n const cache = this.resolutions.get(slice) ?? new Map<string, AuthoringProductionResolution>();\n const cached = cache.get(reference);\n if (cached !== undefined) return cached;\n const resolution = this.resolveFromScope(reference, scope);\n cache.set(reference, resolution);\n this.resolutions.set(slice, cache);\n return resolution;\n }\n\n resolveFromScope(reference: string, scope: readonly string[]): AuthoringProductionResolution {\n const candidates = this.candidates(reference, scope);\n return candidates.length === 1\n ? { kind: candidates[0].kind, declaration: candidates[0], candidates: [] }\n : { kind: candidates.length === 0 ? AuthoringProductionKind.Unresolved : AuthoringProductionKind.Ambiguous, declaration: null, candidates };\n }\n\n isOperation(production: ProducesSyntax, slice: SliceSyntax): boolean {\n return production.inlineOperation != null || this.resolve(production.event, slice).kind === AuthoringProductionKind.Operation;\n }\n\n isEventProduction(production: ProducesSyntax, slice: SliceSyntax): boolean {\n if (production.inlineOperation != null) return false;\n const resolution = this.resolve(production.event, slice);\n return resolution.kind !== AuthoringProductionKind.Operation && !(resolution.kind === AuthoringProductionKind.Ambiguous && resolution.candidates.some(candidate => candidate.kind === AuthoringProductionKind.Operation));\n }\n\n private candidates(reference: string, from: readonly string[]): AuthoringProductionDeclaration[] {\n const segments = reference.split('.').filter(segment => segment.length > 0);\n if (segments.length === 0) return [];\n const named = this.byName.get(segments.at(-1)!) ?? [];\n const qualifiers = segments.slice(0, -1);\n if (qualifiers.length > 0) return named.filter(entry => qualifiers.length <= entry.scope.length && qualifiers.every((value, index) => entry.scope[entry.scope.length - qualifiers.length + index] === value));\n for (let depth = from.length; depth >= 0; depth--) {\n const visible = named.filter(entry => depth <= entry.scope.length && from.slice(0, depth).every((value, index) => entry.scope[index] === value));\n if (visible.length > 0) return visible;\n }\n return [];\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";const e=`events`,t=`from`;function isEventsSource(t){return t.syntaxKind===e}function consumedEvents(e){return isEventsSource(e)?e.settings.filter(e=>e.name===t):[]}export{consumedEvents,e as eventsSourceKind,t as fromSetting,isEventsSource};
2
+ //# sourceMappingURL=CaptureEventsSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CaptureEventsSource.js","names":["eventsSourceKind","fromSetting","source","setting"],"sources":["../../../../../../Compiler/Syntax/CaptureEventsSource.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { CaptureSourceSettingSyntax, CaptureSourceSyntax } from './Captures';\n\n/** The source kind of a capture that reads the public events of another application. */\nexport const eventsSourceKind = 'events';\n\n/** The setting that names one consumed event. */\nexport const fromSetting = 'from';\n\n/** Gets whether a capture source is `source events`. */\nexport function isEventsSource(source: CaptureSourceSyntax): boolean {\n return source.syntaxKind === eventsSourceKind;\n}\n\n/** Gets the `from <Event>` settings of an events source, in source order; empty for any other source. */\nexport function consumedEvents(source: CaptureSourceSyntax): readonly CaptureSourceSettingSyntax[] {\n return isEventsSource(source) ? source.settings.filter(setting => setting.name === fromSetting) : [];\n}\n"],"mappings":"qDAMA,MAAaA,EAAmB,SAGnBC,EAAc,OAG3B,SAAgB,eAAe,EAAsC,CACjE,OAAOC,EAAO,aAAeF,CACjC,CAGA,SAAgB,eAAe,EAAoE,CAC/F,OAAO,eAAeE,CAAM,EAAIA,EAAO,SAAS,OAAO,GAAWC,EAAQ,OAASF,CAAW,EAAI,CAAC,CACvG"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";const e=/* @__PURE__ */ new WeakMap,dependencySourcesOf=t=>e.get(t)??{};export{e as dependencySources,dependencySourcesOf};
2
+ //# sourceMappingURL=DependencySources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DependencySources.js","names":["dependencySources","node"],"sources":["../../../../../../Compiler/Syntax/DependencySources.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { ConcurrencySyntax } from './ConcurrencySyntax';\nimport { ReadsSyntax } from './ReadsSyntax';\nimport { ReducerSyntax } from './ReducerSyntax';\nimport { TriggerDataSyntax } from './TriggerDataSyntax';\nimport { SyntaxNode } from './SyntaxNode';\n\nexport type { ConcurrencySyntax } from './ConcurrencySyntax';\nexport type { ReadsSyntax } from './ReadsSyntax';\nexport type { ReducerSyntax } from './ReducerSyntax';\nexport type { ReducerRuleSyntax } from './ReducerRuleSyntax';\nexport type { FormSyntax } from './FormSyntax';\nexport type { FormPopulateViaQuerySyntax } from './FormPopulateViaQuerySyntax';\nexport type { TriggerDataSyntax } from './TriggerDataSyntax';\n\nexport interface DependencySources {\n readonly implementation?: boolean;\n readonly data?: readonly TriggerDataSyntax[];\n readonly reads?: readonly ReadsSyntax[];\n readonly concurrency?: ConcurrencySyntax | null;\n readonly reducers?: readonly ReducerSyntax[];\n}\n\n// These formerly opaque constructs are captured only for explicit syntax references, not realization.\n// Keep their partial payloads outside the narrowed wire contract and existing walker/board consumers.\n// Nodes and member names follow C#; none of this metadata claims executable admission.\nexport const dependencySources = new WeakMap<SyntaxNode, DependencySources>();\nexport const dependencySourcesOf = (node: SyntaxNode): DependencySources => dependencySources.get(node) ?? {};\n"],"mappings":"qDA4BA,MAAaA,kBAAoB,IAAI,QACxB,oBAAuB,GAAwCA,EAAkB,IAAIC,CAAI,GAAK,CAAC"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";function eventDeclarations(e){return[...e.events,...e.commands.flatMap(e=>e.produces).flatMap(e=>e.inlineEvent===null?[]:[e.inlineEvent])]}export{eventDeclarations};
2
+ //# sourceMappingURL=EventDeclarations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventDeclarations.js","names":["slice","command","produced"],"sources":["../../../../../../Compiler/Syntax/EventDeclarations.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { EventSyntax } from './Declarations';\nimport { SliceSyntax } from './Structure';\n\n// An inline event belongs to its slice, not its command. Keep the authored tree intact.\nexport function eventDeclarations(slice: SliceSyntax): readonly EventSyntax[] {\n return [...slice.events, ...slice.commands.flatMap(command => command.produces).flatMap(produced => produced.inlineEvent === null ? [] : [produced.inlineEvent])];\n}\n"],"mappings":"qDAOA,SAAgB,kBAAkB,EAA4C,CAC1E,MAAO,CAAC,GAAGA,EAAM,OAAQ,GAAGA,EAAM,SAAS,QAAQ,GAAWC,EAAQ,QAAQ,CAAC,CAAC,QAAQ,GAAYC,EAAS,cAAgB,KAAO,CAAC,EAAI,CAACA,EAAS,WAAW,CAAC,CAAC,CACpK"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";var EventSourceCatalog=class{sources=/* @__PURE__ */ new Map;otherNames;constructor(e){for(let t of e.eventSources??[])this.sources.set(t.name,[...this.sources.get(t.name)??[],t]);this.otherNames=new Set([...e.concepts,...e.types].map(e=>e.name))}resolve(e,t){let n=this.sources.get(e)??[],r=n.flatMap(e=>e.streams).filter(e=>e.name===t),i;return i=n.length===0?this.otherNames.has(e)?`wrongKind`:`notFound`:n.length>1||r.length>1?`ambiguous`:r.length===1?`unique`:`notFound`,{kind:i,sources:n,streams:r}}};export{EventSourceCatalog};
2
+ //# sourceMappingURL=EventSourceCatalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventSourceCatalog.js","names":["source","application","type","sources","streams","parent","candidate","stream","kind"],"sources":["../../../../../../Compiler/Syntax/EventSourceCatalog.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { EventSourceSyntax, EventSourceResolution, EventSourceResolutionKind } from './EventSources';\nimport { ApplicationSyntax } from './Structure';\n\nexport { type EventSourceResolution, EventSourceResolutionKind } from './EventSources';\n// Exact application/source/local-name keys only. Paths identify physical occurrences, not semantic ids.\nexport class EventSourceCatalog {\n private readonly sources = new Map<string, EventSourceSyntax[]>();\n private readonly otherNames: ReadonlySet<string>;\n\n constructor(application: ApplicationSyntax) {\n for (const source of application.eventSources ?? []) this.sources.set(source.name, [...this.sources.get(source.name) ?? [], source]);\n this.otherNames = new Set([...application.concepts, ...application.types].map(type => type.name));\n }\n\n resolve(source: string, stream: string): EventSourceResolution {\n const sources = this.sources.get(source) ?? [];\n const streams = sources.flatMap(parent => parent.streams).filter(candidate => candidate.name === stream);\n let kind: EventSourceResolutionKind;\n if (sources.length === 0) kind = this.otherNames.has(source) ? EventSourceResolutionKind.WrongKind : EventSourceResolutionKind.NotFound;\n else if (sources.length > 1 || streams.length > 1) kind = EventSourceResolutionKind.Ambiguous;\n else kind = streams.length === 1 ? EventSourceResolutionKind.Unique : EventSourceResolutionKind.NotFound;\n return { kind, sources, streams };\n }\n}\n"],"mappings":"qDAQA,IAAa,mBAAb,KAAgC,CAC5B,wBAA2B,IAAI,IAC/B,WAEA,YAAY,EAAgC,CACxC,IAAK,IAAMA,KAAUC,EAAY,cAAgB,CAAC,EAAG,KAAK,QAAQ,IAAID,EAAO,KAAM,CAAC,GAAG,KAAK,QAAQ,IAAIA,EAAO,IAAI,GAAK,CAAC,EAAGA,CAAM,CAAC,EACnI,KAAK,WAAa,IAAI,IAAI,CAAC,GAAGC,EAAY,SAAU,GAAGA,EAAY,KAAK,CAAC,CAAC,IAAI,GAAQC,EAAK,IAAI,CAAC,CACpG,CAEA,QAAQ,EAAgB,EAAuC,CAC3D,IAAMC,EAAU,KAAK,QAAQ,IAAIH,CAAM,GAAK,CAAC,EACvCI,EAAUD,EAAQ,QAAQ,GAAUE,EAAO,OAAO,CAAC,CAAC,OAAO,GAAaC,EAAU,OAASC,CAAM,EACnGC,EAIJ,MAHA,CAEKA,EAFDL,EAAQ,SAAW,EAAU,KAAK,WAAW,IAAIH,CAAM,EAAA,YAAA,WAClDG,EAAQ,OAAS,GAAKC,EAAQ,OAAS,EAAG,YACvCA,EAAQ,SAAW,EAAA,SAAA,WACxB,CAAE,OAAM,UAAS,SAAQ,CACpC,CACJ"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";var EventSourceReadConfidence=class{complete;sources=/* @__PURE__ */ new Map;constructor(e,t){this.complete=t;for(let t of e)this.sources.set(t.source.name,[...this.sources.get(t.source.name)??[],t])}static hasUnknownExtent(e){return e.some(e=>e.severity===`error`&&[`PLAY0001`,`PLAY0503`,`PLAY0164`].includes(e.code))}resolve(e,t){let n=this.sources.get(e)??[],r=t===void 0?[]:n.flatMap(e=>e.source.streams).filter(e=>e.name===t),i=n.length>1||r.length>1,a=!this.complete||n.some(e=>!e.placementResolved),o=i?`ambiguous`:a?`incomplete`:n.length===1&&(t===void 0||r.length===1)?`unique`:`notFound`,s=[];return n.length>1&&s.push(`Multiple physical parent sources claim the exact name.`),r.length>1&&s.push(`Multiple physical streams claim the exact parent and local name.`),n.some(e=>!e.placementResolved)&&s.push(`A physical parent has unresolved import placement.`),this.complete||s.push(`Physical source extent or placement is incomplete; missing declarations cannot be excluded.`),{state:o,sources:n.map(e=>e.source),streams:r,reasons:s}}};export{EventSourceReadConfidence};
2
+ //# sourceMappingURL=EventSourceReadConfidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventSourceReadConfidence.js","names":["complete","entry","sources","diagnostics","diagnostic","parents","source","streams","stream","parent","child","ambiguous","incomplete","state","reasons"],"sources":["../../../../../../Compiler/Syntax/EventSourceReadConfidence.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Diagnostic } from '../Diagnostics/Diagnostic';\nimport { EventSourceSyntax } from './EventSources';\n\n// Physical source-only read confidence; it never grants editing or executable identity.\nexport class EventSourceReadConfidence {\n private readonly sources = new Map<string, { source: EventSourceSyntax; placementResolved: boolean }[]>();\n\n constructor(sources: readonly { source: EventSourceSyntax; placementResolved: boolean }[], private readonly complete: boolean) {\n for (const entry of sources) this.sources.set(entry.source.name, [...this.sources.get(entry.source.name) ?? [], entry]);\n }\n\n static hasUnknownExtent(diagnostics: readonly Diagnostic[]) {\n return diagnostics.some(diagnostic => diagnostic.severity === 'error' && ['PLAY0001', 'PLAY0503', 'PLAY0164'].includes(diagnostic.code));\n }\n\n resolve(source: string, stream?: string) {\n const parents = this.sources.get(source) ?? [];\n const streams = stream === undefined ? [] : parents.flatMap(parent => parent.source.streams).filter(child => child.name === stream);\n const ambiguous = parents.length > 1 || streams.length > 1;\n const incomplete = !this.complete || parents.some(parent => !parent.placementResolved);\n const state = ambiguous ? 'ambiguous' : incomplete ? 'incomplete' : parents.length === 1 && (stream === undefined || streams.length === 1) ? 'unique' : 'notFound';\n const reasons: string[] = [];\n if (parents.length > 1) reasons.push('Multiple physical parent sources claim the exact name.');\n if (streams.length > 1) reasons.push('Multiple physical streams claim the exact parent and local name.');\n if (parents.some(parent => !parent.placementResolved)) reasons.push('A physical parent has unresolved import placement.');\n if (!this.complete) reasons.push('Physical source extent or placement is incomplete; missing declarations cannot be excluded.');\n return { state, sources: parents.map(parent => parent.source), streams, reasons };\n }\n}\n"],"mappings":"qDAOA,IAAa,0BAAb,KAAuC,CAGyE,SAF5G,wBAA2B,IAAI,IAE/B,YAAY,EAA+E,EAAoC,CAAnB,KAAA,SAAAA,EACxG,IAAK,IAAMC,KAASC,EAAS,KAAK,QAAQ,IAAID,EAAM,OAAO,KAAM,CAAC,GAAG,KAAK,QAAQ,IAAIA,EAAM,OAAO,IAAI,GAAK,CAAC,EAAGA,CAAK,CAAC,CAC1H,CAEA,OAAO,iBAAiB,EAAoC,CACxD,OAAOE,EAAY,KAAK,GAAcC,EAAW,WAAa,SAAW,CAAC,WAAY,WAAY,UAAU,CAAC,CAAC,SAASA,EAAW,IAAI,CAAC,CAC3I,CAEA,QAAQ,EAAgB,EAAiB,CACrC,IAAMC,EAAU,KAAK,QAAQ,IAAIC,CAAM,GAAK,CAAC,EACvCC,EAAUC,IAAW,IAAA,GAAY,CAAC,EAAIH,EAAQ,QAAQ,GAAUI,EAAO,OAAO,OAAO,CAAC,CAAC,OAAO,GAASC,EAAM,OAASF,CAAM,EAC5HG,EAAYN,EAAQ,OAAS,GAAKE,EAAQ,OAAS,EACnDK,EAAa,CAAC,KAAK,UAAYP,EAAQ,KAAK,GAAU,CAACI,EAAO,iBAAiB,EAC/EI,EAAQF,EAAY,YAAcC,EAAa,aAAeP,EAAQ,SAAW,IAAMG,IAAW,IAAA,IAAaD,EAAQ,SAAW,GAAK,SAAW,WAClJO,EAAoB,CAAC,EAK3B,OAJIT,EAAQ,OAAS,GAAGS,EAAQ,KAAK,wDAAwD,EACzFP,EAAQ,OAAS,GAAGO,EAAQ,KAAK,kEAAkE,EACnGT,EAAQ,KAAK,GAAU,CAACI,EAAO,iBAAiB,GAAGK,EAAQ,KAAK,oDAAoD,EACnH,KAAK,UAAUA,EAAQ,KAAK,6FAA6F,EACvH,CAAE,QAAO,QAAST,EAAQ,IAAI,GAAUI,EAAO,MAAM,EAAG,UAAS,SAAQ,CACpF,CACJ"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";import{parseExactNumber as e}from"./ExactNumber.js";var InvalidExactNumber=class extends Error{};function canonicalExactText(t){if(t.literalType!==`ExactNumber`||typeof t.value!=`string`||e(t.value)?.value!==t.value)throw new InvalidExactNumber(`Expected a canonical, bounded ExactNumber value.`);return t.value}function exactIsIntegral(e){return!canonicalExactText(e).includes(`.`)}export{InvalidExactNumber,canonicalExactText,exactIsIntegral};
2
+ //# sourceMappingURL=ExactMathFacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExactMathFacts.js","names":["number","parseExactNumber"],"sources":["../../../../../../Compiler/Syntax/ExactMathFacts.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { ExactNumber, parseExactNumber } from './ExactNumber';\n\n/** A malformed or noncanonical explicitly typed exact numeric value. */\nexport class InvalidExactNumber extends Error {}\n\n/** Validates typed values again at programmatic boundaries; readonly interfaces alone are not admission. */\nexport function canonicalExactText(number: ExactNumber): string {\n if (number.literalType !== 'ExactNumber' || typeof number.value !== 'string'\n || parseExactNumber(number.value)?.value !== number.value) {\n throw new InvalidExactNumber('Expected a canonical, bounded ExactNumber value.');\n }\n return number.value;\n}\n\nexport function exactEqual(left: ExactNumber, right: ExactNumber): boolean {\n return canonicalExactText(left) === canonicalExactText(right);\n}\n\nexport function exactIsIntegral(number: ExactNumber): boolean {\n return !canonicalExactText(number).includes('.');\n}\n\n/** Compares bounded canonical decimal strings without JavaScript numeric conversion. */\nexport function exactCompare(left: ExactNumber, right: ExactNumber): number {\n const leftText = canonicalExactText(left);\n const rightText = canonicalExactText(right);\n if (leftText === rightText) return 0;\n const leftNegative = leftText.startsWith('-');\n const rightNegative = rightText.startsWith('-');\n if (leftNegative !== rightNegative) return leftNegative ? -1 : 1;\n const [leftInteger, leftFraction = ''] = (leftNegative ? leftText.substring(1) : leftText).split('.');\n const [rightInteger, rightFraction = ''] = (rightNegative ? rightText.substring(1) : rightText).split('.');\n const direction = leftNegative ? -1 : 1;\n if (leftInteger.length !== rightInteger.length) return (leftInteger.length < rightInteger.length ? -1 : 1) * direction;\n if (leftInteger !== rightInteger) return (leftInteger < rightInteger ? -1 : 1) * direction;\n const length = Math.max(leftFraction.length, rightFraction.length);\n return (leftFraction.padEnd(length, '0') < rightFraction.padEnd(length, '0') ? -1 : 1) * direction;\n}\n"],"mappings":"yGAMA,IAAa,mBAAb,cAAwC,KAAM,CAAC,EAG/C,SAAgB,mBAAmB,EAA6B,CAC5D,GAAIA,EAAO,cAAgB,eAAiB,OAAOA,EAAO,OAAU,UAC7DC,EAAiBD,EAAO,KAAK,CAAC,EAAE,QAAUA,EAAO,MACpD,MAAM,IAAI,mBAAmB,kDAAkD,EAEnF,OAAOA,EAAO,KAClB,CAMA,SAAgB,gBAAgB,EAA8B,CAC1D,MAAO,CAAC,mBAAmBA,CAAM,CAAC,CAAC,SAAS,GAAG,CACnD"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";function parseExactNumber(e){let t=scan(e);if(t===void 0)return;let n=t.integer+t.fraction,r=0;for(;r<n.length&&n[r]===`0`;)r++;if(r===n.length)return Object.freeze({literalType:`ExactNumber`,value:`0`});let i=n.length;for(;n[i-1]===`0`;)i--;let a=t.fraction.length-t.exponent-(n.length-i),o=a<0?-a:0;if(a>28||i-r+o>29)return;let s=n.substring(r,i)+`0`.repeat(o);if(s.length===29&&s>`79228162514264337593543950335`)return;let c=Math.max(0,a),l=c===0?s:s.length>c?`${s.substring(0,s.length-c)}.${s.substring(s.length-c)}`:`0.${`0`.repeat(c-s.length)}${s}`;return Object.freeze({literalType:`ExactNumber`,value:(t.negative?`-`:``)+l})}function isExactNumberToken(e){return scan(e)!==void 0}function scan(e){let t=e.startsWith(`-`),n=+!!t,r=n;for(;r<e.length&&isDigit(e[r]);)r++;if(r===n)return;let i=e.substring(n,r),a=``;if(e[r]===`.`){let t=++r;for(;r<e.length&&isDigit(e[r]);)r++;if(r===t)return;a=e.substring(t,r)}let o=0;if(e[r]===`e`||e[r]===`E`){r++;let t=e[r]===`-`;(e[r]===`+`||e[r]===`-`)&&r++;let n=r,i=e.length+29;for(;r<e.length&&isDigit(e[r]);)o=Math.min(i,o*10+e.charCodeAt(r++)-48);if(r===n)return;t&&(o=-o)}return r===e.length?{negative:t,integer:i,fraction:a,exponent:o}:void 0}function isDigit(e){return e>=`0`&&e<=`9`}export{isExactNumberToken,parseExactNumber};
2
+ //# sourceMappingURL=ExactNumber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExactNumber.js","names":["scanned","text","digits","first","last","scale","appendedZeros","coefficient","normalizedScale","fixedPoint","negative","integerStart","position","integer","fraction","fractionStart","exponent","exponentNegative","exponentStart","limit","value"],"sources":["../../../../../../Compiler/Syntax/ExactNumber.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n/** A lossless typed literal slot. The value is canonical fixed-point text, never a JavaScript number. */\nexport interface ExactNumber {\n readonly literalType: 'ExactNumber';\n readonly value: string;\n}\n\nconst maximumCoefficient = '79228162514264337593543950335';\n\ninterface ScannedNumber {\n readonly negative: boolean;\n readonly integer: string;\n readonly fraction: string;\n readonly exponent: number;\n}\n\n/** Reads a complete ASCII token in the normalized Decimal domain, without rounding or underflow. */\nexport function parseExactNumber(text: string): ExactNumber | undefined {\n const scanned = scan(text);\n if (scanned === undefined) return undefined;\n const digits = scanned.integer + scanned.fraction;\n let first = 0;\n while (first < digits.length && digits[first] === '0') first++;\n if (first === digits.length) return Object.freeze({ literalType: 'ExactNumber', value: '0' });\n let last = digits.length;\n while (digits[last - 1] === '0') last--;\n const scale = scanned.fraction.length - scanned.exponent - (digits.length - last);\n const appendedZeros = scale < 0 ? -scale : 0;\n if (scale > 28 || last - first + appendedZeros > maximumCoefficient.length) return undefined;\n // Only the bounded coefficient is materialized; the authored exponent never determines allocation.\n const coefficient = digits.substring(first, last) + '0'.repeat(appendedZeros);\n if (coefficient.length === maximumCoefficient.length && coefficient > maximumCoefficient) return undefined;\n const normalizedScale = Math.max(0, scale);\n const fixedPoint = normalizedScale === 0 ? coefficient\n : coefficient.length > normalizedScale\n ? `${coefficient.substring(0, coefficient.length - normalizedScale)}.${coefficient.substring(coefficient.length - normalizedScale)}`\n : `0.${'0'.repeat(normalizedScale - coefficient.length)}${coefficient}`;\n return Object.freeze({ literalType: 'ExactNumber', value: (scanned.negative ? '-' : '') + fixedPoint });\n}\n\n/** Recognizes the complete scalar grammar independently of representability. */\nexport function isExactNumberToken(text: string): boolean {\n return scan(text) !== undefined;\n}\n\nfunction scan(text: string): ScannedNumber | undefined {\n const negative = text.startsWith('-');\n const integerStart = negative ? 1 : 0;\n let position = integerStart;\n while (position < text.length && isDigit(text[position])) position++;\n if (position === integerStart) return undefined;\n const integer = text.substring(integerStart, position);\n let fraction = '';\n if (text[position] === '.') {\n const fractionStart = ++position;\n while (position < text.length && isDigit(text[position])) position++;\n if (position === fractionStart) return undefined;\n fraction = text.substring(fractionStart, position);\n }\n let exponent = 0;\n if (text[position] === 'e' || text[position] === 'E') {\n position++;\n const exponentNegative = text[position] === '-';\n if (text[position] === '+' || text[position] === '-') position++;\n const exponentStart = position;\n // Counts derived from this input cannot cancel an exponent beyond this bound.\n const limit = text.length + 29;\n while (position < text.length && isDigit(text[position])) {\n exponent = Math.min(limit, exponent * 10 + text.charCodeAt(position++) - 48);\n }\n if (position === exponentStart) return undefined;\n if (exponentNegative) exponent = -exponent;\n }\n return position === text.length ? { negative, integer, fraction, exponent } : undefined;\n}\n\nfunction isDigit(value: string): boolean {\n return value >= '0' && value <= '9';\n}\n"],"mappings":"qDAmBA,SAAgB,iBAAiB,EAAuC,CACpE,IAAMA,EAAU,KAAKC,CAAI,EACzB,GAAID,IAAY,IAAA,GAAW,OAC3B,IAAME,EAASF,EAAQ,QAAUA,EAAQ,SACrCG,EAAQ,EACZ,KAAOA,EAAQD,EAAO,QAAUA,EAAOC,KAAW,KAAK,IACvD,GAAIA,IAAUD,EAAO,OAAQ,OAAO,OAAO,OAAO,CAAE,YAAa,cAAe,MAAO,GAAI,CAAC,EAC5F,IAAIE,EAAOF,EAAO,OAClB,KAAOA,EAAOE,EAAO,KAAO,KAAK,IACjC,IAAMC,EAAQL,EAAQ,SAAS,OAASA,EAAQ,UAAYE,EAAO,OAASE,GACtEE,EAAgBD,EAAQ,EAAI,CAACA,EAAQ,EAC3C,GAAIA,EAAQ,IAAMD,EAAOD,EAAQG,EAAgB,GAA2B,OAE5E,IAAMC,EAAcL,EAAO,UAAUC,EAAOC,CAAI,EAAI,IAAI,OAAOE,CAAa,EAC5E,GAAIC,EAAY,SAAW,IAA6BA,EAAc,gCAAoB,OAC1F,IAAMC,EAAkB,KAAK,IAAI,EAAGH,CAAK,EACnCI,EAAaD,IAAoB,EAAID,EACrCA,EAAY,OAASC,EACjB,GAAGD,EAAY,UAAU,EAAGA,EAAY,OAASC,CAAe,EAAE,GAAGD,EAAY,UAAUA,EAAY,OAASC,CAAe,IAC/H,KAAK,IAAI,OAAOA,EAAkBD,EAAY,MAAM,IAAIA,IAClE,OAAO,OAAO,OAAO,CAAE,YAAa,cAAe,OAAQP,EAAQ,SAAW,IAAM,IAAMS,CAAW,CAAC,CAC1G,CAGA,SAAgB,mBAAmB,EAAuB,CACtD,OAAO,KAAKR,CAAI,IAAM,IAAA,EAC1B,CAEA,SAAS,KAAK,EAAyC,CACnD,IAAMS,EAAWT,EAAK,WAAW,GAAG,EAC9BU,EAAe,KACjBC,EAAWD,EACf,KAAOC,EAAWX,EAAK,QAAU,QAAQA,EAAKW,EAAS,GAAG,IAC1D,GAAIA,IAAaD,EAAc,OAC/B,IAAME,EAAUZ,EAAK,UAAUU,EAAcC,CAAQ,EACjDE,EAAW,GACf,GAAIb,EAAKW,KAAc,IAAK,CACxB,IAAMG,EAAgB,EAAEH,EACxB,KAAOA,EAAWX,EAAK,QAAU,QAAQA,EAAKW,EAAS,GAAG,IAC1D,GAAIA,IAAaG,EAAe,OAChC,EAAWd,EAAK,UAAUc,EAAeH,CAAQ,CACrD,CACA,IAAII,EAAW,EACf,GAAIf,EAAKW,KAAc,KAAOX,EAAKW,KAAc,IAAK,CAClD,IACA,IAAMK,EAAmBhB,EAAKW,KAAc,KACxCX,EAAKW,KAAc,KAAOX,EAAKW,KAAc,MAAK,IACtD,IAAMM,EAAgBN,EAEhBO,EAAQlB,EAAK,OAAS,GAC5B,KAAOW,EAAWX,EAAK,QAAU,QAAQA,EAAKW,EAAS,GACnD,EAAW,KAAK,IAAIO,EAAOH,EAAW,GAAKf,EAAK,WAAW,GAAU,EAAI,EAAE,EAE/E,GAAIW,IAAaM,EAAe,OAC5BD,IAAkB,EAAW,CAACD,EACtC,CACA,OAAOJ,IAAaX,EAAK,OAAS,CAAE,WAAU,UAAS,WAAU,UAAS,EAAI,IAAA,EAClF,CAEA,SAAS,QAAQ,EAAwB,CACrC,OAAOmB,GAAS,KAAOA,GAAS,GACpC"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";var InvalidSyntaxJson=class extends Error{};export{InvalidSyntaxJson};
2
+ //# sourceMappingURL=InvalidSyntaxJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvalidSyntaxJson.js","names":[],"sources":["../../../../../../Compiler/Syntax/InvalidSyntaxJson.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nexport class InvalidSyntaxJson extends Error {}\n"],"mappings":"qDAGA,IAAa,kBAAb,cAAuC,KAAM,CAAC"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";const e=Object.fromEntries(`ApplicationSyntax:policies,seeds;ConceptSyntax:validations;DeclarativeValidateSyntax:requirements;CodeValidateSyntax:code;CaptureAppendSyntax:when,mappings,tags;CaptureChildrenSyntax:map;CaptureNestedSyntax:map;CaptureSyntax:map;EventSpecSyntax:key;FromSyntax:key,parentKey;ChildrenSyntax:identifiedBy;RemoveWithSyntax:key,parentKey;RemoveViaJoinSyntax:key;ProjectionEntersOnSyntax:key;ProjectionSyntax:key;QueryParameterSyntax:source;ProducesSyntax:when;InvokesSyntax:mappings;ReactionSyntax:where;SpecificationSyntax:thenAbsentReadModels,thenQueries`.split(`;`).map(e=>e.split(`:`)).map(([e,t])=>[e,new Set(t.split(`,`))])),t=/^(?:Set|Clear|Increment|Decrement|Count|Add|Subtract)MappingSyntax$/;function isExactOnlyMember(n,r){return e[n]?.has(r)===!0||t.test(n)&&(r===`source`||r===`value`)}function isLegacyOmittedMember(e,t){return e.kind===`SpecificationSyntax`&&t===`givenCaller`?e.givenCaller==null:isExactOnlyMember(e.kind,t)||e.kind===`ValidationRuleSyntax`&&e.implementation==null&&(t===`code`||t===`file`||t===`implementation`)}export{isExactOnlyMember,isLegacyOmittedMember};
2
+ //# sourceMappingURL=LegacyWireProjection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LegacyWireProjection.js","names":["additions","entry","kind","members","mappingKind","member","node"],"sources":["../../../../../../Compiler/Syntax/LegacyWireProjection.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { ValidationRuleSyntax } from './Commands';\nimport { SpecificationSyntax } from './Specifications';\nimport { SyntaxNode } from './SyntaxNode';\n\n// The members the syntax tree gained with exact numeric source. The internal tree keeps them for every\n// document, but an unmarked (Legacy) document writes the wire form it always had, so these are left out of it.\n// Exact documents write the complete expanded form.\nconst additions: Readonly<Record<string, ReadonlySet<string>>> = Object.fromEntries(\n ('ApplicationSyntax:policies,seeds;ConceptSyntax:validations;DeclarativeValidateSyntax:requirements;CodeValidateSyntax:code;' +\n 'CaptureAppendSyntax:when,mappings,tags;CaptureChildrenSyntax:map;CaptureNestedSyntax:map;CaptureSyntax:map;EventSpecSyntax:key;' +\n 'FromSyntax:key,parentKey;ChildrenSyntax:identifiedBy;RemoveWithSyntax:key,parentKey;RemoveViaJoinSyntax:key;ProjectionEntersOnSyntax:key;' +\n 'ProjectionSyntax:key;QueryParameterSyntax:source;ProducesSyntax:when;InvokesSyntax:mappings;ReactionSyntax:where;' +\n 'SpecificationSyntax:thenAbsentReadModels,thenQueries').split(';').map(entry => entry.split(':')).map(([kind, members]) => [kind, new Set(members.split(','))]));\n\n// Every projection mapping kind, but not the always-modeled PropertyMappingSyntax.\nconst mappingKind = /^(?:Set|Clear|Increment|Decrement|Count|Add|Subtract)MappingSyntax$/;\n\nexport function isExactOnlyMember(kind: string, member: string): boolean {\n return additions[kind]?.has(member) === true || (mappingKind.test(kind) && (member === 'source' || member === 'value'));\n}\n\nexport function isLegacyOmittedMember(node: SyntaxNode, member: string): boolean {\n // Legacy never modeled unwrapped rule payloads. Only an explicit wrapper opts into rule intent on wire.\n // A caller is only written when the specification states one; Legacy never wrote the member when it was absent.\n if (node.kind === 'SpecificationSyntax' && member === 'givenCaller') return (node as SpecificationSyntax).givenCaller == null;\n return isExactOnlyMember(node.kind, member) || (node.kind === 'ValidationRuleSyntax' && (node as ValidationRuleSyntax).implementation == null && (member === 'code' || member === 'file' || member === 'implementation'));\n}\n"],"mappings":"qDAUA,MAAMA,EAA2D,OAAO,YACnE,0iBAIuD,MAAM,GAAG,CAAC,CAAC,IAAI,GAASC,EAAM,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAACC,EAAMC,KAAa,CAACD,EAAM,IAAI,IAAIC,EAAQ,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAG7JC,EAAc,sEAEpB,SAAgB,kBAAkB,EAAc,EAAyB,CACrE,OAAOJ,EAAUE,EAAK,EAAE,IAAIG,CAAM,IAAM,IAASD,EAAY,KAAKF,CAAI,IAAMG,IAAW,UAAYA,IAAW,QAClH,CAEA,SAAgB,sBAAsB,EAAkB,EAAyB,CAI7E,OADIC,EAAK,OAAS,uBAAyBD,IAAW,cAAuBC,EAA6B,aAAe,KAClH,kBAAkBA,EAAK,KAAMD,CAAM,GAAMC,EAAK,OAAS,wBAA2BA,EAA8B,gBAAkB,OAASD,IAAW,QAAUA,IAAW,QAAUA,IAAW,iBAC3M"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";function operationDeclarations(e){return[...e.operations??[],...e.commands.flatMap(e=>e.produces).flatMap(e=>e.inlineOperation==null?[]:[e.inlineOperation])]}export{operationDeclarations};
2
+ //# sourceMappingURL=Operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Operations.js","names":["slice","command","production"],"sources":["../../../../../../Compiler/Syntax/Operations.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { OperationSyntax } from './OperationSyntax';\nimport { SliceSyntax } from './Structure';\n\nexport type { SystemSyntax } from './SystemSyntax';\nexport type { OperationSyntax } from './OperationSyntax';\nexport type { OperationPhaseSyntax } from './OperationPhaseSyntax';\n\nexport function operationDeclarations(slice: SliceSyntax): readonly OperationSyntax[] {\n return [...slice.operations ?? [], ...slice.commands.flatMap(command => command.produces).flatMap(production => production.inlineOperation == null ? [] : [production.inlineOperation])];\n}\n"],"mappings":"qDAUA,SAAgB,sBAAsB,EAAgD,CAClF,MAAO,CAAC,GAAGA,EAAM,YAAc,CAAC,EAAG,GAAGA,EAAM,SAAS,QAAQ,GAAWC,EAAQ,QAAQ,CAAC,CAAC,QAAQ,GAAcC,EAAW,iBAAmB,KAAO,CAAC,EAAI,CAACA,EAAW,eAAe,CAAC,CAAC,CAC3L"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";const ordinal=(e,t)=>e<t?-1:+(e>t),claimTypeKey=e=>Array.from(e,e=>{let t=e.toUpperCase();return t.length===e.length&&e!==`ı`&&e!==`ſ`?t:e}).join(``);function synthesizePersonaCaller(e,t){let n=[],r=[],refused=e=>({caller:null,contributions:n,refusal:e});if(e.policies.length===0)return refused({policy:null,reason:`noPolicies`,location:e.location});for(let n of e.policies){let i=(t.policies??[]).find(e=>e.name===n);if(!i)return refused({policy:n,reason:`unresolvedPolicy`,location:e.location});if(i.condition===null||i.code!==null||i.file!==null)return refused({policy:n,reason:`opaqueImplementation`,location:i.location});let a=negation(i.condition);if(a)return refused({policy:n,reason:`negation`,location:a.location});r.push(i)}for(let e of r){let t=required(e.condition,e.name,n);if(t)return refused(t)}for(let e of r){let t=complete(e.condition,e.name,n);if(t)return refused(t)}let i=[...new Set(n.filter(e=>e.kind===`role`).map(e=>e.value))].sort(ordinal),a=[];for(let e of n.filter(e=>e.kind===`claim`))a.some(t=>claimTypeKey(t.type)===claimTypeKey(e.type)&&t.value===e.value)||a.push({kind:`SpecificationCallerClaimSyntax`,type:e.type,value:e.value,location:e.location});return a.sort((e,t)=>ordinal(claimTypeKey(e.type),claimTypeKey(t.type))||ordinal(e.value,t.value)),{caller:{kind:`SpecificationCallerSyntax`,authenticated:!0,roles:i,claims:a,location:e.location},contributions:n,refusal:null}}function negation(e){return e.kind===`NotPolicyConditionSyntax`?e:e.kind===`LogicalPolicyConditionSyntax`?negation(e.left)??negation(e.right):null}function atom(e,t,n){switch(e.kind){case`AuthenticatedConditionSyntax`:return n.push({kind:`authenticated`,value:`true`,type:null,policy:t,location:e.location}),null;case`RoleConditionSyntax`:return n.push({kind:`role`,value:e.role,type:null,policy:t,location:e.location}),null;case`ClaimConditionSyntax`:if(claimTypeKey(e.claim)===claimTypeKey(`http://schemas.microsoft.com/ws/2008/06/identity/claims/role`))return{policy:t,reason:`roleClaim`,location:e.location};if(!e.matchesSubject&&e.matches?.kind===`LiteralExpressionSyntax`&&typeof e.matches.value==`string`)return n.push({kind:`claim`,value:e.matches.value,type:e.claim,policy:t,location:e.location}),null}return{policy:t,reason:`nonLiteralClaim`,location:e.location}}function required(e,t,n){return e.kind===`LogicalPolicyConditionSyntax`?e.operator===`Or`?null:required(e.left,t,n)??required(e.right,t,n):atom(e,t,n)}function satisfied(e,t){switch(e.kind){case`AuthenticatedConditionSyntax`:return!0;case`RoleConditionSyntax`:return t.some(t=>t.kind===`role`&&t.value===e.role);case`ClaimConditionSyntax`:{let n=e.matches;return!e.matchesSubject&&n?.kind===`LiteralExpressionSyntax`&&t.some(t=>t.kind===`claim`&&claimTypeKey(t.type)===claimTypeKey(e.claim)&&t.value===n.value)}case`LogicalPolicyConditionSyntax`:return e.operator===`And`?satisfied(e.left,t)&&satisfied(e.right,t):satisfied(e.left,t)||satisfied(e.right,t);default:return!1}}function complete(e,t,n){if(e.kind!==`LogicalPolicyConditionSyntax`)return satisfied(e,n)?null:atom(e,t,n);if(e.operator===`And`)return complete(e.left,t,n)??complete(e.right,t,n);if(satisfied(e,n))return null;let r=[...n],i=complete(e.left,t,r);if(i===null)return n.push(...r.slice(n.length)),null;let a=[...n];return complete(e.right,t,a)===null?(n.push(...a.slice(n.length)),null):i}export{synthesizePersonaCaller};
2
+ //# sourceMappingURL=PersonaCallers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PersonaCallers.js","names":["left","right","type","upper","character","contributions","policies","persona","name","policy","application","not","refusal","roles","atom","claims","claim","condition","values","target","first"],"sources":["../../../../../../Compiler/Syntax/PersonaCallers.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { PersonaSyntax } from './Authorization';\nimport { ApplicationSyntax } from './Structure';\nimport { PolicyConditionSyntax, PolicySyntax } from './Policies';\nimport { PersonaCallerContribution } from './PersonaCallerContribution';\nimport { PersonaCallerRefusal } from './PersonaCallerRefusal';\nimport { PersonaCallerResult } from './PersonaCallerResult';\nimport { SpecificationCallerClaimSyntax } from './Specifications';\n\nconst roleClaimType = 'http://schemas.microsoft.com/ws/2008/06/identity/claims/role';\nconst ordinal = (left: string, right: string): number => left < right ? -1 : left > right ? 1 : 0;\n// Ordinal casing never expands a character (for example sharp s into SS).\nconst claimTypeKey = (type: string): string => Array.from(type, character => {\n const upper = character.toUpperCase();\n return upper.length === character.length && character !== '\\u0131' && character !== '\\u017f' ? upper : character;\n}).join('');\n\nexport function synthesizePersonaCaller(persona: PersonaSyntax, application: ApplicationSyntax): PersonaCallerResult {\n const contributions: PersonaCallerContribution[] = [];\n const policies: PolicySyntax[] = [];\n const refused = (refusal: PersonaCallerRefusal): PersonaCallerResult => ({ caller: null, contributions, refusal });\n if (persona.policies.length === 0) return refused({ policy: null, reason: 'noPolicies', location: persona.location });\n for (const name of persona.policies) {\n const policy = (application.policies ?? []).find(policy => policy.name === name);\n if (!policy) return refused({ policy: name, reason: 'unresolvedPolicy', location: persona.location });\n if (policy.condition === null || policy.code !== null || policy.file !== null) return refused({ policy: name, reason: 'opaqueImplementation', location: policy.location });\n const not = negation(policy.condition);\n if (not) return refused({ policy: name, reason: 'negation', location: not.location });\n policies.push(policy);\n }\n for (const policy of policies) {\n const refusal = required(policy.condition!, policy.name, contributions);\n if (refusal) return refused(refusal);\n }\n for (const policy of policies) {\n const refusal = complete(policy.condition!, policy.name, contributions);\n if (refusal) return refused(refusal);\n }\n const roles = [...new Set(contributions.filter(atom => atom.kind === 'role').map(atom => atom.value))].sort(ordinal);\n const claims: SpecificationCallerClaimSyntax[] = [];\n for (const atom of contributions.filter(atom => atom.kind === 'claim')) {\n if (!claims.some(claim => claimTypeKey(claim.type) === claimTypeKey(atom.type!) && claim.value === atom.value)) {\n claims.push({ kind: 'SpecificationCallerClaimSyntax', type: atom.type!, value: atom.value, location: atom.location });\n }\n }\n claims.sort((left, right) => ordinal(claimTypeKey(left.type), claimTypeKey(right.type)) || ordinal(left.value, right.value));\n return { caller: { kind: 'SpecificationCallerSyntax', authenticated: true, roles, claims, location: persona.location }, contributions, refusal: null };\n}\n\nfunction negation(condition: PolicyConditionSyntax): PolicyConditionSyntax | null {\n return condition.kind === 'NotPolicyConditionSyntax' ? condition : condition.kind === 'LogicalPolicyConditionSyntax' ? negation(condition.left) ?? negation(condition.right) : null;\n}\n\nfunction atom(condition: PolicyConditionSyntax, policy: string, values: PersonaCallerContribution[]): PersonaCallerRefusal | null {\n switch (condition.kind) {\n case 'AuthenticatedConditionSyntax': values.push({ kind: 'authenticated', value: 'true', type: null, policy, location: condition.location }); return null;\n case 'RoleConditionSyntax': values.push({ kind: 'role', value: condition.role, type: null, policy, location: condition.location }); return null;\n case 'ClaimConditionSyntax':\n if (claimTypeKey(condition.claim) === claimTypeKey(roleClaimType)) return { policy, reason: 'roleClaim', location: condition.location };\n if (!condition.matchesSubject && condition.matches?.kind === 'LiteralExpressionSyntax' && typeof condition.matches.value === 'string') {\n values.push({ kind: 'claim', value: condition.matches.value, type: condition.claim, policy, location: condition.location }); return null;\n }\n }\n return { policy, reason: 'nonLiteralClaim', location: condition.location };\n}\n\nfunction required(condition: PolicyConditionSyntax, policy: string, values: PersonaCallerContribution[]): PersonaCallerRefusal | null {\n return condition.kind !== 'LogicalPolicyConditionSyntax' ? atom(condition, policy, values) : condition.operator === 'Or' ? null : required(condition.left, policy, values) ?? required(condition.right, policy, values);\n}\n\nfunction satisfied(condition: PolicyConditionSyntax, values: readonly PersonaCallerContribution[]): boolean {\n switch (condition.kind) {\n case 'AuthenticatedConditionSyntax': return true;\n case 'RoleConditionSyntax': return values.some(atom => atom.kind === 'role' && atom.value === condition.role);\n case 'ClaimConditionSyntax': {\n const target = condition.matches;\n return !condition.matchesSubject && target?.kind === 'LiteralExpressionSyntax' && values.some(atom => atom.kind === 'claim' && claimTypeKey(atom.type!) === claimTypeKey(condition.claim) && atom.value === target.value);\n }\n case 'LogicalPolicyConditionSyntax': return condition.operator === 'And' ? satisfied(condition.left, values) && satisfied(condition.right, values) : satisfied(condition.left, values) || satisfied(condition.right, values);\n default: return false;\n }\n}\n\nfunction complete(condition: PolicyConditionSyntax, policy: string, values: PersonaCallerContribution[]): PersonaCallerRefusal | null {\n if (condition.kind !== 'LogicalPolicyConditionSyntax') return satisfied(condition, values) ? null : atom(condition, policy, values);\n if (condition.operator === 'And') return complete(condition.left, policy, values) ?? complete(condition.right, policy, values);\n if (satisfied(condition, values)) return null;\n const left = [...values];\n const first = complete(condition.left, policy, left);\n if (first === null) { values.push(...left.slice(values.length)); return null; }\n const right = [...values];\n if (complete(condition.right, policy, right) !== null) return first;\n values.push(...right.slice(values.length));\n return null;\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";function eventProductions(e,t){return e.produces.filter(e=>e.inlineOperation==null&&(t===void 0||t.resolver.isEventProduction(e,t.slice)))}function requiresExplicitDestinations(e,t){let n=eventProductions(e,t),r=e.properties.find(e=>e.isIdentifier)?.name;return n.some(e=>e.for!==null&&(e.for.kind!==`PathExpressionSyntax`||e.for.path!==r))||n.some(e=>e.inlineEvent!==null&&e.for===null)&&n.some(e=>e.inlineEvent===null&&e.for===null)}function implicitDestination(e,t,n){let r=eventProductions(e,n);if(t.inlineOperation!=null||n!==void 0&&!n.resolver.isEventProduction(t,n.slice)||t.for!==null||requiresExplicitDestinations(e,n))return;if(t.inlineEvent===null)return r.some(e=>e.for!==null||e.inlineEvent!==null)?void 0:`new event source`;let i=e.properties.filter(e=>e.isIdentifier&&!e.type.isOptional&&!e.type.isCollection);return i.length===1?i[0].name:void 0}export{implicitDestination,requiresExplicitDestinations};
2
+ //# sourceMappingURL=ProductionDestinations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProductionDestinations.js","names":["command","produced","context","events","identifier","property","sibling","identifiers"],"sources":["../../../../../../Compiler/Syntax/ProductionDestinations.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { CommandSyntax } from './Commands';\nimport { ProductionDestinationContext } from './ProductionDestinationContext';\nimport { ProducesSyntax } from './Reactions';\n\nexport type { ProductionDestinationContext } from './ProductionDestinationContext';\n\nfunction eventProductions(command: CommandSyntax, context?: ProductionDestinationContext): readonly ProducesSyntax[] {\n return command.produces.filter(produced => produced.inlineOperation == null && (context === undefined || context.resolver.isEventProduction(produced, context.slice)));\n}\n\nexport function requiresExplicitDestinations(command: CommandSyntax, context?: ProductionDestinationContext): boolean {\n const events = eventProductions(command, context);\n const identifier = command.properties.find(property => property.isIdentifier)?.name;\n return events.some(produced => produced.for !== null && (produced.for.kind !== 'PathExpressionSyntax' || produced.for.path !== identifier)) ||\n (events.some(produced => produced.inlineEvent !== null && produced.for === null) &&\n events.some(produced => produced.inlineEvent === null && produced.for === null));\n}\n\n// No inference of runtime equality or legacy command-level destination promotion.\nexport function implicitDestination(command: CommandSyntax, produced: ProducesSyntax, context?: ProductionDestinationContext): string | undefined {\n const events = eventProductions(command, context);\n if (produced.inlineOperation != null || context !== undefined && !context.resolver.isEventProduction(produced, context.slice) || produced.for !== null || requiresExplicitDestinations(command, context)) return undefined;\n if (produced.inlineEvent === null) {\n return events.some(sibling => sibling.for !== null || sibling.inlineEvent !== null) ? undefined : 'new event source';\n }\n const identifiers = command.properties.filter(property => property.isIdentifier && !property.type.isOptional && !property.type.isCollection);\n return identifiers.length === 1 ? identifiers[0].name : undefined;\n}\n"],"mappings":"qDASA,SAAS,iBAAiB,EAAwB,EAAmE,CACjH,OAAOA,EAAQ,SAAS,OAAO,GAAYC,EAAS,iBAAmB,OAASC,IAAY,IAAA,IAAaA,EAAQ,SAAS,kBAAkBD,EAAUC,EAAQ,KAAK,EAAE,CACzK,CAEA,SAAgB,6BAA6B,EAAwB,EAAiD,CAClH,IAAMC,EAAS,iBAAiBH,EAASE,CAAO,EAC1CE,EAAaJ,EAAQ,WAAW,KAAK,GAAYK,EAAS,YAAY,CAAC,EAAE,KAC/E,OAAOF,EAAO,KAAK,GAAYF,EAAS,MAAQ,OAASA,EAAS,IAAI,OAAS,wBAA0BA,EAAS,IAAI,OAASG,EAAW,GACrID,EAAO,KAAK,GAAYF,EAAS,cAAgB,MAAQA,EAAS,MAAQ,IAAI,GAC9EE,EAAO,KAAK,GAAYF,EAAS,cAAgB,MAAQA,EAAS,MAAQ,IAAI,CACvF,CAGA,SAAgB,oBAAoB,EAAwB,EAA0B,EAA4D,CAC9I,IAAME,EAAS,iBAAiBH,EAASE,CAAO,EAChD,GAAID,EAAS,iBAAmB,MAAQC,IAAY,IAAA,IAAa,CAACA,EAAQ,SAAS,kBAAkBD,EAAUC,EAAQ,KAAK,GAAKD,EAAS,MAAQ,MAAQ,6BAA6BD,EAASE,CAAO,EAAG,OAC1M,GAAID,EAAS,cAAgB,KACzB,OAAOE,EAAO,KAAK,GAAWG,EAAQ,MAAQ,MAAQA,EAAQ,cAAgB,IAAI,EAAI,IAAA,GAAY,mBAEtG,IAAMC,EAAcP,EAAQ,WAAW,OAAO,GAAYK,EAAS,cAAgB,CAACA,EAAS,KAAK,YAAc,CAACA,EAAS,KAAK,YAAY,EAC3I,OAAOE,EAAY,SAAW,EAAIA,EAAY,EAAE,CAAC,KAAO,IAAA,EAC5D"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";import{dotNetWhitespace as e}from"../Text/patterns.js";const t=RegExp(`^${e}*$`),isBlankPublicEventOrigin=e=>t.test(e);function publicEventMetadataError(e){if(e.kind===`EventSyntax`||e.kind===`ImportSyntax`){let t=e,n=t.visibility===void 0?`Private`:t.visibility;if(n!==`Private`&&n!==`Public`)return`Event visibility must be Private or Public.`;if(t.origin!=null&&(typeof t.origin!=`string`||isBlankPublicEventOrigin(t.origin)))return`An event or import origin must be a nonblank quoted string.`;if(t.origin!=null&&n!==`Public`)return`An event or import with an origin is a public contract.`;if(e.kind===`ImportSyntax`&&n===`Public`&&t.origin==null)return`A public contract import requires an origin.`}if(e.kind===`SliceSyntax`){let t=e;if(t.direction!=null&&t.type!==`Translate`)return`Only a Translate slice may declare a direction.`;if(t.direction!=null&&t.direction!==`Inbound`&&t.direction!==`Outbound`)return`A translation direction must be Inbound or Outbound.`}}export{isBlankPublicEventOrigin,publicEventMetadataError};
2
+ //# sourceMappingURL=PublicEventInvariants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublicEventInvariants.js","names":["blankOrigin","dotNetWhitespace","text","node","declaration","visibility","slice"],"sources":["../../../../../../Compiler/Syntax/PublicEventInvariants.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { EventSyntax, ImportSyntax } from './Declarations';\nimport { EventVisibility } from './EventVisibility';\nimport { SliceSyntax } from './Structure';\nimport { SyntaxNode } from './SyntaxNode';\nimport { TranslationDirection } from './TranslationDirection';\nimport { dotNetWhitespace } from '../Text/patterns';\n\n// .NET whitespace differs from ECMAScript trim at NEL and BOM. Never normalize opaque text.\nconst blankOrigin = new RegExp(`^${dotNetWhitespace}*$`);\nexport const isBlankPublicEventOrigin = (text: string): boolean => blankOrigin.test(text);\n\n// The native PublicEventInvariants contract, shared by source and transport validation.\nexport function publicEventMetadataError(node: SyntaxNode): string | undefined {\n if (node.kind === 'EventSyntax' || node.kind === 'ImportSyntax') {\n const declaration = node as EventSyntax | ImportSyntax;\n const visibility = declaration.visibility === undefined ? EventVisibility.Private : declaration.visibility;\n if (visibility !== EventVisibility.Private && visibility !== EventVisibility.Public) return 'Event visibility must be Private or Public.';\n if (declaration.origin != null && (typeof declaration.origin !== 'string' || isBlankPublicEventOrigin(declaration.origin))) return 'An event or import origin must be a nonblank quoted string.';\n if (declaration.origin != null && visibility !== EventVisibility.Public) return 'An event or import with an origin is a public contract.';\n if (node.kind === 'ImportSyntax' && visibility === EventVisibility.Public && declaration.origin == null) return 'A public contract import requires an origin.';\n }\n if (node.kind === 'SliceSyntax') {\n const slice = node as SliceSyntax;\n if (slice.direction != null && slice.type !== 'Translate') return 'Only a Translate slice may declare a direction.';\n if (slice.direction != null && slice.direction !== TranslationDirection.Inbound && slice.direction !== TranslationDirection.Outbound) return 'A translation direction must be Inbound or Outbound.';\n }\n return undefined;\n}\n"],"mappings":"4GAWA,MAAMA,EAAkB,OAAO,IAAIC,EAAiB,GAAG,EAC1C,yBAA4B,GAA0BD,EAAY,KAAKE,CAAI,EAGxF,SAAgB,yBAAyB,EAAsC,CAC3E,GAAIC,EAAK,OAAS,eAAiBA,EAAK,OAAS,eAAgB,CAC7D,IAAMC,EAAcD,EACdE,EAAaD,EAAY,aAAe,IAAA,GAAA,UAAsCA,EAAY,WAChG,GAAIC,IAAA,WAA0CA,IAAA,SAAuC,MAAO,8CAC5F,GAAID,EAAY,QAAU,OAAS,OAAOA,EAAY,QAAW,UAAY,yBAAyBA,EAAY,MAAM,GAAI,MAAO,8DACnI,GAAIA,EAAY,QAAU,MAAQC,IAAA,SAAuC,MAAO,0DAChF,GAAIF,EAAK,OAAS,gBAAkBE,IAAA,UAAyCD,EAAY,QAAU,KAAM,MAAO,8CACpH,CACA,GAAID,EAAK,OAAS,cAAe,CAC7B,IAAMG,EAAQH,EACd,GAAIG,EAAM,WAAa,MAAQA,EAAM,OAAS,YAAa,MAAO,kDAClE,GAAIA,EAAM,WAAa,MAAQA,EAAM,YAAA,WAA8CA,EAAM,YAAA,WAA6C,MAAO,sDACjJ,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";var ScreenplaySyntaxWalker=class{visitNode(e){}visitApplication(e){this.visitNode(e),e.domain!==null&&this.visitDomain(e.domain),e.imports.forEach(e=>this.visitImport(e)),e.fileImports.forEach(e=>this.visitFileImport(e)),e.systems?.forEach(e=>this.visitSystem(e)),e.eventSources?.forEach(e=>this.visitEventSource(e)),e.concepts.forEach(e=>this.visitConcept(e)),e.types.forEach(e=>this.visitType(e)),e.personas.forEach(e=>this.visitPersona(e)),e.policies?.forEach(e=>this.visitPolicy(e)),e.exposures?.forEach(e=>{this.visitNode(e),e.properties.forEach(e=>this.visitNode(e))}),e.instanceContributions?.forEach(e=>{this.visitNode(e),e.contributions.forEach(e=>{this.visitNode(e),e.value!==null&&this.visitExpression(e.value),e.items.forEach(e=>{this.visitNode(e),e.values.forEach(e=>{this.visitNode(e),this.visitExpression(e.value)})})})}),e.identity!=null&&this.visitIdentity(e.identity),e.purposes?.forEach(e=>this.visitPurpose(e)),e.seeds?.forEach(e=>this.visitSeed(e)),e.modules.forEach(e=>this.visitModule(e)),e.examples?.forEach(e=>this.visitSpecificationExample(e))}visitIdentity(e){this.visitNode(e),e.details.forEach(e=>this.visitIdentityDetail(e))}visitIdentityDetail(e){this.visitNode(e),this.visitTypeRef(e.type),this.visitIdentitySource(e.source)}visitIdentitySource(e){switch(e.kind){case`ClaimIdentitySourceSyntax`:this.visitClaimIdentitySource(e);break;case`QueryIdentitySourceSyntax`:this.visitQueryIdentitySource(e);break;case`CodeIdentitySourceSyntax`:this.visitCodeIdentitySource(e);break;case`FileIdentitySourceSyntax`:this.visitFileIdentitySource(e);break;default:this.visitNode(e)}}visitClaimIdentitySource(e){this.visitNode(e)}visitQueryIdentitySource(e){this.visitNode(e),this.visitExpression(e.by)}visitCodeIdentitySource(e){this.visitNode(e),this.visitCodeBlock(e.code)}visitFileIdentitySource(e){this.visitNode(e),this.visitFileReference(e.file)}visitPurpose(e){this.visitNode(e),e.transfers.forEach(e=>this.visitPurposeTransfer(e))}visitPurposeReference(e){this.visitNode(e)}visitPurposeTransfer(e){this.visitNode(e)}visitPolicy(e){this.visitNode(e),e.condition!==null&&this.visitPolicyCondition(e.condition),e.code!==null&&this.visitCodeBlock(e.code),e.file!==null&&this.visitFileReference(e.file)}visitPolicyCondition(e){this.visitNode(e),e.kind===`ClaimConditionSyntax`&&e.matches!==null&&this.visitExpression(e.matches),e.kind===`NotPolicyConditionSyntax`&&this.visitPolicyCondition(e.operand),e.kind===`LogicalPolicyConditionSyntax`&&(this.visitPolicyCondition(e.left),this.visitPolicyCondition(e.right))}visitSeed(e){this.visitNode(e),e.groups.forEach(e=>{this.visitNode(e),e.events.forEach(e=>{this.visitNode(e),e.properties.forEach(e=>this.visitPropertyMapping(e))})})}visitPersona(e){this.visitNode(e)}visitAuthorize(e){this.visitNode(e),this.visitPolicyRequirement(e.requirement)}visitPolicyRequirement(e){this.visitNode(e),e.kind===`LogicalPolicyRequirementSyntax`&&(this.visitPolicyRequirement(e.left),this.visitPolicyRequirement(e.right))}visitDomain(e){this.visitNode(e)}visitImport(e){this.visitNode(e)}visitFileImport(e){this.visitNode(e)}visitConcept(e){this.visitNode(e),e.attributes.forEach(e=>this.visitNode(e)),e.validations?.forEach(e=>this.visitValidate(e))}visitType(e){this.visitNode(e),e.properties.forEach(e=>this.visitProperty(e))}visitDependsOn(e){this.visitNode(e)}visitModule(e){this.visitNode(e),e.purposes?.forEach(e=>this.visitPurposeReference(e)),e.examples?.forEach(e=>this.visitSpecificationExample(e)),e.dependsOn?.forEach(e=>this.visitDependsOn(e)),e.fileImports.forEach(e=>this.visitFileImport(e)),e.authorize!==null&&this.visitAuthorize(e.authorize),e.features.forEach(e=>this.visitFeature(e))}visitFeature(e){this.visitNode(e),e.purposes?.forEach(e=>this.visitPurposeReference(e)),e.examples?.forEach(e=>this.visitSpecificationExample(e)),e.dependsOn?.forEach(e=>this.visitDependsOn(e)),e.fileImports.forEach(e=>this.visitFileImport(e)),e.authorize!==null&&this.visitAuthorize(e.authorize),e.features.forEach(e=>this.visitFeature(e)),e.slices.forEach(e=>this.visitSlice(e))}visitSlice(e){this.visitNode(e),e.purposes?.forEach(e=>this.visitPurposeReference(e)),e.examples?.forEach(e=>this.visitSpecificationExample(e)),e.commands.forEach(e=>this.visitCommand(e)),e.operations?.forEach(e=>this.visitOperation(e)),e.events.forEach(e=>this.visitEvent(e)),e.constraints.forEach(e=>this.visitConstraint(e)),e.queries.forEach(e=>this.visitQuery(e)),e.projections.forEach(e=>this.visitProjection(e)),e.readModels.forEach(e=>this.visitReadModel(e)),e.captures.forEach(e=>this.visitCapture(e)),e.reactions.forEach(e=>this.visitReaction(e)),e.screens.forEach(e=>this.visitScreen(e)),e.specifications.forEach(e=>this.visitSpecification(e))}visitTriggerData(e){this.visitNode(e),e.type!==null&&this.visitTypeRef(e.type)}visitReads(e){this.visitNode(e)}visitConcurrency(e){this.visitNode(e)}visitReducer(e){this.visitNode(e),e.rules.forEach(e=>this.visitReducerRule(e))}visitReducerRule(e){this.visitNode(e),e.file!==null&&this.visitFileReference(e.file),e.code!==null&&this.visitCodeBlock(e.code)}visitForm(e){this.visitNode(e),e.populate!==null&&this.visitNode(e.populate),e.fields.forEach(e=>this.visitNode(e)),e.columns?.forEach(e=>this.visitNode(e)),e.layout!==null&&e.layout!==void 0&&(this.visitNode(e.layout),e.layout.columns.forEach(e=>{this.visitNode(e),e.width!==null&&this.visitNode(e.width),e.minWidth!==null&&this.visitNode(e.minWidth),e.maxWidth!==null&&this.visitNode(e.maxWidth)}),e.layout.columnGap!==null&&this.visitNode(e.layout.columnGap),e.layout.rowGap!==null&&this.visitNode(e.layout.rowGap),e.layout.placements.forEach(e=>{this.visitNode(e),e.width!==null&&this.visitNode(e.width)})),e.onSubmit!==null&&this.visitScreenDirective(e.onSubmit)}visitCommand(e){this.visitNode(e),e.properties.forEach(e=>this.visitProperty(e)),e.authorize!==null&&this.visitAuthorize(e.authorize),e.stream!=null&&this.visitCommandStream(e.stream),e.streamCandidates?.forEach(e=>this.visitCommandStream(e)),e.validations.forEach(e=>this.visitValidate(e)),e.produces.forEach(e=>this.visitProduces(e)),e.handler!=null&&this.visitHandler(e.handler),e.response!=null&&this.visitCommandResponse(e.response)}visitEventSource(e){this.visitNode(e),e.identifier!==null&&this.visitTypeRef(e.identifier),e.streams.forEach(e=>this.visitEventStream(e))}visitEventStream(e){this.visitNode(e),e.streamId!==null&&this.visitTypeRef(e.streamId),e.streamIdParts.forEach(e=>this.visitEventStreamIdPart(e))}visitEventStreamIdPart(e){this.visitNode(e),this.visitTypeRef(e.type)}visitCommandStream(e){this.visitNode(e),e.streamId!==null&&this.visitPropertyMapping(e.streamId),e.streamIdParts.forEach(e=>this.visitPropertyMapping(e)),e.propertyCandidate!==null&&this.visitProperty(e.propertyCandidate)}visitSystem(e){this.visitNode(e)}visitOperation(e){this.visitNode(e),e.inputs.forEach(e=>this.visitProperty(e)),e.execute!==null&&this.visitOperationPhase(e.execute),e.compensate!==null&&this.visitOperationPhase(e.compensate)}visitOperationPhase(e){this.visitNode(e),e.implementation!==null&&this.visitImplementation(e.implementation),e.file!==null&&this.visitFileReference(e.file),e.code!==null&&this.visitCodeBlock(e.code)}visitSpecificationOperationFailure(e){this.visitNode(e)}visitSpecificationCompensated(e){this.visitNode(e)}visitSpecificationOperation(e){this.visitNode(e),e.values.forEach(e=>this.visitPropertyMapping(e))}visitHandler(e){this.visitNode(e),e.implementation!=null&&this.visitImplementation(e.implementation),e.file!==null&&this.visitFileReference(e.file),e.code!==null&&this.visitCodeBlock(e.code)}visitImplementation(e){this.visitNode(e),e.hints.forEach(e=>this.visitImplementationHint(e))}visitImplementationHint(e){this.visitNode(e)}visitFileReference(e){this.visitNode(e)}visitCodeBlock(e){this.visitNode(e)}visitCommandResponse(e){e.kind===`ScalarCommandResponseSyntax`?this.visitScalarCommandResponse(e):this.visitRecordCommandResponse(e)}visitScalarCommandResponse(e){this.visitNode(e),this.visitPropertyResponseSource(e.source)}visitRecordCommandResponse(e){this.visitNode(e),e.fields.forEach(e=>this.visitResponseField(e))}visitResponseField(e){this.visitNode(e),e.type!==null&&this.visitTypeRef(e.type),this.visitPropertyResponseSource(e.source)}visitPropertyResponseSource(e){this.visitNode(e)}visitSpecificationReturn(e){e.kind===`ScalarSpecificationReturnSyntax`?this.visitScalarSpecificationReturn(e):this.visitRecordSpecificationReturn(e)}visitScalarSpecificationReturn(e){this.visitNode(e),this.visitExpression(e.value)}visitRecordSpecificationReturn(e){this.visitNode(e),e.fields.forEach(e=>this.visitPropertyMapping(e))}visitValidate(e){this.visitNode(e),e.kind===`DeclarativeValidateSyntax`?(e.rules.forEach(e=>this.visitValidationRule(e)),e.requirements?.forEach(e=>{this.visitNode(e),this.visitCondition(e.condition)})):e.code!=null&&this.visitCodeBlock(e.code)}visitValidationRule(e){this.visitNode(e),e.implementation!=null&&this.visitImplementation(e.implementation),e.value!==null&&this.visitExpression(e.value),e.file!==null&&this.visitFileReference(e.file),e.code!==null&&this.visitCodeBlock(e.code)}visitEvent(e){this.visitNode(e),e.properties.forEach(e=>this.visitProperty(e)),e.tags.forEach(e=>this.visitTag(e))}visitTag(e){this.visitNode(e),this.visitExpression(e.value)}visitReadModel(e){this.visitNode(e),e.properties.forEach(e=>this.visitProperty(e))}visitConstraint(e){this.visitNode(e),e.kind===`FileConstraintSyntax`&&this.visitNode(e.file),e.additionalRules.forEach(e=>this.visitConstraint(e))}visitQuery(e){this.visitNode(e),this.visitTypeRef(e.returnType),e.by!==null&&this.visitQueryParameter(e.by),e.filters.forEach(e=>this.visitQueryParameter(e)),e.authorize!==null&&this.visitAuthorize(e.authorize)}visitQueryParameter(e){this.visitNode(e),this.visitTypeRef(e.type),e.source!=null&&this.visitExpression(e.source)}visitKey(e){this.visitNode(e),e.kind===`ExpressionKeySyntax`?this.visitExpression(e.expression):e.parts.forEach(e=>{this.visitNode(e),this.visitExpression(e.expression)})}visitProjection(e){this.visitNode(e),e.key!=null&&this.visitKey(e.key),e.blocks.forEach(e=>this.visitProjectionBlock(e))}visitProjectionBlock(e){switch(this.visitNode(e),e.kind){case`FromSyntax`:e.events.forEach(e=>{this.visitNode(e),e.key!=null&&this.visitExpression(e.key)}),e.key!=null&&this.visitKey(e.key),e.parentKey!=null&&this.visitExpression(e.parentKey),e.mappings.forEach(e=>this.visitMapping(e));break;case`EverySyntax`:case`AllSyntax`:e.mappings.forEach(e=>this.visitMapping(e));break;case`JoinSyntax`:e.events.forEach(e=>this.visitJoinEvent(e));break;case`ProjectionVariantSyntax`:e.entersOn.forEach(e=>{this.visitNode(e),e.key!=null&&this.visitExpression(e.key)}),e.blocks.forEach(e=>this.visitProjectionBlock(e));break;case`ChildrenSyntax`:e.identifiedBy!==void 0&&this.visitExpression(e.identifiedBy),e.blocks.forEach(e=>this.visitProjectionBlock(e));break;case`NestedSyntax`:e.blocks.forEach(e=>this.visitProjectionBlock(e));break;case`RemoveWithSyntax`:e.parentKey!=null&&this.visitExpression(e.parentKey),e.key!=null&&this.visitExpression(e.key);break;case`RemoveViaJoinSyntax`:e.key!=null&&this.visitExpression(e.key)}}visitJoinEvent(e){this.visitNode(e),e.mappings.forEach(e=>this.visitMapping(e))}visitMapping(e){this.visitNode(e),e.source!==void 0&&this.visitExpression(e.source),e.value!==void 0&&this.visitExpression(e.value)}visitCondition(e){this.visitNode(e),e.kind===`ComparisonConditionSyntax`?this.visitExpression(e.right):(this.visitCondition(e.left),this.visitCondition(e.right))}visitReaction(e){this.visitNode(e),e.runsAs!=null&&this.visitReactionIdentity(e.runsAs),e.where!=null&&this.visitCondition(e.where),e.triggers.forEach(e=>this.visitReactionTrigger(e))}visitReactionIdentity(e){this.visitNode(e)}visitReactionTrigger(e){this.visitNode(e),this.visitTriggerSource(e.source),e.produces.forEach(e=>this.visitProduces(e)),e.invokes.forEach(e=>this.visitInvokes(e))}visitProduces(e){this.visitNode(e),e.when!=null&&this.visitCondition(e.when),e.inlineEvent!==null&&this.visitEvent(e.inlineEvent),e.inlineOperation!=null&&this.visitOperation(e.inlineOperation),e.for!==null&&this.visitExpression(e.for),e.mappings.forEach(e=>this.visitPropertyMapping(e)),e.tags.forEach(e=>this.visitTag(e))}visitInvokes(e){this.visitNode(e),e.mappings?.forEach(e=>this.visitPropertyMapping(e)),e.onRefused?.forEach(e=>this.visitInvocationRefusal(e))}visitInvocationRefusal(e){this.visitNode(e),e.produces.forEach(e=>this.visitProduces(e))}visitCapture(e){this.visitNode(e),e.source!==null&&this.visitCaptureSource(e.source),e.map?.forEach(e=>this.visitCaptureMap(e)),e.appends.forEach(e=>this.visitCaptureAppend(e)),e.children.forEach(e=>this.visitCaptureChildren(e)),e.nested.forEach(e=>this.visitCaptureNested(e))}visitCaptureSource(e){this.visitNode(e),e.settings.forEach(e=>this.visitCaptureSourceSetting(e))}visitCaptureSourceSetting(e){this.visitNode(e)}visitCaptureMap(e){this.visitNode(e),this.visitExpression(e.source),e.kind===`CaptureMapEntrySyntax`&&e.translations.forEach(e=>this.visitNode(e))}visitCaptureAppend(e){this.visitNode(e),e.when!=null&&this.visitNode(e.when),e.mappings?.forEach(e=>this.visitPropertyMapping(e)),e.tags?.forEach(e=>this.visitTag(e))}visitCaptureChildren(e){this.visitNode(e),e.map?.forEach(e=>this.visitCaptureMap(e)),e.appends.forEach(e=>this.visitCaptureAppend(e))}visitCaptureNested(e){this.visitNode(e),e.map?.forEach(e=>this.visitCaptureMap(e)),e.appends.forEach(e=>this.visitCaptureAppend(e))}visitTriggerSource(e){this.visitNode(e)}visitScreen(e){this.visitNode(e),e.directives.forEach(e=>this.visitScreenDirective(e)),e.contributions?.forEach(e=>{this.visitNode(e),e.directives.forEach(e=>this.visitScreenDirective(e))})}visitScreenDirective(e){if(e.kind===`ScreenGuardedActionSyntax`)this.visitScreenGuardedAction(e);else switch(this.visitNode(e),e.kind){case`ScreenDataSyntax`:this.visitTypeRef(e.type);break;case`ScreenActionSyntax`:e.navigate!==null&&this.visitScreenDirective(e.navigate);break;case`ScreenNavigateSyntax`:e.parameters.forEach(e=>{this.visitNode(e),this.visitUiBinding(e.binding)});break;case`ScreenTemplateReferenceSyntax`:e.slots.forEach(e=>{this.visitNode(e),e.directives.forEach(e=>this.visitScreenDirective(e))});break;case`ScreenSectionSyntax`:e.directives.forEach(e=>this.visitScreenDirective(e));break;case`ScreenTableSyntax`:e.columns.forEach(e=>this.visitNode(e)),e.rowClick!==null&&this.visitScreenDirective(e.rowClick);break;case`ScreenSummarySyntax`:e.fields.forEach(e=>this.visitNode(e));break;case`ScreenComponentSyntax`:e.context!==null&&this.visitUiBinding(e.context),e.properties.forEach(e=>{this.visitNode(e),e.binding!==null&&this.visitUiBinding(e.binding),e.value!==null&&this.visitExpression(e.value)}),e.exposes.forEach(e=>{this.visitNode(e),this.visitUiBinding(e.binding)}),e.presentation.forEach(e=>this.visitNode(e)),e.outlets.forEach(e=>{this.visitNode(e),e.directives.forEach(e=>this.visitScreenDirective(e))});break;case`ScreenToolbarSyntax`:e.items.forEach(e=>{this.visitNode(e),e.parameters.forEach(e=>{this.visitNode(e),this.visitUiBinding(e.binding)}),e.presentation.forEach(e=>this.visitNode(e))});break;case`ScreenCodeSyntax`:this.visitNode(e.code)}}visitScreenGuardedAction(e){this.visitNode(e),e.alternatives.forEach(e=>this.visitScreenActionAlternative(e)),e.otherwise!==null&&this.visitScreenActionOtherwise(e.otherwise),e.navigate!==null&&this.visitScreenDirective(e.navigate)}visitScreenActionAlternative(e){this.visitNode(e),this.visitCondition(e.condition),e.arguments.forEach(e=>this.visitInteractionArgument(e))}visitScreenActionOtherwise(e){this.visitNode(e),e.arguments.forEach(e=>this.visitInteractionArgument(e))}visitInteractionArgument(e){this.visitNode(e)}visitSpecification(e){this.visitNode(e),e.examples?.forEach(e=>this.visitSpecificationExample(e)),e.parameters?.forEach(e=>{this.visitNode(e),this.visitTypeRef(e.type)}),e.cases?.forEach(e=>{this.visitNode(e),e.values.forEach(e=>this.visitPropertyMapping(e))}),e.givenClock!==null&&this.visitSpecificationClock(e.givenClock),e.givenOperationFailures?.forEach(e=>this.visitSpecificationOperationFailure(e)),e.thenOperations?.forEach(e=>this.visitSpecificationOperation(e)),e.thenCompensated?.forEach(e=>this.visitSpecificationCompensated(e)),e.givenCallerPersona!=null&&this.visitNode(e.givenCallerPersona),e.givenCaller!=null&&(this.visitNode(e.givenCaller),e.givenCaller.claims.forEach(e=>this.visitNode(e))),e.given.forEach(e=>this.visitSpecificationEvent(e)),e.givenReadModels.forEach(e=>this.visitSpecificationReadModel(e)),e.when!==null&&this.visitSpecificationCommand(e.when),e.givenCaptures.forEach(e=>this.visitSpecificationCapture(e)),e.whenAppended!==null&&this.visitSpecificationEvent(e.whenAppended),e.whenRedelivered!=null&&this.visitSpecificationRedelivery(e.whenRedelivered),e.whenClock!==null&&this.visitSpecificationClock(e.whenClock),e.whenTrigger!==null&&this.visitSpecificationTrigger(e.whenTrigger),e.whenCapture!==null&&this.visitSpecificationCapture(e.whenCapture),e.whenQuery!==null&&this.visitSpecificationWhenQuery(e.whenQuery),e.thenEvents.forEach(e=>this.visitSpecificationEvent(e)),e.thenReadModels.forEach(e=>this.visitSpecificationReadModel(e)),e.thenAbsentReadModels?.forEach(e=>{this.visitNode(e),this.visitExpression(e.key)}),e.thenQueries?.forEach(e=>{this.visitNode(e),e.arguments.forEach(e=>this.visitPropertyMapping(e)),e.results.forEach(e=>this.visitSpecificationQueryResult(e))}),e.thenResults.forEach(e=>this.visitSpecificationQueryResult(e)),e.thenNoResult!==null&&this.visitNode(e.thenNoResult),e.thenDenied!=null&&this.visitNode(e.thenDenied),e.thenReturns!=null&&this.visitSpecificationReturn(e.thenReturns),e.thenErrors.forEach(e=>{this.visitNode(e),e.caseValue!=null&&this.visitExpression(e.caseValue)})}visitSpecificationRedelivery(e){this.visitNode(e),e.for!==null&&this.visitExpression(e.for),e.stream!=null&&this.visitSpecificationStream(e.stream),e.noStream!=null&&this.visitSpecificationNoStream(e.noStream),e.values.forEach(e=>this.visitPropertyMapping(e))}visitSpecificationClock(e){this.visitNode(e)}visitSpecificationTrigger(e){this.visitNode(e),e.values.forEach(e=>this.visitPropertyMapping(e))}visitSpecificationCapture(e){this.visitNode(e),e.record.forEach(e=>this.visitPropertyMapping(e))}visitSpecificationWhenQuery(e){this.visitNode(e),e.arguments.forEach(e=>this.visitPropertyMapping(e))}visitSpecificationQueryResult(e){this.visitNode(e),e.properties.forEach(e=>this.visitPropertyMapping(e))}visitSpecificationExample(e){this.visitNode(e),e.for!==null&&this.visitExpression(e.for),e.stream!=null&&this.visitSpecificationStream(e.stream),e.noStream!=null&&this.visitSpecificationNoStream(e.noStream),e.values.forEach(e=>this.visitPropertyMapping(e)),e.generatedValues.forEach(e=>this.visitPropertyMapping(e))}visitSpecificationEvent(e){this.visitNode(e),e.stream!=null&&this.visitSpecificationStream(e.stream),e.noStream!=null&&this.visitSpecificationNoStream(e.noStream),e.values.forEach(e=>this.visitPropertyMapping(e)),e.for!==null&&this.visitExpression(e.for)}visitSpecificationStream(e){this.visitNode(e),e.streamId!==null&&this.visitPropertyMapping(e.streamId),e.streamIdParts.forEach(e=>this.visitPropertyMapping(e))}visitSpecificationNoStream(e){this.visitNode(e)}visitSpecificationCommand(e){this.visitNode(e),(e.generatedValues??[]).forEach(e=>this.visitPropertyMapping(e)),e.values.forEach(e=>this.visitPropertyMapping(e)),e.for!==null&&this.visitExpression(e.for)}visitSpecificationReadModel(e){this.visitNode(e),e.properties.forEach(e=>this.visitPropertyMapping(e))}visitPropertyMapping(e){this.visitNode(e),this.visitExpression(e.source)}visitProperty(e){this.visitNode(e),this.visitTypeRef(e.type)}visitTypeRef(e){this.visitNode(e)}visitUiBinding(e){this.visitNode(e),e.literal!==null&&this.visitExpression(e.literal)}visitIdentityExpression(e){this.visitNode(e)}visitExpression(e){e.kind===`IdentityExpressionSyntax`?this.visitIdentityExpression(e):(this.visitNode(e),e.kind===`ListExpressionSyntax`?e.items.forEach(e=>this.visitExpression(e)):e.kind===`ObjectExpressionSyntax`?e.members.forEach(e=>this.visitObjectMember(e)):e.kind===`TemplateExpressionSyntax`&&e.parts.forEach(e=>{this.visitNode(e),e.kind===`TemplateInterpolationSyntax`&&this.visitExpression(e.expression)}))}visitObjectMember(e){this.visitNode(e),this.visitExpression(e.value)}};export{ScreenplaySyntaxWalker};
2
+ //# sourceMappingURL=ScreenplaySyntaxWalker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScreenplaySyntaxWalker.js","names":["syntax","node","property","contribution","item","value","detail","group","event","column","placement","candidate","stream","part","input","hint","field","parameter","slot","exposed","outlet","result","fixture","member"],"sources":["../../../../../../Compiler/Syntax/ScreenplaySyntaxWalker.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { IdentitySyntax } from './IdentitySyntax';\nimport { IdentityDetailSyntax } from './IdentityDetailSyntax';\nimport { IdentitySourceSyntax } from './IdentitySourceSyntax';\nimport { ClaimIdentitySourceSyntax } from './ClaimIdentitySourceSyntax';\nimport { QueryIdentitySourceSyntax } from './QueryIdentitySourceSyntax';\nimport { CodeIdentitySourceSyntax } from './CodeIdentitySourceSyntax';\nimport { FileIdentitySourceSyntax } from './FileIdentitySourceSyntax';\nimport { AuthorizeSyntax, PersonaSyntax, PolicyRequirementSyntax } from './Authorization';\nimport { CaptureAppendSyntax, CaptureChildrenSyntax, CaptureMapOperationSyntax, CaptureNestedSyntax, CaptureSourceSettingSyntax, CaptureSourceSyntax, CaptureSyntax } from './Captures';\nimport { CommandSyntax, ValidateSyntax, ValidationRuleSyntax } from './Commands';\nimport { ConstraintSyntax } from './Constraints';\nimport { ConditionSyntax } from './Conditions';\nimport { PolicyConditionSyntax, PolicySyntax } from './Policies';\nimport { SeedSyntax } from './Seeds';\nimport { ConceptSyntax, DomainSyntax, EventSyntax, ImportSyntax, PropertySyntax, ReadModelSyntax, TagSyntax, TypeRefSyntax, TypeSyntax } from './Declarations';\nimport { IdentityExpressionSyntax, ExpressionSyntax, ObjectMemberSyntax, PropertyMappingSyntax } from './Expressions';\nimport { JoinEventSyntax, KeySyntax, MappingSyntax, ProjectionBlockSyntax, ProjectionSyntax } from './Projections';\nimport { CommandStreamSyntax, EventSourceSyntax, EventStreamSyntax } from './EventSources';\nimport { QueryParameterSyntax, QuerySyntax } from './Queries';\nimport { InvocationRefusalSyntax } from './InvocationRefusalSyntax';\nimport { ReactionIdentitySyntax } from './ReactionIdentitySyntax';\nimport { SpecificationRedeliverySyntax } from './SpecificationRedeliverySyntax';\nimport { InvokesSyntax, ProducesSyntax, ReactionSyntax, ReactionTriggerSyntax, TriggerSourceSyntax } from './Reactions';\nimport { InteractionArgumentSyntax, ScreenActionAlternativeSyntax, ScreenActionOtherwiseSyntax, ScreenDirectiveSyntax, ScreenGuardedActionSyntax, ScreenSyntax } from './Screens';\nimport {\n SpecificationExampleSyntax, SpecificationCaptureSyntax, SpecificationClockSyntax, SpecificationCommandSyntax, SpecificationEventSyntax, SpecificationQueryResultSyntax, SpecificationStreamSyntax, SpecificationNoStreamSyntax,\n SpecificationReadModelSyntax, SpecificationOperationFailureSyntax, SpecificationOperationSyntax, SpecificationCompensatedSyntax, SpecificationSyntax, SpecificationTriggerSyntax, SpecificationWhenQuerySyntax,\n} from './Specifications';\nimport { ApplicationSyntax, DependsOnSyntax, FeatureSyntax, FileImportSyntax, ModuleSyntax, SliceSyntax } from './Structure';\nimport { CommandResponseSyntax, PropertyResponseSourceSyntax, RecordCommandResponseSyntax, RecordSpecificationReturnSyntax, ResponseFieldSyntax, ScalarCommandResponseSyntax, ScalarSpecificationReturnSyntax, SpecificationReturnSyntax } from './Responses';\nimport { EventStreamIdPartSyntax } from './EventStreamIdPartSyntax';\nimport { SyntaxNode } from './SyntaxNode';\nimport { PurposeSyntax, PurposeReferenceSyntax, PurposeTransferSyntax } from './Purposes';\nimport { OperationSyntax, OperationPhaseSyntax, SystemSyntax } from './Operations';\nimport { CodeBlockSyntax, FileReferenceSyntax, HandlerSyntax, ImplementationSyntax, ImplementationHintSyntax } from './Implementations';\nimport { ReadsSyntax, ConcurrencySyntax, ReducerSyntax, ReducerRuleSyntax, FormSyntax, TriggerDataSyntax } from './DependencySources';\n\n// Walks a whole syntax tree, depth first, in the order the C# ScreenplaySyntaxWalker does. Every visit\n// method calls visitNode and then walks the node's children, so an emitter overrides only the nodes it\n// cares about - and calls the base method when it still wants the children walked.\nexport abstract class ScreenplaySyntaxWalker {\n visitNode(_node: SyntaxNode): void {}\n\n visitApplication(syntax: ApplicationSyntax): void {\n this.visitNode(syntax);\n if (syntax.domain !== null) this.visitDomain(syntax.domain);\n syntax.imports.forEach(node => this.visitImport(node));\n syntax.fileImports.forEach(node => this.visitFileImport(node));\n syntax.systems?.forEach(node => this.visitSystem(node));\n syntax.eventSources?.forEach(node => this.visitEventSource(node));\n syntax.concepts.forEach(node => this.visitConcept(node));\n syntax.types.forEach(node => this.visitType(node));\n syntax.personas.forEach(node => this.visitPersona(node));\n syntax.policies?.forEach(node => this.visitPolicy(node));\n syntax.exposures?.forEach(node => {\n this.visitNode(node);\n node.properties.forEach(property => this.visitNode(property));\n });\n syntax.instanceContributions?.forEach(node => {\n this.visitNode(node);\n node.contributions.forEach(contribution => {\n this.visitNode(contribution);\n if (contribution.value !== null) this.visitExpression(contribution.value);\n contribution.items.forEach(item => {\n this.visitNode(item);\n item.values.forEach(value => {\n this.visitNode(value);\n this.visitExpression(value.value);\n });\n });\n });\n });\n if (syntax.identity != null) this.visitIdentity(syntax.identity);\n syntax.purposes?.forEach(node => this.visitPurpose(node));\n syntax.seeds?.forEach(node => this.visitSeed(node));\n syntax.modules.forEach(node => this.visitModule(node));\n syntax.examples?.forEach(node => this.visitSpecificationExample(node));\n }\n\n visitIdentity(syntax: IdentitySyntax): void {\n this.visitNode(syntax);\n syntax.details.forEach(detail => this.visitIdentityDetail(detail));\n }\n\n visitIdentityDetail(syntax: IdentityDetailSyntax): void {\n this.visitNode(syntax);\n this.visitTypeRef(syntax.type);\n this.visitIdentitySource(syntax.source);\n }\n\n visitIdentitySource(syntax: IdentitySourceSyntax): void {\n switch (syntax.kind) {\n case 'ClaimIdentitySourceSyntax': this.visitClaimIdentitySource(syntax); break;\n case 'QueryIdentitySourceSyntax': this.visitQueryIdentitySource(syntax); break;\n case 'CodeIdentitySourceSyntax': this.visitCodeIdentitySource(syntax); break;\n case 'FileIdentitySourceSyntax': this.visitFileIdentitySource(syntax); break;\n default: this.visitNode(syntax); break;\n }\n }\n\n visitClaimIdentitySource(syntax: ClaimIdentitySourceSyntax): void { this.visitNode(syntax); }\n visitQueryIdentitySource(syntax: QueryIdentitySourceSyntax): void { this.visitNode(syntax); this.visitExpression(syntax.by); }\n visitCodeIdentitySource(syntax: CodeIdentitySourceSyntax): void { this.visitNode(syntax); this.visitCodeBlock(syntax.code); }\n visitFileIdentitySource(syntax: FileIdentitySourceSyntax): void { this.visitNode(syntax); this.visitFileReference(syntax.file); }\n\n visitPurpose(syntax: PurposeSyntax): void {\n this.visitNode(syntax);\n syntax.transfers.forEach(node => this.visitPurposeTransfer(node));\n }\n\n visitPurposeReference(syntax: PurposeReferenceSyntax): void { this.visitNode(syntax); }\n visitPurposeTransfer(syntax: PurposeTransferSyntax): void { this.visitNode(syntax); }\n\n visitPolicy(syntax: PolicySyntax): void {\n this.visitNode(syntax);\n if (syntax.condition !== null) this.visitPolicyCondition(syntax.condition);\n if (syntax.code !== null) this.visitCodeBlock(syntax.code);\n if (syntax.file !== null) this.visitFileReference(syntax.file);\n }\n\n visitPolicyCondition(syntax: PolicyConditionSyntax): void {\n this.visitNode(syntax);\n if (syntax.kind === 'ClaimConditionSyntax' && syntax.matches !== null) this.visitExpression(syntax.matches);\n if (syntax.kind === 'NotPolicyConditionSyntax') this.visitPolicyCondition(syntax.operand);\n if (syntax.kind === 'LogicalPolicyConditionSyntax') { this.visitPolicyCondition(syntax.left); this.visitPolicyCondition(syntax.right); }\n }\n\n visitSeed(syntax: SeedSyntax): void {\n this.visitNode(syntax);\n syntax.groups.forEach(group => {\n this.visitNode(group);\n group.events.forEach(event => { this.visitNode(event); event.properties.forEach(property => this.visitPropertyMapping(property)); });\n });\n }\n\n visitPersona(syntax: PersonaSyntax): void {\n this.visitNode(syntax);\n }\n\n visitAuthorize(syntax: AuthorizeSyntax): void {\n this.visitNode(syntax);\n this.visitPolicyRequirement(syntax.requirement);\n }\n\n visitPolicyRequirement(syntax: PolicyRequirementSyntax): void {\n this.visitNode(syntax);\n if (syntax.kind === 'LogicalPolicyRequirementSyntax') {\n this.visitPolicyRequirement(syntax.left);\n this.visitPolicyRequirement(syntax.right);\n }\n }\n\n visitDomain(syntax: DomainSyntax): void {\n this.visitNode(syntax);\n }\n\n visitImport(syntax: ImportSyntax): void {\n this.visitNode(syntax);\n }\n\n visitFileImport(syntax: FileImportSyntax): void {\n this.visitNode(syntax);\n }\n\n visitConcept(syntax: ConceptSyntax): void {\n this.visitNode(syntax);\n syntax.attributes.forEach(node => this.visitNode(node));\n syntax.validations?.forEach(node => this.visitValidate(node));\n }\n\n visitType(syntax: TypeSyntax): void {\n this.visitNode(syntax);\n syntax.properties.forEach(node => this.visitProperty(node));\n }\n\n visitDependsOn(syntax: DependsOnSyntax): void { this.visitNode(syntax); }\n\n visitModule(syntax: ModuleSyntax): void {\n this.visitNode(syntax);\n syntax.purposes?.forEach(node => this.visitPurposeReference(node));\n syntax.examples?.forEach(node => this.visitSpecificationExample(node));\n syntax.dependsOn?.forEach(node => this.visitDependsOn(node));\n syntax.fileImports.forEach(node => this.visitFileImport(node));\n if (syntax.authorize !== null) this.visitAuthorize(syntax.authorize);\n syntax.features.forEach(node => this.visitFeature(node));\n }\n\n visitFeature(syntax: FeatureSyntax): void {\n this.visitNode(syntax);\n syntax.purposes?.forEach(node => this.visitPurposeReference(node));\n syntax.examples?.forEach(node => this.visitSpecificationExample(node));\n syntax.dependsOn?.forEach(node => this.visitDependsOn(node));\n syntax.fileImports.forEach(node => this.visitFileImport(node));\n if (syntax.authorize !== null) this.visitAuthorize(syntax.authorize);\n syntax.features.forEach(node => this.visitFeature(node));\n syntax.slices.forEach(node => this.visitSlice(node));\n }\n\n visitSlice(syntax: SliceSyntax): void {\n this.visitNode(syntax);\n syntax.purposes?.forEach(node => this.visitPurposeReference(node));\n syntax.examples?.forEach(node => this.visitSpecificationExample(node));\n syntax.commands.forEach(node => this.visitCommand(node));\n syntax.operations?.forEach(node => this.visitOperation(node));\n syntax.events.forEach(node => this.visitEvent(node));\n syntax.constraints.forEach(node => this.visitConstraint(node));\n syntax.queries.forEach(node => this.visitQuery(node));\n syntax.projections.forEach(node => this.visitProjection(node));\n syntax.readModels.forEach(node => this.visitReadModel(node));\n syntax.captures.forEach(node => this.visitCapture(node));\n syntax.reactions.forEach(node => this.visitReaction(node));\n syntax.screens.forEach(node => this.visitScreen(node));\n syntax.specifications.forEach(node => this.visitSpecification(node));\n }\n\n // Explicit reference-only entry points. Default tree traversal remains the narrowed wire traversal;\n // dependency consumers opt into parser-owned side-table payloads rather than changing board visitors.\n visitTriggerData(syntax: TriggerDataSyntax): void {\n this.visitNode(syntax);\n if (syntax.type !== null) this.visitTypeRef(syntax.type);\n }\n visitReads(syntax: ReadsSyntax): void { this.visitNode(syntax); }\n visitConcurrency(syntax: ConcurrencySyntax): void { this.visitNode(syntax); }\n visitReducer(syntax: ReducerSyntax): void {\n this.visitNode(syntax);\n syntax.rules.forEach(node => this.visitReducerRule(node));\n }\n visitReducerRule(syntax: ReducerRuleSyntax): void {\n this.visitNode(syntax);\n if (syntax.file !== null) this.visitFileReference(syntax.file);\n if (syntax.code !== null) this.visitCodeBlock(syntax.code);\n }\n visitForm(syntax: FormSyntax): void {\n this.visitNode(syntax);\n if (syntax.populate !== null) this.visitNode(syntax.populate);\n syntax.fields.forEach(node => this.visitNode(node));\n syntax.columns?.forEach(node => this.visitNode(node));\n if (syntax.layout !== null && syntax.layout !== undefined) {\n this.visitNode(syntax.layout);\n syntax.layout.columns.forEach(column => {\n this.visitNode(column);\n if (column.width !== null) this.visitNode(column.width);\n if (column.minWidth !== null) this.visitNode(column.minWidth);\n if (column.maxWidth !== null) this.visitNode(column.maxWidth);\n });\n if (syntax.layout.columnGap !== null) this.visitNode(syntax.layout.columnGap);\n if (syntax.layout.rowGap !== null) this.visitNode(syntax.layout.rowGap);\n syntax.layout.placements.forEach(placement => {\n this.visitNode(placement);\n if (placement.width !== null) this.visitNode(placement.width);\n });\n }\n if (syntax.onSubmit !== null) this.visitScreenDirective(syntax.onSubmit);\n }\n\n visitCommand(syntax: CommandSyntax): void {\n this.visitNode(syntax);\n syntax.properties.forEach(node => this.visitProperty(node));\n if (syntax.authorize !== null) this.visitAuthorize(syntax.authorize);\n if (syntax.stream != null) this.visitCommandStream(syntax.stream);\n syntax.streamCandidates?.forEach(candidate => this.visitCommandStream(candidate));\n syntax.validations.forEach(node => this.visitValidate(node));\n syntax.produces.forEach(node => this.visitProduces(node));\n if (syntax.handler != null) this.visitHandler(syntax.handler);\n if (syntax.response != null) this.visitCommandResponse(syntax.response);\n }\n\n visitEventSource(syntax: EventSourceSyntax): void {\n this.visitNode(syntax);\n if (syntax.identifier !== null) this.visitTypeRef(syntax.identifier);\n syntax.streams.forEach(stream => this.visitEventStream(stream));\n }\n visitEventStream(syntax: EventStreamSyntax): void {\n this.visitNode(syntax);\n if (syntax.streamId !== null) this.visitTypeRef(syntax.streamId);\n syntax.streamIdParts.forEach(part => this.visitEventStreamIdPart(part));\n }\n visitEventStreamIdPart(syntax: EventStreamIdPartSyntax): void {\n this.visitNode(syntax);\n this.visitTypeRef(syntax.type);\n }\n visitCommandStream(syntax: CommandStreamSyntax): void {\n this.visitNode(syntax);\n if (syntax.streamId !== null) this.visitPropertyMapping(syntax.streamId);\n syntax.streamIdParts.forEach(part => this.visitPropertyMapping(part));\n if (syntax.propertyCandidate !== null) this.visitProperty(syntax.propertyCandidate);\n }\n\n visitSystem(syntax: SystemSyntax): void { this.visitNode(syntax); }\n visitOperation(syntax: OperationSyntax): void {\n this.visitNode(syntax);\n syntax.inputs.forEach(input => this.visitProperty(input));\n if (syntax.execute !== null) this.visitOperationPhase(syntax.execute);\n if (syntax.compensate !== null) this.visitOperationPhase(syntax.compensate);\n }\n visitOperationPhase(syntax: OperationPhaseSyntax): void {\n this.visitNode(syntax);\n if (syntax.implementation !== null) this.visitImplementation(syntax.implementation);\n if (syntax.file !== null) this.visitFileReference(syntax.file);\n if (syntax.code !== null) this.visitCodeBlock(syntax.code);\n }\n visitSpecificationOperationFailure(syntax: SpecificationOperationFailureSyntax): void { this.visitNode(syntax); }\n visitSpecificationCompensated(syntax: SpecificationCompensatedSyntax): void { this.visitNode(syntax); }\n visitSpecificationOperation(syntax: SpecificationOperationSyntax): void {\n this.visitNode(syntax);\n syntax.values.forEach(value => this.visitPropertyMapping(value));\n }\n\n visitHandler(syntax: HandlerSyntax): void {\n this.visitNode(syntax);\n if (syntax.implementation != null) this.visitImplementation(syntax.implementation);\n if (syntax.file !== null) this.visitFileReference(syntax.file);\n if (syntax.code !== null) this.visitCodeBlock(syntax.code);\n }\n\n visitImplementation(syntax: ImplementationSyntax): void {\n this.visitNode(syntax);\n syntax.hints.forEach(hint => this.visitImplementationHint(hint));\n }\n\n visitImplementationHint(syntax: ImplementationHintSyntax): void { this.visitNode(syntax); }\n visitFileReference(syntax: FileReferenceSyntax): void { this.visitNode(syntax); }\n visitCodeBlock(syntax: CodeBlockSyntax): void { this.visitNode(syntax); }\n\n visitCommandResponse(syntax: CommandResponseSyntax): void {\n if (syntax.kind === 'ScalarCommandResponseSyntax') this.visitScalarCommandResponse(syntax);\n else this.visitRecordCommandResponse(syntax);\n }\n\n visitScalarCommandResponse(syntax: ScalarCommandResponseSyntax): void {\n this.visitNode(syntax);\n this.visitPropertyResponseSource(syntax.source);\n }\n\n visitRecordCommandResponse(syntax: RecordCommandResponseSyntax): void {\n this.visitNode(syntax);\n syntax.fields.forEach(field => this.visitResponseField(field));\n }\n\n visitResponseField(syntax: ResponseFieldSyntax): void {\n this.visitNode(syntax);\n if (syntax.type !== null) this.visitTypeRef(syntax.type);\n this.visitPropertyResponseSource(syntax.source);\n }\n\n visitPropertyResponseSource(syntax: PropertyResponseSourceSyntax): void {\n this.visitNode(syntax);\n }\n\n visitSpecificationReturn(syntax: SpecificationReturnSyntax): void {\n if (syntax.kind === 'ScalarSpecificationReturnSyntax') this.visitScalarSpecificationReturn(syntax);\n else this.visitRecordSpecificationReturn(syntax);\n }\n\n visitScalarSpecificationReturn(syntax: ScalarSpecificationReturnSyntax): void {\n this.visitNode(syntax);\n this.visitExpression(syntax.value);\n }\n\n visitRecordSpecificationReturn(syntax: RecordSpecificationReturnSyntax): void {\n this.visitNode(syntax);\n syntax.fields.forEach(field => this.visitPropertyMapping(field));\n }\n\n visitValidate(syntax: ValidateSyntax): void {\n this.visitNode(syntax);\n if (syntax.kind === 'DeclarativeValidateSyntax') {\n syntax.rules.forEach(node => this.visitValidationRule(node));\n syntax.requirements?.forEach(node => { this.visitNode(node); this.visitCondition(node.condition); });\n } else if (syntax.code != null) this.visitCodeBlock(syntax.code);\n }\n\n visitValidationRule(syntax: ValidationRuleSyntax): void {\n this.visitNode(syntax);\n if (syntax.implementation != null) this.visitImplementation(syntax.implementation);\n if (syntax.value !== null) this.visitExpression(syntax.value);\n if (syntax.file !== null) this.visitFileReference(syntax.file);\n if (syntax.code !== null) this.visitCodeBlock(syntax.code);\n }\n\n visitEvent(syntax: EventSyntax): void {\n this.visitNode(syntax);\n syntax.properties.forEach(node => this.visitProperty(node));\n syntax.tags.forEach(node => this.visitTag(node));\n }\n\n visitTag(syntax: TagSyntax): void {\n this.visitNode(syntax);\n this.visitExpression(syntax.value);\n }\n\n visitReadModel(syntax: ReadModelSyntax): void {\n this.visitNode(syntax);\n syntax.properties.forEach(node => this.visitProperty(node));\n }\n\n visitConstraint(syntax: ConstraintSyntax): void {\n this.visitNode(syntax);\n if (syntax.kind === 'FileConstraintSyntax') this.visitNode(syntax.file);\n syntax.additionalRules.forEach(node => this.visitConstraint(node));\n }\n\n visitQuery(syntax: QuerySyntax): void {\n this.visitNode(syntax);\n this.visitTypeRef(syntax.returnType);\n if (syntax.by !== null) this.visitQueryParameter(syntax.by);\n syntax.filters.forEach(node => this.visitQueryParameter(node));\n if (syntax.authorize !== null) this.visitAuthorize(syntax.authorize);\n }\n\n visitQueryParameter(syntax: QueryParameterSyntax): void {\n this.visitNode(syntax);\n this.visitTypeRef(syntax.type);\n if (syntax.source != null) this.visitExpression(syntax.source);\n }\n\n visitKey(syntax: KeySyntax): void {\n this.visitNode(syntax);\n if (syntax.kind === 'ExpressionKeySyntax') this.visitExpression(syntax.expression);\n else syntax.parts.forEach(part => { this.visitNode(part); this.visitExpression(part.expression); });\n }\n\n visitProjection(syntax: ProjectionSyntax): void {\n this.visitNode(syntax);\n if (syntax.key != null) this.visitKey(syntax.key);\n syntax.blocks.forEach(node => this.visitProjectionBlock(node));\n }\n\n visitProjectionBlock(syntax: ProjectionBlockSyntax): void {\n this.visitNode(syntax);\n switch (syntax.kind) {\n case 'FromSyntax':\n syntax.events.forEach(node => { this.visitNode(node); if (node.key != null) this.visitExpression(node.key); });\n if (syntax.key != null) this.visitKey(syntax.key);\n if (syntax.parentKey != null) this.visitExpression(syntax.parentKey);\n syntax.mappings.forEach(node => this.visitMapping(node));\n break;\n case 'EverySyntax':\n case 'AllSyntax':\n syntax.mappings.forEach(node => this.visitMapping(node));\n break;\n case 'JoinSyntax':\n syntax.events.forEach(node => this.visitJoinEvent(node));\n break;\n case 'ProjectionVariantSyntax':\n syntax.entersOn.forEach(node => { this.visitNode(node); if (node.key != null) this.visitExpression(node.key); });\n syntax.blocks.forEach(node => this.visitProjectionBlock(node));\n break;\n case 'ChildrenSyntax':\n if (syntax.identifiedBy !== undefined) this.visitExpression(syntax.identifiedBy);\n syntax.blocks.forEach(node => this.visitProjectionBlock(node));\n break;\n case 'NestedSyntax':\n syntax.blocks.forEach(node => this.visitProjectionBlock(node));\n break;\n case 'RemoveWithSyntax':\n if (syntax.parentKey != null) this.visitExpression(syntax.parentKey);\n if (syntax.key != null) this.visitExpression(syntax.key);\n break;\n case 'RemoveViaJoinSyntax':\n if (syntax.key != null) this.visitExpression(syntax.key);\n break;\n }\n }\n\n visitJoinEvent(syntax: JoinEventSyntax): void {\n this.visitNode(syntax);\n syntax.mappings.forEach(node => this.visitMapping(node));\n }\n\n visitMapping(syntax: MappingSyntax): void {\n this.visitNode(syntax);\n if (syntax.source !== undefined) this.visitExpression(syntax.source);\n if (syntax.value !== undefined) this.visitExpression(syntax.value);\n }\n\n visitCondition(syntax: ConditionSyntax): void {\n this.visitNode(syntax);\n if (syntax.kind === 'ComparisonConditionSyntax') this.visitExpression(syntax.right);\n else { this.visitCondition(syntax.left); this.visitCondition(syntax.right); }\n }\n\n visitReaction(syntax: ReactionSyntax): void {\n this.visitNode(syntax);\n if (syntax.runsAs != null) this.visitReactionIdentity(syntax.runsAs);\n if (syntax.where != null) this.visitCondition(syntax.where);\n syntax.triggers.forEach(node => this.visitReactionTrigger(node));\n }\n\n visitReactionIdentity(syntax: ReactionIdentitySyntax): void { this.visitNode(syntax); }\n\n visitReactionTrigger(syntax: ReactionTriggerSyntax): void {\n this.visitNode(syntax);\n this.visitTriggerSource(syntax.source);\n syntax.produces.forEach(node => this.visitProduces(node));\n syntax.invokes.forEach(node => this.visitInvokes(node));\n }\n\n visitProduces(syntax: ProducesSyntax): void {\n this.visitNode(syntax);\n if (syntax.when != null) this.visitCondition(syntax.when);\n if (syntax.inlineEvent !== null) this.visitEvent(syntax.inlineEvent);\n if (syntax.inlineOperation != null) this.visitOperation(syntax.inlineOperation);\n if (syntax.for !== null) this.visitExpression(syntax.for);\n syntax.mappings.forEach(node => this.visitPropertyMapping(node));\n syntax.tags.forEach(node => this.visitTag(node));\n }\n\n visitInvokes(syntax: InvokesSyntax): void {\n this.visitNode(syntax);\n syntax.mappings?.forEach(node => this.visitPropertyMapping(node));\n syntax.onRefused?.forEach(node => this.visitInvocationRefusal(node));\n }\n\n visitInvocationRefusal(syntax: InvocationRefusalSyntax): void {\n this.visitNode(syntax);\n syntax.produces.forEach(node => this.visitProduces(node));\n }\n\n visitCapture(syntax: CaptureSyntax): void {\n this.visitNode(syntax);\n if (syntax.source !== null) this.visitCaptureSource(syntax.source);\n syntax.map?.forEach(node => this.visitCaptureMap(node));\n syntax.appends.forEach(node => this.visitCaptureAppend(node));\n syntax.children.forEach(node => this.visitCaptureChildren(node));\n syntax.nested.forEach(node => this.visitCaptureNested(node));\n }\n\n visitCaptureSource(syntax: CaptureSourceSyntax): void {\n this.visitNode(syntax);\n syntax.settings.forEach(node => this.visitCaptureSourceSetting(node));\n }\n\n visitCaptureSourceSetting(syntax: CaptureSourceSettingSyntax): void {\n this.visitNode(syntax);\n }\n\n visitCaptureMap(syntax: CaptureMapOperationSyntax): void {\n this.visitNode(syntax);\n this.visitExpression(syntax.source);\n if (syntax.kind === 'CaptureMapEntrySyntax') syntax.translations.forEach(node => this.visitNode(node));\n }\n\n visitCaptureAppend(syntax: CaptureAppendSyntax): void {\n this.visitNode(syntax);\n if (syntax.when != null) this.visitNode(syntax.when);\n syntax.mappings?.forEach(node => this.visitPropertyMapping(node));\n syntax.tags?.forEach(node => this.visitTag(node));\n }\n\n visitCaptureChildren(syntax: CaptureChildrenSyntax): void {\n this.visitNode(syntax);\n syntax.map?.forEach(node => this.visitCaptureMap(node));\n syntax.appends.forEach(node => this.visitCaptureAppend(node));\n }\n\n visitCaptureNested(syntax: CaptureNestedSyntax): void {\n this.visitNode(syntax);\n syntax.map?.forEach(node => this.visitCaptureMap(node));\n syntax.appends.forEach(node => this.visitCaptureAppend(node));\n }\n\n visitTriggerSource(syntax: TriggerSourceSyntax): void {\n this.visitNode(syntax);\n }\n\n visitScreen(syntax: ScreenSyntax): void {\n this.visitNode(syntax);\n syntax.directives.forEach(node => this.visitScreenDirective(node));\n syntax.contributions?.forEach(contribution => {\n this.visitNode(contribution);\n contribution.directives.forEach(node => this.visitScreenDirective(node));\n });\n }\n\n visitScreenDirective(syntax: ScreenDirectiveSyntax): void {\n if (syntax.kind === 'ScreenGuardedActionSyntax') {\n this.visitScreenGuardedAction(syntax);\n return;\n }\n this.visitNode(syntax);\n switch (syntax.kind) {\n case 'ScreenDataSyntax':\n this.visitTypeRef(syntax.type);\n break;\n case 'ScreenActionSyntax':\n if (syntax.navigate !== null) this.visitScreenDirective(syntax.navigate);\n break;\n case 'ScreenNavigateSyntax':\n syntax.parameters.forEach(parameter => {\n this.visitNode(parameter);\n this.visitUiBinding(parameter.binding);\n });\n break;\n case 'ScreenTemplateReferenceSyntax':\n syntax.slots.forEach(slot => {\n this.visitNode(slot);\n slot.directives.forEach(node => this.visitScreenDirective(node));\n });\n break;\n case 'ScreenSectionSyntax':\n syntax.directives.forEach(node => this.visitScreenDirective(node));\n break;\n case 'ScreenTableSyntax':\n syntax.columns.forEach(node => this.visitNode(node));\n if (syntax.rowClick !== null) this.visitScreenDirective(syntax.rowClick);\n break;\n case 'ScreenSummarySyntax':\n syntax.fields.forEach(node => this.visitNode(node));\n break;\n case 'ScreenComponentSyntax':\n if (syntax.context !== null) this.visitUiBinding(syntax.context);\n syntax.properties.forEach(property => {\n this.visitNode(property);\n if (property.binding !== null) this.visitUiBinding(property.binding);\n if (property.value !== null) this.visitExpression(property.value);\n });\n syntax.exposes.forEach(exposed => {\n this.visitNode(exposed);\n this.visitUiBinding(exposed.binding);\n });\n syntax.presentation.forEach(node => this.visitNode(node));\n syntax.outlets.forEach(outlet => {\n this.visitNode(outlet);\n outlet.directives.forEach(node => this.visitScreenDirective(node));\n });\n break;\n case 'ScreenToolbarSyntax':\n syntax.items.forEach(item => {\n this.visitNode(item);\n item.parameters.forEach(parameter => {\n this.visitNode(parameter);\n this.visitUiBinding(parameter.binding);\n });\n item.presentation.forEach(node => this.visitNode(node));\n });\n break;\n case 'ScreenCodeSyntax':\n this.visitNode(syntax.code);\n break;\n }\n }\n\n visitScreenGuardedAction(syntax: ScreenGuardedActionSyntax): void {\n this.visitNode(syntax);\n syntax.alternatives.forEach(node => this.visitScreenActionAlternative(node));\n if (syntax.otherwise !== null) this.visitScreenActionOtherwise(syntax.otherwise);\n if (syntax.navigate !== null) this.visitScreenDirective(syntax.navigate);\n }\n\n visitScreenActionAlternative(syntax: ScreenActionAlternativeSyntax): void {\n this.visitNode(syntax);\n this.visitCondition(syntax.condition);\n syntax.arguments.forEach(node => this.visitInteractionArgument(node));\n }\n\n visitScreenActionOtherwise(syntax: ScreenActionOtherwiseSyntax): void {\n this.visitNode(syntax);\n syntax.arguments.forEach(node => this.visitInteractionArgument(node));\n }\n\n visitInteractionArgument(syntax: InteractionArgumentSyntax): void { this.visitNode(syntax); }\n\n visitSpecification(syntax: SpecificationSyntax): void {\n this.visitNode(syntax);\n syntax.examples?.forEach(node => this.visitSpecificationExample(node));\n syntax.parameters?.forEach(node => { this.visitNode(node); this.visitTypeRef(node.type); });\n syntax.cases?.forEach(node => { this.visitNode(node); node.values.forEach(value => this.visitPropertyMapping(value)); });\n if (syntax.givenClock !== null) this.visitSpecificationClock(syntax.givenClock);\n syntax.givenOperationFailures?.forEach(node => this.visitSpecificationOperationFailure(node));\n syntax.thenOperations?.forEach(node => this.visitSpecificationOperation(node));\n syntax.thenCompensated?.forEach(node => this.visitSpecificationCompensated(node));\n if (syntax.givenCallerPersona != null) this.visitNode(syntax.givenCallerPersona);\n if (syntax.givenCaller != null) {\n this.visitNode(syntax.givenCaller);\n syntax.givenCaller.claims.forEach(node => this.visitNode(node));\n }\n syntax.given.forEach(node => this.visitSpecificationEvent(node));\n syntax.givenReadModels.forEach(node => this.visitSpecificationReadModel(node));\n if (syntax.when !== null) this.visitSpecificationCommand(syntax.when);\n syntax.givenCaptures.forEach(node => this.visitSpecificationCapture(node));\n if (syntax.whenAppended !== null) this.visitSpecificationEvent(syntax.whenAppended);\n if (syntax.whenRedelivered != null) this.visitSpecificationRedelivery(syntax.whenRedelivered);\n if (syntax.whenClock !== null) this.visitSpecificationClock(syntax.whenClock);\n if (syntax.whenTrigger !== null) this.visitSpecificationTrigger(syntax.whenTrigger);\n if (syntax.whenCapture !== null) this.visitSpecificationCapture(syntax.whenCapture);\n if (syntax.whenQuery !== null) this.visitSpecificationWhenQuery(syntax.whenQuery);\n syntax.thenEvents.forEach(node => this.visitSpecificationEvent(node));\n syntax.thenReadModels.forEach(node => this.visitSpecificationReadModel(node));\n syntax.thenAbsentReadModels?.forEach(node => { this.visitNode(node); this.visitExpression(node.key); });\n syntax.thenQueries?.forEach(node => {\n this.visitNode(node);\n node.arguments.forEach(value => this.visitPropertyMapping(value));\n node.results.forEach(result => this.visitSpecificationQueryResult(result));\n });\n syntax.thenResults.forEach(node => this.visitSpecificationQueryResult(node));\n if (syntax.thenNoResult !== null) this.visitNode(syntax.thenNoResult);\n if (syntax.thenDenied != null) this.visitNode(syntax.thenDenied);\n if (syntax.thenReturns != null) this.visitSpecificationReturn(syntax.thenReturns);\n syntax.thenErrors.forEach(node => { this.visitNode(node); if (node.caseValue != null) this.visitExpression(node.caseValue); });\n }\n\n visitSpecificationRedelivery(syntax: SpecificationRedeliverySyntax): void {\n this.visitNode(syntax);\n if (syntax.for !== null) this.visitExpression(syntax.for);\n if (syntax.stream != null) this.visitSpecificationStream(syntax.stream);\n if (syntax.noStream != null) this.visitSpecificationNoStream(syntax.noStream);\n syntax.values.forEach(node => this.visitPropertyMapping(node));\n }\n\n visitSpecificationClock(syntax: SpecificationClockSyntax): void {\n this.visitNode(syntax);\n }\n\n visitSpecificationTrigger(syntax: SpecificationTriggerSyntax): void {\n this.visitNode(syntax);\n syntax.values.forEach(node => this.visitPropertyMapping(node));\n }\n\n visitSpecificationCapture(syntax: SpecificationCaptureSyntax): void {\n this.visitNode(syntax);\n syntax.record.forEach(node => this.visitPropertyMapping(node));\n }\n\n visitSpecificationWhenQuery(syntax: SpecificationWhenQuerySyntax): void {\n this.visitNode(syntax);\n syntax.arguments.forEach(node => this.visitPropertyMapping(node));\n }\n\n visitSpecificationQueryResult(syntax: SpecificationQueryResultSyntax): void {\n this.visitNode(syntax);\n syntax.properties.forEach(node => this.visitPropertyMapping(node));\n }\n\n visitSpecificationExample(syntax: SpecificationExampleSyntax): void {\n this.visitNode(syntax);\n if (syntax.for !== null) this.visitExpression(syntax.for);\n if (syntax.stream != null) this.visitSpecificationStream(syntax.stream);\n if (syntax.noStream != null) this.visitSpecificationNoStream(syntax.noStream);\n syntax.values.forEach(node => this.visitPropertyMapping(node));\n syntax.generatedValues.forEach(node => this.visitPropertyMapping(node));\n }\n\n visitSpecificationEvent(syntax: SpecificationEventSyntax): void {\n this.visitNode(syntax);\n if (syntax.stream != null) this.visitSpecificationStream(syntax.stream);\n if (syntax.noStream != null) this.visitSpecificationNoStream(syntax.noStream);\n syntax.values.forEach(node => this.visitPropertyMapping(node));\n if (syntax.for !== null) this.visitExpression(syntax.for);\n }\n\n visitSpecificationStream(syntax: SpecificationStreamSyntax): void {\n this.visitNode(syntax);\n if (syntax.streamId !== null) this.visitPropertyMapping(syntax.streamId);\n syntax.streamIdParts.forEach(part => this.visitPropertyMapping(part));\n }\n\n visitSpecificationNoStream(syntax: SpecificationNoStreamSyntax): void { this.visitNode(syntax); }\n\n visitSpecificationCommand(syntax: SpecificationCommandSyntax): void {\n this.visitNode(syntax);\n (syntax.generatedValues ?? []).forEach(fixture => this.visitPropertyMapping(fixture));\n syntax.values.forEach(node => this.visitPropertyMapping(node));\n if (syntax.for !== null) this.visitExpression(syntax.for);\n }\n\n visitSpecificationReadModel(syntax: SpecificationReadModelSyntax): void {\n this.visitNode(syntax);\n syntax.properties.forEach(node => this.visitPropertyMapping(node));\n }\n\n visitPropertyMapping(syntax: PropertyMappingSyntax): void {\n this.visitNode(syntax);\n this.visitExpression(syntax.source);\n }\n\n visitProperty(syntax: PropertySyntax): void {\n this.visitNode(syntax);\n this.visitTypeRef(syntax.type);\n }\n\n visitTypeRef(syntax: TypeRefSyntax): void {\n this.visitNode(syntax);\n }\n\n visitUiBinding(syntax: import('./Screens').UiBindingSyntax): void {\n this.visitNode(syntax);\n if (syntax.literal !== null) this.visitExpression(syntax.literal);\n }\n\n visitIdentityExpression(syntax: IdentityExpressionSyntax): void { this.visitNode(syntax); }\n\n visitExpression(syntax: ExpressionSyntax): void {\n if (syntax.kind === 'IdentityExpressionSyntax') { this.visitIdentityExpression(syntax); return; }\n this.visitNode(syntax);\n if (syntax.kind === 'ListExpressionSyntax') {\n syntax.items.forEach(item => this.visitExpression(item));\n } else if (syntax.kind === 'ObjectExpressionSyntax') {\n syntax.members.forEach(member => this.visitObjectMember(member));\n } else if (syntax.kind === 'TemplateExpressionSyntax') {\n syntax.parts.forEach(part => { this.visitNode(part); if (part.kind === 'TemplateInterpolationSyntax') this.visitExpression(part.expression); });\n }\n }\n\n visitObjectMember(syntax: ObjectMemberSyntax): void {\n this.visitNode(syntax);\n this.visitExpression(syntax.value);\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";import{InvalidSyntaxJson as e}from"./InvalidSyntaxJson.js";const t=Object.freeze({numericMode:`legacy`}),n=Object.freeze({numericMode:`exact`}),r=Object.freeze({numericMode:`invalid`});function validatedSourceOptions(r){if(typeof r!=`object`||!r||Object.getPrototypeOf(r)!==Object.prototype&&Object.getPrototypeOf(r)!==null||Reflect.ownKeys(r).length!==1||!Object.hasOwn(r,`numericMode`))throw new e(`Malformed source numeric options.`);let i=r.numericMode;if(i!==`legacy`&&i!==`exact`)throw new e(`Malformed source numeric options.`);return i===`exact`?n:t}const i=/* @__PURE__ */ new WeakSet;function recordAuthoredDocument(e){i.add(e)}function isAuthoredDocument(e){return i.has(e)}export{n as exactSourceOptions,r as invalidSourceOptions,isAuthoredDocument,t as legacySourceOptions,recordAuthoredDocument,validatedSourceOptions};
2
+ //# sourceMappingURL=SourceOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SourceOptions.js","names":["legacySourceOptions","exactSourceOptions","invalidSourceOptions","value","InvalidSyntaxJson","mode","authoredDocuments","root"],"sources":["../../../../../../Compiler/Syntax/SourceOptions.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { InvalidSyntaxJson } from './InvalidSyntaxJson';\n\nexport type NumericMode = 'legacy' | 'exact';\nexport interface SourceOptions { readonly numericMode: NumericMode; }\nexport const legacySourceOptions: SourceOptions = Object.freeze({ numericMode: 'legacy' });\nexport const exactSourceOptions: SourceOptions = Object.freeze({ numericMode: 'exact' });\nexport const invalidSourceOptions: SourceOptions = Object.freeze({ numericMode: 'invalid' as NumericMode });\n\n// Validate before selecting neutrality or a mode. Missing options are defaulted by the owning root,\n// not here: an explicitly present null/undefined/malformed assertion must never become Legacy.\nexport function validatedSourceOptions(value: unknown): SourceOptions {\n if (typeof value !== 'object' || value === null || (Object.getPrototypeOf(value) !== Object.prototype && Object.getPrototypeOf(value) !== null) || Reflect.ownKeys(value).length !== 1 || !Object.hasOwn(value, 'numericMode')) throw new InvalidSyntaxJson('Malformed source numeric options.');\n const mode = (value as { numericMode: unknown }).numericMode;\n if (mode !== 'legacy' && mode !== 'exact') throw new InvalidSyntaxJson('Malformed source numeric options.');\n return mode === 'exact' ? exactSourceOptions : legacySourceOptions;\n}\n\nconst authoredDocuments = new WeakSet<object>();\nexport function recordAuthoredDocument(root: object): void { authoredDocuments.add(root); }\nexport function isAuthoredDocument(root: object): boolean { return authoredDocuments.has(root); }\n"],"mappings":"gHAOA,MAAaA,EAAqC,OAAO,OAAO,CAAE,YAAa,QAAS,CAAC,EAC5EC,EAAoC,OAAO,OAAO,CAAE,YAAa,OAAQ,CAAC,EAC1EC,EAAsC,OAAO,OAAO,CAAE,YAAa,SAAyB,CAAC,EAI1G,SAAgB,uBAAuB,EAA+B,CAClE,GAAI,OAAOC,GAAU,WAAYA,GAAmB,OAAO,eAAeA,CAAK,IAAM,OAAO,WAAa,OAAO,eAAeA,CAAK,IAAM,MAAS,QAAQ,QAAQA,CAAK,CAAC,CAAC,SAAW,GAAK,CAAC,OAAO,OAAOA,EAAO,aAAa,EAAG,MAAM,IAAIC,EAAkB,mCAAmC,EAC/R,IAAMC,EAAQF,EAAmC,YACjD,GAAIE,IAAS,UAAYA,IAAS,QAAS,MAAM,IAAID,EAAkB,mCAAmC,EAC1G,OAAOC,IAAS,QAAUJ,EAAqBD,CACnD,CAEA,MAAMM,kBAAoB,IAAI,QAC9B,SAAgB,uBAAuB,EAAoB,CAAEA,EAAkB,IAAIC,CAAI,CAAG,CAC1F,SAAgB,mBAAmB,EAAuB,CAAE,OAAOD,EAAkB,IAAIC,CAAI,CAAG"}
@@ -0,0 +1,2 @@
1
+ const e=/* @__PURE__ */ new WeakMap;export{e as specificationCaseOrigins};
2
+ //# sourceMappingURL=SpecificationCaseOrigin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpecificationCaseOrigin.js","names":["specificationCaseOrigins"],"sources":["../../../../../../Compiler/Syntax/SpecificationCaseOrigin.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { SpecificationSyntax } from './Specifications';\n\nexport interface SpecificationCaseOrigin {\n readonly table: string;\n readonly case: string;\n}\n\nexport const specificationCaseOrigins = new WeakMap<SpecificationSyntax, SpecificationCaseOrigin>();\n"],"mappings":"AAUA,MAAaA,kBAA2B,IAAI"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";function tryFormatText(e){return e.length===0?{value:null,failure:`Empty`}:/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/u.test(e)?{value:null,failure:`LoneSurrogate`}:e.normalize(`NFC`)===e?{value:e,failure:null}:{value:null,failure:`NotNfc`}}function tryFormatUuidText(e){if(!/^(?:[0-9a-f]{32}|[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}|\{[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}\}|\([0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}\))(?![\s\S])/i.test(e))return{value:null,failure:`MalformedUuid`};let t=e.replace(/[{}()-]/g,``).toLowerCase();return{value:`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`,failure:null}}function tryFormatInteger(e,t=typeof e==`number`){if(typeof e==`number`&&!Number.isInteger(e))return{value:null,failure:`NotIntegral`};let n=BigInt(e);return t&&(n<-9007199254740991n||n>9007199254740991n)?{value:null,failure:`OutOfRange`}:{value:n.toString(),failure:null}}function streamIdFailureMessage(e){switch(e){case`Empty`:return`A stream id text literal cannot be empty.`;case`NotNfc`:return`A stream id text literal must be Unicode NFC.`;case`LoneSurrogate`:return`A stream id text literal cannot contain lone UTF-16 surrogates.`;case`OutOfRange`:return`A stream id integer literal must be between -9007199254740991 and 9007199254740991 in Double numeric mode.`;case`NotIntegral`:return`A stream id integer must be a finite integral value.`;case`MalformedUuid`:return`A stream id UUID must use N, D, B or P form.`;case`Arity`:return`A composite stream id must match the declared part count of at least two.`;case`Escape`:return`A composite stream id permits only %25 and %7C escapes.`;case`Noncanonical`:return`A composite stream id part must use canonical scalar spelling.`}}export{streamIdFailureMessage,tryFormatInteger,tryFormatText,tryFormatUuidText};
2
+ //# sourceMappingURL=StreamIdFormatter.js.map