@cratis/screenplay-language 4.146.0 → 4.147.1

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 (45) hide show
  1. package/dist/bundles/compiler/Diagnostics/DiagnosticCodes.js +1 -1
  2. package/dist/bundles/compiler/Diagnostics/DiagnosticCodes.js.map +1 -1
  3. package/dist/bundles/compiler/Parsing/GenerationParser.js +2 -0
  4. package/dist/bundles/compiler/Parsing/GenerationParser.js.map +1 -0
  5. package/dist/bundles/compiler/Parsing/ResponseValidator.js +1 -1
  6. package/dist/bundles/compiler/Parsing/ResponseValidator.js.map +1 -1
  7. package/dist/bundles/compiler/Parsing/ScreenplayParser.js +1 -1
  8. package/dist/bundles/compiler/Parsing/ScreenplayParser.js.map +1 -1
  9. package/dist/bundles/compiler/Syntax/ScreenplaySyntaxWalker.js +1 -1
  10. package/dist/bundles/compiler/Syntax/ScreenplaySyntaxWalker.js.map +1 -1
  11. package/dist/bundles/compiler/Syntax/SyntaxCollections.js +1 -1
  12. package/dist/bundles/compiler/Syntax/SyntaxCollections.js.map +1 -1
  13. package/dist/bundles/compiler/Syntax/SyntaxJson.js +1 -1
  14. package/dist/bundles/compiler/Syntax/SyntaxJson.js.map +1 -1
  15. package/dist/bundles/completion-items.js +1 -1
  16. package/dist/bundles/completion-items.js.map +1 -1
  17. package/dist/bundles/completion-planner.js +2 -2
  18. package/dist/bundles/completion-planner.js.map +1 -1
  19. package/dist/bundles/diagnostic-codes.js +1 -1
  20. package/dist/bundles/diagnostic-codes.js.map +1 -1
  21. package/dist/bundles/generation-completions.js +2 -0
  22. package/dist/bundles/generation-completions.js.map +1 -0
  23. package/dist/bundles/hover-content.js +5 -5
  24. package/dist/bundles/hover-content.js.map +1 -1
  25. package/dist/bundles/response-completions.js +1 -1
  26. package/dist/bundles/response-completions.js.map +1 -1
  27. package/dist/bundles/symbols.js +1 -1
  28. package/dist/bundles/symbols.js.map +1 -1
  29. package/dist/bundles/tokens.js +1 -1
  30. package/dist/bundles/tokens.js.map +1 -1
  31. package/dist/bundles/validation.js +1 -1
  32. package/dist/bundles/validation.js.map +1 -1
  33. package/dist/completion-items.d.ts.map +1 -1
  34. package/dist/completion-planner.d.ts.map +1 -1
  35. package/dist/diagnostic-codes.d.ts +13 -0
  36. package/dist/diagnostic-codes.d.ts.map +1 -1
  37. package/dist/generation-completions.d.ts +3 -0
  38. package/dist/generation-completions.d.ts.map +1 -0
  39. package/dist/hover-content.d.ts.map +1 -1
  40. package/dist/response-completions.d.ts.map +1 -1
  41. package/dist/symbols.d.ts +1 -0
  42. package/dist/symbols.d.ts.map +1 -1
  43. package/dist/tokens.d.ts.map +1 -1
  44. package/dist/validation.d.ts.map +1 -1
  45. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ScreenplayParser.js","names":["domainPattern","pattern","importPattern","stringBodyPattern","conceptPattern","enumValuePattern","personaPattern","personaPolicyPattern","tabIndentPattern","primitiveTypes","opaqueTopLevel","bodyKeywords","documentPlacement","context","lines","moduleBody","placement","ModuleBody","featureBody","FeatureBody","placedBody","identity","domain","imports","fileImports","concepts","types","systems","eventSources","modules","personas","policies","purposes","seeds","examples","declaredTriggers","exposures","instanceContributions","sawOtherConstruct","line","keyword","firstWord","misplacedReactionIdentity","isFileImport","parseFileImport","match","DiagnosticCodes","locationOf","origin","unescapeString","isBlankPublicEventOrigin","parseExample","parseEventSource","parseSystem","parseType","isDocumentPlacement","parseModule","parseSeed","parsePurpose","parseIdentity","parsePolicy","parseExposure","parseInstance","data","parseTriggerDeclaration","name","collectInputUses","root","recordAuthoredDocument","modulePattern","describePlacement","word","hint","expected","moduleBodyExpected","featureBodyExpected","feature","innermost","index","start","existing","inFence","startOf","type","attributeText","attributes","parseComplianceMarkers","values","members","EnumerationMembers","description","validations","child","memberName","parseDescription","isFileDirective","parsed","parseValidate","parseComplianceDirective","unescapeIdentifier","valueNumbers","policy"],"sources":["../../../../../../Compiler/Parsing/ScreenplayParser.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 { EnumerationMembers } from './EnumerationMembers';\nimport { IdentitySyntax } from '../Syntax/IdentitySyntax';\nimport { parseIdentity } from './IdentityParser';\nimport { misplacedReactionIdentity } from './ReactionIdentityParser';\nimport { DiagnosticCodes } from '../Diagnostics/DiagnosticCodes';\nimport { recordAuthoredDocument } from '../Syntax/SourceOptions';\nimport { SourceLocation } from '../Diagnostics/SourceLocation';\nimport { describePlacement, documentPlacement, isDocumentPlacement, PlayPlacement } from '../Files/PlayPlacement';\nimport { PersonaSyntax } from '../Syntax/Authorization';\nimport { ConceptSyntax, DomainSyntax, ImportSyntax, TypeSyntax } from '../Syntax/Declarations';\nimport { SpecificationExampleSyntax } from '../Syntax/Specifications';\nimport { ApplicationSyntax, FeatureSyntax, FileImportSyntax, ModuleSyntax } from '../Syntax/Structure';\nimport { parseTriggerDeclaration } from './TriggerDataParser';\nimport { pattern } from '../Text/patterns';\nimport { parseComplianceDirective, parseComplianceMarkers } from './ConceptComplianceParser';\nimport { parseType } from './DeclarationParsers';\nimport { ValidateSyntax } from '../Syntax/Commands';\nimport { parseValidate } from './CommandParser';\nimport { parseDescription } from './DescriptionParser';\nimport { FeatureBody, featureBodyExpected } from './FeatureBody';\nimport { isFileImport, parseFileImport } from './FileImportParser';\nimport { isFileDirective } from './FileReferences';\nimport { collectInputUses } from './InputUses';\nimport { firstWord, unescapeIdentifier } from './LineText';\nimport { ModuleBody, moduleBodyExpected, modulePattern, parseModule } from './ModuleBody';\nimport { ParserContext } from './ParserContext';\nimport { PolicySyntax } from '../Syntax/Policies';\nimport { parsePolicy } from './PolicyParser';\nimport { PurposeSyntax } from '../Syntax/Purposes';\nimport { parsePurpose } from './PurposeParser';\nimport { SeedSyntax } from '../Syntax/Seeds';\nimport { parseSeed } from './SeedParser';\nimport { parseSystem } from './OperationParser';\nimport { EventVisibility } from '../Syntax/EventVisibility';\nimport { isBlankPublicEventOrigin } from '../Syntax/PublicEventInvariants';\nimport { stringBodyPattern, unescapeString } from '../Text/StringLiteral';\nimport { SystemSyntax } from '../Syntax/Operations';\nimport { EventSourceSyntax } from '../Syntax/EventSources';\nimport { parseEventSource } from './EventSourceParser';\nimport { parseExposure, parseInstance } from './CompositionParser';\nimport { ExposureSyntax, InstanceContributionsSyntax } from '../Syntax/CompositionSyntax';\nimport { parseExample } from './SpecificationExampleParser';\nimport { locationOf, SourceLine, startOf } from './SourceLine';\n\nconst domainPattern = pattern('^domain\\\\s+([A-Za-z_]\\\\w*(?:\\\\.[A-Za-z_]\\\\w*)*)$');\nconst importPattern = pattern(`^import\\\\s+([\\\\w.]+)(?:\\\\s+from\\\\s+\"(?<origin>${stringBodyPattern})\")?$`);\nconst conceptPattern = pattern('^concept\\\\s+(\\\\w+)\\\\s*:\\\\s*(\\\\w+)((?:\\\\s+@?\\\\w+)*)$');\nconst enumValuePattern = pattern('^@?[a-z_]\\\\w*$');\nconst personaPattern = pattern('^persona\\\\s+([A-Za-z_]\\\\w*)$');\nconst personaPolicyPattern = pattern('^policy\\\\s+([A-Za-z_]\\\\w*)$');\nconst tabIndentPattern = /^[ ]*\\t/;\nconst primitiveTypes = ['Uuid', 'String', 'Int', 'Decimal', 'Bool', 'Date', 'DateTime'];\n\n// Top-level, module and feature constructs the C# compiler knows that this compiler does not model. They\n// are skipped whole, not reported.\nconst opaqueTopLevel = new Set(['policy', 'authentication', 'seed', 'ui', 'theme', 'trigger', 'layout', 'behavior']);\n\n// What belongs in a module or feature body; at the top level of a whole document it gets a hint saying so.\nconst bodyKeywords = new Set(['slice', 'feature', 'description', 'documentation', 'authorize', 'screen', 'dialog', 'form', 'contribute', 'on', 'uses']);\n\n// Parses one document into its application syntax - the port of the C# ScreenplayParser. The placement says\n// where the document's top level belongs: the application, unless an import placed it in a module or feature.\nexport function parseApplication(context: ParserContext, lines: readonly SourceLine[], placement: PlayPlacement = documentPlacement): ApplicationSyntax {\n context.deferIdentityValidation = true;\n warnOnTabIndentation(context, lines);\n const moduleBody = placement.length === 1 ? new ModuleBody(placement[0]) : undefined;\n const featureBody = placement.length > 1 ? new FeatureBody(placement[placement.length - 1]) : undefined;\n const placedBody = moduleBody ?? featureBody;\n let identity: IdentitySyntax | null = null;\n let domain: DomainSyntax | null = null;\n const imports: ImportSyntax[] = [];\n const fileImports: FileImportSyntax[] = [];\n const concepts: ConceptSyntax[] = [];\n const types: TypeSyntax[] = [];\n const systems: SystemSyntax[] = [];\n const eventSources: EventSourceSyntax[] = [];\n const modules: ModuleSyntax[] = [];\n const personas: PersonaSyntax[] = [];\n const policies: PolicySyntax[] = [];\n const purposes: PurposeSyntax[] = [];\n const seeds: SeedSyntax[] = [];\n const examples: SpecificationExampleSyntax[] = [];\n const declaredTriggers: NonNullable<ApplicationSyntax['declaredTriggers']>[number][] = [];\n const exposures: ExposureSyntax[] = [];\n const instanceContributions: InstanceContributionsSyntax[] = [];\n let sawOtherConstruct = false;\n for (let line = context.reader.peekSignificant(); line !== undefined; line = context.reader.peekSignificant()) {\n context.reader.takeSignificant();\n const keyword = firstWord(line.content);\n if (keyword === 'runs') {\n misplacedReactionIdentity(context, line);\n continue;\n }\n if (keyword === 'domain') {\n context.authoredDeclarations = true;\n domain = parseDomain(context, line, domain, sawOtherConstruct);\n continue;\n }\n // The C# parser asks whether anything was declared before the domain, so an import it rejected,\n // a file import and an unknown construct do not count.\n sawOtherConstruct ||= declaresConstruct(keyword, line, placement);\n context.authoredDeclarations ||= keyword !== 'import' && declaresConstruct(keyword, line, placement);\n if (keyword === 'import' && isFileImport(line.content)) {\n // A top level import belongs to whatever the document's top level is - the application, or the\n // module or feature the document was itself imported into.\n if (placedBody !== undefined) {\n placedBody.tryParse(context, line);\n } else {\n parseFileImport(context, line, fileImports);\n }\n } else if (keyword === 'import') {\n const match = importPattern.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.InvalidImportDeclaration, `Invalid import '${line.content}' - expected 'import <Qualified.Name> [from \"<origin>\"]'`, locationOf(line));\n } else {\n const origin = match.groups?.origin === undefined ? null : unescapeString(match.groups.origin);\n if (origin !== null && isBlankPublicEventOrigin(origin)) {\n context.error(DiagnosticCodes.InvalidImportDeclaration, 'An import origin must be a nonblank quoted string', locationOf(line));\n }\n imports.push({ kind: 'ImportSyntax', qualifiedName: match[1], origin, visibility: origin === null ? EventVisibility.Private : EventVisibility.Public, location: locationOf(line) });\n }\n } else if (keyword === 'example') {\n if (placedBody !== undefined) placedBody.tryParse(context, line);\n else examples.push(parseExample(context, line));\n } else if (keyword === 'eventsource') {\n eventSources.push(parseEventSource(context, line));\n } else if (keyword === 'system') {\n systems.push(parseSystem(context, line));\n } else if (keyword === 'concept') {\n concepts.push(parseConcept(context, line));\n } else if (keyword === 'type') {\n types.push(parseType(context, line));\n } else if (keyword === 'module' && !isDocumentPlacement(placement)) {\n parseModuleInPlacedFile(context, line, placement, moduleBody);\n } else if (keyword === 'module') {\n modules.push(parseModule(context, line));\n } else if (keyword === 'persona') {\n personas.push(parsePersona(context, line));\n } else if (keyword === 'seed') {\n seeds.push(parseSeed(context.valueContext, line));\n } else if (keyword === 'purpose' && placedBody !== undefined) {\n placedBody.tryParse(context, line);\n } else if (keyword === 'purpose') {\n purposes.push(parsePurpose(context, line));\n } else if (keyword === 'identity') {\n identity = parseIdentity(context, line, identity);\n } else if (keyword === 'policy') {\n // Legacy policies were opaque: enrich their structure without adding diagnostics.\n policies.push(parsePolicy(context, line));\n } else if (keyword === 'exposure') {\n exposures.push(parseExposure(context, line));\n } else if (keyword === 'instance') {\n instanceContributions.push(parseInstance(context, line));\n } else if (keyword === 'trigger') {\n const data = parseTriggerDeclaration(context, line);\n const name = /^trigger\\s+([A-Za-z_]\\w*)$/.exec(line.content)?.[1];\n if (name !== undefined) declaredTriggers.push({ name, data });\n } else if (opaqueTopLevel.has(keyword)) {\n if (keyword === 'behavior' || keyword === 'layout') collectInputUses(context, line);\n else context.skipOpaqueBlock(line.indent);\n } else if (placedBody?.tryParse(context, line) !== true) {\n reportUnexpectedTopLevel(context, line, placement);\n }\n }\n if (moduleBody !== undefined) {\n modules.unshift(moduleBody.build(context.start, true));\n } else if (featureBody !== undefined) {\n modules.unshift(place(placement, featureBody.build(context.start, true), context.start));\n }\n const root: ApplicationSyntax = { kind: 'ApplicationSyntax', ...(identity === null ? {} : { identity }), sourceOptions: context.sourceOptions, domain, imports, concepts, types, systems, eventSources, examples, modules, personas, policies, purposes, seeds, declaredTriggers, fileImports, ...(exposures.length > 0 ? { exposures } : {}), ...(instanceContributions.length > 0 ? { instanceContributions } : {}), location: context.start };\n if (context.authoredDeclarations) recordAuthoredDocument(root);\n return root;\n}\n\nfunction declaresConstruct(keyword: string, line: SourceLine, placement: PlayPlacement): boolean {\n if (keyword === 'import') {\n return importPattern.test(line.content);\n }\n if (keyword === 'module') {\n return isDocumentPlacement(placement);\n }\n if (keyword === 'identity') return line.content === 'identity';\n return keyword === 'purpose' || keyword === 'example' || keyword === 'exposure' || keyword === 'instance' || keyword === 'eventsource' || keyword === 'system' || keyword === 'concept' || keyword === 'type' || keyword === 'persona' || opaqueTopLevel.has(keyword);\n}\n\nfunction parseModuleInPlacedFile(context: ParserContext, line: SourceLine, placement: PlayPlacement, moduleBody: ModuleBody | undefined): void {\n const name = modulePattern.exec(line.content)?.[1] ?? '';\n\n // Restating the module a file is placed in says nothing new, so its body simply joins the placement.\n if (moduleBody !== undefined && name === placement[0]) {\n context.authoredDeclarations = true;\n moduleBody.parseChildren(context, line);\n return;\n }\n context.error(DiagnosticCodes.ModuleInPlacedFile,\n `This file is imported into ${describePlacement(placement)}, so it cannot declare module '${name}' - import it at the top level of a document instead`, locationOf(line));\n context.skipBlock(line.indent);\n}\n\nfunction reportUnexpectedTopLevel(context: ParserContext, line: SourceLine, placement: PlayPlacement): void {\n const word = firstWord(line.content);\n if (!isDocumentPlacement(placement)) {\n const expected = placement.length === 1 ? moduleBodyExpected : featureBodyExpected;\n context.error(DiagnosticCodes.UnexpectedInPlacedFile,\n `Unexpected '${word}' in a file imported into ${describePlacement(placement)} - expected an application declaration or ${expected}`, locationOf(line));\n } else {\n const hint = bodyKeywords.has(word)\n ? ` - '${word}' belongs in a module or feature; wrap it in one, or import this file from inside one`\n : ' - expected domain, import, concept, type, policy, persona, authentication, identity, module, seed, trigger, behavior, ui profile, theme or layout';\n context.error(DiagnosticCodes.UnknownTopLevelConstruct, `Unexpected '${word}' at the top level${hint}`, locationOf(line));\n }\n context.skipBlock(line.indent);\n}\n\n// Wraps the feature a file is placed in in the features and module around it, each marked as a placement.\nfunction place(placement: PlayPlacement, innermost: FeatureSyntax, start: SourceLocation): ModuleSyntax {\n let feature = innermost;\n for (let index = placement.length - 2; index >= 1; index--) {\n feature = {\n kind: 'FeatureSyntax', name: placement[index], description: null, authorize: null,\n features: [feature], slices: [], fileImports: [], isPlacement: true, location: start,\n };\n }\n return {\n kind: 'ModuleSyntax', name: placement[0], description: null, authorize: null,\n features: [feature], fileImports: [], isPlacement: true, location: start,\n };\n}\n\nfunction parseDomain(context: ParserContext, line: SourceLine, existing: DomainSyntax | null, sawOtherConstruct: boolean): DomainSyntax | null {\n const match = domainPattern.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.InvalidDomainDeclaration, `Invalid domain declaration '${line.content}' - expected 'domain <Qualified.Name>'`, locationOf(line));\n return existing;\n }\n if (existing !== null) {\n context.error(DiagnosticCodes.DuplicateDomain, 'The document already declares a domain - a document can have at most one', locationOf(line));\n return existing;\n }\n if (sawOtherConstruct) {\n context.error(DiagnosticCodes.DomainNotFirst, '\\'domain\\' must be declared before any other construct', locationOf(line));\n }\n return { kind: 'DomainSyntax', name: match[1], location: locationOf(line) };\n}\n\nfunction warnOnTabIndentation(context: ParserContext, lines: readonly SourceLine[]): void {\n let inFence = false;\n for (const line of lines) {\n if (line.raw.trimStart().startsWith('```')) {\n inFence = !inFence;\n continue;\n }\n if (!inFence && tabIndentPattern.test(line.raw)) {\n context.warning(DiagnosticCodes.TabIndentation, 'Screenplay is indentation based - use spaces, not tabs', startOf(line));\n }\n }\n}\n\nfunction parseConcept(context: ParserContext, line: SourceLine): ConceptSyntax {\n const match = conceptPattern.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.InvalidConceptDeclaration, `Invalid concept declaration '${line.content}' - expected 'concept <Name> : <Type>'`, locationOf(line));\n context.skipBlock(line.indent);\n return { kind: 'ConceptSyntax', name: firstWord(line.content), type: '', attributes: [], values: [], location: locationOf(line) };\n }\n const [, name, type, attributeText] = match;\n const attributes = parseComplianceMarkers(context, line, name, attributeText);\n if (type !== 'Enum' && !primitiveTypes.includes(type)) {\n context.error(DiagnosticCodes.UnknownPrimitiveType, `Unknown primitive type '${type}' - expected ${primitiveTypes.join(', ')} or Enum`, locationOf(line));\n }\n const values: string[] = [];\n const members = new EnumerationMembers();\n let description: string | null = null;\n const validations: ValidateSyntax[] = [];\n for (let child = context.peekChild(line.indent); child !== undefined; child = context.peekChild(line.indent)) {\n context.reader.takeSignificant();\n const memberName = type === 'Enum' ? members.tryNumbered(context, child) : undefined;\n if (memberName !== undefined) {\n values.push(memberName);\n } else if (firstWord(child.content) === 'description' && (type !== 'Enum' || child.content !== 'description' || context.peekChild(child.indent)?.content.startsWith('```') === true)) {\n description = parseDescription(context, child, description, `Concept '${name}'`);\n } else if (isFileDirective(child)) {\n continue;\n } else if (firstWord(child.content) === 'validate') {\n if (type === 'Enum' && child.content === 'validate' && context.peekChild(child.indent) === undefined) {\n context.warning(DiagnosticCodes.ValidateReadAsEnumerationBlock,\n `'validate' in enumeration concept '${name}' declares an empty validate block, not a value named 'validate' - write '@validate' for the value`,\n locationOf(child));\n }\n const parsed = parseValidate(context, child, 'concept');\n if (parsed !== undefined) validations.push(parsed);\n } else if (parseComplianceDirective(context, child, name, attributes)) {\n // Compliance directives are modeled by their original concept marker.\n } else if (type === 'Enum' && enumValuePattern.test(child.content)) {\n values.push(unescapeIdentifier(child.content));\n } else if (type === 'Enum') {\n context.error(DiagnosticCodes.InvalidEnumerationValue, `Invalid enum value '${child.content}' - expected an identifier`, locationOf(child));\n } else {\n context.error(DiagnosticCodes.UnknownConceptDirective, `Unexpected '${child.content}' in concept body - expected validate, 'file <path>' or '<attribute> reason \"<text>\"'`, locationOf(child));\n context.skipBlock(child.indent);\n }\n }\n const valueNumbers = members.finish(context, line, values.length);\n return { kind: 'ConceptSyntax', name, type, attributes, values, validations, description, ...(valueNumbers === undefined ? {} : { valueNumbers }), location: locationOf(line) };\n}\n\n// 'persona <Name>' with an optional description and the policies it holds - the port of the C# ParsePersona.\nfunction parsePersona(context: ParserContext, line: SourceLine): PersonaSyntax {\n const name = personaPattern.exec(line.content)?.[1] ?? '';\n if (name === '') {\n context.error(DiagnosticCodes.InvalidPersonaDeclaration, `Invalid persona declaration '${line.content}' - expected 'persona <Name>'`, locationOf(line));\n }\n let description: string | null = null;\n const policies: string[] = [];\n for (let child = context.peekChild(line.indent); child !== undefined; child = context.peekChild(line.indent)) {\n context.reader.takeSignificant();\n const keyword = firstWord(child.content);\n if (keyword === 'description') {\n description = parseDescription(context, child, description, `Persona '${name}'`);\n } else if (keyword === 'policy') {\n const policy = personaPolicyPattern.exec(child.content);\n if (policy === null) {\n context.error(DiagnosticCodes.InvalidPersonaPolicyReference, `Invalid policy reference '${child.content}' - expected 'policy <Name>'`, locationOf(child));\n } else {\n policies.push(policy[1]);\n }\n } else {\n context.error(DiagnosticCodes.UnknownPersonaDirective, `Unexpected '${keyword}' in persona body - expected description or policy`, locationOf(child));\n context.skipBlock(child.indent);\n }\n }\n return { kind: 'PersonaSyntax', name, description, policies, location: locationOf(line) };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ScreenplayParser.js","names":["domainPattern","pattern","importPattern","stringBodyPattern","conceptPattern","enumValuePattern","personaPattern","personaPolicyPattern","tabIndentPattern","primitiveTypes","opaqueTopLevel","bodyKeywords","documentPlacement","context","lines","moduleBody","placement","ModuleBody","featureBody","FeatureBody","placedBody","identity","domain","imports","fileImports","concepts","types","systems","eventSources","modules","personas","policies","purposes","seeds","examples","declaredTriggers","exposures","instanceContributions","sawOtherConstruct","line","keyword","firstWord","misplacedReactionIdentity","isFileImport","parseFileImport","match","DiagnosticCodes","locationOf","origin","unescapeString","isBlankPublicEventOrigin","parseExample","parseEventSource","parseSystem","parseType","isDocumentPlacement","parseModule","parseSeed","parsePurpose","parseIdentity","parsePolicy","parseExposure","parseInstance","data","parseTriggerDeclaration","name","collectInputUses","root","recordAuthoredDocument","modulePattern","describePlacement","word","hint","expected","moduleBodyExpected","featureBodyExpected","feature","innermost","index","start","existing","inFence","startOf","type","attributeText","attributes","parseComplianceMarkers","values","members","EnumerationMembers","generation","declaredGeneration","description","validations","child","memberName","parseDescription","isFileDirective","parsed","parseValidate","parseGeneration","parseComplianceDirective","unescapeIdentifier","valueNumbers","policy"],"sources":["../../../../../../Compiler/Parsing/ScreenplayParser.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 { EnumerationMembers } from './EnumerationMembers';\nimport { GenerationSyntax } from '../Syntax/GenerationSyntax';\nimport { parseGeneration } from './GenerationParser';\nimport { IdentitySyntax } from '../Syntax/IdentitySyntax';\nimport { parseIdentity } from './IdentityParser';\nimport { misplacedReactionIdentity } from './ReactionIdentityParser';\nimport { DiagnosticCodes } from '../Diagnostics/DiagnosticCodes';\nimport { recordAuthoredDocument } from '../Syntax/SourceOptions';\nimport { SourceLocation } from '../Diagnostics/SourceLocation';\nimport { describePlacement, documentPlacement, isDocumentPlacement, PlayPlacement } from '../Files/PlayPlacement';\nimport { PersonaSyntax } from '../Syntax/Authorization';\nimport { ConceptSyntax, DomainSyntax, ImportSyntax, TypeSyntax } from '../Syntax/Declarations';\nimport { SpecificationExampleSyntax } from '../Syntax/Specifications';\nimport { ApplicationSyntax, FeatureSyntax, FileImportSyntax, ModuleSyntax } from '../Syntax/Structure';\nimport { parseTriggerDeclaration } from './TriggerDataParser';\nimport { pattern } from '../Text/patterns';\nimport { parseComplianceDirective, parseComplianceMarkers } from './ConceptComplianceParser';\nimport { parseType } from './DeclarationParsers';\nimport { ValidateSyntax } from '../Syntax/Commands';\nimport { parseValidate } from './CommandParser';\nimport { parseDescription } from './DescriptionParser';\nimport { FeatureBody, featureBodyExpected } from './FeatureBody';\nimport { isFileImport, parseFileImport } from './FileImportParser';\nimport { isFileDirective } from './FileReferences';\nimport { collectInputUses } from './InputUses';\nimport { firstWord, unescapeIdentifier } from './LineText';\nimport { ModuleBody, moduleBodyExpected, modulePattern, parseModule } from './ModuleBody';\nimport { ParserContext } from './ParserContext';\nimport { PolicySyntax } from '../Syntax/Policies';\nimport { parsePolicy } from './PolicyParser';\nimport { PurposeSyntax } from '../Syntax/Purposes';\nimport { parsePurpose } from './PurposeParser';\nimport { SeedSyntax } from '../Syntax/Seeds';\nimport { parseSeed } from './SeedParser';\nimport { parseSystem } from './OperationParser';\nimport { EventVisibility } from '../Syntax/EventVisibility';\nimport { isBlankPublicEventOrigin } from '../Syntax/PublicEventInvariants';\nimport { stringBodyPattern, unescapeString } from '../Text/StringLiteral';\nimport { SystemSyntax } from '../Syntax/Operations';\nimport { EventSourceSyntax } from '../Syntax/EventSources';\nimport { parseEventSource } from './EventSourceParser';\nimport { parseExposure, parseInstance } from './CompositionParser';\nimport { ExposureSyntax, InstanceContributionsSyntax } from '../Syntax/CompositionSyntax';\nimport { parseExample } from './SpecificationExampleParser';\nimport { locationOf, SourceLine, startOf } from './SourceLine';\n\nconst domainPattern = pattern('^domain\\\\s+([A-Za-z_]\\\\w*(?:\\\\.[A-Za-z_]\\\\w*)*)$');\nconst importPattern = pattern(`^import\\\\s+([\\\\w.]+)(?:\\\\s+from\\\\s+\"(?<origin>${stringBodyPattern})\")?$`);\nconst conceptPattern = pattern('^concept\\\\s+(\\\\w+)\\\\s*:\\\\s*(\\\\w+)((?:\\\\s+@?\\\\w+)*)$');\nconst enumValuePattern = pattern('^@?[a-z_]\\\\w*$');\nconst personaPattern = pattern('^persona\\\\s+([A-Za-z_]\\\\w*)$');\nconst personaPolicyPattern = pattern('^policy\\\\s+([A-Za-z_]\\\\w*)$');\nconst tabIndentPattern = /^[ ]*\\t/;\nconst primitiveTypes = ['Uuid', 'String', 'Int', 'Decimal', 'Bool', 'Date', 'DateTime'];\n\n// Top-level, module and feature constructs the C# compiler knows that this compiler does not model. They\n// are skipped whole, not reported.\nconst opaqueTopLevel = new Set(['policy', 'authentication', 'seed', 'ui', 'theme', 'trigger', 'layout', 'behavior']);\n\n// What belongs in a module or feature body; at the top level of a whole document it gets a hint saying so.\nconst bodyKeywords = new Set(['slice', 'feature', 'description', 'documentation', 'authorize', 'screen', 'dialog', 'form', 'contribute', 'on', 'uses']);\n\n// Parses one document into its application syntax - the port of the C# ScreenplayParser. The placement says\n// where the document's top level belongs: the application, unless an import placed it in a module or feature.\nexport function parseApplication(context: ParserContext, lines: readonly SourceLine[], placement: PlayPlacement = documentPlacement): ApplicationSyntax {\n context.deferIdentityValidation = true;\n warnOnTabIndentation(context, lines);\n const moduleBody = placement.length === 1 ? new ModuleBody(placement[0]) : undefined;\n const featureBody = placement.length > 1 ? new FeatureBody(placement[placement.length - 1]) : undefined;\n const placedBody = moduleBody ?? featureBody;\n let identity: IdentitySyntax | null = null;\n let domain: DomainSyntax | null = null;\n const imports: ImportSyntax[] = [];\n const fileImports: FileImportSyntax[] = [];\n const concepts: ConceptSyntax[] = [];\n const types: TypeSyntax[] = [];\n const systems: SystemSyntax[] = [];\n const eventSources: EventSourceSyntax[] = [];\n const modules: ModuleSyntax[] = [];\n const personas: PersonaSyntax[] = [];\n const policies: PolicySyntax[] = [];\n const purposes: PurposeSyntax[] = [];\n const seeds: SeedSyntax[] = [];\n const examples: SpecificationExampleSyntax[] = [];\n const declaredTriggers: NonNullable<ApplicationSyntax['declaredTriggers']>[number][] = [];\n const exposures: ExposureSyntax[] = [];\n const instanceContributions: InstanceContributionsSyntax[] = [];\n let sawOtherConstruct = false;\n for (let line = context.reader.peekSignificant(); line !== undefined; line = context.reader.peekSignificant()) {\n context.reader.takeSignificant();\n const keyword = firstWord(line.content);\n if (keyword === 'runs') {\n misplacedReactionIdentity(context, line);\n continue;\n }\n if (keyword === 'domain') {\n context.authoredDeclarations = true;\n domain = parseDomain(context, line, domain, sawOtherConstruct);\n continue;\n }\n // The C# parser asks whether anything was declared before the domain, so an import it rejected,\n // a file import and an unknown construct do not count.\n sawOtherConstruct ||= declaresConstruct(keyword, line, placement);\n context.authoredDeclarations ||= keyword !== 'import' && declaresConstruct(keyword, line, placement);\n if (keyword === 'import' && isFileImport(line.content)) {\n // A top level import belongs to whatever the document's top level is - the application, or the\n // module or feature the document was itself imported into.\n if (placedBody !== undefined) {\n placedBody.tryParse(context, line);\n } else {\n parseFileImport(context, line, fileImports);\n }\n } else if (keyword === 'import') {\n const match = importPattern.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.InvalidImportDeclaration, `Invalid import '${line.content}' - expected 'import <Qualified.Name> [from \"<origin>\"]'`, locationOf(line));\n } else {\n const origin = match.groups?.origin === undefined ? null : unescapeString(match.groups.origin);\n if (origin !== null && isBlankPublicEventOrigin(origin)) {\n context.error(DiagnosticCodes.InvalidImportDeclaration, 'An import origin must be a nonblank quoted string', locationOf(line));\n }\n imports.push({ kind: 'ImportSyntax', qualifiedName: match[1], origin, visibility: origin === null ? EventVisibility.Private : EventVisibility.Public, location: locationOf(line) });\n }\n } else if (keyword === 'example') {\n if (placedBody !== undefined) placedBody.tryParse(context, line);\n else examples.push(parseExample(context, line));\n } else if (keyword === 'eventsource') {\n eventSources.push(parseEventSource(context, line));\n } else if (keyword === 'system') {\n systems.push(parseSystem(context, line));\n } else if (keyword === 'concept') {\n concepts.push(parseConcept(context, line));\n } else if (keyword === 'type') {\n types.push(parseType(context, line));\n } else if (keyword === 'module' && !isDocumentPlacement(placement)) {\n parseModuleInPlacedFile(context, line, placement, moduleBody);\n } else if (keyword === 'module') {\n modules.push(parseModule(context, line));\n } else if (keyword === 'persona') {\n personas.push(parsePersona(context, line));\n } else if (keyword === 'seed') {\n seeds.push(parseSeed(context.valueContext, line));\n } else if (keyword === 'purpose' && placedBody !== undefined) {\n placedBody.tryParse(context, line);\n } else if (keyword === 'purpose') {\n purposes.push(parsePurpose(context, line));\n } else if (keyword === 'identity') {\n identity = parseIdentity(context, line, identity);\n } else if (keyword === 'policy') {\n // Legacy policies were opaque: enrich their structure without adding diagnostics.\n policies.push(parsePolicy(context, line));\n } else if (keyword === 'exposure') {\n exposures.push(parseExposure(context, line));\n } else if (keyword === 'instance') {\n instanceContributions.push(parseInstance(context, line));\n } else if (keyword === 'trigger') {\n const data = parseTriggerDeclaration(context, line);\n const name = /^trigger\\s+([A-Za-z_]\\w*)$/.exec(line.content)?.[1];\n if (name !== undefined) declaredTriggers.push({ name, data });\n } else if (opaqueTopLevel.has(keyword)) {\n if (keyword === 'behavior' || keyword === 'layout') collectInputUses(context, line);\n else context.skipOpaqueBlock(line.indent);\n } else if (placedBody?.tryParse(context, line) !== true) {\n reportUnexpectedTopLevel(context, line, placement);\n }\n }\n if (moduleBody !== undefined) {\n modules.unshift(moduleBody.build(context.start, true));\n } else if (featureBody !== undefined) {\n modules.unshift(place(placement, featureBody.build(context.start, true), context.start));\n }\n const root: ApplicationSyntax = { kind: 'ApplicationSyntax', ...(identity === null ? {} : { identity }), sourceOptions: context.sourceOptions, domain, imports, concepts, types, systems, eventSources, examples, modules, personas, policies, purposes, seeds, declaredTriggers, fileImports, ...(exposures.length > 0 ? { exposures } : {}), ...(instanceContributions.length > 0 ? { instanceContributions } : {}), location: context.start };\n if (context.authoredDeclarations) recordAuthoredDocument(root);\n return root;\n}\n\nfunction declaresConstruct(keyword: string, line: SourceLine, placement: PlayPlacement): boolean {\n if (keyword === 'import') {\n return importPattern.test(line.content);\n }\n if (keyword === 'module') {\n return isDocumentPlacement(placement);\n }\n if (keyword === 'identity') return line.content === 'identity';\n return keyword === 'purpose' || keyword === 'example' || keyword === 'exposure' || keyword === 'instance' || keyword === 'eventsource' || keyword === 'system' || keyword === 'concept' || keyword === 'type' || keyword === 'persona' || opaqueTopLevel.has(keyword);\n}\n\nfunction parseModuleInPlacedFile(context: ParserContext, line: SourceLine, placement: PlayPlacement, moduleBody: ModuleBody | undefined): void {\n const name = modulePattern.exec(line.content)?.[1] ?? '';\n\n // Restating the module a file is placed in says nothing new, so its body simply joins the placement.\n if (moduleBody !== undefined && name === placement[0]) {\n context.authoredDeclarations = true;\n moduleBody.parseChildren(context, line);\n return;\n }\n context.error(DiagnosticCodes.ModuleInPlacedFile,\n `This file is imported into ${describePlacement(placement)}, so it cannot declare module '${name}' - import it at the top level of a document instead`, locationOf(line));\n context.skipBlock(line.indent);\n}\n\nfunction reportUnexpectedTopLevel(context: ParserContext, line: SourceLine, placement: PlayPlacement): void {\n const word = firstWord(line.content);\n if (!isDocumentPlacement(placement)) {\n const expected = placement.length === 1 ? moduleBodyExpected : featureBodyExpected;\n context.error(DiagnosticCodes.UnexpectedInPlacedFile,\n `Unexpected '${word}' in a file imported into ${describePlacement(placement)} - expected an application declaration or ${expected}`, locationOf(line));\n } else {\n const hint = bodyKeywords.has(word)\n ? ` - '${word}' belongs in a module or feature; wrap it in one, or import this file from inside one`\n : ' - expected domain, import, concept, type, policy, persona, authentication, identity, module, seed, trigger, behavior, ui profile, theme or layout';\n context.error(DiagnosticCodes.UnknownTopLevelConstruct, `Unexpected '${word}' at the top level${hint}`, locationOf(line));\n }\n context.skipBlock(line.indent);\n}\n\n// Wraps the feature a file is placed in in the features and module around it, each marked as a placement.\nfunction place(placement: PlayPlacement, innermost: FeatureSyntax, start: SourceLocation): ModuleSyntax {\n let feature = innermost;\n for (let index = placement.length - 2; index >= 1; index--) {\n feature = {\n kind: 'FeatureSyntax', name: placement[index], description: null, authorize: null,\n features: [feature], slices: [], fileImports: [], isPlacement: true, location: start,\n };\n }\n return {\n kind: 'ModuleSyntax', name: placement[0], description: null, authorize: null,\n features: [feature], fileImports: [], isPlacement: true, location: start,\n };\n}\n\nfunction parseDomain(context: ParserContext, line: SourceLine, existing: DomainSyntax | null, sawOtherConstruct: boolean): DomainSyntax | null {\n const match = domainPattern.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.InvalidDomainDeclaration, `Invalid domain declaration '${line.content}' - expected 'domain <Qualified.Name>'`, locationOf(line));\n return existing;\n }\n if (existing !== null) {\n context.error(DiagnosticCodes.DuplicateDomain, 'The document already declares a domain - a document can have at most one', locationOf(line));\n return existing;\n }\n if (sawOtherConstruct) {\n context.error(DiagnosticCodes.DomainNotFirst, '\\'domain\\' must be declared before any other construct', locationOf(line));\n }\n return { kind: 'DomainSyntax', name: match[1], location: locationOf(line) };\n}\n\nfunction warnOnTabIndentation(context: ParserContext, lines: readonly SourceLine[]): void {\n let inFence = false;\n for (const line of lines) {\n if (line.raw.trimStart().startsWith('```')) {\n inFence = !inFence;\n continue;\n }\n if (!inFence && tabIndentPattern.test(line.raw)) {\n context.warning(DiagnosticCodes.TabIndentation, 'Screenplay is indentation based - use spaces, not tabs', startOf(line));\n }\n }\n}\n\nfunction parseConcept(context: ParserContext, line: SourceLine): ConceptSyntax {\n const match = conceptPattern.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.InvalidConceptDeclaration, `Invalid concept declaration '${line.content}' - expected 'concept <Name> : <Type>'`, locationOf(line));\n context.skipBlock(line.indent);\n return { kind: 'ConceptSyntax', name: firstWord(line.content), type: '', attributes: [], values: [], location: locationOf(line) };\n }\n const [, name, type, attributeText] = match;\n const attributes = parseComplianceMarkers(context, line, name, attributeText);\n if (type !== 'Enum' && !primitiveTypes.includes(type)) {\n context.error(DiagnosticCodes.UnknownPrimitiveType, `Unknown primitive type '${type}' - expected ${primitiveTypes.join(', ')} or Enum`, locationOf(line));\n }\n const values: string[] = [];\n const members = new EnumerationMembers();\n let generation: GenerationSyntax | null = null;\n let declaredGeneration = false;\n let description: string | null = null;\n const validations: ValidateSyntax[] = [];\n for (let child = context.peekChild(line.indent); child !== undefined; child = context.peekChild(line.indent)) {\n context.reader.takeSignificant();\n const memberName = type === 'Enum' ? members.tryNumbered(context, child) : undefined;\n if (memberName !== undefined) {\n values.push(memberName);\n } else if (firstWord(child.content) === 'description' && (type !== 'Enum' || child.content !== 'description' || context.peekChild(child.indent)?.content.startsWith('```') === true)) {\n description = parseDescription(context, child, description, `Concept '${name}'`);\n } else if (isFileDirective(child)) {\n continue;\n } else if (firstWord(child.content) === 'validate') {\n if (type === 'Enum' && child.content === 'validate' && context.peekChild(child.indent) === undefined) {\n context.warning(DiagnosticCodes.ValidateReadAsEnumerationBlock,\n `'validate' in enumeration concept '${name}' declares an empty validate block, not a value named 'validate' - write '@validate' for the value`,\n locationOf(child));\n }\n const parsed = parseValidate(context, child, 'concept');\n if (parsed !== undefined) validations.push(parsed);\n } else if (firstWord(child.content) === 'generate' && !(type === 'Enum' && child.content === 'generate')) {\n if (declaredGeneration) context.error(DiagnosticCodes.DuplicateGeneration, `Concept '${name}' declares generation more than once.`, locationOf(child));\n const parsed = parseGeneration(context, child, type);\n if (!declaredGeneration) generation = parsed;\n declaredGeneration = true;\n } else if (parseComplianceDirective(context, child, name, attributes)) {\n // Compliance directives are modeled by their original concept marker.\n } else if (type === 'Enum' && enumValuePattern.test(child.content)) {\n values.push(unescapeIdentifier(child.content));\n } else if (type === 'Enum') {\n context.error(DiagnosticCodes.InvalidEnumerationValue, `Invalid enum value '${child.content}' - expected an identifier`, locationOf(child));\n } else {\n context.error(DiagnosticCodes.UnknownConceptDirective, `Unexpected '${child.content}' in concept body - expected validate, generate, 'file <path>' or '<attribute> reason \"<text>\"'`, locationOf(child));\n context.skipBlock(child.indent);\n }\n }\n const valueNumbers = members.finish(context, line, values.length);\n return { kind: 'ConceptSyntax', name, type, attributes, values, validations, description, ...(generation === null ? {} : { generation }), ...(valueNumbers === undefined ? {} : { valueNumbers }), location: locationOf(line) };\n}\n\n// 'persona <Name>' with an optional description and the policies it holds - the port of the C# ParsePersona.\nfunction parsePersona(context: ParserContext, line: SourceLine): PersonaSyntax {\n const name = personaPattern.exec(line.content)?.[1] ?? '';\n if (name === '') {\n context.error(DiagnosticCodes.InvalidPersonaDeclaration, `Invalid persona declaration '${line.content}' - expected 'persona <Name>'`, locationOf(line));\n }\n let description: string | null = null;\n const policies: string[] = [];\n for (let child = context.peekChild(line.indent); child !== undefined; child = context.peekChild(line.indent)) {\n context.reader.takeSignificant();\n const keyword = firstWord(child.content);\n if (keyword === 'description') {\n description = parseDescription(context, child, description, `Persona '${name}'`);\n } else if (keyword === 'policy') {\n const policy = personaPolicyPattern.exec(child.content);\n if (policy === null) {\n context.error(DiagnosticCodes.InvalidPersonaPolicyReference, `Invalid policy reference '${child.content}' - expected 'policy <Name>'`, locationOf(child));\n } else {\n policies.push(policy[1]);\n }\n } else {\n context.error(DiagnosticCodes.UnknownPersonaDirective, `Unexpected '${keyword}' in persona body - expected description or policy`, locationOf(child));\n context.skipBlock(child.indent);\n }\n }\n return { kind: 'PersonaSyntax', name, description, policies, location: locationOf(line) };\n}\n"],"mappings":"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"}
@@ -1,2 +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),e.byParts?.forEach(e=>this.visitPropertyMapping(e))}visitConcurrency(e){this.visitNode(e)}visitReducer(e){this.visitNode(e),e.from!=null&&this.visitObserverFilter(e.from),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)}visitObserverFilter(e){this.visitNode(e)}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.byParts?.forEach(e=>this.visitQueryParameter(e)),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.from!=null&&this.visitObserverFilter(e.from),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.stream!=null&&this.visitCommandStream(e.stream),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};
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)}visitGeneration(e){this.visitNode(e)}visitConcept(e){this.visitNode(e),e.attributes.forEach(e=>this.visitNode(e)),e.generation&&this.visitGeneration(e.generation),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),e.byParts?.forEach(e=>this.visitPropertyMapping(e))}visitConcurrency(e){this.visitNode(e)}visitReducer(e){this.visitNode(e),e.from!=null&&this.visitObserverFilter(e.from),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)}visitObserverFilter(e){this.visitNode(e)}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.byParts?.forEach(e=>this.visitQueryParameter(e)),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.from!=null&&this.visitObserverFilter(e.from),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.stream!=null&&this.visitCommandStream(e.stream),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
2
  //# sourceMappingURL=ScreenplaySyntaxWalker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScreenplaySyntaxWalker.js","names":["syntax","node","property","contribution","item","value","detail","group","event","part","column","placement","candidate","stream","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 { ObserverFilterSyntax } from './ObserverFilterSyntax';\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 {\n this.visitNode(syntax);\n syntax.byParts?.forEach(part => this.visitPropertyMapping(part));\n }\n visitConcurrency(syntax: ConcurrencySyntax): void { this.visitNode(syntax); }\n visitReducer(syntax: ReducerSyntax): void {\n this.visitNode(syntax);\n if (syntax.from != null) this.visitObserverFilter(syntax.from);\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 visitObserverFilter(syntax: ObserverFilterSyntax): void { this.visitNode(syntax); }\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.byParts?.forEach(part => this.visitQueryParameter(part));\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.from != null) this.visitObserverFilter(syntax.from);\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.stream != null) this.visitCommandStream(syntax.stream);\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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"}
1
+ {"version":3,"file":"ScreenplaySyntaxWalker.js","names":["syntax","node","property","contribution","item","value","detail","group","event","part","column","placement","candidate","stream","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 { GenerationSyntax } from './GenerationSyntax';\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 { ObserverFilterSyntax } from './ObserverFilterSyntax';\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 visitGeneration(syntax: GenerationSyntax): void { this.visitNode(syntax); }\n\n visitConcept(syntax: ConceptSyntax): void {\n this.visitNode(syntax);\n syntax.attributes.forEach(node => this.visitNode(node));\n if (syntax.generation) this.visitGeneration(syntax.generation);\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 {\n this.visitNode(syntax);\n syntax.byParts?.forEach(part => this.visitPropertyMapping(part));\n }\n visitConcurrency(syntax: ConcurrencySyntax): void { this.visitNode(syntax); }\n visitReducer(syntax: ReducerSyntax): void {\n this.visitNode(syntax);\n if (syntax.from != null) this.visitObserverFilter(syntax.from);\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 visitObserverFilter(syntax: ObserverFilterSyntax): void { this.visitNode(syntax); }\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.byParts?.forEach(part => this.visitQueryParameter(part));\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.from != null) this.visitObserverFilter(syntax.from);\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.stream != null) this.visitCommandStream(syntax.stream);\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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"}