@cratis/screenplay-language 4.127.1 → 4.129.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AuthoredReadModelKeys.d.ts +13 -0
- package/dist/AuthoredReadModelKeys.d.ts.map +1 -0
- package/dist/EventSourceAnalysis.d.ts +11 -0
- package/dist/EventSourceAnalysis.d.ts.map +1 -1
- package/dist/bundles/compiler/Diagnostics/DiagnosticCodes.js +1 -1
- package/dist/bundles/compiler/Diagnostics/DiagnosticCodes.js.map +1 -1
- package/dist/bundles/compiler/Files/PlayApplicationAssembly.js +1 -1
- package/dist/bundles/compiler/Files/PlayApplicationAssembly.js.map +1 -1
- package/dist/bundles/compiler/Parsing/CommandParser.js +1 -1
- package/dist/bundles/compiler/Parsing/CommandParser.js.map +1 -1
- package/dist/bundles/compiler/Parsing/DeclarationParsers.js +1 -1
- package/dist/bundles/compiler/Parsing/DeclarationParsers.js.map +1 -1
- package/dist/bundles/compiler/Parsing/DependencySourceParser.js +1 -1
- package/dist/bundles/compiler/Parsing/DependencySourceParser.js.map +1 -1
- package/dist/bundles/compiler/Parsing/EventSourceValidator.js +1 -1
- package/dist/bundles/compiler/Parsing/EventSourceValidator.js.map +1 -1
- package/dist/bundles/compiler/Parsing/IdentifierComplianceValidator.js +1 -1
- package/dist/bundles/compiler/Parsing/IdentifierComplianceValidator.js.map +1 -1
- package/dist/bundles/compiler/Parsing/ObserverFilterParser.js +2 -0
- package/dist/bundles/compiler/Parsing/ObserverFilterParser.js.map +1 -0
- package/dist/bundles/compiler/Parsing/ObserverFilterValidator.js +2 -0
- package/dist/bundles/compiler/Parsing/ObserverFilterValidator.js.map +1 -0
- package/dist/bundles/compiler/Parsing/ProducesParser.js +1 -1
- package/dist/bundles/compiler/Parsing/ProducesParser.js.map +1 -1
- package/dist/bundles/compiler/Parsing/PropertyLineParser.js +1 -1
- package/dist/bundles/compiler/Parsing/PropertyLineParser.js.map +1 -1
- package/dist/bundles/compiler/Parsing/QueryParser.js +1 -1
- package/dist/bundles/compiler/Parsing/QueryParser.js.map +1 -1
- package/dist/bundles/compiler/Parsing/ReactionParser.js +1 -1
- package/dist/bundles/compiler/Parsing/ReactionParser.js.map +1 -1
- package/dist/bundles/compiler/Parsing/ReadModelKeyValidator.js +2 -0
- package/dist/bundles/compiler/Parsing/ReadModelKeyValidator.js.map +1 -0
- package/dist/bundles/compiler/Parsing/ReadsParser.js +2 -0
- package/dist/bundles/compiler/Parsing/ReadsParser.js.map +1 -0
- package/dist/bundles/compiler/Parsing/SpecificationStreamValidator.js +1 -1
- package/dist/bundles/compiler/Parsing/SpecificationStreamValidator.js.map +1 -1
- package/dist/bundles/compiler/Parsing/TriggerDataParser.js +1 -1
- package/dist/bundles/compiler/Parsing/TriggerDataParser.js.map +1 -1
- package/dist/bundles/compiler/ScreenplayCompiler.js +1 -1
- package/dist/bundles/compiler/ScreenplayCompiler.js.map +1 -1
- package/dist/bundles/compiler/Syntax/EventSourceCatalog.js +1 -1
- package/dist/bundles/compiler/Syntax/EventSourceCatalog.js.map +1 -1
- package/dist/bundles/compiler/Syntax/ScreenplaySyntaxWalker.js +1 -1
- package/dist/bundles/compiler/Syntax/ScreenplaySyntaxWalker.js.map +1 -1
- package/dist/bundles/compiler/Syntax/SyntaxCollections.js +1 -1
- package/dist/bundles/compiler/Syntax/SyntaxCollections.js.map +1 -1
- package/dist/bundles/compiler/Syntax/SyntaxInvariants.js +1 -1
- package/dist/bundles/compiler/Syntax/SyntaxInvariants.js.map +1 -1
- package/dist/bundles/compiler/Syntax/SyntaxJson.js +1 -1
- package/dist/bundles/compiler/Syntax/SyntaxJson.js.map +1 -1
- package/dist/bundles/compiler/Syntax/index.js +1 -1
- package/dist/bundles/compiler/index.js +1 -1
- package/dist/bundles/completion-items.js +2 -2
- package/dist/bundles/completion-items.js.map +1 -1
- package/dist/bundles/completion-planner.js +2 -2
- package/dist/bundles/completion-planner.js.map +1 -1
- package/dist/bundles/diagnostic-codes.js +1 -1
- package/dist/bundles/diagnostic-codes.js.map +1 -1
- package/dist/bundles/event-source-authoring.js +10 -10
- package/dist/bundles/event-source-authoring.js.map +1 -1
- package/dist/bundles/keyword-docs.js +1 -1
- package/dist/bundles/keyword-docs.js.map +1 -1
- package/dist/bundles/read-model-key-completions.js +2 -0
- package/dist/bundles/read-model-key-completions.js.map +1 -0
- package/dist/bundles/response-analysis.js +6 -6
- package/dist/bundles/response-analysis.js.map +1 -1
- package/dist/bundles/scope-items.js +1 -1
- package/dist/bundles/scope-items.js.map +1 -1
- package/dist/bundles/tokens.js +1 -1
- package/dist/bundles/tokens.js.map +1 -1
- package/dist/bundles/validation.js +1 -1
- package/dist/bundles/validation.js.map +1 -1
- package/dist/completion-items.d.ts.map +1 -1
- package/dist/completion-planner.d.ts.map +1 -1
- package/dist/diagnostic-codes.d.ts +7 -0
- package/dist/diagnostic-codes.d.ts.map +1 -1
- package/dist/event-source-authoring.d.ts.map +1 -1
- package/dist/keyword-docs.d.ts.map +1 -1
- package/dist/read-model-key-completions.d.ts +4 -0
- package/dist/read-model-key-completions.d.ts.map +1 -0
- package/dist/response-analysis.d.ts +2 -0
- package/dist/response-analysis.d.ts.map +1 -1
- package/dist/scope-items.d.ts.map +1 -1
- package/dist/tokens.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../_virtual/_virtual/_rolldown/runtime.js";import{splitLines as e}from"./Parsing/SourceLineSplitter.js";import{validateIdentity as t}from"./Parsing/IdentityValidator.js";import{expandSpecificationExamples as n}from"./Parsing/SpecificationCommandExamples.js";import{validateResponses as r}from"./Parsing/ResponseValidator.js";import{validateSpecificationCases as i}from"./Parsing/SpecificationCaseValidator.js";import{productionDestinationDiagnostics as a}from"./Diagnostics/ProductionDestinationDiagnostics.js";import{validateConstraintProperties as o}from"./Parsing/ConstraintPropertyValidator.js";import{validateDependencyDeclarations as s}from"./Dependencies/DeclaredDependencyTargets.js";import{documentPlacement as c}from"./Files/PlayPlacement.js";import{interactionAncestry as l}from"./Parsing/InteractionAlternatives.js";import"./Parsing/SpecificationParser.js";import"./Parsing/SpecificationExampleParser.js";import"./Parsing/CaptureParser.js";import"./Parsing/ProjectionParser.js";import"./Parsing/ImportDiscovery.js";import{DeclaredDependencies as u}from"./Dependencies/DeclaredDependencies.js";import{validatePublicEventUsage as d}from"./Parsing/PublicEventUsageValidator.js";import{sourceContext as f}from"./Parsing/SourceOptionsParser.js";import{validateInlineEvents as p}from"./Parsing/InlineEventValidator.js";import{validateOperations as m}from"./Parsing/OperationValidator.js";import{parseApplication as h}from"./Parsing/ScreenplayParser.js";import{CommandStreamCandidates as g}from"./Parsing/CommandStreamCandidates.js";import{validateEventSources as _}from"./Parsing/EventSourceValidator.js";import{validateProjectionTargets as v}from"./Parsing/ProjectionTargetValidator.js";import{validateIdentifierCompliance as y}from"./Parsing/IdentifierComplianceValidator.js";import{validateEventSubjects as b}from"./Parsing/EventSubjectValidator.js";import{
|
|
1
|
+
import"../_virtual/_virtual/_rolldown/runtime.js";import{splitLines as e}from"./Parsing/SourceLineSplitter.js";import{validateIdentity as t}from"./Parsing/IdentityValidator.js";import{expandSpecificationExamples as n}from"./Parsing/SpecificationCommandExamples.js";import{validateResponses as r}from"./Parsing/ResponseValidator.js";import{validateSpecificationCases as i}from"./Parsing/SpecificationCaseValidator.js";import{productionDestinationDiagnostics as a}from"./Diagnostics/ProductionDestinationDiagnostics.js";import{validateConstraintProperties as o}from"./Parsing/ConstraintPropertyValidator.js";import{validateDependencyDeclarations as s}from"./Dependencies/DeclaredDependencyTargets.js";import{documentPlacement as c}from"./Files/PlayPlacement.js";import{interactionAncestry as l}from"./Parsing/InteractionAlternatives.js";import"./Parsing/SpecificationParser.js";import"./Parsing/SpecificationExampleParser.js";import"./Parsing/CaptureParser.js";import"./Parsing/ProjectionParser.js";import"./Parsing/ImportDiscovery.js";import{DeclaredDependencies as u}from"./Dependencies/DeclaredDependencies.js";import{validatePublicEventUsage as d}from"./Parsing/PublicEventUsageValidator.js";import{sourceContext as f}from"./Parsing/SourceOptionsParser.js";import{validateInlineEvents as p}from"./Parsing/InlineEventValidator.js";import{validateOperations as m}from"./Parsing/OperationValidator.js";import{parseApplication as h}from"./Parsing/ScreenplayParser.js";import{CommandStreamCandidates as g}from"./Parsing/CommandStreamCandidates.js";import{validateEventSources as _}from"./Parsing/EventSourceValidator.js";import{validateProjectionTargets as v}from"./Parsing/ProjectionTargetValidator.js";import{validateIdentifierCompliance as y}from"./Parsing/IdentifierComplianceValidator.js";import{validateEventSubjects as b}from"./Parsing/EventSubjectValidator.js";import{validateReadModelKeys as x}from"./Parsing/ReadModelKeyValidator.js";import{validateReactionRefusals as S}from"./Parsing/ReactionRefusalValidator.js";import{validateSpecificationRedelivery as C}from"./Parsing/SpecificationRedeliveryValidator.js";import{validateGuardedActions as w}from"./Parsing/GuardedActionValidator.js";import{validatePersonaCallers as T}from"./Parsing/PersonaCallerValidator.js";import{validatePurposes as E}from"./Parsing/PurposeValidator.js";import{timelineOrderDiagnostics as D}from"./Files/TimelineOrder.js";function parseForAuthoring(O,k,A=c,j=!0,M,N){let P=e(O,!1,k),F=f(P,k,N);F.scope=A,F.interactionAncestors=l(P),F.streamCandidates=M??g.capture([P],A,N);let I=h(F,P,A);if(j){t(I,F),E(I,F),p(I,F),o(I,F),m(I,F),d(I,F),i(I,F);let e=n(I);r(e,F),_(I,F),v(I,F),y(e,F),b(I,F),x(I,F),S(I,F),C(I,F),w(I,F),T(I,F),I=s(I,F),u.validate(I,F);for(let e of a(I))F.information(e.code,e.message,e.location);for(let e of D(I))F.information(e.code,e.message,e.location)}return{value:I,diagnostics:F.diagnostics,triggerData:F.triggerData,inputUses:F.inputUses,guardedInteractions:F.guardedInteractions,success:!F.diagnostics.some(e=>e.severity===`error`)}}export{parseForAuthoring};
|
|
2
2
|
//# sourceMappingURL=ScreenplayCompiler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScreenplayCompiler.js","names":["documentPlacement","lines","splitLines","source","path","context","sourceContext","languages","placement","interactionAncestry","streamCandidates","CommandStreamCandidates","value","parseApplication","validateResponseContracts","validateIdentity","validatePurposes","validateInlineEvents","validateConstraintProperties","validateOperations","validatePublicEventUsage","validateSpecificationCases","effective","expandSpecificationExamples","validateResponses","validateEventSources","validateProjectionTargets","validateIdentifierCompliance","validateEventSubjects","validateReactionRefusals","validateSpecificationRedelivery","validateGuardedActions","validatePersonaCallers","validateDependencyDeclarations","DeclaredDependencies","diagnostic","productionDestinationDiagnostics","timelineOrderDiagnostics"],"sources":["../../../../../Compiler/ScreenplayCompiler.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { validateIdentity } from './Parsing/IdentityValidator';\nimport { Diagnostic } from './Diagnostics/Diagnostic';\nimport { validateSpecificationCases } from './Parsing/SpecificationCaseValidator';\nimport { expandSpecificationExamples } from './Parsing/SpecificationCommandExamples';\nimport { productionDestinationDiagnostics } from './Diagnostics/ProductionDestinationDiagnostics';\nimport { validateConstraintProperties } from './Parsing/ConstraintPropertyValidator';\nimport { validateDependencyDeclarations } from './Dependencies/DeclaredDependencyTargets';\nimport { DeclaredDependencies } from './Dependencies/DeclaredDependencies';\nimport { documentPlacement, PlayPlacement } from './Files/PlayPlacement';\nimport { DiscoveredImport, discoverImports as discoverImportsIn } from './Parsing/ImportDiscovery';\nimport { InputUse } from './Parsing/InputUses';\nimport { GuardedInteractionBinding, interactionAncestry } from './Parsing/InteractionAlternatives';\nimport { validateResponses } from './Parsing/ResponseValidator';\nimport { validatePublicEventUsage } from './Parsing/PublicEventUsageValidator';\nimport { sourceContext } from './Parsing/SourceOptionsParser';\nimport { validateInlineEvents } from './Parsing/InlineEventValidator';\nimport { validateOperations } from './Parsing/OperationValidator';\nimport { CommandStreamCandidates } from './Parsing/CommandStreamCandidates';\nimport { validateEventSources } from './Parsing/EventSourceValidator';\nimport { validateProjectionTargets } from './Parsing/ProjectionTargetValidator';\nimport { validateIdentifierCompliance } from './Parsing/IdentifierComplianceValidator';\nimport { validateEventSubjects } from './Parsing/EventSubjectValidator';\nimport { validateReactionRefusals } from './Parsing/ReactionRefusalValidator';\nimport { validateSpecificationRedelivery } from './Parsing/SpecificationRedeliveryValidator';\nimport { validateGuardedActions } from './Parsing/GuardedActionValidator';\nimport { validatePersonaCallers } from './Parsing/PersonaCallerValidator';\nimport { validatePurposes } from './Parsing/PurposeValidator';\nimport { parseApplication } from './Parsing/ScreenplayParser';\nimport { splitLines } from './Parsing/SourceLineSplitter';\nimport { PropertySyntax } from './Syntax/Declarations';\nimport { ApplicationSyntax } from './Syntax/Structure';\nimport { ApplicationSyntaxVisitor } from './Syntax/Visitors';\nimport { ProjectionSyntax } from './Syntax/Projections';\nimport { CaptureSyntax } from './Syntax/Captures';\nimport { SpecificationExampleSyntax, SpecificationSyntax } from './Syntax/Specifications';\nimport { SyntaxNode } from './Syntax/SyntaxNode';\nimport { ParserContext } from './Parsing/ParserContext';\nimport { parseProjection } from './Parsing/ProjectionParser';\nimport { parseCapture } from './Parsing/CaptureParser';\nimport { parseSpecification } from './Parsing/SpecificationParser';\nimport { parseExample } from './Parsing/SpecificationExampleParser';\nimport { firstWord } from './Parsing/LineText';\nimport { SourceLine, locationOf } from './Parsing/SourceLine';\nimport { DiagnosticCodes } from './Diagnostics/DiagnosticCodes';\nimport { timelineOrderDiagnostics } from './Files/TimelineOrder';\n\n// What compiling produced: the syntax tree, and the diagnostics found on the way. A tree is always\n// produced, so a document with errors still shows everything that could be read.\nexport interface CompilationResult<T> {\n readonly value: T;\n readonly diagnostics: readonly Diagnostic[];\n readonly success: boolean;\n}\n\n// Parses one .play document - the TypeScript counterpart of the C# ScreenplayCompiler.Parse. The path, when\n// given, is carried on every source location so a folder of documents can be merged and still point back\n// at the file each node came from. A placement says the document's top level belongs to the module or\n// feature an import placed it in: that module and feature are in the tree, marked as placements, holding what\n// the document declares at its top level.\nexport function parse(source: string, path?: string, placement: PlayPlacement = documentPlacement): CompilationResult<ApplicationSyntax> {\n const { value, diagnostics, success } = parseForAuthoring(source, path, placement);\n return { value, diagnostics, success };\n}\n\n// Additive authoring view: do not widen TypeRefSyntax or the cross-compiler SyntaxJson projection.\nexport function parseForAuthoring(source: string, path?: string, placement: PlayPlacement = documentPlacement, validateResponseContracts = true, streamCandidates?: CommandStreamCandidates, languages?: ReadonlySet<string>): CompilationResult<ApplicationSyntax> & { readonly triggerData: readonly PropertySyntax[]; readonly inputUses: readonly InputUse[]; readonly guardedInteractions: readonly GuardedInteractionBinding[] } {\n const lines = splitLines(source, false, path);\n const context = sourceContext(lines, path, languages);\n context.scope = placement;\n context.interactionAncestors = interactionAncestry(lines);\n context.streamCandidates = streamCandidates ?? CommandStreamCandidates.capture([lines], placement, languages);\n let value = parseApplication(context, lines, placement);\n // Folder assembly validates declaration-dependent contracts once against the merged inventory.\n if (validateResponseContracts) {\n validateIdentity(value, context);\n validatePurposes(value, context);\n validateInlineEvents(value, context);\n validateConstraintProperties(value, context);\n validateOperations(value, context);\n validatePublicEventUsage(value, context);\n validateSpecificationCases(value, context);\n const effective = expandSpecificationExamples(value);\n validateResponses(effective, context);\n validateEventSources(value, context);\n validateProjectionTargets(value, context);\n validateIdentifierCompliance(effective, context);\n validateEventSubjects(value, context);\n validateReactionRefusals(value, context);\n validateSpecificationRedelivery(value, context);\n validateGuardedActions(value, context);\n validatePersonaCallers(value, context);\n value = validateDependencyDeclarations(value, context);\n DeclaredDependencies.validate(value, context);\n for (const diagnostic of productionDestinationDiagnostics(value)) context.information(diagnostic.code, diagnostic.message, diagnostic.location);\n for (const diagnostic of timelineOrderDiagnostics(value)) context.information(diagnostic.code, diagnostic.message, diagnostic.location);\n }\n return {\n value,\n diagnostics: context.diagnostics,\n triggerData: context.triggerData,\n inputUses: context.inputUses,\n guardedInteractions: context.guardedInteractions,\n success: !context.diagnostics.some(diagnostic => diagnostic.severity === 'error'),\n };\n}\n\n/** Checks public boundaries on programmatically authored or decoded assembled syntax. */\nexport function publicEventDiagnostics(application: ApplicationSyntax): readonly Diagnostic[] {\n const context = sourceContext([], application.location.path);\n validatePublicEventUsage(application, context);\n return context.diagnostics;\n}\n\n// Parses a document and hands its syntax tree to a visitor - the counterpart of the C#\n// ScreenplayCompiler.Compile<T>(source, visitor). The visitor runs even when there are errors, over\n// everything that could be read.\nexport function compile<T>(source: string, visitor: ApplicationSyntaxVisitor<T>, path?: string): CompilationResult<T> {\n const parsed = parse(source, path);\n return { value: visitor.visit(parsed.value), diagnostics: parsed.diagnostics, success: parsed.success };\n}\n\n// Finds the files a document imports and where in it each import is written - each import with the module\n// and feature names around it, outermost first. Diagnostics are not collected; parsing the document reports them.\nexport function discoverImports(source: string, path?: string, languages?: ReadonlySet<string>): DiscoveredImport[] {\n const lines = splitLines(source, false, path);\n return discoverImportsIn(sourceContext(lines, path, languages));\n}\n\n// Additive entry points preserve the caller's registry; none can select numeric mode externally.\nexport function parseWithLanguages(source: string, languages: ReadonlySet<string>, path?: string, placement: PlayPlacement = documentPlacement): CompilationResult<ApplicationSyntax> {\n const { value, diagnostics, success } = parseForAuthoring(source, path, placement, true, undefined, languages);\n return { value, diagnostics, success };\n}\n\nexport function parseProjectionSource(source: string, path?: string, languages?: ReadonlySet<string>): CompilationResult<readonly ProjectionSyntax[]> {\n return parseSourceFamily(source, 'projection', parseProjection, path, languages);\n}\n\nexport function parseCaptureSource(source: string, path?: string, languages?: ReadonlySet<string>): CompilationResult<readonly CaptureSyntax[]> {\n return parseSourceFamily(source, 'capture', parseCapture, path, languages);\n}\n\nexport function parseSpecificationSource(source: string, path?: string, languages?: ReadonlySet<string>): CompilationResult<readonly SpecificationSyntax[]> {\n return parseSourceFamily(source, 'specification', parseSpecification, path, languages);\n}\n\nfunction parseSourceFamily<T extends SyntaxNode>(source: string, keyword: string, read: (context: ParserContext, line: SourceLine) => T, path?: string, languages?: ReadonlySet<string>): CompilationResult<readonly T[]> {\n const context = sourceContext(splitLines(source, true, path), path, languages, true);\n const value: T[] = [];\n const examples: SpecificationExampleSyntax[] = [];\n for (let line = context.reader.peekSignificant(); line !== undefined; line = context.reader.peekSignificant()) {\n context.reader.takeSignificant();\n if (keyword === 'specification' && firstWord(line.content) === 'example') examples.push(parseExample(context, line));\n else if (line.content.startsWith(keyword)) value.push(read(context, line));\n else {\n context.error(DiagnosticCodes.UnknownTopLevelConstruct, `Expected '${keyword}', got '${line.content}'`, locationOf(line));\n context.skipOpaqueBlock(line.indent);\n }\n }\n if (context.sourceOptions.numericMode === 'exact' && value.length === 0 && context.diagnostics.length === 0) {\n const code = keyword === 'projection' ? DiagnosticCodes.ProjectionDocumentWithoutProjection : keyword === 'capture' ? DiagnosticCodes.CaptureDocumentWithoutCapture : DiagnosticCodes.SpecificationDocumentWithoutSpecification;\n context.error(code, `Document must contain at least one ${keyword}`, context.start);\n }\n const roots = keyword === 'specification' && examples.length > 0 ? value.map(node => ({ ...node, examples })) : value;\n if (keyword === 'specification') {\n const application = parseApplication(sourceContext([], path, languages), [], documentPlacement);\n validateSpecificationCases({ ...application, examples }, context, roots as unknown as SpecificationSyntax[]);\n }\n return { value: roots, diagnostics: context.diagnostics, success: !context.diagnostics.some(diagnostic => diagnostic.severity === 'error') };\n}\n"],"mappings":"0xEAoEA,SAAgB,kBAAkB,EAAgB,EAAe,EAA2BA,EAAmB,EAA4B,GAAM,EAA4C,EAA0O,CACna,IAAMC,EAAQC,EAAWC,EAAQ,GAAOC,CAAI,EACtCC,EAAUC,EAAcL,EAAOG,EAAMG,CAAS,EACpD,EAAQ,MAAQC,EAChB,EAAQ,qBAAuBC,EAAoBR,CAAK,EACxD,EAAQ,iBAAmBS,GAAoBC,EAAwB,QAAQ,CAACV,CAAK,EAAGO,EAAWD,CAAS,EAC5G,IAAIK,EAAQC,EAAiBR,EAASJ,EAAOO,CAAS,EAEtD,GAAIM,EAA2B,CAC3BC,EAAiBH,EAAOP,CAAO,EAC/BW,EAAiBJ,EAAOP,CAAO,EAC/BY,EAAqBL,EAAOP,CAAO,EACnCa,EAA6BN,EAAOP,CAAO,EAC3Cc,EAAmBP,EAAOP,CAAO,EACjCe,EAAyBR,EAAOP,CAAO,EACvCgB,EAA2BT,EAAOP,CAAO,EACzC,IAAMiB,EAAYC,EAA4BX,CAAK,EACnDY,EAAkBF,EAAWjB,CAAO,EACpCoB,EAAqBb,EAAOP,CAAO,EACnCqB,EAA0Bd,EAAOP,CAAO,EACxCsB,EAA6BL,EAAWjB,CAAO,EAC/CuB,EAAsBhB,EAAOP,CAAO,EACpCwB,EAAyBjB,EAAOP,CAAO,EACvCyB,EAAgClB,EAAOP,CAAO,EAC9C0B,EAAuBnB,EAAOP,CAAO,EACrC2B,EAAuBpB,EAAOP,CAAO,EACrC,EAAQ4B,EAA+BrB,EAAOP,CAAO,EACrD6B,EAAqB,SAAStB,EAAOP,CAAO,EAC5C,IAAK,IAAM8B,KAAcC,EAAiCxB,CAAK,EAAGP,EAAQ,YAAY8B,EAAW,KAAMA,EAAW,QAASA,EAAW,QAAQ,EAC9I,IAAK,IAAMA,KAAcE,EAAyBzB,CAAK,EAAGP,EAAQ,YAAY8B,EAAW,KAAMA,EAAW,QAASA,EAAW,QAAQ,CAC1I,CACA,MAAO,CACH,QACA,YAAa9B,EAAQ,YACrB,YAAaA,EAAQ,YACrB,UAAWA,EAAQ,UACnB,oBAAqBA,EAAQ,oBAC7B,QAAS,CAACA,EAAQ,YAAY,KAAK,GAAc8B,EAAW,WAAa,OAAO,CACpF,CACJ"}
|
|
1
|
+
{"version":3,"file":"ScreenplayCompiler.js","names":["documentPlacement","lines","splitLines","source","path","context","sourceContext","languages","placement","interactionAncestry","streamCandidates","CommandStreamCandidates","value","parseApplication","validateResponseContracts","validateIdentity","validatePurposes","validateInlineEvents","validateConstraintProperties","validateOperations","validatePublicEventUsage","validateSpecificationCases","effective","expandSpecificationExamples","validateResponses","validateEventSources","validateProjectionTargets","validateIdentifierCompliance","validateEventSubjects","validateReadModelKeys","validateReactionRefusals","validateSpecificationRedelivery","validateGuardedActions","validatePersonaCallers","validateDependencyDeclarations","DeclaredDependencies","diagnostic","productionDestinationDiagnostics","timelineOrderDiagnostics"],"sources":["../../../../../Compiler/ScreenplayCompiler.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { validateIdentity } from './Parsing/IdentityValidator';\nimport { Diagnostic } from './Diagnostics/Diagnostic';\nimport { validateSpecificationCases } from './Parsing/SpecificationCaseValidator';\nimport { expandSpecificationExamples } from './Parsing/SpecificationCommandExamples';\nimport { productionDestinationDiagnostics } from './Diagnostics/ProductionDestinationDiagnostics';\nimport { validateConstraintProperties } from './Parsing/ConstraintPropertyValidator';\nimport { validateDependencyDeclarations } from './Dependencies/DeclaredDependencyTargets';\nimport { DeclaredDependencies } from './Dependencies/DeclaredDependencies';\nimport { documentPlacement, PlayPlacement } from './Files/PlayPlacement';\nimport { DiscoveredImport, discoverImports as discoverImportsIn } from './Parsing/ImportDiscovery';\nimport { InputUse } from './Parsing/InputUses';\nimport { GuardedInteractionBinding, interactionAncestry } from './Parsing/InteractionAlternatives';\nimport { validateResponses } from './Parsing/ResponseValidator';\nimport { validatePublicEventUsage } from './Parsing/PublicEventUsageValidator';\nimport { sourceContext } from './Parsing/SourceOptionsParser';\nimport { validateInlineEvents } from './Parsing/InlineEventValidator';\nimport { validateOperations } from './Parsing/OperationValidator';\nimport { CommandStreamCandidates } from './Parsing/CommandStreamCandidates';\nimport { validateEventSources } from './Parsing/EventSourceValidator';\nimport { validateProjectionTargets } from './Parsing/ProjectionTargetValidator';\nimport { validateIdentifierCompliance } from './Parsing/IdentifierComplianceValidator';\nimport { validateEventSubjects } from './Parsing/EventSubjectValidator';\nimport { validateReadModelKeys } from './Parsing/ReadModelKeyValidator';\nimport { validateReactionRefusals } from './Parsing/ReactionRefusalValidator';\nimport { validateSpecificationRedelivery } from './Parsing/SpecificationRedeliveryValidator';\nimport { validateGuardedActions } from './Parsing/GuardedActionValidator';\nimport { validatePersonaCallers } from './Parsing/PersonaCallerValidator';\nimport { validatePurposes } from './Parsing/PurposeValidator';\nimport { parseApplication } from './Parsing/ScreenplayParser';\nimport { splitLines } from './Parsing/SourceLineSplitter';\nimport { PropertySyntax } from './Syntax/Declarations';\nimport { ApplicationSyntax } from './Syntax/Structure';\nimport { ApplicationSyntaxVisitor } from './Syntax/Visitors';\nimport { ProjectionSyntax } from './Syntax/Projections';\nimport { CaptureSyntax } from './Syntax/Captures';\nimport { SpecificationExampleSyntax, SpecificationSyntax } from './Syntax/Specifications';\nimport { SyntaxNode } from './Syntax/SyntaxNode';\nimport { ParserContext } from './Parsing/ParserContext';\nimport { parseProjection } from './Parsing/ProjectionParser';\nimport { parseCapture } from './Parsing/CaptureParser';\nimport { parseSpecification } from './Parsing/SpecificationParser';\nimport { parseExample } from './Parsing/SpecificationExampleParser';\nimport { firstWord } from './Parsing/LineText';\nimport { SourceLine, locationOf } from './Parsing/SourceLine';\nimport { DiagnosticCodes } from './Diagnostics/DiagnosticCodes';\nimport { timelineOrderDiagnostics } from './Files/TimelineOrder';\n\n// What compiling produced: the syntax tree, and the diagnostics found on the way. A tree is always\n// produced, so a document with errors still shows everything that could be read.\nexport interface CompilationResult<T> {\n readonly value: T;\n readonly diagnostics: readonly Diagnostic[];\n readonly success: boolean;\n}\n\n// Parses one .play document - the TypeScript counterpart of the C# ScreenplayCompiler.Parse. The path, when\n// given, is carried on every source location so a folder of documents can be merged and still point back\n// at the file each node came from. A placement says the document's top level belongs to the module or\n// feature an import placed it in: that module and feature are in the tree, marked as placements, holding what\n// the document declares at its top level.\nexport function parse(source: string, path?: string, placement: PlayPlacement = documentPlacement): CompilationResult<ApplicationSyntax> {\n const { value, diagnostics, success } = parseForAuthoring(source, path, placement);\n return { value, diagnostics, success };\n}\n\n// Additive authoring view: do not widen TypeRefSyntax or the cross-compiler SyntaxJson projection.\nexport function parseForAuthoring(source: string, path?: string, placement: PlayPlacement = documentPlacement, validateResponseContracts = true, streamCandidates?: CommandStreamCandidates, languages?: ReadonlySet<string>): CompilationResult<ApplicationSyntax> & { readonly triggerData: readonly PropertySyntax[]; readonly inputUses: readonly InputUse[]; readonly guardedInteractions: readonly GuardedInteractionBinding[] } {\n const lines = splitLines(source, false, path);\n const context = sourceContext(lines, path, languages);\n context.scope = placement;\n context.interactionAncestors = interactionAncestry(lines);\n context.streamCandidates = streamCandidates ?? CommandStreamCandidates.capture([lines], placement, languages);\n let value = parseApplication(context, lines, placement);\n // Folder assembly validates declaration-dependent contracts once against the merged inventory.\n if (validateResponseContracts) {\n validateIdentity(value, context);\n validatePurposes(value, context);\n validateInlineEvents(value, context);\n validateConstraintProperties(value, context);\n validateOperations(value, context);\n validatePublicEventUsage(value, context);\n validateSpecificationCases(value, context);\n const effective = expandSpecificationExamples(value);\n validateResponses(effective, context);\n validateEventSources(value, context);\n validateProjectionTargets(value, context);\n validateIdentifierCompliance(effective, context);\n validateEventSubjects(value, context);\n validateReadModelKeys(value, context);\n validateReactionRefusals(value, context);\n validateSpecificationRedelivery(value, context);\n validateGuardedActions(value, context);\n validatePersonaCallers(value, context);\n value = validateDependencyDeclarations(value, context);\n DeclaredDependencies.validate(value, context);\n for (const diagnostic of productionDestinationDiagnostics(value)) context.information(diagnostic.code, diagnostic.message, diagnostic.location);\n for (const diagnostic of timelineOrderDiagnostics(value)) context.information(diagnostic.code, diagnostic.message, diagnostic.location);\n }\n return {\n value,\n diagnostics: context.diagnostics,\n triggerData: context.triggerData,\n inputUses: context.inputUses,\n guardedInteractions: context.guardedInteractions,\n success: !context.diagnostics.some(diagnostic => diagnostic.severity === 'error'),\n };\n}\n\n/** Checks public boundaries on programmatically authored or decoded assembled syntax. */\nexport function publicEventDiagnostics(application: ApplicationSyntax): readonly Diagnostic[] {\n const context = sourceContext([], application.location.path);\n validatePublicEventUsage(application, context);\n return context.diagnostics;\n}\n\n// Parses a document and hands its syntax tree to a visitor - the counterpart of the C#\n// ScreenplayCompiler.Compile<T>(source, visitor). The visitor runs even when there are errors, over\n// everything that could be read.\nexport function compile<T>(source: string, visitor: ApplicationSyntaxVisitor<T>, path?: string): CompilationResult<T> {\n const parsed = parse(source, path);\n return { value: visitor.visit(parsed.value), diagnostics: parsed.diagnostics, success: parsed.success };\n}\n\n// Finds the files a document imports and where in it each import is written - each import with the module\n// and feature names around it, outermost first. Diagnostics are not collected; parsing the document reports them.\nexport function discoverImports(source: string, path?: string, languages?: ReadonlySet<string>): DiscoveredImport[] {\n const lines = splitLines(source, false, path);\n return discoverImportsIn(sourceContext(lines, path, languages));\n}\n\n// Additive entry points preserve the caller's registry; none can select numeric mode externally.\nexport function parseWithLanguages(source: string, languages: ReadonlySet<string>, path?: string, placement: PlayPlacement = documentPlacement): CompilationResult<ApplicationSyntax> {\n const { value, diagnostics, success } = parseForAuthoring(source, path, placement, true, undefined, languages);\n return { value, diagnostics, success };\n}\n\nexport function parseProjectionSource(source: string, path?: string, languages?: ReadonlySet<string>): CompilationResult<readonly ProjectionSyntax[]> {\n return parseSourceFamily(source, 'projection', parseProjection, path, languages);\n}\n\nexport function parseCaptureSource(source: string, path?: string, languages?: ReadonlySet<string>): CompilationResult<readonly CaptureSyntax[]> {\n return parseSourceFamily(source, 'capture', parseCapture, path, languages);\n}\n\nexport function parseSpecificationSource(source: string, path?: string, languages?: ReadonlySet<string>): CompilationResult<readonly SpecificationSyntax[]> {\n return parseSourceFamily(source, 'specification', parseSpecification, path, languages);\n}\n\nfunction parseSourceFamily<T extends SyntaxNode>(source: string, keyword: string, read: (context: ParserContext, line: SourceLine) => T, path?: string, languages?: ReadonlySet<string>): CompilationResult<readonly T[]> {\n const context = sourceContext(splitLines(source, true, path), path, languages, true);\n const value: T[] = [];\n const examples: SpecificationExampleSyntax[] = [];\n for (let line = context.reader.peekSignificant(); line !== undefined; line = context.reader.peekSignificant()) {\n context.reader.takeSignificant();\n if (keyword === 'specification' && firstWord(line.content) === 'example') examples.push(parseExample(context, line));\n else if (line.content.startsWith(keyword)) value.push(read(context, line));\n else {\n context.error(DiagnosticCodes.UnknownTopLevelConstruct, `Expected '${keyword}', got '${line.content}'`, locationOf(line));\n context.skipOpaqueBlock(line.indent);\n }\n }\n if (context.sourceOptions.numericMode === 'exact' && value.length === 0 && context.diagnostics.length === 0) {\n const code = keyword === 'projection' ? DiagnosticCodes.ProjectionDocumentWithoutProjection : keyword === 'capture' ? DiagnosticCodes.CaptureDocumentWithoutCapture : DiagnosticCodes.SpecificationDocumentWithoutSpecification;\n context.error(code, `Document must contain at least one ${keyword}`, context.start);\n }\n const roots = keyword === 'specification' && examples.length > 0 ? value.map(node => ({ ...node, examples })) : value;\n if (keyword === 'specification') {\n const application = parseApplication(sourceContext([], path, languages), [], documentPlacement);\n validateSpecificationCases({ ...application, examples }, context, roots as unknown as SpecificationSyntax[]);\n }\n return { value: roots, diagnostics: context.diagnostics, success: !context.diagnostics.some(diagnostic => diagnostic.severity === 'error') };\n}\n"],"mappings":"q2EAqEA,SAAgB,kBAAkB,EAAgB,EAAe,EAA2BA,EAAmB,EAA4B,GAAM,EAA4C,EAA0O,CACna,IAAMC,EAAQC,EAAWC,EAAQ,GAAOC,CAAI,EACtCC,EAAUC,EAAcL,EAAOG,EAAMG,CAAS,EACpD,EAAQ,MAAQC,EAChB,EAAQ,qBAAuBC,EAAoBR,CAAK,EACxD,EAAQ,iBAAmBS,GAAoBC,EAAwB,QAAQ,CAACV,CAAK,EAAGO,EAAWD,CAAS,EAC5G,IAAIK,EAAQC,EAAiBR,EAASJ,EAAOO,CAAS,EAEtD,GAAIM,EAA2B,CAC3BC,EAAiBH,EAAOP,CAAO,EAC/BW,EAAiBJ,EAAOP,CAAO,EAC/BY,EAAqBL,EAAOP,CAAO,EACnCa,EAA6BN,EAAOP,CAAO,EAC3Cc,EAAmBP,EAAOP,CAAO,EACjCe,EAAyBR,EAAOP,CAAO,EACvCgB,EAA2BT,EAAOP,CAAO,EACzC,IAAMiB,EAAYC,EAA4BX,CAAK,EACnDY,EAAkBF,EAAWjB,CAAO,EACpCoB,EAAqBb,EAAOP,CAAO,EACnCqB,EAA0Bd,EAAOP,CAAO,EACxCsB,EAA6BL,EAAWjB,CAAO,EAC/CuB,EAAsBhB,EAAOP,CAAO,EACpCwB,EAAsBjB,EAAOP,CAAO,EACpCyB,EAAyBlB,EAAOP,CAAO,EACvC0B,EAAgCnB,EAAOP,CAAO,EAC9C2B,EAAuBpB,EAAOP,CAAO,EACrC4B,EAAuBrB,EAAOP,CAAO,EACrC,EAAQ6B,EAA+BtB,EAAOP,CAAO,EACrD8B,EAAqB,SAASvB,EAAOP,CAAO,EAC5C,IAAK,IAAM+B,KAAcC,EAAiCzB,CAAK,EAAGP,EAAQ,YAAY+B,EAAW,KAAMA,EAAW,QAASA,EAAW,QAAQ,EAC9I,IAAK,IAAMA,KAAcE,EAAyB1B,CAAK,EAAGP,EAAQ,YAAY+B,EAAW,KAAMA,EAAW,QAASA,EAAW,QAAQ,CAC1I,CACA,MAAO,CACH,QACA,YAAa/B,EAAQ,YACrB,YAAaA,EAAQ,YACrB,UAAWA,EAAQ,UACnB,oBAAqBA,EAAQ,oBAC7B,QAAS,CAACA,EAAQ,YAAY,KAAK,GAAc+B,EAAW,WAAa,OAAO,CACpF,CACJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../../_virtual/_virtual/_rolldown/runtime.js";var EventSourceCatalog=class{sources=/* @__PURE__ */ new Map;otherNames;constructor(e){for(let t of e.eventSources??[])this.sources.set(t.name,[...this.sources.get(t.name)??[],t]);this.otherNames=new Set([...e.concepts,...e.types].map(e=>e.name))}resolve(e,t){let n=this.sources.get(e)??[],r=n.flatMap(e=>e.streams).filter(e=>e.name===t),i;return i=n.length===0?this.otherNames.has(e)?`wrongKind`:`notFound`:n.length>1||r.length>1?`ambiguous`:r.length===1?`unique`:`notFound`,{kind:i,sources:n,streams:r}}};export{EventSourceCatalog};
|
|
1
|
+
import"../../_virtual/_virtual/_rolldown/runtime.js";var EventSourceCatalog=class{sources=/* @__PURE__ */ new Map;otherNames;constructor(e){for(let t of e.eventSources??[])this.sources.set(t.name,[...this.sources.get(t.name)??[],t]);this.otherNames=new Set([...e.concepts,...e.types].map(e=>e.name))}resolve(e,t){let n=this.sources.get(e)??[],r=n.flatMap(e=>e.streams).filter(e=>e.name===t),i;return i=n.length===0?this.otherNames.has(e)?`wrongKind`:`notFound`:n.length>1||r.length>1?`ambiguous`:t===void 0||r.length===1?`unique`:`notFound`,{kind:i,sources:n,streams:r}}};export{EventSourceCatalog};
|
|
2
2
|
//# sourceMappingURL=EventSourceCatalog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventSourceCatalog.js","names":["source","application","type","sources","streams","parent","candidate","stream","kind"],"sources":["../../../../../../Compiler/Syntax/EventSourceCatalog.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { EventSourceSyntax, EventSourceResolution, EventSourceResolutionKind } from './EventSources';\nimport { ApplicationSyntax } from './Structure';\n\nexport { type EventSourceResolution, EventSourceResolutionKind } from './EventSources';\n// Exact application/source/local-name keys only. Paths identify physical occurrences, not semantic ids.\nexport class EventSourceCatalog {\n private readonly sources = new Map<string, EventSourceSyntax[]>();\n private readonly otherNames: ReadonlySet<string>;\n\n constructor(application: ApplicationSyntax) {\n for (const source of application.eventSources ?? []) this.sources.set(source.name, [...this.sources.get(source.name) ?? [], source]);\n this.otherNames = new Set([...application.concepts, ...application.types].map(type => type.name));\n }\n\n resolve(source: string, stream
|
|
1
|
+
{"version":3,"file":"EventSourceCatalog.js","names":["source","application","type","sources","streams","parent","candidate","stream","kind"],"sources":["../../../../../../Compiler/Syntax/EventSourceCatalog.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { EventSourceSyntax, EventSourceResolution, EventSourceResolutionKind } from './EventSources';\nimport { ApplicationSyntax } from './Structure';\n\nexport { type EventSourceResolution, EventSourceResolutionKind } from './EventSources';\n// Exact application/source/local-name keys only. Paths identify physical occurrences, not semantic ids.\nexport class EventSourceCatalog {\n private readonly sources = new Map<string, EventSourceSyntax[]>();\n private readonly otherNames: ReadonlySet<string>;\n\n constructor(application: ApplicationSyntax) {\n for (const source of application.eventSources ?? []) this.sources.set(source.name, [...this.sources.get(source.name) ?? [], source]);\n this.otherNames = new Set([...application.concepts, ...application.types].map(type => type.name));\n }\n\n resolve(source: string, stream?: string): EventSourceResolution {\n const sources = this.sources.get(source) ?? [];\n const streams = sources.flatMap(parent => parent.streams).filter(candidate => candidate.name === stream);\n let kind: EventSourceResolutionKind;\n if (sources.length === 0) kind = this.otherNames.has(source) ? EventSourceResolutionKind.WrongKind : EventSourceResolutionKind.NotFound;\n else if (sources.length > 1 || streams.length > 1) kind = EventSourceResolutionKind.Ambiguous;\n else kind = stream === undefined || streams.length === 1 ? EventSourceResolutionKind.Unique : EventSourceResolutionKind.NotFound;\n return { kind, sources, streams };\n }\n}\n"],"mappings":"qDAQA,IAAa,mBAAb,KAAgC,CAC5B,wBAA2B,IAAI,IAC/B,WAEA,YAAY,EAAgC,CACxC,IAAK,IAAMA,KAAUC,EAAY,cAAgB,CAAC,EAAG,KAAK,QAAQ,IAAID,EAAO,KAAM,CAAC,GAAG,KAAK,QAAQ,IAAIA,EAAO,IAAI,GAAK,CAAC,EAAGA,CAAM,CAAC,EACnI,KAAK,WAAa,IAAI,IAAI,CAAC,GAAGC,EAAY,SAAU,GAAGA,EAAY,KAAK,CAAC,CAAC,IAAI,GAAQC,EAAK,IAAI,CAAC,CACpG,CAEA,QAAQ,EAAgB,EAAwC,CAC5D,IAAMC,EAAU,KAAK,QAAQ,IAAIH,CAAM,GAAK,CAAC,EACvCI,EAAUD,EAAQ,QAAQ,GAAUE,EAAO,OAAO,CAAC,CAAC,OAAO,GAAaC,EAAU,OAASC,CAAM,EACnGC,EAIJ,MAHA,CAEKA,EAFDL,EAAQ,SAAW,EAAU,KAAK,WAAW,IAAIH,CAAM,EAAA,YAAA,WAClDG,EAAQ,OAAS,GAAKC,EAAQ,OAAS,EAAG,YACvCG,IAAW,IAAA,IAAaH,EAAQ,SAAW,EAAA,SAAA,WAChD,CAAE,OAAM,UAAS,SAAQ,CACpC,CACJ"}
|
|
@@ -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)}visitConcurrency(e){this.visitNode(e)}visitReducer(e){this.visitNode(e),e.rules.forEach(e=>this.visitReducerRule(e))}visitReducerRule(e){this.visitNode(e),e.file!==null&&this.visitFileReference(e.file),e.code!==null&&this.visitCodeBlock(e.code)}visitForm(e){this.visitNode(e),e.populate!==null&&this.visitNode(e.populate),e.fields.forEach(e=>this.visitNode(e)),e.columns?.forEach(e=>this.visitNode(e)),e.layout!==null&&e.layout!==void 0&&(this.visitNode(e.layout),e.layout.columns.forEach(e=>{this.visitNode(e),e.width!==null&&this.visitNode(e.width),e.minWidth!==null&&this.visitNode(e.minWidth),e.maxWidth!==null&&this.visitNode(e.maxWidth)}),e.layout.columnGap!==null&&this.visitNode(e.layout.columnGap),e.layout.rowGap!==null&&this.visitNode(e.layout.rowGap),e.layout.placements.forEach(e=>{this.visitNode(e),e.width!==null&&this.visitNode(e.width)})),e.onSubmit!==null&&this.visitScreenDirective(e.onSubmit)}visitCommand(e){this.visitNode(e),e.properties.forEach(e=>this.visitProperty(e)),e.authorize!==null&&this.visitAuthorize(e.authorize),e.stream!=null&&this.visitCommandStream(e.stream),e.streamCandidates?.forEach(e=>this.visitCommandStream(e)),e.validations.forEach(e=>this.visitValidate(e)),e.produces.forEach(e=>this.visitProduces(e)),e.handler!=null&&this.visitHandler(e.handler),e.response!=null&&this.visitCommandResponse(e.response)}visitEventSource(e){this.visitNode(e),e.identifier!==null&&this.visitTypeRef(e.identifier),e.streams.forEach(e=>this.visitEventStream(e))}visitEventStream(e){this.visitNode(e),e.streamId!==null&&this.visitTypeRef(e.streamId),e.streamIdParts.forEach(e=>this.visitEventStreamIdPart(e))}visitEventStreamIdPart(e){this.visitNode(e),this.visitTypeRef(e.type)}visitCommandStream(e){this.visitNode(e),e.streamId!==null&&this.visitPropertyMapping(e.streamId),e.streamIdParts.forEach(e=>this.visitPropertyMapping(e)),e.propertyCandidate!==null&&this.visitProperty(e.propertyCandidate)}visitSystem(e){this.visitNode(e)}visitOperation(e){this.visitNode(e),e.inputs.forEach(e=>this.visitProperty(e)),e.execute!==null&&this.visitOperationPhase(e.execute),e.compensate!==null&&this.visitOperationPhase(e.compensate)}visitOperationPhase(e){this.visitNode(e),e.implementation!==null&&this.visitImplementation(e.implementation),e.file!==null&&this.visitFileReference(e.file),e.code!==null&&this.visitCodeBlock(e.code)}visitSpecificationOperationFailure(e){this.visitNode(e)}visitSpecificationCompensated(e){this.visitNode(e)}visitSpecificationOperation(e){this.visitNode(e),e.values.forEach(e=>this.visitPropertyMapping(e))}visitHandler(e){this.visitNode(e),e.implementation!=null&&this.visitImplementation(e.implementation),e.file!==null&&this.visitFileReference(e.file),e.code!==null&&this.visitCodeBlock(e.code)}visitImplementation(e){this.visitNode(e),e.hints.forEach(e=>this.visitImplementationHint(e))}visitImplementationHint(e){this.visitNode(e)}visitFileReference(e){this.visitNode(e)}visitCodeBlock(e){this.visitNode(e)}visitCommandResponse(e){e.kind===`ScalarCommandResponseSyntax`?this.visitScalarCommandResponse(e):this.visitRecordCommandResponse(e)}visitScalarCommandResponse(e){this.visitNode(e),this.visitPropertyResponseSource(e.source)}visitRecordCommandResponse(e){this.visitNode(e),e.fields.forEach(e=>this.visitResponseField(e))}visitResponseField(e){this.visitNode(e),e.type!==null&&this.visitTypeRef(e.type),this.visitPropertyResponseSource(e.source)}visitPropertyResponseSource(e){this.visitNode(e)}visitSpecificationReturn(e){e.kind===`ScalarSpecificationReturnSyntax`?this.visitScalarSpecificationReturn(e):this.visitRecordSpecificationReturn(e)}visitScalarSpecificationReturn(e){this.visitNode(e),this.visitExpression(e.value)}visitRecordSpecificationReturn(e){this.visitNode(e),e.fields.forEach(e=>this.visitPropertyMapping(e))}visitValidate(e){this.visitNode(e),e.kind===`DeclarativeValidateSyntax`?(e.rules.forEach(e=>this.visitValidationRule(e)),e.requirements?.forEach(e=>{this.visitNode(e),this.visitCondition(e.condition)})):e.code!=null&&this.visitCodeBlock(e.code)}visitValidationRule(e){this.visitNode(e),e.implementation!=null&&this.visitImplementation(e.implementation),e.value!==null&&this.visitExpression(e.value),e.file!==null&&this.visitFileReference(e.file),e.code!==null&&this.visitCodeBlock(e.code)}visitEvent(e){this.visitNode(e),e.properties.forEach(e=>this.visitProperty(e)),e.tags.forEach(e=>this.visitTag(e))}visitTag(e){this.visitNode(e),this.visitExpression(e.value)}visitReadModel(e){this.visitNode(e),e.properties.forEach(e=>this.visitProperty(e))}visitConstraint(e){this.visitNode(e),e.kind===`FileConstraintSyntax`&&this.visitNode(e.file),e.additionalRules.forEach(e=>this.visitConstraint(e))}visitQuery(e){this.visitNode(e),this.visitTypeRef(e.returnType),e.by!==null&&this.visitQueryParameter(e.by),e.filters.forEach(e=>this.visitQueryParameter(e)),e.authorize!==null&&this.visitAuthorize(e.authorize)}visitQueryParameter(e){this.visitNode(e),this.visitTypeRef(e.type),e.source!=null&&this.visitExpression(e.source)}visitKey(e){this.visitNode(e),e.kind===`ExpressionKeySyntax`?this.visitExpression(e.expression):e.parts.forEach(e=>{this.visitNode(e),this.visitExpression(e.expression)})}visitProjection(e){this.visitNode(e),e.key!=null&&this.visitKey(e.key),e.blocks.forEach(e=>this.visitProjectionBlock(e))}visitProjectionBlock(e){switch(this.visitNode(e),e.kind){case`FromSyntax`:e.events.forEach(e=>{this.visitNode(e),e.key!=null&&this.visitExpression(e.key)}),e.key!=null&&this.visitKey(e.key),e.parentKey!=null&&this.visitExpression(e.parentKey),e.mappings.forEach(e=>this.visitMapping(e));break;case`EverySyntax`:case`AllSyntax`:e.mappings.forEach(e=>this.visitMapping(e));break;case`JoinSyntax`:e.events.forEach(e=>this.visitJoinEvent(e));break;case`ProjectionVariantSyntax`:e.entersOn.forEach(e=>{this.visitNode(e),e.key!=null&&this.visitExpression(e.key)}),e.blocks.forEach(e=>this.visitProjectionBlock(e));break;case`ChildrenSyntax`:e.identifiedBy!==void 0&&this.visitExpression(e.identifiedBy),e.blocks.forEach(e=>this.visitProjectionBlock(e));break;case`NestedSyntax`:e.blocks.forEach(e=>this.visitProjectionBlock(e));break;case`RemoveWithSyntax`:e.parentKey!=null&&this.visitExpression(e.parentKey),e.key!=null&&this.visitExpression(e.key);break;case`RemoveViaJoinSyntax`:e.key!=null&&this.visitExpression(e.key)}}visitJoinEvent(e){this.visitNode(e),e.mappings.forEach(e=>this.visitMapping(e))}visitMapping(e){this.visitNode(e),e.source!==void 0&&this.visitExpression(e.source),e.value!==void 0&&this.visitExpression(e.value)}visitCondition(e){this.visitNode(e),e.kind===`ComparisonConditionSyntax`?this.visitExpression(e.right):(this.visitCondition(e.left),this.visitCondition(e.right))}visitReaction(e){this.visitNode(e),e.runsAs!=null&&this.visitReactionIdentity(e.runsAs),e.where!=null&&this.visitCondition(e.where),e.triggers.forEach(e=>this.visitReactionTrigger(e))}visitReactionIdentity(e){this.visitNode(e)}visitReactionTrigger(e){this.visitNode(e),this.visitTriggerSource(e.source),e.produces.forEach(e=>this.visitProduces(e)),e.invokes.forEach(e=>this.visitInvokes(e))}visitProduces(e){this.visitNode(e),e.when!=null&&this.visitCondition(e.when),e.inlineEvent!==null&&this.visitEvent(e.inlineEvent),e.inlineOperation!=null&&this.visitOperation(e.inlineOperation),e.for!==null&&this.visitExpression(e.for),e.mappings.forEach(e=>this.visitPropertyMapping(e)),e.tags.forEach(e=>this.visitTag(e))}visitInvokes(e){this.visitNode(e),e.mappings?.forEach(e=>this.visitPropertyMapping(e)),e.onRefused?.forEach(e=>this.visitInvocationRefusal(e))}visitInvocationRefusal(e){this.visitNode(e),e.produces.forEach(e=>this.visitProduces(e))}visitCapture(e){this.visitNode(e),e.source!==null&&this.visitCaptureSource(e.source),e.map?.forEach(e=>this.visitCaptureMap(e)),e.appends.forEach(e=>this.visitCaptureAppend(e)),e.children.forEach(e=>this.visitCaptureChildren(e)),e.nested.forEach(e=>this.visitCaptureNested(e))}visitCaptureSource(e){this.visitNode(e),e.settings.forEach(e=>this.visitCaptureSourceSetting(e))}visitCaptureSourceSetting(e){this.visitNode(e)}visitCaptureMap(e){this.visitNode(e),this.visitExpression(e.source),e.kind===`CaptureMapEntrySyntax`&&e.translations.forEach(e=>this.visitNode(e))}visitCaptureAppend(e){this.visitNode(e),e.when!=null&&this.visitNode(e.when),e.mappings?.forEach(e=>this.visitPropertyMapping(e)),e.tags?.forEach(e=>this.visitTag(e))}visitCaptureChildren(e){this.visitNode(e),e.map?.forEach(e=>this.visitCaptureMap(e)),e.appends.forEach(e=>this.visitCaptureAppend(e))}visitCaptureNested(e){this.visitNode(e),e.map?.forEach(e=>this.visitCaptureMap(e)),e.appends.forEach(e=>this.visitCaptureAppend(e))}visitTriggerSource(e){this.visitNode(e)}visitScreen(e){this.visitNode(e),e.directives.forEach(e=>this.visitScreenDirective(e)),e.contributions?.forEach(e=>{this.visitNode(e),e.directives.forEach(e=>this.visitScreenDirective(e))})}visitScreenDirective(e){if(e.kind===`ScreenGuardedActionSyntax`)this.visitScreenGuardedAction(e);else switch(this.visitNode(e),e.kind){case`ScreenDataSyntax`:this.visitTypeRef(e.type);break;case`ScreenActionSyntax`:e.navigate!==null&&this.visitScreenDirective(e.navigate);break;case`ScreenNavigateSyntax`:e.parameters.forEach(e=>{this.visitNode(e),this.visitUiBinding(e.binding)});break;case`ScreenTemplateReferenceSyntax`:e.slots.forEach(e=>{this.visitNode(e),e.directives.forEach(e=>this.visitScreenDirective(e))});break;case`ScreenSectionSyntax`:e.directives.forEach(e=>this.visitScreenDirective(e));break;case`ScreenTableSyntax`:e.columns.forEach(e=>this.visitNode(e)),e.rowClick!==null&&this.visitScreenDirective(e.rowClick);break;case`ScreenSummarySyntax`:e.fields.forEach(e=>this.visitNode(e));break;case`ScreenComponentSyntax`:e.context!==null&&this.visitUiBinding(e.context),e.properties.forEach(e=>{this.visitNode(e),e.binding!==null&&this.visitUiBinding(e.binding),e.value!==null&&this.visitExpression(e.value)}),e.exposes.forEach(e=>{this.visitNode(e),this.visitUiBinding(e.binding)}),e.presentation.forEach(e=>this.visitNode(e)),e.outlets.forEach(e=>{this.visitNode(e),e.directives.forEach(e=>this.visitScreenDirective(e))});break;case`ScreenToolbarSyntax`:e.items.forEach(e=>{this.visitNode(e),e.parameters.forEach(e=>{this.visitNode(e),this.visitUiBinding(e.binding)}),e.presentation.forEach(e=>this.visitNode(e))});break;case`ScreenCodeSyntax`:this.visitNode(e.code)}}visitScreenGuardedAction(e){this.visitNode(e),e.alternatives.forEach(e=>this.visitScreenActionAlternative(e)),e.otherwise!==null&&this.visitScreenActionOtherwise(e.otherwise),e.navigate!==null&&this.visitScreenDirective(e.navigate)}visitScreenActionAlternative(e){this.visitNode(e),this.visitCondition(e.condition),e.arguments.forEach(e=>this.visitInteractionArgument(e))}visitScreenActionOtherwise(e){this.visitNode(e),e.arguments.forEach(e=>this.visitInteractionArgument(e))}visitInteractionArgument(e){this.visitNode(e)}visitSpecification(e){this.visitNode(e),e.examples?.forEach(e=>this.visitSpecificationExample(e)),e.parameters?.forEach(e=>{this.visitNode(e),this.visitTypeRef(e.type)}),e.cases?.forEach(e=>{this.visitNode(e),e.values.forEach(e=>this.visitPropertyMapping(e))}),e.givenClock!==null&&this.visitSpecificationClock(e.givenClock),e.givenOperationFailures?.forEach(e=>this.visitSpecificationOperationFailure(e)),e.thenOperations?.forEach(e=>this.visitSpecificationOperation(e)),e.thenCompensated?.forEach(e=>this.visitSpecificationCompensated(e)),e.givenCallerPersona!=null&&this.visitNode(e.givenCallerPersona),e.givenCaller!=null&&(this.visitNode(e.givenCaller),e.givenCaller.claims.forEach(e=>this.visitNode(e))),e.given.forEach(e=>this.visitSpecificationEvent(e)),e.givenReadModels.forEach(e=>this.visitSpecificationReadModel(e)),e.when!==null&&this.visitSpecificationCommand(e.when),e.givenCaptures.forEach(e=>this.visitSpecificationCapture(e)),e.whenAppended!==null&&this.visitSpecificationEvent(e.whenAppended),e.whenRedelivered!=null&&this.visitSpecificationRedelivery(e.whenRedelivered),e.whenClock!==null&&this.visitSpecificationClock(e.whenClock),e.whenTrigger!==null&&this.visitSpecificationTrigger(e.whenTrigger),e.whenCapture!==null&&this.visitSpecificationCapture(e.whenCapture),e.whenQuery!==null&&this.visitSpecificationWhenQuery(e.whenQuery),e.thenEvents.forEach(e=>this.visitSpecificationEvent(e)),e.thenReadModels.forEach(e=>this.visitSpecificationReadModel(e)),e.thenAbsentReadModels?.forEach(e=>{this.visitNode(e),this.visitExpression(e.key)}),e.thenQueries?.forEach(e=>{this.visitNode(e),e.arguments.forEach(e=>this.visitPropertyMapping(e)),e.results.forEach(e=>this.visitSpecificationQueryResult(e))}),e.thenResults.forEach(e=>this.visitSpecificationQueryResult(e)),e.thenNoResult!==null&&this.visitNode(e.thenNoResult),e.thenDenied!=null&&this.visitNode(e.thenDenied),e.thenReturns!=null&&this.visitSpecificationReturn(e.thenReturns),e.thenErrors.forEach(e=>{this.visitNode(e),e.caseValue!=null&&this.visitExpression(e.caseValue)})}visitSpecificationRedelivery(e){this.visitNode(e),e.for!==null&&this.visitExpression(e.for),e.stream!=null&&this.visitSpecificationStream(e.stream),e.noStream!=null&&this.visitSpecificationNoStream(e.noStream),e.values.forEach(e=>this.visitPropertyMapping(e))}visitSpecificationClock(e){this.visitNode(e)}visitSpecificationTrigger(e){this.visitNode(e),e.values.forEach(e=>this.visitPropertyMapping(e))}visitSpecificationCapture(e){this.visitNode(e),e.record.forEach(e=>this.visitPropertyMapping(e))}visitSpecificationWhenQuery(e){this.visitNode(e),e.arguments.forEach(e=>this.visitPropertyMapping(e))}visitSpecificationQueryResult(e){this.visitNode(e),e.properties.forEach(e=>this.visitPropertyMapping(e))}visitSpecificationExample(e){this.visitNode(e),e.for!==null&&this.visitExpression(e.for),e.stream!=null&&this.visitSpecificationStream(e.stream),e.noStream!=null&&this.visitSpecificationNoStream(e.noStream),e.values.forEach(e=>this.visitPropertyMapping(e)),e.generatedValues.forEach(e=>this.visitPropertyMapping(e))}visitSpecificationEvent(e){this.visitNode(e),e.stream!=null&&this.visitSpecificationStream(e.stream),e.noStream!=null&&this.visitSpecificationNoStream(e.noStream),e.values.forEach(e=>this.visitPropertyMapping(e)),e.for!==null&&this.visitExpression(e.for)}visitSpecificationStream(e){this.visitNode(e),e.streamId!==null&&this.visitPropertyMapping(e.streamId),e.streamIdParts.forEach(e=>this.visitPropertyMapping(e))}visitSpecificationNoStream(e){this.visitNode(e)}visitSpecificationCommand(e){this.visitNode(e),(e.generatedValues??[]).forEach(e=>this.visitPropertyMapping(e)),e.values.forEach(e=>this.visitPropertyMapping(e)),e.for!==null&&this.visitExpression(e.for)}visitSpecificationReadModel(e){this.visitNode(e),e.properties.forEach(e=>this.visitPropertyMapping(e))}visitPropertyMapping(e){this.visitNode(e),this.visitExpression(e.source)}visitProperty(e){this.visitNode(e),this.visitTypeRef(e.type)}visitTypeRef(e){this.visitNode(e)}visitUiBinding(e){this.visitNode(e),e.literal!==null&&this.visitExpression(e.literal)}visitIdentityExpression(e){this.visitNode(e)}visitExpression(e){e.kind===`IdentityExpressionSyntax`?this.visitIdentityExpression(e):(this.visitNode(e),e.kind===`ListExpressionSyntax`?e.items.forEach(e=>this.visitExpression(e)):e.kind===`ObjectExpressionSyntax`?e.members.forEach(e=>this.visitObjectMember(e)):e.kind===`TemplateExpressionSyntax`&&e.parts.forEach(e=>{this.visitNode(e),e.kind===`TemplateInterpolationSyntax`&&this.visitExpression(e.expression)}))}visitObjectMember(e){this.visitNode(e),this.visitExpression(e.value)}};export{ScreenplaySyntaxWalker};
|
|
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};
|
|
2
2
|
//# sourceMappingURL=ScreenplaySyntaxWalker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScreenplaySyntaxWalker.js","names":["syntax","node","property","contribution","item","value","detail","group","event","column","placement","candidate","stream","part","input","hint","field","parameter","slot","exposed","outlet","result","fixture","member"],"sources":["../../../../../../Compiler/Syntax/ScreenplaySyntaxWalker.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { IdentitySyntax } from './IdentitySyntax';\nimport { IdentityDetailSyntax } from './IdentityDetailSyntax';\nimport { IdentitySourceSyntax } from './IdentitySourceSyntax';\nimport { ClaimIdentitySourceSyntax } from './ClaimIdentitySourceSyntax';\nimport { QueryIdentitySourceSyntax } from './QueryIdentitySourceSyntax';\nimport { CodeIdentitySourceSyntax } from './CodeIdentitySourceSyntax';\nimport { FileIdentitySourceSyntax } from './FileIdentitySourceSyntax';\nimport { AuthorizeSyntax, PersonaSyntax, PolicyRequirementSyntax } from './Authorization';\nimport { CaptureAppendSyntax, CaptureChildrenSyntax, CaptureMapOperationSyntax, CaptureNestedSyntax, CaptureSourceSettingSyntax, CaptureSourceSyntax, CaptureSyntax } from './Captures';\nimport { CommandSyntax, ValidateSyntax, ValidationRuleSyntax } from './Commands';\nimport { ConstraintSyntax } from './Constraints';\nimport { ConditionSyntax } from './Conditions';\nimport { PolicyConditionSyntax, PolicySyntax } from './Policies';\nimport { SeedSyntax } from './Seeds';\nimport { ConceptSyntax, DomainSyntax, EventSyntax, ImportSyntax, PropertySyntax, ReadModelSyntax, TagSyntax, TypeRefSyntax, TypeSyntax } from './Declarations';\nimport { IdentityExpressionSyntax, ExpressionSyntax, ObjectMemberSyntax, PropertyMappingSyntax } from './Expressions';\nimport { JoinEventSyntax, KeySyntax, MappingSyntax, ProjectionBlockSyntax, ProjectionSyntax } from './Projections';\nimport { CommandStreamSyntax, EventSourceSyntax, EventStreamSyntax } from './EventSources';\nimport { QueryParameterSyntax, QuerySyntax } from './Queries';\nimport { InvocationRefusalSyntax } from './InvocationRefusalSyntax';\nimport { ReactionIdentitySyntax } from './ReactionIdentitySyntax';\nimport { SpecificationRedeliverySyntax } from './SpecificationRedeliverySyntax';\nimport { InvokesSyntax, ProducesSyntax, ReactionSyntax, ReactionTriggerSyntax, TriggerSourceSyntax } from './Reactions';\nimport { InteractionArgumentSyntax, ScreenActionAlternativeSyntax, ScreenActionOtherwiseSyntax, ScreenDirectiveSyntax, ScreenGuardedActionSyntax, ScreenSyntax } from './Screens';\nimport {\n SpecificationExampleSyntax, SpecificationCaptureSyntax, SpecificationClockSyntax, SpecificationCommandSyntax, SpecificationEventSyntax, SpecificationQueryResultSyntax, SpecificationStreamSyntax, SpecificationNoStreamSyntax,\n SpecificationReadModelSyntax, SpecificationOperationFailureSyntax, SpecificationOperationSyntax, SpecificationCompensatedSyntax, SpecificationSyntax, SpecificationTriggerSyntax, SpecificationWhenQuerySyntax,\n} from './Specifications';\nimport { ApplicationSyntax, DependsOnSyntax, FeatureSyntax, FileImportSyntax, ModuleSyntax, SliceSyntax } from './Structure';\nimport { CommandResponseSyntax, PropertyResponseSourceSyntax, RecordCommandResponseSyntax, RecordSpecificationReturnSyntax, ResponseFieldSyntax, ScalarCommandResponseSyntax, ScalarSpecificationReturnSyntax, SpecificationReturnSyntax } from './Responses';\nimport { EventStreamIdPartSyntax } from './EventStreamIdPartSyntax';\nimport { SyntaxNode } from './SyntaxNode';\nimport { PurposeSyntax, PurposeReferenceSyntax, PurposeTransferSyntax } from './Purposes';\nimport { OperationSyntax, OperationPhaseSyntax, SystemSyntax } from './Operations';\nimport { CodeBlockSyntax, FileReferenceSyntax, HandlerSyntax, ImplementationSyntax, ImplementationHintSyntax } from './Implementations';\nimport { ReadsSyntax, ConcurrencySyntax, ReducerSyntax, ReducerRuleSyntax, FormSyntax, TriggerDataSyntax } from './DependencySources';\n\n// Walks a whole syntax tree, depth first, in the order the C# ScreenplaySyntaxWalker does. Every visit\n// method calls visitNode and then walks the node's children, so an emitter overrides only the nodes it\n// cares about - and calls the base method when it still wants the children walked.\nexport abstract class ScreenplaySyntaxWalker {\n visitNode(_node: SyntaxNode): void {}\n\n visitApplication(syntax: ApplicationSyntax): void {\n this.visitNode(syntax);\n if (syntax.domain !== null) this.visitDomain(syntax.domain);\n syntax.imports.forEach(node => this.visitImport(node));\n syntax.fileImports.forEach(node => this.visitFileImport(node));\n syntax.systems?.forEach(node => this.visitSystem(node));\n syntax.eventSources?.forEach(node => this.visitEventSource(node));\n syntax.concepts.forEach(node => this.visitConcept(node));\n syntax.types.forEach(node => this.visitType(node));\n syntax.personas.forEach(node => this.visitPersona(node));\n syntax.policies?.forEach(node => this.visitPolicy(node));\n syntax.exposures?.forEach(node => {\n this.visitNode(node);\n node.properties.forEach(property => this.visitNode(property));\n });\n syntax.instanceContributions?.forEach(node => {\n this.visitNode(node);\n node.contributions.forEach(contribution => {\n this.visitNode(contribution);\n if (contribution.value !== null) this.visitExpression(contribution.value);\n contribution.items.forEach(item => {\n this.visitNode(item);\n item.values.forEach(value => {\n this.visitNode(value);\n this.visitExpression(value.value);\n });\n });\n });\n });\n if (syntax.identity != null) this.visitIdentity(syntax.identity);\n syntax.purposes?.forEach(node => this.visitPurpose(node));\n syntax.seeds?.forEach(node => this.visitSeed(node));\n syntax.modules.forEach(node => this.visitModule(node));\n syntax.examples?.forEach(node => this.visitSpecificationExample(node));\n }\n\n visitIdentity(syntax: IdentitySyntax): void {\n this.visitNode(syntax);\n syntax.details.forEach(detail => this.visitIdentityDetail(detail));\n }\n\n visitIdentityDetail(syntax: IdentityDetailSyntax): void {\n this.visitNode(syntax);\n this.visitTypeRef(syntax.type);\n this.visitIdentitySource(syntax.source);\n }\n\n visitIdentitySource(syntax: IdentitySourceSyntax): void {\n switch (syntax.kind) {\n case 'ClaimIdentitySourceSyntax': this.visitClaimIdentitySource(syntax); break;\n case 'QueryIdentitySourceSyntax': this.visitQueryIdentitySource(syntax); break;\n case 'CodeIdentitySourceSyntax': this.visitCodeIdentitySource(syntax); break;\n case 'FileIdentitySourceSyntax': this.visitFileIdentitySource(syntax); break;\n default: this.visitNode(syntax); break;\n }\n }\n\n visitClaimIdentitySource(syntax: ClaimIdentitySourceSyntax): void { this.visitNode(syntax); }\n visitQueryIdentitySource(syntax: QueryIdentitySourceSyntax): void { this.visitNode(syntax); this.visitExpression(syntax.by); }\n visitCodeIdentitySource(syntax: CodeIdentitySourceSyntax): void { this.visitNode(syntax); this.visitCodeBlock(syntax.code); }\n visitFileIdentitySource(syntax: FileIdentitySourceSyntax): void { this.visitNode(syntax); this.visitFileReference(syntax.file); }\n\n visitPurpose(syntax: PurposeSyntax): void {\n this.visitNode(syntax);\n syntax.transfers.forEach(node => this.visitPurposeTransfer(node));\n }\n\n visitPurposeReference(syntax: PurposeReferenceSyntax): void { this.visitNode(syntax); }\n visitPurposeTransfer(syntax: PurposeTransferSyntax): void { this.visitNode(syntax); }\n\n visitPolicy(syntax: PolicySyntax): void {\n this.visitNode(syntax);\n if (syntax.condition !== null) this.visitPolicyCondition(syntax.condition);\n if (syntax.code !== null) this.visitCodeBlock(syntax.code);\n if (syntax.file !== null) this.visitFileReference(syntax.file);\n }\n\n visitPolicyCondition(syntax: PolicyConditionSyntax): void {\n this.visitNode(syntax);\n if (syntax.kind === 'ClaimConditionSyntax' && syntax.matches !== null) this.visitExpression(syntax.matches);\n if (syntax.kind === 'NotPolicyConditionSyntax') this.visitPolicyCondition(syntax.operand);\n if (syntax.kind === 'LogicalPolicyConditionSyntax') { this.visitPolicyCondition(syntax.left); this.visitPolicyCondition(syntax.right); }\n }\n\n visitSeed(syntax: SeedSyntax): void {\n this.visitNode(syntax);\n syntax.groups.forEach(group => {\n this.visitNode(group);\n group.events.forEach(event => { this.visitNode(event); event.properties.forEach(property => this.visitPropertyMapping(property)); });\n });\n }\n\n visitPersona(syntax: PersonaSyntax): void {\n this.visitNode(syntax);\n }\n\n visitAuthorize(syntax: AuthorizeSyntax): void {\n this.visitNode(syntax);\n this.visitPolicyRequirement(syntax.requirement);\n }\n\n visitPolicyRequirement(syntax: PolicyRequirementSyntax): void {\n this.visitNode(syntax);\n if (syntax.kind === 'LogicalPolicyRequirementSyntax') {\n this.visitPolicyRequirement(syntax.left);\n this.visitPolicyRequirement(syntax.right);\n }\n }\n\n visitDomain(syntax: DomainSyntax): void {\n this.visitNode(syntax);\n }\n\n visitImport(syntax: ImportSyntax): void {\n this.visitNode(syntax);\n }\n\n visitFileImport(syntax: FileImportSyntax): void {\n this.visitNode(syntax);\n }\n\n visitConcept(syntax: ConceptSyntax): void {\n this.visitNode(syntax);\n syntax.attributes.forEach(node => this.visitNode(node));\n syntax.validations?.forEach(node => this.visitValidate(node));\n }\n\n visitType(syntax: TypeSyntax): void {\n this.visitNode(syntax);\n syntax.properties.forEach(node => this.visitProperty(node));\n }\n\n visitDependsOn(syntax: DependsOnSyntax): void { this.visitNode(syntax); }\n\n visitModule(syntax: ModuleSyntax): void {\n this.visitNode(syntax);\n syntax.purposes?.forEach(node => this.visitPurposeReference(node));\n syntax.examples?.forEach(node => this.visitSpecificationExample(node));\n syntax.dependsOn?.forEach(node => this.visitDependsOn(node));\n syntax.fileImports.forEach(node => this.visitFileImport(node));\n if (syntax.authorize !== null) this.visitAuthorize(syntax.authorize);\n syntax.features.forEach(node => this.visitFeature(node));\n }\n\n visitFeature(syntax: FeatureSyntax): void {\n this.visitNode(syntax);\n syntax.purposes?.forEach(node => this.visitPurposeReference(node));\n syntax.examples?.forEach(node => this.visitSpecificationExample(node));\n syntax.dependsOn?.forEach(node => this.visitDependsOn(node));\n syntax.fileImports.forEach(node => this.visitFileImport(node));\n if (syntax.authorize !== null) this.visitAuthorize(syntax.authorize);\n syntax.features.forEach(node => this.visitFeature(node));\n syntax.slices.forEach(node => this.visitSlice(node));\n }\n\n visitSlice(syntax: SliceSyntax): void {\n this.visitNode(syntax);\n syntax.purposes?.forEach(node => this.visitPurposeReference(node));\n syntax.examples?.forEach(node => this.visitSpecificationExample(node));\n syntax.commands.forEach(node => this.visitCommand(node));\n syntax.operations?.forEach(node => this.visitOperation(node));\n syntax.events.forEach(node => this.visitEvent(node));\n syntax.constraints.forEach(node => this.visitConstraint(node));\n syntax.queries.forEach(node => this.visitQuery(node));\n syntax.projections.forEach(node => this.visitProjection(node));\n syntax.readModels.forEach(node => this.visitReadModel(node));\n syntax.captures.forEach(node => this.visitCapture(node));\n syntax.reactions.forEach(node => this.visitReaction(node));\n syntax.screens.forEach(node => this.visitScreen(node));\n syntax.specifications.forEach(node => this.visitSpecification(node));\n }\n\n // Explicit reference-only entry points. Default tree traversal remains the narrowed wire traversal;\n // dependency consumers opt into parser-owned side-table payloads rather than changing board visitors.\n visitTriggerData(syntax: TriggerDataSyntax): void {\n this.visitNode(syntax);\n if (syntax.type !== null) this.visitTypeRef(syntax.type);\n }\n visitReads(syntax: ReadsSyntax): void { this.visitNode(syntax); }\n visitConcurrency(syntax: ConcurrencySyntax): void { this.visitNode(syntax); }\n visitReducer(syntax: ReducerSyntax): void {\n this.visitNode(syntax);\n syntax.rules.forEach(node => this.visitReducerRule(node));\n }\n visitReducerRule(syntax: ReducerRuleSyntax): void {\n this.visitNode(syntax);\n if (syntax.file !== null) this.visitFileReference(syntax.file);\n if (syntax.code !== null) this.visitCodeBlock(syntax.code);\n }\n visitForm(syntax: FormSyntax): void {\n this.visitNode(syntax);\n if (syntax.populate !== null) this.visitNode(syntax.populate);\n syntax.fields.forEach(node => this.visitNode(node));\n syntax.columns?.forEach(node => this.visitNode(node));\n if (syntax.layout !== null && syntax.layout !== undefined) {\n this.visitNode(syntax.layout);\n syntax.layout.columns.forEach(column => {\n this.visitNode(column);\n if (column.width !== null) this.visitNode(column.width);\n if (column.minWidth !== null) this.visitNode(column.minWidth);\n if (column.maxWidth !== null) this.visitNode(column.maxWidth);\n });\n if (syntax.layout.columnGap !== null) this.visitNode(syntax.layout.columnGap);\n if (syntax.layout.rowGap !== null) this.visitNode(syntax.layout.rowGap);\n syntax.layout.placements.forEach(placement => {\n this.visitNode(placement);\n if (placement.width !== null) this.visitNode(placement.width);\n });\n }\n if (syntax.onSubmit !== null) this.visitScreenDirective(syntax.onSubmit);\n }\n\n visitCommand(syntax: CommandSyntax): void {\n this.visitNode(syntax);\n syntax.properties.forEach(node => this.visitProperty(node));\n if (syntax.authorize !== null) this.visitAuthorize(syntax.authorize);\n if (syntax.stream != null) this.visitCommandStream(syntax.stream);\n syntax.streamCandidates?.forEach(candidate => this.visitCommandStream(candidate));\n syntax.validations.forEach(node => this.visitValidate(node));\n syntax.produces.forEach(node => this.visitProduces(node));\n if (syntax.handler != null) this.visitHandler(syntax.handler);\n if (syntax.response != null) this.visitCommandResponse(syntax.response);\n }\n\n visitEventSource(syntax: EventSourceSyntax): void {\n this.visitNode(syntax);\n if (syntax.identifier !== null) this.visitTypeRef(syntax.identifier);\n syntax.streams.forEach(stream => this.visitEventStream(stream));\n }\n visitEventStream(syntax: EventStreamSyntax): void {\n this.visitNode(syntax);\n if (syntax.streamId !== null) this.visitTypeRef(syntax.streamId);\n syntax.streamIdParts.forEach(part => this.visitEventStreamIdPart(part));\n }\n visitEventStreamIdPart(syntax: EventStreamIdPartSyntax): void {\n this.visitNode(syntax);\n this.visitTypeRef(syntax.type);\n }\n visitCommandStream(syntax: CommandStreamSyntax): void {\n this.visitNode(syntax);\n if (syntax.streamId !== null) this.visitPropertyMapping(syntax.streamId);\n syntax.streamIdParts.forEach(part => this.visitPropertyMapping(part));\n if (syntax.propertyCandidate !== null) this.visitProperty(syntax.propertyCandidate);\n }\n\n visitSystem(syntax: SystemSyntax): void { this.visitNode(syntax); }\n visitOperation(syntax: OperationSyntax): void {\n this.visitNode(syntax);\n syntax.inputs.forEach(input => this.visitProperty(input));\n if (syntax.execute !== null) this.visitOperationPhase(syntax.execute);\n if (syntax.compensate !== null) this.visitOperationPhase(syntax.compensate);\n }\n visitOperationPhase(syntax: OperationPhaseSyntax): void {\n this.visitNode(syntax);\n if (syntax.implementation !== null) this.visitImplementation(syntax.implementation);\n if (syntax.file !== null) this.visitFileReference(syntax.file);\n if (syntax.code !== null) this.visitCodeBlock(syntax.code);\n }\n visitSpecificationOperationFailure(syntax: SpecificationOperationFailureSyntax): void { this.visitNode(syntax); }\n visitSpecificationCompensated(syntax: SpecificationCompensatedSyntax): void { this.visitNode(syntax); }\n visitSpecificationOperation(syntax: SpecificationOperationSyntax): void {\n this.visitNode(syntax);\n syntax.values.forEach(value => this.visitPropertyMapping(value));\n }\n\n visitHandler(syntax: HandlerSyntax): void {\n this.visitNode(syntax);\n if (syntax.implementation != null) this.visitImplementation(syntax.implementation);\n if (syntax.file !== null) this.visitFileReference(syntax.file);\n if (syntax.code !== null) this.visitCodeBlock(syntax.code);\n }\n\n visitImplementation(syntax: ImplementationSyntax): void {\n this.visitNode(syntax);\n syntax.hints.forEach(hint => this.visitImplementationHint(hint));\n }\n\n visitImplementationHint(syntax: ImplementationHintSyntax): void { this.visitNode(syntax); }\n visitFileReference(syntax: FileReferenceSyntax): void { this.visitNode(syntax); }\n visitCodeBlock(syntax: CodeBlockSyntax): void { this.visitNode(syntax); }\n\n visitCommandResponse(syntax: CommandResponseSyntax): void {\n if (syntax.kind === 'ScalarCommandResponseSyntax') this.visitScalarCommandResponse(syntax);\n else this.visitRecordCommandResponse(syntax);\n }\n\n visitScalarCommandResponse(syntax: ScalarCommandResponseSyntax): void {\n this.visitNode(syntax);\n this.visitPropertyResponseSource(syntax.source);\n }\n\n visitRecordCommandResponse(syntax: RecordCommandResponseSyntax): void {\n this.visitNode(syntax);\n syntax.fields.forEach(field => this.visitResponseField(field));\n }\n\n visitResponseField(syntax: ResponseFieldSyntax): void {\n this.visitNode(syntax);\n if (syntax.type !== null) this.visitTypeRef(syntax.type);\n this.visitPropertyResponseSource(syntax.source);\n }\n\n visitPropertyResponseSource(syntax: PropertyResponseSourceSyntax): void {\n this.visitNode(syntax);\n }\n\n visitSpecificationReturn(syntax: SpecificationReturnSyntax): void {\n if (syntax.kind === 'ScalarSpecificationReturnSyntax') this.visitScalarSpecificationReturn(syntax);\n else this.visitRecordSpecificationReturn(syntax);\n }\n\n visitScalarSpecificationReturn(syntax: ScalarSpecificationReturnSyntax): void {\n this.visitNode(syntax);\n this.visitExpression(syntax.value);\n }\n\n visitRecordSpecificationReturn(syntax: RecordSpecificationReturnSyntax): void {\n this.visitNode(syntax);\n syntax.fields.forEach(field => this.visitPropertyMapping(field));\n }\n\n visitValidate(syntax: ValidateSyntax): void {\n this.visitNode(syntax);\n if (syntax.kind === 'DeclarativeValidateSyntax') {\n syntax.rules.forEach(node => this.visitValidationRule(node));\n syntax.requirements?.forEach(node => { this.visitNode(node); this.visitCondition(node.condition); });\n } else if (syntax.code != null) this.visitCodeBlock(syntax.code);\n }\n\n visitValidationRule(syntax: ValidationRuleSyntax): void {\n this.visitNode(syntax);\n if (syntax.implementation != null) this.visitImplementation(syntax.implementation);\n if (syntax.value !== null) this.visitExpression(syntax.value);\n if (syntax.file !== null) this.visitFileReference(syntax.file);\n if (syntax.code !== null) this.visitCodeBlock(syntax.code);\n }\n\n visitEvent(syntax: EventSyntax): void {\n this.visitNode(syntax);\n syntax.properties.forEach(node => this.visitProperty(node));\n syntax.tags.forEach(node => this.visitTag(node));\n }\n\n visitTag(syntax: TagSyntax): void {\n this.visitNode(syntax);\n this.visitExpression(syntax.value);\n }\n\n visitReadModel(syntax: ReadModelSyntax): void {\n this.visitNode(syntax);\n syntax.properties.forEach(node => this.visitProperty(node));\n }\n\n visitConstraint(syntax: ConstraintSyntax): void {\n this.visitNode(syntax);\n if (syntax.kind === 'FileConstraintSyntax') this.visitNode(syntax.file);\n syntax.additionalRules.forEach(node => this.visitConstraint(node));\n }\n\n visitQuery(syntax: QuerySyntax): void {\n this.visitNode(syntax);\n this.visitTypeRef(syntax.returnType);\n if (syntax.by !== null) this.visitQueryParameter(syntax.by);\n syntax.filters.forEach(node => this.visitQueryParameter(node));\n if (syntax.authorize !== null) this.visitAuthorize(syntax.authorize);\n }\n\n visitQueryParameter(syntax: QueryParameterSyntax): void {\n this.visitNode(syntax);\n this.visitTypeRef(syntax.type);\n if (syntax.source != null) this.visitExpression(syntax.source);\n }\n\n visitKey(syntax: KeySyntax): void {\n this.visitNode(syntax);\n if (syntax.kind === 'ExpressionKeySyntax') this.visitExpression(syntax.expression);\n else syntax.parts.forEach(part => { this.visitNode(part); this.visitExpression(part.expression); });\n }\n\n visitProjection(syntax: ProjectionSyntax): void {\n this.visitNode(syntax);\n if (syntax.key != null) this.visitKey(syntax.key);\n syntax.blocks.forEach(node => this.visitProjectionBlock(node));\n }\n\n visitProjectionBlock(syntax: ProjectionBlockSyntax): void {\n this.visitNode(syntax);\n switch (syntax.kind) {\n case 'FromSyntax':\n syntax.events.forEach(node => { this.visitNode(node); if (node.key != null) this.visitExpression(node.key); });\n if (syntax.key != null) this.visitKey(syntax.key);\n if (syntax.parentKey != null) this.visitExpression(syntax.parentKey);\n syntax.mappings.forEach(node => this.visitMapping(node));\n break;\n case 'EverySyntax':\n case 'AllSyntax':\n syntax.mappings.forEach(node => this.visitMapping(node));\n break;\n case 'JoinSyntax':\n syntax.events.forEach(node => this.visitJoinEvent(node));\n break;\n case 'ProjectionVariantSyntax':\n syntax.entersOn.forEach(node => { this.visitNode(node); if (node.key != null) this.visitExpression(node.key); });\n syntax.blocks.forEach(node => this.visitProjectionBlock(node));\n break;\n case 'ChildrenSyntax':\n if (syntax.identifiedBy !== undefined) this.visitExpression(syntax.identifiedBy);\n syntax.blocks.forEach(node => this.visitProjectionBlock(node));\n break;\n case 'NestedSyntax':\n syntax.blocks.forEach(node => this.visitProjectionBlock(node));\n break;\n case 'RemoveWithSyntax':\n if (syntax.parentKey != null) this.visitExpression(syntax.parentKey);\n if (syntax.key != null) this.visitExpression(syntax.key);\n break;\n case 'RemoveViaJoinSyntax':\n if (syntax.key != null) this.visitExpression(syntax.key);\n break;\n }\n }\n\n visitJoinEvent(syntax: JoinEventSyntax): void {\n this.visitNode(syntax);\n syntax.mappings.forEach(node => this.visitMapping(node));\n }\n\n visitMapping(syntax: MappingSyntax): void {\n this.visitNode(syntax);\n if (syntax.source !== undefined) this.visitExpression(syntax.source);\n if (syntax.value !== undefined) this.visitExpression(syntax.value);\n }\n\n visitCondition(syntax: ConditionSyntax): void {\n this.visitNode(syntax);\n if (syntax.kind === 'ComparisonConditionSyntax') this.visitExpression(syntax.right);\n else { this.visitCondition(syntax.left); this.visitCondition(syntax.right); }\n }\n\n visitReaction(syntax: ReactionSyntax): void {\n this.visitNode(syntax);\n if (syntax.runsAs != null) this.visitReactionIdentity(syntax.runsAs);\n if (syntax.where != null) this.visitCondition(syntax.where);\n syntax.triggers.forEach(node => this.visitReactionTrigger(node));\n }\n\n visitReactionIdentity(syntax: ReactionIdentitySyntax): void { this.visitNode(syntax); }\n\n visitReactionTrigger(syntax: ReactionTriggerSyntax): void {\n this.visitNode(syntax);\n this.visitTriggerSource(syntax.source);\n syntax.produces.forEach(node => this.visitProduces(node));\n syntax.invokes.forEach(node => this.visitInvokes(node));\n }\n\n visitProduces(syntax: ProducesSyntax): void {\n this.visitNode(syntax);\n if (syntax.when != null) this.visitCondition(syntax.when);\n if (syntax.inlineEvent !== null) this.visitEvent(syntax.inlineEvent);\n if (syntax.inlineOperation != null) this.visitOperation(syntax.inlineOperation);\n if (syntax.for !== null) this.visitExpression(syntax.for);\n syntax.mappings.forEach(node => this.visitPropertyMapping(node));\n syntax.tags.forEach(node => this.visitTag(node));\n }\n\n visitInvokes(syntax: InvokesSyntax): void {\n this.visitNode(syntax);\n syntax.mappings?.forEach(node => this.visitPropertyMapping(node));\n syntax.onRefused?.forEach(node => this.visitInvocationRefusal(node));\n }\n\n visitInvocationRefusal(syntax: InvocationRefusalSyntax): void {\n this.visitNode(syntax);\n syntax.produces.forEach(node => this.visitProduces(node));\n }\n\n visitCapture(syntax: CaptureSyntax): void {\n this.visitNode(syntax);\n if (syntax.source !== null) this.visitCaptureSource(syntax.source);\n syntax.map?.forEach(node => this.visitCaptureMap(node));\n syntax.appends.forEach(node => this.visitCaptureAppend(node));\n syntax.children.forEach(node => this.visitCaptureChildren(node));\n syntax.nested.forEach(node => this.visitCaptureNested(node));\n }\n\n visitCaptureSource(syntax: CaptureSourceSyntax): void {\n this.visitNode(syntax);\n syntax.settings.forEach(node => this.visitCaptureSourceSetting(node));\n }\n\n visitCaptureSourceSetting(syntax: CaptureSourceSettingSyntax): void {\n this.visitNode(syntax);\n }\n\n visitCaptureMap(syntax: CaptureMapOperationSyntax): void {\n this.visitNode(syntax);\n this.visitExpression(syntax.source);\n if (syntax.kind === 'CaptureMapEntrySyntax') syntax.translations.forEach(node => this.visitNode(node));\n }\n\n visitCaptureAppend(syntax: CaptureAppendSyntax): void {\n this.visitNode(syntax);\n if (syntax.when != null) this.visitNode(syntax.when);\n syntax.mappings?.forEach(node => this.visitPropertyMapping(node));\n syntax.tags?.forEach(node => this.visitTag(node));\n }\n\n visitCaptureChildren(syntax: CaptureChildrenSyntax): void {\n this.visitNode(syntax);\n syntax.map?.forEach(node => this.visitCaptureMap(node));\n syntax.appends.forEach(node => this.visitCaptureAppend(node));\n }\n\n visitCaptureNested(syntax: CaptureNestedSyntax): void {\n this.visitNode(syntax);\n syntax.map?.forEach(node => this.visitCaptureMap(node));\n syntax.appends.forEach(node => this.visitCaptureAppend(node));\n }\n\n visitTriggerSource(syntax: TriggerSourceSyntax): void {\n this.visitNode(syntax);\n }\n\n visitScreen(syntax: ScreenSyntax): void {\n this.visitNode(syntax);\n syntax.directives.forEach(node => this.visitScreenDirective(node));\n syntax.contributions?.forEach(contribution => {\n this.visitNode(contribution);\n contribution.directives.forEach(node => this.visitScreenDirective(node));\n });\n }\n\n visitScreenDirective(syntax: ScreenDirectiveSyntax): void {\n if (syntax.kind === 'ScreenGuardedActionSyntax') {\n this.visitScreenGuardedAction(syntax);\n return;\n }\n this.visitNode(syntax);\n switch (syntax.kind) {\n case 'ScreenDataSyntax':\n this.visitTypeRef(syntax.type);\n break;\n case 'ScreenActionSyntax':\n if (syntax.navigate !== null) this.visitScreenDirective(syntax.navigate);\n break;\n case 'ScreenNavigateSyntax':\n syntax.parameters.forEach(parameter => {\n this.visitNode(parameter);\n this.visitUiBinding(parameter.binding);\n });\n break;\n case 'ScreenTemplateReferenceSyntax':\n syntax.slots.forEach(slot => {\n this.visitNode(slot);\n slot.directives.forEach(node => this.visitScreenDirective(node));\n });\n break;\n case 'ScreenSectionSyntax':\n syntax.directives.forEach(node => this.visitScreenDirective(node));\n break;\n case 'ScreenTableSyntax':\n syntax.columns.forEach(node => this.visitNode(node));\n if (syntax.rowClick !== null) this.visitScreenDirective(syntax.rowClick);\n break;\n case 'ScreenSummarySyntax':\n syntax.fields.forEach(node => this.visitNode(node));\n break;\n case 'ScreenComponentSyntax':\n if (syntax.context !== null) this.visitUiBinding(syntax.context);\n syntax.properties.forEach(property => {\n this.visitNode(property);\n if (property.binding !== null) this.visitUiBinding(property.binding);\n if (property.value !== null) this.visitExpression(property.value);\n });\n syntax.exposes.forEach(exposed => {\n this.visitNode(exposed);\n this.visitUiBinding(exposed.binding);\n });\n syntax.presentation.forEach(node => this.visitNode(node));\n syntax.outlets.forEach(outlet => {\n this.visitNode(outlet);\n outlet.directives.forEach(node => this.visitScreenDirective(node));\n });\n break;\n case 'ScreenToolbarSyntax':\n syntax.items.forEach(item => {\n this.visitNode(item);\n item.parameters.forEach(parameter => {\n this.visitNode(parameter);\n this.visitUiBinding(parameter.binding);\n });\n item.presentation.forEach(node => this.visitNode(node));\n });\n break;\n case 'ScreenCodeSyntax':\n this.visitNode(syntax.code);\n break;\n }\n }\n\n visitScreenGuardedAction(syntax: ScreenGuardedActionSyntax): void {\n this.visitNode(syntax);\n syntax.alternatives.forEach(node => this.visitScreenActionAlternative(node));\n if (syntax.otherwise !== null) this.visitScreenActionOtherwise(syntax.otherwise);\n if (syntax.navigate !== null) this.visitScreenDirective(syntax.navigate);\n }\n\n visitScreenActionAlternative(syntax: ScreenActionAlternativeSyntax): void {\n this.visitNode(syntax);\n this.visitCondition(syntax.condition);\n syntax.arguments.forEach(node => this.visitInteractionArgument(node));\n }\n\n visitScreenActionOtherwise(syntax: ScreenActionOtherwiseSyntax): void {\n this.visitNode(syntax);\n syntax.arguments.forEach(node => this.visitInteractionArgument(node));\n }\n\n visitInteractionArgument(syntax: InteractionArgumentSyntax): void { this.visitNode(syntax); }\n\n visitSpecification(syntax: SpecificationSyntax): void {\n this.visitNode(syntax);\n syntax.examples?.forEach(node => this.visitSpecificationExample(node));\n syntax.parameters?.forEach(node => { this.visitNode(node); this.visitTypeRef(node.type); });\n syntax.cases?.forEach(node => { this.visitNode(node); node.values.forEach(value => this.visitPropertyMapping(value)); });\n if (syntax.givenClock !== null) this.visitSpecificationClock(syntax.givenClock);\n syntax.givenOperationFailures?.forEach(node => this.visitSpecificationOperationFailure(node));\n syntax.thenOperations?.forEach(node => this.visitSpecificationOperation(node));\n syntax.thenCompensated?.forEach(node => this.visitSpecificationCompensated(node));\n if (syntax.givenCallerPersona != null) this.visitNode(syntax.givenCallerPersona);\n if (syntax.givenCaller != null) {\n this.visitNode(syntax.givenCaller);\n syntax.givenCaller.claims.forEach(node => this.visitNode(node));\n }\n syntax.given.forEach(node => this.visitSpecificationEvent(node));\n syntax.givenReadModels.forEach(node => this.visitSpecificationReadModel(node));\n if (syntax.when !== null) this.visitSpecificationCommand(syntax.when);\n syntax.givenCaptures.forEach(node => this.visitSpecificationCapture(node));\n if (syntax.whenAppended !== null) this.visitSpecificationEvent(syntax.whenAppended);\n if (syntax.whenRedelivered != null) this.visitSpecificationRedelivery(syntax.whenRedelivered);\n if (syntax.whenClock !== null) this.visitSpecificationClock(syntax.whenClock);\n if (syntax.whenTrigger !== null) this.visitSpecificationTrigger(syntax.whenTrigger);\n if (syntax.whenCapture !== null) this.visitSpecificationCapture(syntax.whenCapture);\n if (syntax.whenQuery !== null) this.visitSpecificationWhenQuery(syntax.whenQuery);\n syntax.thenEvents.forEach(node => this.visitSpecificationEvent(node));\n syntax.thenReadModels.forEach(node => this.visitSpecificationReadModel(node));\n syntax.thenAbsentReadModels?.forEach(node => { this.visitNode(node); this.visitExpression(node.key); });\n syntax.thenQueries?.forEach(node => {\n this.visitNode(node);\n node.arguments.forEach(value => this.visitPropertyMapping(value));\n node.results.forEach(result => this.visitSpecificationQueryResult(result));\n });\n syntax.thenResults.forEach(node => this.visitSpecificationQueryResult(node));\n if (syntax.thenNoResult !== null) this.visitNode(syntax.thenNoResult);\n if (syntax.thenDenied != null) this.visitNode(syntax.thenDenied);\n if (syntax.thenReturns != null) this.visitSpecificationReturn(syntax.thenReturns);\n syntax.thenErrors.forEach(node => { this.visitNode(node); if (node.caseValue != null) this.visitExpression(node.caseValue); });\n }\n\n visitSpecificationRedelivery(syntax: SpecificationRedeliverySyntax): void {\n this.visitNode(syntax);\n if (syntax.for !== null) this.visitExpression(syntax.for);\n if (syntax.stream != null) this.visitSpecificationStream(syntax.stream);\n if (syntax.noStream != null) this.visitSpecificationNoStream(syntax.noStream);\n syntax.values.forEach(node => this.visitPropertyMapping(node));\n }\n\n visitSpecificationClock(syntax: SpecificationClockSyntax): void {\n this.visitNode(syntax);\n }\n\n visitSpecificationTrigger(syntax: SpecificationTriggerSyntax): void {\n this.visitNode(syntax);\n syntax.values.forEach(node => this.visitPropertyMapping(node));\n }\n\n visitSpecificationCapture(syntax: SpecificationCaptureSyntax): void {\n this.visitNode(syntax);\n syntax.record.forEach(node => this.visitPropertyMapping(node));\n }\n\n visitSpecificationWhenQuery(syntax: SpecificationWhenQuerySyntax): void {\n this.visitNode(syntax);\n syntax.arguments.forEach(node => this.visitPropertyMapping(node));\n }\n\n visitSpecificationQueryResult(syntax: SpecificationQueryResultSyntax): void {\n this.visitNode(syntax);\n syntax.properties.forEach(node => this.visitPropertyMapping(node));\n }\n\n visitSpecificationExample(syntax: SpecificationExampleSyntax): void {\n this.visitNode(syntax);\n if (syntax.for !== null) this.visitExpression(syntax.for);\n if (syntax.stream != null) this.visitSpecificationStream(syntax.stream);\n if (syntax.noStream != null) this.visitSpecificationNoStream(syntax.noStream);\n syntax.values.forEach(node => this.visitPropertyMapping(node));\n syntax.generatedValues.forEach(node => this.visitPropertyMapping(node));\n }\n\n visitSpecificationEvent(syntax: SpecificationEventSyntax): void {\n this.visitNode(syntax);\n if (syntax.stream != null) this.visitSpecificationStream(syntax.stream);\n if (syntax.noStream != null) this.visitSpecificationNoStream(syntax.noStream);\n syntax.values.forEach(node => this.visitPropertyMapping(node));\n if (syntax.for !== null) this.visitExpression(syntax.for);\n }\n\n visitSpecificationStream(syntax: SpecificationStreamSyntax): void {\n this.visitNode(syntax);\n if (syntax.streamId !== null) this.visitPropertyMapping(syntax.streamId);\n syntax.streamIdParts.forEach(part => this.visitPropertyMapping(part));\n }\n\n visitSpecificationNoStream(syntax: SpecificationNoStreamSyntax): void { this.visitNode(syntax); }\n\n visitSpecificationCommand(syntax: SpecificationCommandSyntax): void {\n this.visitNode(syntax);\n (syntax.generatedValues ?? []).forEach(fixture => this.visitPropertyMapping(fixture));\n syntax.values.forEach(node => this.visitPropertyMapping(node));\n if (syntax.for !== null) this.visitExpression(syntax.for);\n }\n\n visitSpecificationReadModel(syntax: SpecificationReadModelSyntax): void {\n this.visitNode(syntax);\n syntax.properties.forEach(node => this.visitPropertyMapping(node));\n }\n\n visitPropertyMapping(syntax: PropertyMappingSyntax): void {\n this.visitNode(syntax);\n this.visitExpression(syntax.source);\n }\n\n visitProperty(syntax: PropertySyntax): void {\n this.visitNode(syntax);\n this.visitTypeRef(syntax.type);\n }\n\n visitTypeRef(syntax: TypeRefSyntax): void {\n this.visitNode(syntax);\n }\n\n visitUiBinding(syntax: import('./Screens').UiBindingSyntax): void {\n this.visitNode(syntax);\n if (syntax.literal !== null) this.visitExpression(syntax.literal);\n }\n\n visitIdentityExpression(syntax: IdentityExpressionSyntax): void { this.visitNode(syntax); }\n\n visitExpression(syntax: ExpressionSyntax): void {\n if (syntax.kind === 'IdentityExpressionSyntax') { this.visitIdentityExpression(syntax); return; }\n this.visitNode(syntax);\n if (syntax.kind === 'ListExpressionSyntax') {\n syntax.items.forEach(item => this.visitExpression(item));\n } else if (syntax.kind === 'ObjectExpressionSyntax') {\n syntax.members.forEach(member => this.visitObjectMember(member));\n } else if (syntax.kind === 'TemplateExpressionSyntax') {\n syntax.parts.forEach(part => { this.visitNode(part); if (part.kind === 'TemplateInterpolationSyntax') this.visitExpression(part.expression); });\n }\n }\n\n visitObjectMember(syntax: ObjectMemberSyntax): void {\n this.visitNode(syntax);\n this.visitExpression(syntax.value);\n }\n}\n"],"mappings":"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"}
|
|
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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"}
|