@cratis/screenplay-language 4.259.0 → 5.1.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/bundles/compiler/Authoring/QuickFixes.js +6 -2
- package/dist/bundles/compiler/Authoring/QuickFixes.js.map +1 -1
- package/dist/bundles/compiler/Authoring/StructuredValueQuickFix.js +3 -0
- package/dist/bundles/compiler/Authoring/StructuredValueQuickFix.js.map +1 -0
- package/dist/bundles/compiler/Dependencies/SliceReferences.js +1 -1
- package/dist/bundles/compiler/Dependencies/SliceReferences.js.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/PlayFolderMerge.js +1 -1
- package/dist/bundles/compiler/Files/PlayFolderMerge.js.map +1 -1
- package/dist/bundles/compiler/Parsing/CaptureParser.js +1 -1
- package/dist/bundles/compiler/Parsing/CaptureParser.js.map +1 -1
- package/dist/bundles/compiler/Parsing/CompositionParser.js +1 -1
- package/dist/bundles/compiler/Parsing/CompositionParser.js.map +1 -1
- package/dist/bundles/compiler/Parsing/ExpressionParser.js +1 -1
- package/dist/bundles/compiler/Parsing/ExpressionParser.js.map +1 -1
- package/dist/bundles/compiler/Parsing/OperationParser.js +1 -1
- package/dist/bundles/compiler/Parsing/OperationParser.js.map +1 -1
- package/dist/bundles/compiler/Parsing/ProducesParser.js +1 -1
- package/dist/bundles/compiler/Parsing/ProducesParser.js.map +1 -1
- package/dist/bundles/compiler/Parsing/ProjectionParser.js +1 -1
- package/dist/bundles/compiler/Parsing/ProjectionParser.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/ScreenParser.js +1 -1
- package/dist/bundles/compiler/Parsing/ScreenParser.js.map +1 -1
- package/dist/bundles/compiler/Parsing/ScreenplayParser.js +1 -1
- package/dist/bundles/compiler/Parsing/ScreenplayParser.js.map +1 -1
- package/dist/bundles/compiler/Parsing/SeedParser.js +1 -1
- package/dist/bundles/compiler/Parsing/SeedParser.js.map +1 -1
- package/dist/bundles/compiler/Parsing/SpecificationCaseParser.js +1 -1
- package/dist/bundles/compiler/Parsing/SpecificationCaseParser.js.map +1 -1
- package/dist/bundles/compiler/Parsing/SpecificationExampleParser.js +1 -1
- package/dist/bundles/compiler/Parsing/SpecificationExampleParser.js.map +1 -1
- package/dist/bundles/compiler/Parsing/SpecificationParser.js +1 -1
- package/dist/bundles/compiler/Parsing/SpecificationParser.js.map +1 -1
- package/dist/bundles/compiler/Parsing/SpecificationResponseParser.js +1 -1
- package/dist/bundles/compiler/Parsing/SpecificationResponseParser.js.map +1 -1
- package/dist/bundles/compiler/Parsing/StateMachineParser.js +2 -0
- package/dist/bundles/compiler/Parsing/StateMachineParser.js.map +1 -0
- package/dist/bundles/compiler/Parsing/StructuredBlockParser.js +2 -0
- package/dist/bundles/compiler/Parsing/StructuredBlockParser.js.map +1 -0
- package/dist/bundles/compiler/Parsing/UiBindingParser.js +1 -1
- package/dist/bundles/compiler/Parsing/UiBindingParser.js.map +1 -1
- package/dist/bundles/compiler/Parsing/WorkflowParser.js +2 -0
- package/dist/bundles/compiler/Parsing/WorkflowParser.js.map +1 -0
- package/dist/bundles/compiler/Syntax/ScreenplaySyntaxWalker.js +1 -1
- package/dist/bundles/compiler/Syntax/ScreenplaySyntaxWalker.js.map +1 -1
- package/dist/bundles/compiler/Syntax/Structure.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/completion-items.js +22 -16
- 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/example-analysis.js +1 -1
- package/dist/bundles/example-analysis.js.map +1 -1
- package/dist/bundles/keyword-docs.js +1 -1
- package/dist/bundles/keyword-docs.js.map +1 -1
- package/dist/bundles/language.js +1 -1
- package/dist/bundles/language.js.map +1 -1
- package/dist/bundles/tokens.js +1 -1
- package/dist/bundles/tokens.js.map +1 -1
- package/dist/completion-items.d.ts +3 -0
- package/dist/completion-items.d.ts.map +1 -1
- package/dist/completion-planner.d.ts.map +1 -1
- package/dist/keyword-docs.d.ts.map +1 -1
- package/dist/language.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiBindingParser.js","names":["bindingHead","pattern","literalBindingHead","qualifiedPath","requiredQualifiedPath","mode","nullBehavior","expected","trimmed","text","first","context","location","body","literalHead","DiagnosticCodes","parseMappingSource","head","source","expression","raw","match","componentId","path","next","binding","rest","modifiers","modeMatch","nullMatch","expectedMatch"],"sources":["../../../../../../Compiler/Parsing/UiBindingParser.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DiagnosticCodes } from '../Diagnostics/DiagnosticCodes';\nimport { UiBindingSyntax } from '../Syntax/Screens';\nimport { parseMappingSource } from './ExpressionParser';\nimport { pattern } from '../Text/patterns';\nimport { ParserContext } from './ParserContext';\nimport { SourceLocation } from '../Diagnostics/SourceLocation';\n\nconst bindingHead = pattern('^(data|query|component)\\\\s+(\\\\S+)(.*)$');\nconst literalBindingHead = pattern('^literal\\\\s+(.+?)(?:\\\\s+(mode\\\\s+.+|null\\\\s+.+|expected\\\\s+.+))?$');\nconst qualifiedPath = pattern('^([A-Za-z_]\\\\w*)(?:\\\\.(.+))?$');\nconst requiredQualifiedPath = pattern('^(?:([A-Za-z_]\\\\w*)|\"([^\"\\\\\\\\]*(?:\\\\\\\\.[^\"\\\\\\\\]*)*)\")\\\\.(.+)$');\nconst mode = pattern('^mode\\\\s+(oneWay|twoWay)\\\\b(.*)$');\nconst nullBehavior = pattern('^null\\\\s+(propagate|clear|preserve)\\\\b(.*)$');\nconst expected = pattern('^expected\\\\s+(\\\\w+(?:\\\\.\\\\w+)*)(.*)$');\n\nexport function parseFromClause(context: ParserContext, text: string, location: SourceLocation): UiBindingSyntax {\n const trimmed = text.trim();\n const first = trimmed.split(/\\s+/, 1)[0];\n return first === 'data' || first === 'query' || first === 'component' || first === 'literal'\n ? parseUiBinding(context, `from ${trimmed}`, location)\n : parseUiBinding(context, trimmed, location);\n}\n\nexport function parseUiBinding(context: ParserContext, text: string, location: SourceLocation): UiBindingSyntax {\n const trimmed = text.trim();\n if (!trimmed.startsWith('from ')) {\n return withModifiers(context, create('DataContext', trimmed, location), '', location);\n }\n\n const body = trimmed.substring('from '.length).trim();\n if (body.startsWith('literal ')) {\n const literalHead = literalBindingHead.exec(body);\n if (literalHead === null) {\n context.error(DiagnosticCodes.UnknownScreenDirective, `Invalid UI binding '${trimmed}' - expected 'from literal <value>'`, location);\n return { ...create('Invalid', body, location), rawText: trimmed };\n }\n return withModifiers(context, { ...create('Literal', '', location), literal: parseMappingSource(literalHead[1], location, context) }, literalHead[2] ?? '', location);\n }\n\n const head = bindingHead.exec(body);\n if (head === null) {\n context.error(DiagnosticCodes.UnknownScreenDirective, `Invalid UI binding '${trimmed}' - expected 'from data <path>', 'from query <Query>[.<path>]', 'from component <id>.<path>' or 'from literal <value>'`, location);\n return { ...create('Invalid', body, location), rawText: trimmed };\n }\n\n const binding = parseBindingSource(context, head[1], head[2], trimmed, location);\n return withModifiers(context, binding, head[3], location);\n}\n\nfunction parseBindingSource(context: ParserContext, source: string, expression: string, raw: string, location: SourceLocation): UiBindingSyntax {\n if (source === 'data') return create('DataContext', expression, location);\n if (source === 'query') return queryBinding(context, expression, raw, location);\n\n return componentBinding(context, expression, raw, location);\n}\n\nfunction queryBinding(context: ParserContext, expression: string, raw: string, location: SourceLocation): UiBindingSyntax {\n const match = qualifiedPath.exec(expression);\n if (match === null) {\n context.error(DiagnosticCodes.UnknownScreenDirective, `Invalid query binding '${raw}' - expected 'from query <Query>[.<path>]'.`, location);\n return { ...create('Invalid', expression, location), rawText: raw };\n }\n\n return { ...create('QueryResult', match[2] ?? '', location), query: match[1] };\n}\n\nfunction componentBinding(context: ParserContext, expression: string, raw: string, location: SourceLocation): UiBindingSyntax {\n const match = requiredQualifiedPath.exec(expression);\n if (match === null) {\n context.error(DiagnosticCodes.UnknownScreenDirective, `Invalid component binding '${raw}' - expected 'from component <stableInstanceId>.<outputPath>' or 'from component \"<stableInstanceId>\".<outputPath>'.`, location);\n return { ...create('Invalid', expression, location), rawText: raw };\n }\n\n const componentId = match[1] ?? match[2];\n const path = match[3];\n return { ...create('ComponentProperty', path, location), componentId, componentPropertyPath: path };\n}\n\nfunction withModifiers(context: ParserContext, binding: UiBindingSyntax, modifiers: string, location: SourceLocation): UiBindingSyntax {\n let next = binding;\n let rest = modifiers.trim();\n while (rest.length > 0) {\n const modeMatch = mode.exec(rest);\n if (modeMatch !== null) {\n next = { ...next, mode: modeMatch[1] === 'twoWay' ? 'TwoWay' : 'OneWay' };\n rest = modeMatch[2].trim();\n continue;\n }\n\n const nullMatch = nullBehavior.exec(rest);\n if (nullMatch !== null) {\n next = { ...next, nullBehavior: nullMatch[1] === 'clear' ? 'Clear' : nullMatch[1] === 'preserve' ? 'Preserve' : 'Propagate' };\n rest = nullMatch[2].trim();\n continue;\n }\n\n const expectedMatch = expected.exec(rest);\n if (expectedMatch !== null) {\n next = { ...next, expectedValueType: expectedMatch[1] };\n rest = expectedMatch[2].trim();\n continue;\n }\n\n context.error(DiagnosticCodes.UnknownScreenDirective, `Unsupported UI binding modifier '${rest}' - supported modifiers are 'mode oneWay|twoWay', 'null propagate|clear|preserve' and 'expected <Type>'.`, location);\n return { ...next, rawText: next.rawText ?? rest };\n }\n\n return next;\n}\n\nfunction create(bindingKind: UiBindingSyntax['bindingKind'], path: string, location: SourceLocation): UiBindingSyntax {\n return {\n kind: 'UiBindingSyntax',\n bindingKind,\n path,\n query: null,\n componentId: null,\n componentPropertyPath: null,\n mode: null,\n nullBehavior: null,\n expectedValueType: null,\n literal: null,\n rawText: null,\n location,\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UiBindingParser.js","names":["bindingHead","pattern","structuredLiteral","literalBindingHead","qualifiedPath","requiredQualifiedPath","mode","nullBehavior","expected","structured","text","markerOf","context","line","locationOf","literal","parseStructuredValue","trimmed","first","location","body","literalHead","DiagnosticCodes","parseMappingSource","head","source","expression","raw","match","componentId","path","next","binding","rest","modifiers","modeMatch","nullMatch","expectedMatch"],"sources":["../../../../../../Compiler/Parsing/UiBindingParser.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DiagnosticCodes } from '../Diagnostics/DiagnosticCodes';\nimport { UiBindingSyntax } from '../Syntax/Screens';\nimport { parseMappingSource } from './ExpressionParser';\nimport { pattern } from '../Text/patterns';\nimport { ParserContext } from './ParserContext';\nimport { SourceLocation } from '../Diagnostics/SourceLocation';\nimport { locationOf, SourceLine } from './SourceLine';\nimport { markerOf, parseStructuredValue } from './StructuredBlockParser';\n\nconst bindingHead = pattern('^(data|query|component)\\\\s+(\\\\S+)(.*)$');\nconst structuredLiteral = pattern('^(?:from\\\\s+)?literal(?:\\\\s+(?<modifiers>(?:mode|null|expected)\\\\s+.+?))?(?:\\\\s+(?<marker>none|empty))?$');\nconst literalBindingHead = pattern('^literal\\\\s+(.+?)(?:\\\\s+(mode\\\\s+.+|null\\\\s+.+|expected\\\\s+.+))?$');\nconst qualifiedPath = pattern('^([A-Za-z_]\\\\w*)(?:\\\\.(.+))?$');\nconst requiredQualifiedPath = pattern('^(?:([A-Za-z_]\\\\w*)|\"([^\"\\\\\\\\]*(?:\\\\\\\\.[^\"\\\\\\\\]*)*)\")\\\\.(.+)$');\nconst mode = pattern('^mode\\\\s+(oneWay|twoWay)\\\\b(.*)$');\nconst nullBehavior = pattern('^null\\\\s+(propagate|clear|preserve)\\\\b(.*)$');\nconst expected = pattern('^expected\\\\s+(\\\\w+(?:\\\\.\\\\w+)*)(.*)$');\n\n// A binding clause on a line, where 'from literal' with no value on the line opens the literal as an indented block.\nexport function parseFromClauseOn(context: ParserContext, text: string, line: SourceLine): UiBindingSyntax {\n const structured = structuredLiteral.exec(text.trim());\n if (structured === null || (markerOf(structured) === undefined && context.peekChild(line.indent) === undefined)) return parseFromClause(context, text, locationOf(line));\n const literal = parseStructuredValue(context, line, markerOf(structured));\n return withModifiers(context, { ...create('Literal', '', locationOf(line)), literal }, structured.groups!.modifiers ?? '', locationOf(line));\n}\n\nexport function parseFromClause(context: ParserContext, text: string, location: SourceLocation): UiBindingSyntax {\n const trimmed = text.trim();\n const first = trimmed.split(/\\s+/, 1)[0];\n return first === 'data' || first === 'query' || first === 'component' || first === 'literal'\n ? parseUiBinding(context, `from ${trimmed}`, location)\n : parseUiBinding(context, trimmed, location);\n}\n\nexport function parseUiBinding(context: ParserContext, text: string, location: SourceLocation): UiBindingSyntax {\n const trimmed = text.trim();\n if (!trimmed.startsWith('from ')) {\n return withModifiers(context, create('DataContext', trimmed, location), '', location);\n }\n\n const body = trimmed.substring('from '.length).trim();\n if (body.startsWith('literal ')) {\n const literalHead = literalBindingHead.exec(body);\n if (literalHead === null) {\n context.error(DiagnosticCodes.UnknownScreenDirective, `Invalid UI binding '${trimmed}' - expected 'from literal <value>'`, location);\n return { ...create('Invalid', body, location), rawText: trimmed };\n }\n return withModifiers(context, { ...create('Literal', '', location), literal: parseMappingSource(literalHead[1], location, context) }, literalHead[2] ?? '', location);\n }\n\n const head = bindingHead.exec(body);\n if (head === null) {\n context.error(DiagnosticCodes.UnknownScreenDirective, `Invalid UI binding '${trimmed}' - expected 'from data <path>', 'from query <Query>[.<path>]', 'from component <id>.<path>' or 'from literal <value>'`, location);\n return { ...create('Invalid', body, location), rawText: trimmed };\n }\n\n const binding = parseBindingSource(context, head[1], head[2], trimmed, location);\n return withModifiers(context, binding, head[3], location);\n}\n\nfunction parseBindingSource(context: ParserContext, source: string, expression: string, raw: string, location: SourceLocation): UiBindingSyntax {\n if (source === 'data') return create('DataContext', expression, location);\n if (source === 'query') return queryBinding(context, expression, raw, location);\n\n return componentBinding(context, expression, raw, location);\n}\n\nfunction queryBinding(context: ParserContext, expression: string, raw: string, location: SourceLocation): UiBindingSyntax {\n const match = qualifiedPath.exec(expression);\n if (match === null) {\n context.error(DiagnosticCodes.UnknownScreenDirective, `Invalid query binding '${raw}' - expected 'from query <Query>[.<path>]'.`, location);\n return { ...create('Invalid', expression, location), rawText: raw };\n }\n\n return { ...create('QueryResult', match[2] ?? '', location), query: match[1] };\n}\n\nfunction componentBinding(context: ParserContext, expression: string, raw: string, location: SourceLocation): UiBindingSyntax {\n const match = requiredQualifiedPath.exec(expression);\n if (match === null) {\n context.error(DiagnosticCodes.UnknownScreenDirective, `Invalid component binding '${raw}' - expected 'from component <stableInstanceId>.<outputPath>' or 'from component \"<stableInstanceId>\".<outputPath>'.`, location);\n return { ...create('Invalid', expression, location), rawText: raw };\n }\n\n const componentId = match[1] ?? match[2];\n const path = match[3];\n return { ...create('ComponentProperty', path, location), componentId, componentPropertyPath: path };\n}\n\nfunction withModifiers(context: ParserContext, binding: UiBindingSyntax, modifiers: string, location: SourceLocation): UiBindingSyntax {\n let next = binding;\n let rest = modifiers.trim();\n while (rest.length > 0) {\n const modeMatch = mode.exec(rest);\n if (modeMatch !== null) {\n next = { ...next, mode: modeMatch[1] === 'twoWay' ? 'TwoWay' : 'OneWay' };\n rest = modeMatch[2].trim();\n continue;\n }\n\n const nullMatch = nullBehavior.exec(rest);\n if (nullMatch !== null) {\n next = { ...next, nullBehavior: nullMatch[1] === 'clear' ? 'Clear' : nullMatch[1] === 'preserve' ? 'Preserve' : 'Propagate' };\n rest = nullMatch[2].trim();\n continue;\n }\n\n const expectedMatch = expected.exec(rest);\n if (expectedMatch !== null) {\n next = { ...next, expectedValueType: expectedMatch[1] };\n rest = expectedMatch[2].trim();\n continue;\n }\n\n context.error(DiagnosticCodes.UnknownScreenDirective, `Unsupported UI binding modifier '${rest}' - supported modifiers are 'mode oneWay|twoWay', 'null propagate|clear|preserve' and 'expected <Type>'.`, location);\n return { ...next, rawText: next.rawText ?? rest };\n }\n\n return next;\n}\n\nfunction create(bindingKind: UiBindingSyntax['bindingKind'], path: string, location: SourceLocation): UiBindingSyntax {\n return {\n kind: 'UiBindingSyntax',\n bindingKind,\n path,\n query: null,\n componentId: null,\n componentPropertyPath: null,\n mode: null,\n nullBehavior: null,\n expectedValueType: null,\n literal: null,\n rawText: null,\n location,\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"../../_virtual/_virtual/_rolldown/runtime.js";import{DiagnosticCodes as e}from"../Diagnostics/DiagnosticCodes.js";import{pattern as t}from"../Text/patterns.js";import{locationOf as n}from"./SourceLine.js";import{firstWord as r}from"./LineText.js";import{parseDescription as i}from"./DescriptionParser.js";import{parseCondition as a}from"./ConditionParser.js";import{rejectOperationChildren as o}from"./OperationParser.js";import{parseLifecycleSpecification as s}from"./SpecificationParser.js";import{parseTriggerSource as c}from"./ReactionParser.js";const l=`(seconds?|minutes?|hours?|days?)`,u=t(`^workflow\\s+([A-Za-z_]\\w*)$`),d=t(`^for\\s+([A-Za-z_]\\w*)$`),f=t(`^->\\s*([A-Za-z_]\\w*)$`),p=t(`^(?:"([^"]+)"|([A-Za-z_]\\w*))(?:\\s*->\\s*([A-Za-z_]\\w*))?$`),m=t(`^trigger(?:\\s+(?!(?:on|when|every|at|manual)\\b)([A-Za-z_]\\w*))?\\s+(.+)$`),h=t(`^on\\s+([A-Za-z_][\\w.]*)$`),g=t(`^when\\s+([A-Za-z_]\\w*)\\s+enters\\s+([A-Za-z_]\\w*)$`),_=t(`^action\\s+([A-Za-z_]\\w*)\\s+sends\\s+([A-Za-z_]\\w*)((?:\\s+(?:attempts\\s+\\d+|timeout\\s+\\d+\\s+\\w+|retry\\s+after\\s+\\d+\\s+\\w+))*)$`),v=/attempts\s+(\d+)|timeout\s+(\d+)\s+(\w+)|retry\s+after\s+(\d+)\s+(\w+)/g,y=t(`^decide\\s+([A-Za-z_]\\w*)\\s+when\\s+(.+)$`),b=t(`^wait\\s+([A-Za-z_]\\w*)\\s+for\\s+(?:(\\d+)\\s+${l}|([A-Za-z_][\\w.]*)(?:\\s+expires\\s+after\\s+(\\d+)\\s+${l})?)$`),x=t(`^approval\\s+([A-Za-z_]\\w*)\\s+by\\s+([A-Za-z_]\\w*)(?:\\s+expires\\s+after\\s+(\\d+)\\s+${l})?$`),S=t(`^foreach\\s+([A-Za-z_]\\w*)\\s+over\\s+([A-Za-z_][\\w.]*)(?:\\s+parallel\\s+(\\d+))?$`),C=t(`^join\\s+([A-Za-z_]\\w*)\\s+(all|any|at\\s+least\\s+(\\d+))$`),empty=(e,t,n,r)=>({kind:`WorkflowNodeSyntax`,nodeKind:e,name:t,edges:[],location:n,triggerKind:null,event:null,stateMachine:null,state:null,schedule:null,command:null,attempts:null,timeout:null,retryAfter:null,condition:null,duration:null,expiresAfter:null,by:null,items:null,parallel:null,joinMode:null,joinCount:null,...r});function parseWorkflow(t,a){let c=u.exec(a.content);if(c===null)return t.error(e.InvalidWorkflowDeclaration,`Invalid workflow declaration '${a.content}' - expected 'workflow <Name>'.`,n(a)),t.skipBlock(a.indent),{kind:`WorkflowSyntax`,name:r(a.content),subject:``,description:null,nodes:[],specifications:[],location:n(a)};let l=c[1],f=null,p=null,m=[],h=[],g={},_=0;for(let c=t.peekChild(a.indent);c!==void 0;c=t.peekChild(a.indent)){t.reader.takeSignificant();let a=r(c.content);if(a===`description`)f=i(t,c,f,`Workflow '${l}'`),g.description??=n(c);else if(a===`specification`)h.push(s(t,c,e.InvalidWorkflowDeclaration));else if(a===`for`){let r=d.exec(c.content);r===null?t.error(e.InvalidWorkflowDeclaration,`Invalid subject '${c.content}' - expected 'for <ReadModel>'.`,n(c)):p===null?(p=r[1],g.for=n(c)):t.error(e.InvalidWorkflowDeclaration,`Workflow '${l}' declares its subject more than once.`,n(c)),o(t,c,e.InvalidWorkflowDeclaration,`A for line cannot have children.`)}else{let e=parseNode(t,c,l,a===`trigger`?++_:_);e!==void 0&&m.push(e)}}p===null&&t.error(e.InvalidWorkflowDeclaration,`Workflow '${l}' must name its subject: 'for <ReadModel>'.`,n(a));let v=/* @__PURE__ */ new Set;for(let n of m)v.has(n.name)&&t.error(e.InvalidWorkflowDeclaration,`Workflow '${l}' declares node '${n.name}' more than once.`,n.location),v.add(n.name);return{kind:`WorkflowSyntax`,name:l,subject:p??``,description:f,nodes:m,specifications:h,location:n(a),directiveLocations:g}}function parseNode(t,i,a,o){let s=r(i.content),c;switch(s){case`trigger`:c=parseTrigger(t,i,o);break;case`action`:c=parseAction(t,i);break;case`decide`:c=parseDecide(t,i);break;case`wait`:c=parseWait(t,i);break;case`approval`:c=parseApproval(t,i);break;case`foreach`:c=parseForEach(t,i);break;case`join`:c=parseJoin(t,i);break;default:t.error(e.InvalidWorkflowDeclaration,`Unexpected '${i.content}' in workflow '${a}' - expected for, description, specification or a node: trigger, action, decide, wait, approval, foreach or join.`,n(i))}if(c===void 0)t.skipBlock(i.indent);else return{...c,edges:parseEdges(t,i)}}function parseEdges(t,r){let i=[];for(let a=t.peekChild(r.indent);a!==void 0;a=t.peekChild(r.indent)){t.reader.takeSignificant();let r=f.exec(a.content),s=p.exec(a.content);if(r!==null)i.push({kind:`WorkflowEdgeSyntax`,outlet:`next`,target:r[1],location:n(a)});else if(s!==null)i.push({kind:`WorkflowEdgeSyntax`,outlet:s[1]??s[2],target:s[3]??``,location:n(a)});else{t.error(e.InvalidWorkflowDeclaration,`Invalid edge '${a.content}' - expected '<outlet> -> <Node>'.`,n(a)),t.skipBlock(a.indent);continue}o(t,a,e.InvalidWorkflowDeclaration,`An edge cannot have children.`)}return i}function parseTrigger(t,r,i){let a=m.exec(r.content);if(a===null){t.error(e.InvalidWorkflowDeclaration,`Invalid trigger '${r.content}' - expected 'trigger [<Name>] on <Event>', 'when <StateMachine> enters <State>', 'every <n> <unit>', 'at <HH:mm>' or 'manual'.`,n(r));return}let o=a[1]??(i===1?`Trigger`:`Trigger${i}`),s=a[2],l=n(r);if(s===`manual`)return empty(`Trigger`,o,l,{triggerKind:`Manual`});let u=h.exec(s);if(u!==null)return empty(`Trigger`,o,l,{triggerKind:`Event`,event:u[1]});let d=g.exec(s);if(d!==null)return empty(`Trigger`,o,l,{triggerKind:`StateEntered`,stateMachine:d[1],state:d[2]});if(s.startsWith(`every `)||s.startsWith(`at `)){let e=c(t,{...r,content:s});return e===void 0?void 0:empty(`Trigger`,o,l,{triggerKind:`Schedule`,schedule:e})}t.error(e.InvalidWorkflowDeclaration,`Invalid trigger '${r.content}' - expected 'on <Event>', 'when <StateMachine> enters <State>', 'every <n> <unit>', 'at <HH:mm>' or 'manual'.`,n(r))}function parseAction(t,r){let i=_.exec(r.content);if(i===null){t.error(e.InvalidWorkflowDeclaration,`Invalid action '${r.content}' - expected 'action <Name> sends <Command> [attempts <n>] [timeout <n> <unit>] [retry after <n> <unit>]'.`,n(r));return}let a=null,o=null,s=null;for(let c of i[3].matchAll(v))if(c[1]!==void 0){let i=Number(c[1]);a!==null||!Number.isInteger(i)||i<1?t.error(e.InvalidWorkflowDeclaration,`Invalid or repeated attempts in '${r.content}'.`,n(r)):a=i}else if(c[2]!==void 0){let i=duration(t,c[2],c[3],r);o!==null||i===void 0?t.error(e.InvalidWorkflowDeclaration,`Invalid or repeated timeout in '${r.content}'.`,n(r)):o=i}else{let i=duration(t,c[4],c[5],r);s!==null||i===void 0?t.error(e.InvalidWorkflowDeclaration,`Invalid or repeated retry in '${r.content}'.`,n(r)):s=i}return empty(`Action`,i[1],n(r),{command:i[2],attempts:a,timeout:o,retryAfter:s})}function parseDecide(t,r){let i=y.exec(r.content);if(i===null){t.error(e.InvalidWorkflowDeclaration,`Invalid decide '${r.content}' - expected 'decide <Name> when <condition>'.`,n(r));return}let o=a(t,i[2],n(r));return o===null?void 0:empty(`Decide`,i[1],n(r),{condition:o})}function parseWait(t,r){let i=b.exec(r.content);if(i===null){t.error(e.InvalidWorkflowDeclaration,`Invalid wait '${r.content}' - expected 'wait <Name> for <Event> [expires after <n> <unit>]' or 'wait <Name> for <n> <unit>'.`,n(r));return}if(i[2]!==void 0){let e=duration(t,i[2],i[3],r);return e===void 0?void 0:empty(`Wait`,i[1],n(r),{duration:e})}let a=null;if(i[5]!==void 0){let e=duration(t,i[5],i[6],r);if(e===void 0)return;a=e}return empty(`Wait`,i[1],n(r),{event:i[4],expiresAfter:a})}function parseApproval(t,r){let i=x.exec(r.content);if(i===null){t.error(e.InvalidWorkflowDeclaration,`Invalid approval '${r.content}' - expected 'approval <Name> by <Persona or Policy> [expires after <n> <unit>]'.`,n(r));return}let a=null;if(i[3]!==void 0){let e=duration(t,i[3],i[4],r);if(e===void 0)return;a=e}return empty(`Approval`,i[1],n(r),{by:i[2],expiresAfter:a})}function parseForEach(t,r){let i=S.exec(r.content);if(i===null||i[3]!==void 0&&Number(i[3])<1)t.error(e.InvalidWorkflowDeclaration,`Invalid foreach '${r.content}' - expected 'foreach <Name> over <property> [parallel <n>]'.`,n(r));else return empty(`ForEach`,i[1],n(r),{items:i[2],parallel:i[3]===void 0?null:Number(i[3])})}function parseJoin(t,r){let i=C.exec(r.content);if(i===null||i[3]!==void 0&&Number(i[3])<1)t.error(e.InvalidWorkflowDeclaration,`Invalid join '${r.content}' - expected 'join <Name> all', 'join <Name> any' or 'join <Name> at least <n>'.`,n(r));else return empty(`Join`,i[1],n(r),{joinMode:i[2]===`all`?`All`:i[2]===`any`?`Any`:`AtLeast`,joinCount:i[3]===void 0?null:Number(i[3])})}function duration(t,r,i,a){let o=Number(r);if(!Number.isInteger(o)||o<1){t.error(e.InvalidWorkflowDeclaration,`Invalid duration '${r} ${i}' in '${a.content}' - an amount is at least 1.`,n(a));return}let s=i.replace(/s$/,``);return{kind:`WorkflowDurationSyntax`,amount:o,unit:s===`second`?`Seconds`:s===`minute`?`Minutes`:s===`hour`?`Hours`:`Days`,location:n(a)}}export{parseWorkflow};
|
|
2
|
+
//# sourceMappingURL=WorkflowParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowParser.js","names":["unit","headerPattern","pattern","forPattern","shorthandEdge","edgePattern","triggerPattern","onEventPattern","entersPattern","actionPattern","actionOption","decidePattern","waitPattern","approvalPattern","forEachPattern","joinPattern","parts","match","header","context","DiagnosticCodes","locationOf","firstWord","name","description","subject","nodes","specifications","directiveLocations","triggers","line","keyword","parseDescription","parseLifecycleSpecification","found","rejectOperationChildren","node","seen","ordinal","workflow","edges","shorthand","edge","rest","location","onEvent","enters","schedule","parseTriggerSource","attempts","timeout","retryAfter","option","count","parsed","condition","parseCondition","expiresAfter","amount","text","base"],"sources":["../../../../../../Compiler/Parsing/WorkflowParser.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DiagnosticCodes } from '../Diagnostics/DiagnosticCodes';\nimport { SourceLocation } from '../Diagnostics/SourceLocation';\nimport { IntervalUnit } from '../Syntax/Reactions';\nimport { LifecycleSpecificationSyntax, WorkflowDurationSyntax, WorkflowEdgeSyntax, WorkflowNodeKind, WorkflowNodeSyntax, WorkflowSyntax } from '../Syntax/Lifecycles';\nimport { pattern } from '../Text/patterns';\nimport { parseCondition } from './ConditionParser';\nimport { parseDescription } from './DescriptionParser';\nimport { firstWord } from './LineText';\nimport { rejectOperationChildren } from './OperationParser';\nimport { ParserContext } from './ParserContext';\nimport { parseTriggerSource } from './ReactionParser';\nimport { locationOf, SourceLine } from './SourceLine';\nimport { parseLifecycleSpecification } from './SpecificationParser';\n\nconst unit = '(seconds?|minutes?|hours?|days?)';\nconst headerPattern = pattern('^workflow\\\\s+([A-Za-z_]\\\\w*)$');\nconst forPattern = pattern('^for\\\\s+([A-Za-z_]\\\\w*)$');\nconst shorthandEdge = pattern('^->\\\\s*([A-Za-z_]\\\\w*)$');\nconst edgePattern = pattern('^(?:\"([^\"]+)\"|([A-Za-z_]\\\\w*))(?:\\\\s*->\\\\s*([A-Za-z_]\\\\w*))?$');\nconst triggerPattern = pattern('^trigger(?:\\\\s+(?!(?:on|when|every|at|manual)\\\\b)([A-Za-z_]\\\\w*))?\\\\s+(.+)$');\nconst onEventPattern = pattern('^on\\\\s+([A-Za-z_][\\\\w.]*)$');\nconst entersPattern = pattern('^when\\\\s+([A-Za-z_]\\\\w*)\\\\s+enters\\\\s+([A-Za-z_]\\\\w*)$');\nconst actionPattern = pattern('^action\\\\s+([A-Za-z_]\\\\w*)\\\\s+sends\\\\s+([A-Za-z_]\\\\w*)((?:\\\\s+(?:attempts\\\\s+\\\\d+|timeout\\\\s+\\\\d+\\\\s+\\\\w+|retry\\\\s+after\\\\s+\\\\d+\\\\s+\\\\w+))*)$');\nconst actionOption = /attempts\\s+(\\d+)|timeout\\s+(\\d+)\\s+(\\w+)|retry\\s+after\\s+(\\d+)\\s+(\\w+)/g;\nconst decidePattern = pattern('^decide\\\\s+([A-Za-z_]\\\\w*)\\\\s+when\\\\s+(.+)$');\nconst waitPattern = pattern(`^wait\\\\s+([A-Za-z_]\\\\w*)\\\\s+for\\\\s+(?:(\\\\d+)\\\\s+${unit}|([A-Za-z_][\\\\w.]*)(?:\\\\s+expires\\\\s+after\\\\s+(\\\\d+)\\\\s+${unit})?)$`);\nconst approvalPattern = pattern(`^approval\\\\s+([A-Za-z_]\\\\w*)\\\\s+by\\\\s+([A-Za-z_]\\\\w*)(?:\\\\s+expires\\\\s+after\\\\s+(\\\\d+)\\\\s+${unit})?$`);\nconst forEachPattern = pattern('^foreach\\\\s+([A-Za-z_]\\\\w*)\\\\s+over\\\\s+([A-Za-z_][\\\\w.]*)(?:\\\\s+parallel\\\\s+(\\\\d+))?$');\nconst joinPattern = pattern('^join\\\\s+([A-Za-z_]\\\\w*)\\\\s+(all|any|at\\\\s+least\\\\s+(\\\\d+))$');\n\ntype NodeParts = Partial<Omit<WorkflowNodeSyntax, 'kind' | 'nodeKind' | 'name' | 'edges' | 'location'>>;\n\nconst empty = (nodeKind: WorkflowNodeKind, name: string, location: SourceLocation, parts: NodeParts): WorkflowNodeSyntax => ({\n kind: 'WorkflowNodeSyntax', nodeKind, name, edges: [], location,\n triggerKind: null, event: null, stateMachine: null, state: null, schedule: null, command: null, attempts: null, timeout: null, retryAfter: null,\n condition: null, duration: null, expiresAfter: null, by: null, items: null, parallel: null, joinMode: null, joinCount: null,\n ...parts,\n});\n\n// The port of C# WorkflowParser.\nexport function parseWorkflow(context: ParserContext, header: SourceLine): WorkflowSyntax {\n const match = headerPattern.exec(header.content);\n if (match === null) {\n context.error(DiagnosticCodes.InvalidWorkflowDeclaration, `Invalid workflow declaration '${header.content}' - expected 'workflow <Name>'.`, locationOf(header));\n context.skipBlock(header.indent);\n return { kind: 'WorkflowSyntax', name: firstWord(header.content), subject: '', description: null, nodes: [], specifications: [], location: locationOf(header) };\n }\n const name = match[1];\n let description: string | null = null;\n let subject: string | null = null;\n const nodes: WorkflowNodeSyntax[] = [];\n const specifications: LifecycleSpecificationSyntax[] = [];\n const directiveLocations: Record<string, SourceLocation> = {};\n let triggers = 0;\n for (let line = context.peekChild(header.indent); line !== undefined; line = context.peekChild(header.indent)) {\n context.reader.takeSignificant();\n const keyword = firstWord(line.content);\n if (keyword === 'description') {\n description = parseDescription(context, line, description, `Workflow '${name}'`);\n directiveLocations.description ??= locationOf(line);\n } else if (keyword === 'specification') {\n specifications.push(parseLifecycleSpecification(context, line, DiagnosticCodes.InvalidWorkflowDeclaration));\n } else if (keyword === 'for') {\n const found = forPattern.exec(line.content);\n if (found === null) context.error(DiagnosticCodes.InvalidWorkflowDeclaration, `Invalid subject '${line.content}' - expected 'for <ReadModel>'.`, locationOf(line));\n else if (subject !== null) context.error(DiagnosticCodes.InvalidWorkflowDeclaration, `Workflow '${name}' declares its subject more than once.`, locationOf(line));\n else {\n subject = found[1];\n directiveLocations.for = locationOf(line);\n }\n rejectOperationChildren(context, line, DiagnosticCodes.InvalidWorkflowDeclaration, 'A for line cannot have children.');\n } else {\n const node = parseNode(context, line, name, keyword === 'trigger' ? ++triggers : triggers);\n if (node !== undefined) nodes.push(node);\n }\n }\n if (subject === null) context.error(DiagnosticCodes.InvalidWorkflowDeclaration, `Workflow '${name}' must name its subject: 'for <ReadModel>'.`, locationOf(header));\n const seen = new Set<string>();\n for (const node of nodes) {\n if (seen.has(node.name)) context.error(DiagnosticCodes.InvalidWorkflowDeclaration, `Workflow '${name}' declares node '${node.name}' more than once.`, node.location);\n seen.add(node.name);\n }\n return { kind: 'WorkflowSyntax', name, subject: subject ?? '', description, nodes, specifications, location: locationOf(header), directiveLocations };\n}\n\nfunction parseNode(context: ParserContext, line: SourceLine, workflow: string, ordinal: number): WorkflowNodeSyntax | undefined {\n const keyword = firstWord(line.content);\n let node: WorkflowNodeSyntax | undefined;\n switch (keyword) {\n case 'trigger': node = parseTrigger(context, line, ordinal); break;\n case 'action': node = parseAction(context, line); break;\n case 'decide': node = parseDecide(context, line); break;\n case 'wait': node = parseWait(context, line); break;\n case 'approval': node = parseApproval(context, line); break;\n case 'foreach': node = parseForEach(context, line); break;\n case 'join': node = parseJoin(context, line); break;\n default:\n context.error(DiagnosticCodes.InvalidWorkflowDeclaration, `Unexpected '${line.content}' in workflow '${workflow}' - expected for, description, specification or a node: trigger, action, decide, wait, approval, foreach or join.`, locationOf(line));\n }\n if (node === undefined) {\n context.skipBlock(line.indent);\n return undefined;\n }\n return { ...node, edges: parseEdges(context, line) };\n}\n\nfunction parseEdges(context: ParserContext, header: SourceLine): WorkflowEdgeSyntax[] {\n const edges: WorkflowEdgeSyntax[] = [];\n for (let line = context.peekChild(header.indent); line !== undefined; line = context.peekChild(header.indent)) {\n context.reader.takeSignificant();\n const shorthand = shorthandEdge.exec(line.content);\n const edge = edgePattern.exec(line.content);\n if (shorthand !== null) edges.push({ kind: 'WorkflowEdgeSyntax', outlet: 'next', target: shorthand[1], location: locationOf(line) });\n else if (edge !== null) edges.push({ kind: 'WorkflowEdgeSyntax', outlet: edge[1] ?? edge[2], target: edge[3] ?? '', location: locationOf(line) });\n else {\n context.error(DiagnosticCodes.InvalidWorkflowDeclaration, `Invalid edge '${line.content}' - expected '<outlet> -> <Node>'.`, locationOf(line));\n context.skipBlock(line.indent);\n continue;\n }\n rejectOperationChildren(context, line, DiagnosticCodes.InvalidWorkflowDeclaration, 'An edge cannot have children.');\n }\n return edges;\n}\n\nfunction parseTrigger(context: ParserContext, line: SourceLine, ordinal: number): WorkflowNodeSyntax | undefined {\n const match = triggerPattern.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.InvalidWorkflowDeclaration, `Invalid trigger '${line.content}' - expected 'trigger [<Name>] on <Event>', 'when <StateMachine> enters <State>', 'every <n> <unit>', 'at <HH:mm>' or 'manual'.`, locationOf(line));\n return undefined;\n }\n const name = match[1] ?? (ordinal === 1 ? 'Trigger' : `Trigger${ordinal}`);\n const rest = match[2];\n const location = locationOf(line);\n if (rest === 'manual') return empty('Trigger', name, location, { triggerKind: 'Manual' });\n const onEvent = onEventPattern.exec(rest);\n if (onEvent !== null) return empty('Trigger', name, location, { triggerKind: 'Event', event: onEvent[1] });\n const enters = entersPattern.exec(rest);\n if (enters !== null) return empty('Trigger', name, location, { triggerKind: 'StateEntered', stateMachine: enters[1], state: enters[2] });\n const scheduled = rest.startsWith('every ') || rest.startsWith('at ');\n if (scheduled) {\n const schedule = parseTriggerSource(context, { ...line, content: rest });\n return schedule === undefined ? undefined : empty('Trigger', name, location, { triggerKind: 'Schedule', schedule });\n }\n context.error(DiagnosticCodes.InvalidWorkflowDeclaration, `Invalid trigger '${line.content}' - expected 'on <Event>', 'when <StateMachine> enters <State>', 'every <n> <unit>', 'at <HH:mm>' or 'manual'.`, locationOf(line));\n return undefined;\n}\n\nfunction parseAction(context: ParserContext, line: SourceLine): WorkflowNodeSyntax | undefined {\n const match = actionPattern.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.InvalidWorkflowDeclaration, `Invalid action '${line.content}' - expected 'action <Name> sends <Command> [attempts <n>] [timeout <n> <unit>] [retry after <n> <unit>]'.`, locationOf(line));\n return undefined;\n }\n let attempts: number | null = null;\n let timeout: WorkflowDurationSyntax | null = null;\n let retryAfter: WorkflowDurationSyntax | null = null;\n for (const option of match[3].matchAll(actionOption)) {\n if (option[1] !== undefined) {\n const count = Number(option[1]);\n if (attempts !== null || !Number.isInteger(count) || count < 1) context.error(DiagnosticCodes.InvalidWorkflowDeclaration, `Invalid or repeated attempts in '${line.content}'.`, locationOf(line));\n else attempts = count;\n } else if (option[2] !== undefined) {\n const parsed = duration(context, option[2], option[3], line);\n if (timeout !== null || parsed === undefined) context.error(DiagnosticCodes.InvalidWorkflowDeclaration, `Invalid or repeated timeout in '${line.content}'.`, locationOf(line));\n else timeout = parsed;\n } else {\n const parsed = duration(context, option[4], option[5], line);\n if (retryAfter !== null || parsed === undefined) context.error(DiagnosticCodes.InvalidWorkflowDeclaration, `Invalid or repeated retry in '${line.content}'.`, locationOf(line));\n else retryAfter = parsed;\n }\n }\n return empty('Action', match[1], locationOf(line), { command: match[2], attempts, timeout, retryAfter });\n}\n\nfunction parseDecide(context: ParserContext, line: SourceLine): WorkflowNodeSyntax | undefined {\n const match = decidePattern.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.InvalidWorkflowDeclaration, `Invalid decide '${line.content}' - expected 'decide <Name> when <condition>'.`, locationOf(line));\n return undefined;\n }\n const condition = parseCondition(context, match[2], locationOf(line));\n return condition === null ? undefined : empty('Decide', match[1], locationOf(line), { condition });\n}\n\nfunction parseWait(context: ParserContext, line: SourceLine): WorkflowNodeSyntax | undefined {\n const match = waitPattern.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.InvalidWorkflowDeclaration, `Invalid wait '${line.content}' - expected 'wait <Name> for <Event> [expires after <n> <unit>]' or 'wait <Name> for <n> <unit>'.`, locationOf(line));\n return undefined;\n }\n if (match[2] !== undefined) {\n const parsed = duration(context, match[2], match[3], line);\n return parsed === undefined ? undefined : empty('Wait', match[1], locationOf(line), { duration: parsed });\n }\n let expiresAfter: WorkflowDurationSyntax | null = null;\n if (match[5] !== undefined) {\n const parsed = duration(context, match[5], match[6], line);\n if (parsed === undefined) return undefined;\n expiresAfter = parsed;\n }\n return empty('Wait', match[1], locationOf(line), { event: match[4], expiresAfter });\n}\n\nfunction parseApproval(context: ParserContext, line: SourceLine): WorkflowNodeSyntax | undefined {\n const match = approvalPattern.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.InvalidWorkflowDeclaration, `Invalid approval '${line.content}' - expected 'approval <Name> by <Persona or Policy> [expires after <n> <unit>]'.`, locationOf(line));\n return undefined;\n }\n let expiresAfter: WorkflowDurationSyntax | null = null;\n if (match[3] !== undefined) {\n const parsed = duration(context, match[3], match[4], line);\n if (parsed === undefined) return undefined;\n expiresAfter = parsed;\n }\n return empty('Approval', match[1], locationOf(line), { by: match[2], expiresAfter });\n}\n\nfunction parseForEach(context: ParserContext, line: SourceLine): WorkflowNodeSyntax | undefined {\n const match = forEachPattern.exec(line.content);\n if (match === null || (match[3] !== undefined && Number(match[3]) < 1)) {\n context.error(DiagnosticCodes.InvalidWorkflowDeclaration, `Invalid foreach '${line.content}' - expected 'foreach <Name> over <property> [parallel <n>]'.`, locationOf(line));\n return undefined;\n }\n return empty('ForEach', match[1], locationOf(line), { items: match[2], parallel: match[3] === undefined ? null : Number(match[3]) });\n}\n\nfunction parseJoin(context: ParserContext, line: SourceLine): WorkflowNodeSyntax | undefined {\n const match = joinPattern.exec(line.content);\n if (match === null || (match[3] !== undefined && Number(match[3]) < 1)) {\n context.error(DiagnosticCodes.InvalidWorkflowDeclaration, `Invalid join '${line.content}' - expected 'join <Name> all', 'join <Name> any' or 'join <Name> at least <n>'.`, locationOf(line));\n return undefined;\n }\n return empty('Join', match[1], locationOf(line), { joinMode: match[2] === 'all' ? 'All' : match[2] === 'any' ? 'Any' : 'AtLeast', joinCount: match[3] === undefined ? null : Number(match[3]) });\n}\n\nfunction duration(context: ParserContext, amount: string, text: string, line: SourceLine): WorkflowDurationSyntax | undefined {\n const count = Number(amount);\n if (!Number.isInteger(count) || count < 1) {\n context.error(DiagnosticCodes.InvalidWorkflowDeclaration, `Invalid duration '${amount} ${text}' in '${line.content}' - an amount is at least 1.`, locationOf(line));\n return undefined;\n }\n const base = text.replace(/s$/, '');\n const parsed: IntervalUnit = base === 'second' ? 'Seconds' : base === 'minute' ? 'Minutes' : base === 'hour' ? 'Hours' : 'Days';\n return { kind: 'WorkflowDurationSyntax', amount: count, unit: parsed, location: locationOf(line) };\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../../_virtual/_virtual/_rolldown/runtime.js";var ScreenplaySyntaxWalker=class{visitNode(e){}visitApplication(e){this.visitNode(e),e.domain!==null&&this.visitDomain(e.domain),e.timeZone!=null&&this.visitTimeZone(e.timeZone),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.stickyNotes?.forEach(e=>this.visitStickyNote(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)}visitStickyNote(e){this.visitNode(e)}visitAuthorize(e){this.visitNode(e),this.visitPolicyRequirement(e.requirement)}visitPolicyRequirement(e){this.visitNode(e),e.kind===`LogicalPolicyRequirementSyntax`&&(this.visitPolicyRequirement(e.left),this.visitPolicyRequirement(e.right))}visitDomain(e){this.visitNode(e)}visitImport(e){this.visitNode(e)}visitFileImport(e){this.visitNode(e)}visitGeneration(e){this.visitNode(e),e.file&&this.visitFileReference(e.file),e.code&&this.visitCodeBlock(e.code)}visitConcept(e){this.visitNode(e),e.attributes.forEach(e=>this.visitNode(e)),e.generation&&this.visitGeneration(e.generation),e.validations?.forEach(e=>this.visitValidate(e))}visitType(e){this.visitNode(e),e.properties.forEach(e=>this.visitProperty(e))}visitDependsOn(e){this.visitNode(e)}visitModule(e){this.visitNode(e),e.purposes?.forEach(e=>this.visitPurposeReference(e)),e.examples?.forEach(e=>this.visitSpecificationExample(e)),e.dependsOn?.forEach(e=>this.visitDependsOn(e)),e.fileImports.forEach(e=>this.visitFileImport(e)),e.authorize!==null&&this.visitAuthorize(e.authorize),e.toolbars?.forEach(e=>this.visitScreenDirective(e)),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)),e.toolbars?.forEach(e=>this.visitScreenDirective(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)}visitTimeZone(e){this.visitNode(e)}visitCommandCalendar(e){this.visitNode(e)}visitSpecificationTimeZone(e){this.visitNode(e)}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.calendar!=null&&this.visitCommandCalendar(e.calendar),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.possibleEvents!=null&&this.visitPossibleEvents(e.possibleEvents),e.implementation!=null&&this.visitImplementation(e.implementation),e.file!==null&&this.visitFileReference(e.file),e.code!==null&&this.visitCodeBlock(e.code)}visitPossibleEvents(e){this.visitNode(e),e.events.forEach(e=>this.visitPossibleEvent(e))}visitPossibleEvent(e){this.visitNode(e),e.stream!==null&&this.visitCommandStream(e.stream),e.tags.forEach(e=>this.visitTag(e))}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.kind===`FileValidateSyntax`?this.visitFileReference(e.file):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.partsKey!=null&&this.visitKey(e.partsKey),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`?(e.leftExpression!=null&&this.visitExpression(e.leftExpression),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.inputs?.forEach(e=>this.visitInteractionArgument(e)),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))}),(e.buttons??[]).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.givenTimeZone!=null&&this.visitSpecificationTimeZone(e.givenTimeZone),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.givenGenerated?.forEach(e=>this.visitSpecificationGeneratedValue(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)}),e.thenInvocations?.forEach(e=>this.visitSpecificationInvocation(e))}visitSpecificationInvocation(e){this.visitNode(e),e.values.forEach(e=>this.visitPropertyMapping(e))}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))}visitSpecificationGeneratedValue(e){this.visitNode(e),this.visitExpression(e.source)}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===`DateOfExpressionSyntax`?this.visitExpression(e.operand):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.timeZone!=null&&this.visitTimeZone(e.timeZone),e.imports.forEach(e=>this.visitImport(e)),e.fileImports.forEach(e=>this.visitFileImport(e)),e.systems?.forEach(e=>this.visitSystem(e)),e.stateMachines?.forEach(e=>this.visitStateMachine(e)),e.workflows?.forEach(e=>this.visitWorkflow(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.stickyNotes?.forEach(e=>this.visitStickyNote(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)}visitStickyNote(e){this.visitNode(e)}visitAuthorize(e){this.visitNode(e),this.visitPolicyRequirement(e.requirement)}visitPolicyRequirement(e){this.visitNode(e),e.kind===`LogicalPolicyRequirementSyntax`&&(this.visitPolicyRequirement(e.left),this.visitPolicyRequirement(e.right))}visitDomain(e){this.visitNode(e)}visitImport(e){this.visitNode(e)}visitFileImport(e){this.visitNode(e)}visitGeneration(e){this.visitNode(e),e.file&&this.visitFileReference(e.file),e.code&&this.visitCodeBlock(e.code)}visitConcept(e){this.visitNode(e),e.attributes.forEach(e=>this.visitNode(e)),e.generation&&this.visitGeneration(e.generation),e.validations?.forEach(e=>this.visitValidate(e))}visitType(e){this.visitNode(e),e.properties.forEach(e=>this.visitProperty(e))}visitDependsOn(e){this.visitNode(e)}visitModule(e){this.visitNode(e),e.purposes?.forEach(e=>this.visitPurposeReference(e)),e.examples?.forEach(e=>this.visitSpecificationExample(e)),e.dependsOn?.forEach(e=>this.visitDependsOn(e)),e.fileImports.forEach(e=>this.visitFileImport(e)),e.authorize!==null&&this.visitAuthorize(e.authorize),e.toolbars?.forEach(e=>this.visitScreenDirective(e)),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)),e.toolbars?.forEach(e=>this.visitScreenDirective(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)}visitTimeZone(e){this.visitNode(e)}visitCommandCalendar(e){this.visitNode(e)}visitSpecificationTimeZone(e){this.visitNode(e)}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.calendar!=null&&this.visitCommandCalendar(e.calendar),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)}visitStateMachine(e){this.visitNode(e),e.states.forEach(e=>this.visitState(e)),e.specifications.forEach(e=>this.visitLifecycleSpecification(e))}visitState(e){this.visitNode(e),e.entering.forEach(e=>this.visitStateEntry(e)),e.transitions.forEach(e=>this.visitStateTransition(e))}visitStateEntry(e){this.visitNode(e)}visitStateTransition(e){this.visitNode(e),e.when!==null&&this.visitCondition(e.when)}visitWorkflow(e){this.visitNode(e),e.nodes.forEach(e=>this.visitWorkflowNode(e)),e.specifications.forEach(e=>this.visitLifecycleSpecification(e))}visitWorkflowNode(e){this.visitNode(e),e.schedule!==null&&this.visitNode(e.schedule),e.timeout!==null&&this.visitNode(e.timeout),e.retryAfter!==null&&this.visitNode(e.retryAfter),e.condition!==null&&this.visitCondition(e.condition),e.duration!==null&&this.visitNode(e.duration),e.expiresAfter!==null&&this.visitNode(e.expiresAfter),e.edges.forEach(e=>this.visitWorkflowEdge(e))}visitWorkflowEdge(e){this.visitNode(e)}visitLifecycleSpecification(e){this.visitNode(e),e.given.forEach(e=>this.visitSpecificationEvent(e)),e.whenAppended!==null&&this.visitSpecificationEvent(e.whenAppended),e.whenStarted!==null&&this.visitExpression(e.whenStarted),e.outcomes.forEach(e=>this.visitNode(e)),e.then.forEach(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.possibleEvents!=null&&this.visitPossibleEvents(e.possibleEvents),e.implementation!=null&&this.visitImplementation(e.implementation),e.file!==null&&this.visitFileReference(e.file),e.code!==null&&this.visitCodeBlock(e.code)}visitPossibleEvents(e){this.visitNode(e),e.events.forEach(e=>this.visitPossibleEvent(e))}visitPossibleEvent(e){this.visitNode(e),e.stream!==null&&this.visitCommandStream(e.stream),e.tags.forEach(e=>this.visitTag(e))}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.kind===`FileValidateSyntax`?this.visitFileReference(e.file):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.partsKey!=null&&this.visitKey(e.partsKey),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`?(e.leftExpression!=null&&this.visitExpression(e.leftExpression),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.inputs?.forEach(e=>this.visitInteractionArgument(e)),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))}),(e.buttons??[]).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.givenTimeZone!=null&&this.visitSpecificationTimeZone(e.givenTimeZone),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.givenGenerated?.forEach(e=>this.visitSpecificationGeneratedValue(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)}),e.thenInvocations?.forEach(e=>this.visitSpecificationInvocation(e))}visitSpecificationInvocation(e){this.visitNode(e),e.values.forEach(e=>this.visitPropertyMapping(e))}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))}visitSpecificationGeneratedValue(e){this.visitNode(e),this.visitExpression(e.source)}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===`DateOfExpressionSyntax`?this.visitExpression(e.operand):e.kind===`TemplateExpressionSyntax`&&e.parts.forEach(e=>{this.visitNode(e),e.kind===`TemplateInterpolationSyntax`&&this.visitExpression(e.expression)}))}visitObjectMember(e){this.visitNode(e),this.visitExpression(e.value)}};export{ScreenplaySyntaxWalker};
|
|
2
2
|
//# sourceMappingURL=ScreenplaySyntaxWalker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScreenplaySyntaxWalker.js","names":["syntax","node","property","contribution","item","value","detail","group","event","part","column","placement","candidate","stream","input","entry","tag","hint","field","parameter","slot","exposed","outlet","button","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 { CommandCalendarSyntax, TimeZoneSyntax } from './Calendar';\nimport { IdentitySyntax } from './IdentitySyntax';\nimport { GenerationSyntax } from './GenerationSyntax';\nimport { IdentityDetailSyntax } from './IdentityDetailSyntax';\nimport { IdentitySourceSyntax } from './IdentitySourceSyntax';\nimport { ClaimIdentitySourceSyntax } from './ClaimIdentitySourceSyntax';\nimport { QueryIdentitySourceSyntax } from './QueryIdentitySourceSyntax';\nimport { CodeIdentitySourceSyntax } from './CodeIdentitySourceSyntax';\nimport { FileIdentitySourceSyntax } from './FileIdentitySourceSyntax';\nimport { AuthorizeSyntax, PersonaSyntax, PolicyRequirementSyntax, StickyNoteSyntax } 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, SpecificationTimeZoneSyntax, SpecificationGeneratedValueSyntax, SpecificationCommandSyntax, SpecificationEventSyntax, SpecificationQueryResultSyntax, SpecificationStreamSyntax, SpecificationNoStreamSyntax,\n SpecificationReadModelSyntax, SpecificationOperationFailureSyntax, SpecificationOperationSyntax, SpecificationCompensatedSyntax, SpecificationInvocationSyntax, 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 { PossibleEventsSyntax } from './PossibleEventsSyntax';\nimport { PossibleEventSyntax } from './PossibleEventSyntax';\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 if (syntax.timeZone != null) this.visitTimeZone(syntax.timeZone);\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.stickyNotes?.forEach(node => this.visitStickyNote(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 visitStickyNote(syntax: StickyNoteSyntax): void {\n this.visitNode(syntax);\n }\n\n visitAuthorize(syntax: AuthorizeSyntax): void {\n this.visitNode(syntax);\n this.visitPolicyRequirement(syntax.requirement);\n }\n\n visitPolicyRequirement(syntax: PolicyRequirementSyntax): void {\n this.visitNode(syntax);\n if (syntax.kind === 'LogicalPolicyRequirementSyntax') {\n this.visitPolicyRequirement(syntax.left);\n this.visitPolicyRequirement(syntax.right);\n }\n }\n\n visitDomain(syntax: DomainSyntax): void {\n this.visitNode(syntax);\n }\n\n visitImport(syntax: ImportSyntax): void {\n this.visitNode(syntax);\n }\n\n visitFileImport(syntax: FileImportSyntax): void {\n this.visitNode(syntax);\n }\n\n visitGeneration(syntax: GenerationSyntax): void {\n this.visitNode(syntax);\n if (syntax.file) this.visitFileReference(syntax.file);\n if (syntax.code) this.visitCodeBlock(syntax.code);\n }\n\n visitConcept(syntax: ConceptSyntax): void {\n this.visitNode(syntax);\n syntax.attributes.forEach(node => this.visitNode(node));\n if (syntax.generation) this.visitGeneration(syntax.generation);\n syntax.validations?.forEach(node => this.visitValidate(node));\n }\n\n visitType(syntax: TypeSyntax): void {\n this.visitNode(syntax);\n syntax.properties.forEach(node => this.visitProperty(node));\n }\n\n visitDependsOn(syntax: DependsOnSyntax): void { this.visitNode(syntax); }\n\n visitModule(syntax: ModuleSyntax): void {\n this.visitNode(syntax);\n syntax.purposes?.forEach(node => this.visitPurposeReference(node));\n syntax.examples?.forEach(node => this.visitSpecificationExample(node));\n syntax.dependsOn?.forEach(node => this.visitDependsOn(node));\n syntax.fileImports.forEach(node => this.visitFileImport(node));\n if (syntax.authorize !== null) this.visitAuthorize(syntax.authorize);\n syntax.toolbars?.forEach(node => this.visitScreenDirective(node));\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 syntax.toolbars?.forEach(node => this.visitScreenDirective(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 visitTimeZone(syntax: TimeZoneSyntax): void { this.visitNode(syntax); }\n\n visitCommandCalendar(syntax: CommandCalendarSyntax): void { this.visitNode(syntax); }\n\n visitSpecificationTimeZone(syntax: SpecificationTimeZoneSyntax): void { this.visitNode(syntax); }\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 if (syntax.calendar != null) this.visitCommandCalendar(syntax.calendar);\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.possibleEvents != null) this.visitPossibleEvents(syntax.possibleEvents);\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 visitPossibleEvents(syntax: PossibleEventsSyntax): void {\n this.visitNode(syntax);\n syntax.events.forEach(entry => this.visitPossibleEvent(entry));\n }\n\n visitPossibleEvent(syntax: PossibleEventSyntax): void {\n this.visitNode(syntax);\n if (syntax.stream !== null) this.visitCommandStream(syntax.stream);\n syntax.tags.forEach(tag => this.visitTag(tag));\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.kind === 'FileValidateSyntax') this.visitFileReference(syntax.file);\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.partsKey != null) this.visitKey(syntax.partsKey);\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') {\n if (syntax.leftExpression != null) this.visitExpression(syntax.leftExpression);\n this.visitExpression(syntax.right);\n }\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 syntax.inputs?.forEach(input => this.visitInteractionArgument(input));\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 (syntax.buttons ?? []).forEach(button => this.visitNode(button));\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 if (syntax.givenTimeZone != null) this.visitSpecificationTimeZone(syntax.givenTimeZone);\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 syntax.givenGenerated?.forEach(node => this.visitSpecificationGeneratedValue(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 syntax.thenInvocations?.forEach(node => this.visitSpecificationInvocation(node));\n }\n\n visitSpecificationInvocation(syntax: SpecificationInvocationSyntax): void {\n this.visitNode(syntax);\n syntax.values.forEach(node => this.visitPropertyMapping(node));\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 visitSpecificationGeneratedValue(syntax: SpecificationGeneratedValueSyntax): void {\n this.visitNode(syntax);\n this.visitExpression(syntax.source);\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 === 'DateOfExpressionSyntax') {\n this.visitExpression(syntax.operand);\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","entry","tag","hint","field","parameter","slot","exposed","outlet","button","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 { CommandCalendarSyntax, TimeZoneSyntax } from './Calendar';\nimport { IdentitySyntax } from './IdentitySyntax';\nimport { GenerationSyntax } from './GenerationSyntax';\nimport { IdentityDetailSyntax } from './IdentityDetailSyntax';\nimport { IdentitySourceSyntax } from './IdentitySourceSyntax';\nimport { ClaimIdentitySourceSyntax } from './ClaimIdentitySourceSyntax';\nimport { QueryIdentitySourceSyntax } from './QueryIdentitySourceSyntax';\nimport { CodeIdentitySourceSyntax } from './CodeIdentitySourceSyntax';\nimport { FileIdentitySourceSyntax } from './FileIdentitySourceSyntax';\nimport { AuthorizeSyntax, PersonaSyntax, PolicyRequirementSyntax, StickyNoteSyntax } 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, SpecificationTimeZoneSyntax, SpecificationGeneratedValueSyntax, SpecificationCommandSyntax, SpecificationEventSyntax, SpecificationQueryResultSyntax, SpecificationStreamSyntax, SpecificationNoStreamSyntax,\n SpecificationReadModelSyntax, SpecificationOperationFailureSyntax, SpecificationOperationSyntax, SpecificationCompensatedSyntax, SpecificationInvocationSyntax, 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 { PossibleEventsSyntax } from './PossibleEventsSyntax';\nimport { LifecycleSpecificationSyntax, StateEntrySyntax, StateMachineSyntax, StateSyntax, StateTransitionSyntax, WorkflowEdgeSyntax, WorkflowNodeSyntax, WorkflowSyntax } from './Lifecycles';\nimport { PossibleEventSyntax } from './PossibleEventSyntax';\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 if (syntax.timeZone != null) this.visitTimeZone(syntax.timeZone);\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.stateMachines?.forEach(node => this.visitStateMachine(node));\n syntax.workflows?.forEach(node => this.visitWorkflow(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.stickyNotes?.forEach(node => this.visitStickyNote(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 visitStickyNote(syntax: StickyNoteSyntax): void {\n this.visitNode(syntax);\n }\n\n visitAuthorize(syntax: AuthorizeSyntax): void {\n this.visitNode(syntax);\n this.visitPolicyRequirement(syntax.requirement);\n }\n\n visitPolicyRequirement(syntax: PolicyRequirementSyntax): void {\n this.visitNode(syntax);\n if (syntax.kind === 'LogicalPolicyRequirementSyntax') {\n this.visitPolicyRequirement(syntax.left);\n this.visitPolicyRequirement(syntax.right);\n }\n }\n\n visitDomain(syntax: DomainSyntax): void {\n this.visitNode(syntax);\n }\n\n visitImport(syntax: ImportSyntax): void {\n this.visitNode(syntax);\n }\n\n visitFileImport(syntax: FileImportSyntax): void {\n this.visitNode(syntax);\n }\n\n visitGeneration(syntax: GenerationSyntax): void {\n this.visitNode(syntax);\n if (syntax.file) this.visitFileReference(syntax.file);\n if (syntax.code) this.visitCodeBlock(syntax.code);\n }\n\n visitConcept(syntax: ConceptSyntax): void {\n this.visitNode(syntax);\n syntax.attributes.forEach(node => this.visitNode(node));\n if (syntax.generation) this.visitGeneration(syntax.generation);\n syntax.validations?.forEach(node => this.visitValidate(node));\n }\n\n visitType(syntax: TypeSyntax): void {\n this.visitNode(syntax);\n syntax.properties.forEach(node => this.visitProperty(node));\n }\n\n visitDependsOn(syntax: DependsOnSyntax): void { this.visitNode(syntax); }\n\n visitModule(syntax: ModuleSyntax): void {\n this.visitNode(syntax);\n syntax.purposes?.forEach(node => this.visitPurposeReference(node));\n syntax.examples?.forEach(node => this.visitSpecificationExample(node));\n syntax.dependsOn?.forEach(node => this.visitDependsOn(node));\n syntax.fileImports.forEach(node => this.visitFileImport(node));\n if (syntax.authorize !== null) this.visitAuthorize(syntax.authorize);\n syntax.toolbars?.forEach(node => this.visitScreenDirective(node));\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 syntax.toolbars?.forEach(node => this.visitScreenDirective(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 visitTimeZone(syntax: TimeZoneSyntax): void { this.visitNode(syntax); }\n\n visitCommandCalendar(syntax: CommandCalendarSyntax): void { this.visitNode(syntax); }\n\n visitSpecificationTimeZone(syntax: SpecificationTimeZoneSyntax): void { this.visitNode(syntax); }\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 if (syntax.calendar != null) this.visitCommandCalendar(syntax.calendar);\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\n visitStateMachine(syntax: StateMachineSyntax): void {\n this.visitNode(syntax);\n syntax.states.forEach(node => this.visitState(node));\n syntax.specifications.forEach(node => this.visitLifecycleSpecification(node));\n }\n\n visitState(syntax: StateSyntax): void {\n this.visitNode(syntax);\n syntax.entering.forEach(node => this.visitStateEntry(node));\n syntax.transitions.forEach(node => this.visitStateTransition(node));\n }\n\n visitStateEntry(syntax: StateEntrySyntax): void { this.visitNode(syntax); }\n\n visitStateTransition(syntax: StateTransitionSyntax): void {\n this.visitNode(syntax);\n if (syntax.when !== null) this.visitCondition(syntax.when);\n }\n\n visitWorkflow(syntax: WorkflowSyntax): void {\n this.visitNode(syntax);\n syntax.nodes.forEach(node => this.visitWorkflowNode(node));\n syntax.specifications.forEach(node => this.visitLifecycleSpecification(node));\n }\n\n visitWorkflowNode(syntax: WorkflowNodeSyntax): void {\n this.visitNode(syntax);\n if (syntax.schedule !== null) this.visitNode(syntax.schedule);\n if (syntax.timeout !== null) this.visitNode(syntax.timeout);\n if (syntax.retryAfter !== null) this.visitNode(syntax.retryAfter);\n if (syntax.condition !== null) this.visitCondition(syntax.condition);\n if (syntax.duration !== null) this.visitNode(syntax.duration);\n if (syntax.expiresAfter !== null) this.visitNode(syntax.expiresAfter);\n syntax.edges.forEach(node => this.visitWorkflowEdge(node));\n }\n\n visitWorkflowEdge(syntax: WorkflowEdgeSyntax): void { this.visitNode(syntax); }\n\n visitLifecycleSpecification(syntax: LifecycleSpecificationSyntax): void {\n this.visitNode(syntax);\n syntax.given.forEach(node => this.visitSpecificationEvent(node));\n if (syntax.whenAppended !== null) this.visitSpecificationEvent(syntax.whenAppended);\n if (syntax.whenStarted !== null) this.visitExpression(syntax.whenStarted);\n syntax.outcomes.forEach(node => this.visitNode(node));\n syntax.then.forEach(node => this.visitNode(node));\n }\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.possibleEvents != null) this.visitPossibleEvents(syntax.possibleEvents);\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 visitPossibleEvents(syntax: PossibleEventsSyntax): void {\n this.visitNode(syntax);\n syntax.events.forEach(entry => this.visitPossibleEvent(entry));\n }\n\n visitPossibleEvent(syntax: PossibleEventSyntax): void {\n this.visitNode(syntax);\n if (syntax.stream !== null) this.visitCommandStream(syntax.stream);\n syntax.tags.forEach(tag => this.visitTag(tag));\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.kind === 'FileValidateSyntax') this.visitFileReference(syntax.file);\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.partsKey != null) this.visitKey(syntax.partsKey);\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') {\n if (syntax.leftExpression != null) this.visitExpression(syntax.leftExpression);\n this.visitExpression(syntax.right);\n }\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 syntax.inputs?.forEach(input => this.visitInteractionArgument(input));\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 (syntax.buttons ?? []).forEach(button => this.visitNode(button));\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 if (syntax.givenTimeZone != null) this.visitSpecificationTimeZone(syntax.givenTimeZone);\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 syntax.givenGenerated?.forEach(node => this.visitSpecificationGeneratedValue(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 syntax.thenInvocations?.forEach(node => this.visitSpecificationInvocation(node));\n }\n\n visitSpecificationInvocation(syntax: SpecificationInvocationSyntax): void {\n this.visitNode(syntax);\n syntax.values.forEach(node => this.visitPropertyMapping(node));\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 visitSpecificationGeneratedValue(syntax: SpecificationGeneratedValueSyntax): void {\n this.visitNode(syntax);\n this.visitExpression(syntax.source);\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 === 'DateOfExpressionSyntax') {\n this.visitExpression(syntax.operand);\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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"}
|