@cratis/screenplay-language 5.3.1 → 5.4.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.
@@ -1 +1 @@
1
- {"version":3,"file":"SpecificationParser.js","names":["parseMappingSource","operationStepPrefix","pattern","operationStep","header","specificationHeader","callerPersonaPattern","nativePattern","prefix","exactly","dotNetWhitespace","givenPattern","whenAppendPattern","whenPattern","thenEventPattern","thenQueryPrefix","readModelPrefix","givenReadModelPattern","thenReadModelPattern","thenNoPrefix","thenErrorPattern","stringBodyPattern","mappingPattern","nativeMappingPattern","givenTimeZonePrefix","givenTimeZonePattern","givenClockPrefix","givenCapturePrefix","thenInvokesPrefix","thenInvokesPattern","givenGeneratedPrefix","givenGeneratedPattern","givenGeneratedBlockPattern","whenClockPrefix","whenTriggerPrefix","whenCapturePrefix","whenQueryPrefix","thenResultPrefix","noResultPrefix","whenRedeliveredPrefix","whenRedeliveredPattern","noEventsPrefix","clockPattern","whenTriggerPattern","capturePattern","whenQueryPattern","thenResultPattern","thenAbsentReadModelPattern","absentKeyStringPattern","thenQueryPattern","name","line","context","DiagnosticCodes","locationOf","description","parameters","cases","body","child","isFileDirective","keyword","firstWord","parameter","parseParameter","row","parseCase","parseDescription","_","_noEventsLine","members","specification","validateTable","action","query","outcome","match","values","value","parseConcreteMapping","rejectOperationChildren","unescapeString","pinned","capture","readModel","event","callerRolePattern","callerClaimPattern","authenticated","roles","claims","role","claim","containsCaseReference","appends","code","generatedValues","thenReturnsPrefix","expectation","parseReturn","invocation","caseValue","parseSpecificationValue","error","absent","parseStructuredValue","key","exact","at","message","args","results","hasArguments","keyText","concrete","hasChildren","indent","block","location","source","parseConcrete","regex","expected","create","queryArguments","specificationStream","sourceStreamPattern","specificationStreamId","addInlineValue","parent","inline","eventSource","stream","noStream","hasRoute","structured","generated","generatedFixturePrefix","fixture","generatedFixturePattern","mapping","addFixtureValue","eventKeyword","route","tryParseStructuredMapping","diagnosticText","streamId","streamIdParts","directiveLocations","parseRouteParts","part","nativeIdentifiers","queryArgumentsContext","existing","lifecycleWhenStart","lifecycleOutcome","lifecycleThen","word","given","whenAppended","whenStarted","whenDeclared","outcomes","then","fact","start","index","sourceLocation"],"sources":["../../../../../../Compiler/Parsing/SpecificationParser.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 { parseRouteParts } from './EventSourceParser';\nimport { diagnosticText } from '../Diagnostics/DiagnosticArgument';\nimport { DiagnosticCodes } from '../Diagnostics/DiagnosticCodes';\nimport { ExpressionSyntax, PropertyMappingSyntax } from '../Syntax/Expressions';\nimport {\n SpecificationCaptureSyntax, SpecificationClockSyntax, SpecificationTimeZoneSyntax, SpecificationGeneratedValueSyntax, SpecificationCommandSyntax, SpecificationErrorSyntax, SpecificationEventSyntax, SpecificationStreamSyntax, SpecificationNoStreamSyntax,\n SpecificationNoResultSyntax, SpecificationQueryResultSyntax, SpecificationReadModelSyntax, SpecificationSyntax, SpecificationTriggerSyntax,\n SpecificationWhenQuerySyntax, SpecificationCallerPersonaSyntax, SpecificationOperationFailureSyntax, SpecificationOperationSyntax, SpecificationCompensatedSyntax, SpecificationRedeliverySyntax,\n} from '../Syntax/Specifications';\nimport { SpecificationDeniedSyntax, SpecificationReturnSyntax } from '../Syntax/Responses';\nimport { dotNetWhitespace, nativePattern, pattern } from '../Text/patterns';\nimport { sourceStreamPattern } from '../Text/SourceStreamNames';\nimport { stringBodyPattern, unescapeString } from '../Text/StringLiteral';\nimport { containsCaseReference, parseCase, parseParameter, parseSpecificationValue as parseMappingSource, validateTable } from './SpecificationCaseParser';\nimport { parseDescription } from './DescriptionParser';\nimport { isFileDirective } from './FileReferences';\nimport { firstWord } from './LineText';\nimport { ParserContext } from './ParserContext';\nimport { addFixtureValue, addInlineValue } from './SpecificationExampleParser';\nimport { rejectOperationChildren } from './OperationParser';\nimport { generatedFixturePattern, generatedFixturePrefix, parseConcrete, parseConcreteMapping, parseReturn, thenReturnsPrefix } from './SpecificationResponseParser';\nimport { locationOf, SourceLine } from './SourceLine';\nimport { SourceLocation, sourceLocation } from '../Diagnostics/SourceLocation';\nimport { LifecycleExpectationKind, LifecycleExpectationSyntax, LifecycleOutcomeSyntax, LifecycleSpecificationSyntax } from '../Syntax/Lifecycles';\nimport { SpecificationAbsentReadModelSyntax, SpecificationCallerClaimSyntax, SpecificationCallerSyntax, SpecificationInvocationSyntax, SpecificationQuerySyntax } from '../Syntax/Specifications';\nimport { parseStructuredValue, StructuredMarker, tryParseStructuredMapping } from './StructuredBlockParser';\n\nconst operationStepPrefix = pattern('^(?:given\\\\s+operation|then\\\\s+(?:operation|compensated))(?:\\\\s|$)');\nconst operationStep = pattern('^(given operation|then operation|then compensated)\\\\s+([A-Za-z_]\\\\w*(?:\\\\.[A-Za-z_]\\\\w*)*)(\\\\s+fails)?$');\nconst header = pattern('^specification\\\\s+([A-Za-z_]\\\\w*)$');\nconst specificationHeader = header;\nconst callerPersonaPattern = pattern('^given caller as ([A-Za-z_]\\\\w*)$');\nconst stepName = '([A-Z]\\\\w*(?:\\\\.\\\\w+)*)';\nconst inlineAssignment = '(?:\\\\s+(?<property>[\\\\w.]+)\\\\s*=(?!=|>)\\\\s*(?<value>.+))?';\nconst stepPattern = (prefix: string, exactly = ''): RegExp => nativePattern(`^${prefix}\\\\s+${stepName}${exactly}${inlineAssignment}$`.replaceAll('\\\\s', dotNetWhitespace));\nconst givenPattern = stepPattern('given');\nconst whenAppendPattern = stepPattern('when\\\\s+append');\nconst whenPattern = stepPattern('when');\nconst thenEventPattern = stepPattern('then');\nconst thenQueryPrefix = pattern('^then\\\\s+query\\\\b');\nconst readModelPrefix = pattern('^(?:given|then)\\\\s+readmodel\\\\b');\nconst givenReadModelPattern = stepPattern('given\\\\s+readmodel');\nconst thenReadModelPattern = stepPattern('then\\\\s+readmodel', '(?<exactly>\\\\s+exactly)?');\nconst thenNoPrefix = pattern('^then\\\\s+no\\\\b');\nconst thenErrorPattern = pattern(`^then\\\\s+error\\\\s+\"(${stringBodyPattern})\"$`);\nconst mappingPattern = pattern('^([\\\\w.]+)\\\\s*=(?!=|>)\\\\s*(.+)$');\nconst nativeMappingPattern = nativePattern('^([\\\\w.]+)\\\\s*=(?!=|>)\\\\s*(.+)$');\nconst givenTimeZonePrefix = pattern('^given\\\\s+time\\\\s+zone\\\\b');\nconst givenTimeZonePattern = pattern(`^given\\\\s+time\\\\s+zone\\\\s+\"(${stringBodyPattern})\"$`);\nconst givenClockPrefix = pattern('^given\\\\s+clock\\\\b');\nconst givenCapturePrefix = pattern('^given\\\\s+capture\\\\b');\nconst thenInvokesPrefix = pattern('^then\\\\s+invokes\\\\b');\nconst thenInvokesPattern = pattern('^then\\\\s+invokes\\\\s+([A-Za-z_]\\\\w*(?:\\\\.[A-Za-z_]\\\\w*)*)$');\nconst givenGeneratedPrefix = pattern('^given\\\\s+generated\\\\b');\nconst givenGeneratedPattern = pattern('^given\\\\s+generated\\\\s+([A-Z]\\\\w*)\\\\.([a-z_]\\\\w*)\\\\s*=(?!=|>)\\\\s*(.+)$');\nconst givenGeneratedBlockPattern = pattern('^given\\\\s+generated\\\\s+([A-Z]\\\\w*)\\\\.([a-z_]\\\\w*)(?:\\\\s+(none|empty))?$');\nconst whenClockPrefix = pattern('^when\\\\s+clock\\\\b');\nconst whenTriggerPrefix = pattern('^when\\\\s+trigger\\\\b');\nconst whenCapturePrefix = pattern('^when\\\\s+capture\\\\b');\nconst whenQueryPrefix = pattern('^when\\\\s+query\\\\b');\nconst thenResultPrefix = pattern('^then\\\\s+result\\\\b');\nconst noResultPrefix = pattern('^then\\\\s+no\\\\s+result\\\\b');\nconst whenRedeliveredPrefix = nativePattern('^when\\\\s+redelivered\\\\b');\nconst whenRedeliveredPattern = nativePattern('^when\\\\s+redelivered\\\\s+([A-Za-z_]\\\\w*(?:\\\\.\\\\w+)*)\\\\s+to\\\\s+([A-Za-z_]\\\\w*(?:\\\\.\\\\w+)*)$');\nconst noEventsPrefix = pattern('^then\\\\s+no\\\\s+events\\\\b');\n\n// An instant in ISO 8601 - a date, a time to the minute or finer, and an explicit offset or Z - so the same text\n// means the same moment wherever the specification runs.\nconst clockPattern = pattern('^(given|when)\\\\s+clock\\\\s+\"(\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}(?::\\\\d{2}(?:\\\\.\\\\d+)?)?(?:Z|[+-]\\\\d{2}:\\\\d{2}))\"$');\nconst whenTriggerPattern = pattern('^when\\\\s+trigger\\\\s+([A-Za-z_]\\\\w*)$');\nconst capturePattern = pattern('^(?:given|when)\\\\s+capture\\\\s+([A-Za-z_]\\\\w*)$');\nconst whenQueryPattern = pattern('^when\\\\s+query\\\\s+([A-Za-z_]\\\\w*(?:\\\\.\\\\w+)*)$');\nconst thenResultPattern = pattern('^then\\\\s+result(\\\\s+exactly)?$');\nconst thenAbsentReadModelPattern = nativePattern('^then\\\\s+no\\\\s+readmodel\\\\s+([A-Z]\\\\w*)\\\\s+for(?:\\\\s+(.+))?$');\nconst absentKeyStringPattern = nativePattern(`^(?:\"${stringBodyPattern}\"|'(?:[^'\\\\\\\\]|\\\\\\\\.)*')$`);\nconst thenQueryPattern = nativePattern('^then\\\\s+query\\\\s+([A-Za-z_]\\\\w*(?:\\\\.\\\\w+)*)(\\\\s+exactly)?$');\n\ninterface SpecificationBody {\n given: SpecificationEventSyntax[];\n givenReadModels: SpecificationReadModelSyntax[];\n when: SpecificationCommandSyntax | null;\n whenAppended: SpecificationEventSyntax | null;\n whenRedelivered: SpecificationRedeliverySyntax | null;\n whenDeclared: boolean;\n thenEvents: SpecificationEventSyntax[];\n thenEventsInAnyOrder: boolean;\n thenNoEvents: boolean;\n noEventsLine?: SourceLine;\n thenReadModels: SpecificationReadModelSyntax[];\n thenErrors: SpecificationErrorSyntax[];\n thenAbsentReadModels: SpecificationAbsentReadModelSyntax[];\n thenQueries: SpecificationQuerySyntax[];\n givenClock: SpecificationClockSyntax | null;\n givenTimeZone: SpecificationTimeZoneSyntax | null;\n givenCaptures: SpecificationCaptureSyntax[];\n givenGenerated?: SpecificationGeneratedValueSyntax[];\n whenClock: SpecificationClockSyntax | null;\n whenTrigger: SpecificationTriggerSyntax | null;\n whenCapture: SpecificationCaptureSyntax | null;\n whenQuery: SpecificationWhenQuerySyntax | null;\n thenResults: SpecificationQueryResultSyntax[];\n thenNoResult: SpecificationNoResultSyntax | null;\n thenDenied: SpecificationDeniedSyntax | null;\n givenCaller: SpecificationCallerSyntax | null;\n givenCallerPersona?: SpecificationCallerPersonaSyntax;\n thenReturns: SpecificationReturnSyntax | null;\n givenOperationFailures: SpecificationOperationFailureSyntax[];\n thenOperations: SpecificationOperationSyntax[];\n thenCompensated: SpecificationCompensatedSyntax[];\n thenInvocations?: SpecificationInvocationSyntax[];\n}\n\nexport function parseSpecification(context: ParserContext, line: SourceLine): SpecificationSyntax {\n const name = header.exec(line.content)?.[1] ?? '';\n if (name === '') {\n context.error(DiagnosticCodes.InvalidSpecificationDeclaration, `Invalid specification declaration '${line.content}' - expected 'specification <Name>'`, locationOf(line));\n }\n let description: string | null = null;\n const parameters: NonNullable<SpecificationSyntax['parameters']>[number][] = [];\n const cases: NonNullable<SpecificationSyntax['cases']>[number][] = [];\n const body: SpecificationBody = {\n givenOperationFailures: [], thenOperations: [], thenCompensated: [], thenAbsentReadModels: [], thenQueries: [],\n given: [], givenReadModels: [], when: null, whenAppended: null, whenRedelivered: null, whenDeclared: false,\n thenEvents: [], thenEventsInAnyOrder: false, thenNoEvents: false, thenReadModels: [], thenErrors: [],\n givenClock: null, givenTimeZone: null, givenCaptures: [], whenClock: null, whenTrigger: null, whenCapture: null, whenQuery: null, thenResults: [], thenNoResult: null, thenDenied: null, givenCaller: null, thenReturns: null,\n };\n for (let child = context.peekChild(line.indent); child !== undefined; child = context.peekChild(line.indent)) {\n context.reader.takeSignificant();\n if (isFileDirective(child)) {\n continue;\n }\n if (parseOperationStep(context, child, body)) continue;\n // Absence assertions admit any whitespace after 'then'; every other directive keeps its first word.\n const keyword = thenNoPrefix.test(child.content) ? 'then' : firstWord(child.content);\n if (keyword === 'parameter') {\n const parameter = parseParameter(context, child);\n if (parameter !== null) parameters.push(parameter);\n } else if (keyword === 'case') {\n const row = parseCase(context, child);\n if (row !== null) cases.push(row);\n } else if (keyword === 'description') {\n description = parseDescription(context, child, description, `Specification '${name}'`);\n } else if (keyword === 'given') {\n parseGiven(context, child, body);\n } else if (keyword === 'when') {\n parseWhen(context, child, body, name);\n } else if (keyword === 'then') {\n parseThen(context, child, body);\n } else {\n context.error(DiagnosticCodes.UnknownSpecificationDirective, `Unexpected '${firstWord(child.content)}' in specification body`, locationOf(child));\n context.skipBlock(child.indent);\n }\n }\n if (body.noEventsLine !== undefined && (body.thenEvents.length > 0 || body.thenEventsInAnyOrder || body.thenErrors.length > 0 || body.thenDenied !== null)) {\n context.error(DiagnosticCodes.InvalidNoEventsExpectation,\n \"'then no events' cannot accompany event, event-order, error or denial expectations.\", locationOf(body.noEventsLine));\n }\n validateQueryRejection(context, line, body);\n const { whenDeclared: _, noEventsLine: _noEventsLine, ...members } = body;\n const specification: SpecificationSyntax = { kind: 'SpecificationSyntax', sourceOptions: context.sourceOptions, name, description, ...members,\n ...(parameters.length === 0 ? {} : { parameters }), ...(cases.length === 0 ? {} : { cases }), location: locationOf(line) };\n validateTable(specification, context);\n return specification;\n}\n\nfunction validateQueryRejection(context: ParserContext, line: SourceLine, body: SpecificationBody): void {\n if (!isQueryRejectionCandidate(body) || isWellFormedQueryRejection(body)) return;\n context.error(DiagnosticCodes.MismatchedSpecificationQueryResult,\n \"A query rejection requires exactly one query and one 'then error', no action, and no other outcomes\", locationOf(line));\n}\n\nfunction isQueryRejectionCandidate(body: SpecificationBody): boolean {\n return body.thenErrors.length > 0 && queriedCallCount(body) > 0 && (body.whenQuery !== null || !hasAction(body));\n}\n\nfunction isWellFormedQueryRejection(body: SpecificationBody): boolean {\n return !hasAction(body) && hasOneQueryAndOneError(body) && !hasOtherOutcome(body);\n}\n\nfunction hasOneQueryAndOneError(body: SpecificationBody): boolean {\n return queriedCallCount(body) === 1 && body.thenErrors.length === 1;\n}\n\nfunction hasAction(body: SpecificationBody): boolean {\n return [body.when, body.whenAppended, body.whenClock, body.whenTrigger, body.whenCapture, body.whenRedelivered].some(action => action !== null);\n}\n\nfunction queriedCallCount(body: SpecificationBody): number {\n return body.thenQueries.length + (body.whenQuery === null ? 0 : 1);\n}\n\nfunction hasOtherOutcome(body: SpecificationBody): boolean {\n return [\n body.thenResults.length > 0,\n body.thenNoResult !== null,\n body.thenDenied !== null,\n body.thenEvents.length > 0,\n body.thenNoEvents,\n body.thenEventsInAnyOrder,\n body.thenReadModels.length > 0,\n body.thenAbsentReadModels.length > 0,\n body.thenReturns !== null,\n body.thenQueries.some(query => query.results.length > 0)\n ].some(outcome => outcome);\n}\n\nfunction parseOperationStep(context: ParserContext, line: SourceLine, body: SpecificationBody): boolean {\n if (!operationStepPrefix.test(line.content)) return false;\n const match = operationStep.exec(line.content);\n if (match === null || (match[1] === 'given operation') !== (match[3] !== undefined)) {\n context.error(DiagnosticCodes.InvalidOperationSpecification, \"Expected 'given operation <Name> fails', 'then operation <Name>' or 'then compensated <Name>'.\", locationOf(line));\n skipBody(context, line.indent);\n } else if (match[1] === 'then operation') {\n const values: PropertyMappingSyntax[] = [];\n for (let child = context.peekChild(line.indent); child !== undefined; child = context.peekChild(line.indent)) {\n context.reader.takeSignificant();\n const value = parseConcreteMapping(context, child, mappingPattern, DiagnosticCodes.InvalidOperationSpecification);\n if (value !== null) values.push(value);\n }\n body.thenOperations.push({ kind: 'SpecificationOperationSyntax', operation: match[2], values, location: locationOf(line) });\n } else {\n rejectOperationChildren(context, line, DiagnosticCodes.InvalidOperationSpecification, 'Failure and compensation assertions cannot have children.');\n if (match[1] === 'given operation') body.givenOperationFailures.push({ kind: 'SpecificationOperationFailureSyntax', operation: match[2], location: locationOf(line) });\n else body.thenCompensated.push({ kind: 'SpecificationCompensatedSyntax', operation: match[2], location: locationOf(line) });\n }\n return true;\n}\n\nfunction parseGiven(context: ParserContext, line: SourceLine, body: SpecificationBody): void {\n if (givenClockPrefix.test(line.content)) {\n if (body.givenClock !== null) {\n context.error(DiagnosticCodes.InvalidSpecificationClock, 'A specification states its clock at most once.', locationOf(line));\n skipBody(context, line.indent);\n } else {\n body.givenClock = parseClock(context, line, 'given');\n }\n } else if (givenTimeZonePrefix.test(line.content)) {\n const match = givenTimeZonePattern.exec(line.content);\n skipBody(context, line.indent);\n if (body.givenTimeZone !== null || match === null) {\n context.error(DiagnosticCodes.InvalidSpecificationTimeZone, \"A specification states its time zone at most once, as 'given time zone \\\"<id>\\\"'.\", locationOf(line));\n } else {\n body.givenTimeZone = { kind: 'SpecificationTimeZoneSyntax', id: unescapeString(match[1]), location: locationOf(line) };\n }\n } else if (givenGeneratedPrefix.test(line.content)) {\n const pinned = parseGivenGenerated(context, line);\n if (pinned !== null) {\n (body.givenGenerated ??= []).push(pinned);\n }\n } else if (givenCapturePrefix.test(line.content)) {\n const capture = parseCapture(context, line, 'given');\n if (capture !== null) {\n body.givenCaptures.push(capture);\n }\n } else if (line.content.startsWith('given caller')) {\n if (body.givenCaller !== null || body.givenCallerPersona !== undefined) {\n context.error(DiagnosticCodes.DuplicateSpecificationCallerOrDenied, \"A specification has at most one 'given caller' block.\", locationOf(line));\n context.skipBlock(line.indent);\n } else if (line.content.startsWith('given caller as')) {\n const match = callerPersonaPattern.exec(line.content);\n if (match === null) context.error(DiagnosticCodes.InvalidSpecificationCallerPersona, \"Expected 'given caller as <Persona>'.\", locationOf(line));\n const child = context.peekChild(line.indent);\n if (child !== undefined) context.error(DiagnosticCodes.InvalidSpecificationCallerPersona, \"'given caller as <Persona>' has no body; use an explicit 'given caller' for refinements.\", locationOf(child));\n skipBody(context, line.indent);\n if (match !== null) body.givenCallerPersona = { kind: 'SpecificationCallerPersonaSyntax', name: match[1], location: locationOf(line) };\n } else {\n body.givenCaller = parseCaller(context, line);\n }\n } else if (readModelPrefix.test(line.content)) {\n const readModel = parseReadModelStep(context, line, givenReadModelPattern, 'given');\n if (readModel !== undefined) {\n body.givenReadModels.push(readModel);\n }\n } else {\n const event = parseEventStep(context, line, givenPattern, 'given');\n if (event !== undefined) {\n body.given.push(event);\n }\n }\n}\n\nconst callerRolePattern = pattern(`^role${dotNetWhitespace}+\"(${stringBodyPattern})\"$`);\nconst callerClaimPattern = pattern(`^claim${dotNetWhitespace}+\"(${stringBodyPattern})\"${dotNetWhitespace}*=${dotNetWhitespace}*\"(${stringBodyPattern})\"$`);\n\n// 'given caller' and the authenticated, role and claim lines under it.\nfunction parseCaller(context: ParserContext, line: SourceLine): SpecificationCallerSyntax | null {\n if (line.content !== 'given caller') {\n context.error(DiagnosticCodes.InvalidSpecificationCaller, \"Expected exactly 'given caller'.\", locationOf(line));\n context.skipBlock(line.indent);\n return null;\n }\n let authenticated = false;\n const roles: string[] = [];\n const claims: SpecificationCallerClaimSyntax[] = [];\n for (let child = context.peekChild(line.indent); child !== undefined; child = context.peekChild(line.indent)) {\n context.reader.takeSignificant();\n const role = callerRolePattern.exec(child.content);\n const claim = callerClaimPattern.exec(child.content);\n if (child.content === 'authenticated' && !authenticated) {\n authenticated = true;\n } else if (role !== null) {\n roles.push(unescapeString(role[1]));\n } else if (claim !== null) {\n claims.push({ kind: 'SpecificationCallerClaimSyntax', type: unescapeString(claim[1]), value: unescapeString(claim[2]), location: locationOf(child) });\n } else {\n context.error(containsCaseReference(child.content) ? DiagnosticCodes.InvalidSpecificationCaseReference : DiagnosticCodes.InvalidSpecificationCaller, `Invalid caller fixture '${child.content}' - expected authenticated, role \"...\", or claim \"...\" = \"...\".`, locationOf(child));\n }\n }\n return { kind: 'SpecificationCallerSyntax', authenticated, roles, claims, location: locationOf(line) };\n}\n\nfunction parseWhen(context: ParserContext, line: SourceLine, body: SpecificationBody, name: string): void {\n const appends = line.content.startsWith('when append');\n if (body.whenDeclared) {\n const code = body.whenAppended !== null || appends ? DiagnosticCodes.ConflictingSpecificationActions : DiagnosticCodes.DuplicateSpecificationWhen;\n context.error(code, `Specification '${name}' already declares a 'when' - a specification can have at most one`, locationOf(line));\n skipBody(context, line.indent);\n return;\n }\n body.whenDeclared = true;\n if (appends) {\n body.whenAppended = parseEventStep(context, line, whenAppendPattern, 'when append') ?? null;\n return;\n }\n if (whenRedeliveredPrefix.test(line.content)) {\n const match = whenRedeliveredPattern.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.UnmatchedRedeliveredOccurrence, \"Expected 'when redelivered <Event> to <Reaction>'.\", locationOf(line));\n skipBody(context, line.indent);\n } else {\n body.whenRedelivered = { kind: 'SpecificationRedeliverySyntax', eventType: match[1], reaction: match[2], ...parseValuesWithEventSource(context, line, undefined, undefined, 'when redelivered'), location: locationOf(line) };\n }\n return;\n }\n if (whenClockPrefix.test(line.content)) {\n body.whenClock = parseClock(context, line, 'when');\n return;\n }\n if (whenTriggerPrefix.test(line.content)) {\n body.whenTrigger = parseNamedStep(context, line, whenTriggerPattern, DiagnosticCodes.InvalidSpecificationTrigger, 'when trigger', 'when trigger <Trigger>',\n (trigger, values) => ({ kind: 'SpecificationTriggerSyntax', trigger, values, location: locationOf(line) }));\n return;\n }\n if (whenCapturePrefix.test(line.content)) {\n body.whenCapture = parseCapture(context, line, 'when');\n return;\n }\n if (whenQueryPrefix.test(line.content)) {\n body.whenQuery = parseNamedStep(context, line, whenQueryPattern, DiagnosticCodes.InvalidSpecificationQueryAction, 'when query', 'when query <Query>',\n (query, values) => ({ kind: 'SpecificationWhenQuerySyntax', query, arguments: values, location: locationOf(line) }), true);\n return;\n }\n const match = whenPattern.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.InvalidSpecificationWhen, `Invalid 'when' declaration '${line.content}' - expected 'when <CommandType>' or 'when append <EventType>'`, locationOf(line));\n skipBody(context, line.indent);\n return;\n }\n const generatedValues: PropertyMappingSyntax[] = [];\n const values = parseValuesWithEventSource(context, line, generatedValues, match);\n body.when = { kind: 'SpecificationCommandSyntax', commandType: match[1], ...values, generatedValues, inlineProperty: match.groups?.property ?? null, location: locationOf(line) };\n}\n\nfunction parseThen(context: ParserContext, line: SourceLine, body: SpecificationBody): void {\n if (noEventsPrefix.test(line.content)) {\n if (line.content !== 'then no events' || body.thenNoEvents) {\n context.error(DiagnosticCodes.InvalidNoEventsExpectation, \"Expected one 'then no events' directive.\", locationOf(line));\n } else {\n body.thenNoEvents = true;\n body.noEventsLine = line;\n }\n const child = context.peekChild(line.indent);\n if (child !== undefined) context.error(DiagnosticCodes.InvalidNoEventsExpectation, \"'then no events' cannot have child mappings.\", locationOf(child));\n skipBody(context, line.indent);\n return;\n }\n if (thenReturnsPrefix.test(line.content)) {\n const expectation = parseReturn(context, line);\n if (body.thenReturns !== null) {\n context.error(DiagnosticCodes.InvalidReturnExpectation, 'A specification declares at most one return expectation.', locationOf(line));\n } else {\n body.thenReturns = expectation;\n }\n return;\n }\n if (line.content.startsWith('then events')) {\n if (line.content !== 'then events in any order' || body.thenEventsInAnyOrder) {\n context.error(DiagnosticCodes.InvalidSpecificationEventOrder, 'Expected one \\'then events in any order\\' directive.', locationOf(line));\n } else {\n body.thenEventsInAnyOrder = true;\n }\n skipBody(context, line.indent);\n return;\n }\n if (thenResultPrefix.test(line.content)) {\n parseResult(context, line, body);\n return;\n }\n if (noResultPrefix.test(line.content)) {\n if (line.content !== 'then no result' || body.thenNoResult !== null) {\n context.error(DiagnosticCodes.InvalidSpecificationQueryAction, 'Expected one \\'then no result\\' directive.', locationOf(line));\n } else {\n body.thenNoResult = { kind: 'SpecificationNoResultSyntax', location: locationOf(line) };\n }\n skipBody(context, line.indent);\n return;\n }\n if (thenInvokesPrefix.test(line.content)) {\n const invocation = parseNamedStep(context, line, thenInvokesPattern, DiagnosticCodes.InvalidSpecificationInvocation, 'then invokes', 'then invokes <Command>',\n (command, values): SpecificationInvocationSyntax => ({ kind: 'SpecificationInvocationSyntax', command, values, location: locationOf(line) }));\n if (invocation !== null) (body.thenInvocations ??= []).push(invocation);\n return;\n }\n if (line.content.startsWith('then denied')) {\n if (line.content !== 'then denied') {\n context.error(DiagnosticCodes.InvalidSpecificationDenied, 'Expected exactly \\'then denied\\'.', locationOf(line));\n skipBody(context, line.indent);\n } else if (body.thenDenied !== null) {\n context.error(DiagnosticCodes.DuplicateSpecificationCallerOrDenied, \"A specification has at most one 'then denied' outcome.\", locationOf(line));\n } else {\n body.thenDenied = { kind: 'SpecificationDeniedSyntax', location: locationOf(line) };\n }\n return;\n }\n if (line.content === 'then error') {\n body.thenErrors.push({ kind: 'SpecificationErrorSyntax', name: null, location: locationOf(line) });\n return;\n }\n if (line.content.startsWith('then error case.')) {\n const caseValue = parseMappingSource(line.content.substring(11), { ...locationOf(line), column: locationOf(line).column + 11 }, context);\n if (caseValue.kind === 'CaseValueExpressionSyntax') body.thenErrors.push({ kind: 'SpecificationErrorSyntax', name: null, caseValue, location: locationOf(line) });\n return;\n }\n const error = thenErrorPattern.exec(line.content);\n if (error !== null) {\n body.thenErrors.push({ kind: 'SpecificationErrorSyntax', name: unescapeString(error[1]), location: locationOf(line) });\n return;\n }\n if (firstWord(line.content.substring('then'.length).trim()) === 'error') {\n context.error(DiagnosticCodes.InvalidThenError, `Invalid 'then error' declaration '${line.content}' - expected 'then error' or 'then error \"<reason>\"'`, locationOf(line));\n skipBody(context, line.indent);\n return;\n }\n if (thenNoPrefix.test(line.content)) {\n // Legacy documents keep skipping these assertions silently; Exact mirrors the native diagnostics.\n if (context.sourceOptions.numericMode === 'exact') {\n const absent = parseAbsentReadModel(context, line);\n if (absent !== null) body.thenAbsentReadModels.push(absent);\n return;\n }\n const match = thenAbsentReadModelPattern.exec(line.content);\n if (match !== null && match[2] === undefined && context.peekChild(line.indent) !== undefined) {\n // 'for' ending the line opens the key's members as an indented block.\n body.thenAbsentReadModels.push({ kind: 'SpecificationAbsentReadModelSyntax', name: match[1], key: parseStructuredValue(context.valueContext, line, undefined), location: locationOf(line) });\n return;\n }\n if (match !== null && match[2] !== undefined && !match[2].endsWith(' exactly')) {\n const key = parseMappingSource(match[2].trim(), locationOf(line), context.valueContext);\n if (key.kind === 'LiteralExpressionSyntax' || key.kind === 'ObjectExpressionSyntax' || key.kind === 'CaseValueExpressionSyntax') body.thenAbsentReadModels.push({ kind: 'SpecificationAbsentReadModelSyntax', name: match[1], key, location: locationOf(line) });\n }\n context.skipOpaqueBlock(line.indent);\n return;\n }\n if (thenQueryPrefix.test(line.content)) {\n // Legacy documents keep skipping malformed query bodies silently; Exact reports what the native parser reports.\n const exact = context.sourceOptions.numericMode === 'exact';\n const reject = (code: string, message: string, at: SourceLine): void => {\n if (!exact) return context.skipOpaqueBlock(at.indent);\n context.error(code, message, locationOf(at));\n context.skipBlock(at.indent);\n };\n const match = thenQueryPattern.exec(line.content);\n if (match === null) return reject(DiagnosticCodes.InvalidSpecificationQuery, `Invalid 'then query' declaration '${line.content}' - expected 'then query <Query> [exactly]'`, line);\n const args: PropertyMappingSyntax[] = [];\n const results: SpecificationQueryResultSyntax[] = [];\n let hasArguments = false;\n for (let child = context.peekChild(line.indent); child !== undefined; child = context.peekChild(line.indent)) {\n context.reader.takeSignificant();\n if (child.content === 'arguments' && !hasArguments) args.push(...parseValues(context.valueContext, child, true, undefined, context));\n else if (child.content === 'arguments') reject(DiagnosticCodes.DuplicateSpecificationQueryArguments, `Query assertion '${match[1]}' already declares arguments`, child);\n else if (child.content === 'result') results.push({ kind: 'SpecificationQueryResultSyntax', properties: parseValues(context.valueContext, child, true), exactly: false, location: locationOf(child) });\n else reject(DiagnosticCodes.UnknownSpecificationQueryDirective, `Unexpected '${firstWord(child.content)}' in 'then query' body - expected arguments or result`, child);\n hasArguments ||= child.content === 'arguments';\n }\n body.thenQueries.push({ kind: 'SpecificationQuerySyntax', query: match[1], arguments: args, results, exactly: match[2] !== undefined, location: locationOf(line) });\n return;\n }\n if (readModelPrefix.test(line.content)) {\n const readModel = parseReadModelStep(context, line, thenReadModelPattern, 'then');\n if (readModel !== undefined) {\n body.thenReadModels.push(readModel);\n }\n return;\n }\n const event = parseEventStep(context, line, thenEventPattern, 'then');\n if (event !== undefined) {\n body.thenEvents.push(event);\n }\n}\n\n// The Exact port of C# ParseAbsentReadModel: every malformed part is reported rather than dropped.\nfunction parseAbsentReadModel(context: ParserContext, line: SourceLine): SpecificationAbsentReadModelSyntax | null {\n const match = thenAbsentReadModelPattern.exec(line.content);\n if (match !== null && match[2] === undefined && context.peekChild(line.indent) !== undefined) {\n return { kind: 'SpecificationAbsentReadModelSyntax', name: match[1], key: parseStructuredValue(context, line, undefined), location: locationOf(line) } as SpecificationAbsentReadModelSyntax;\n }\n if (match === null || match[2] === undefined || match[2].endsWith(' exactly')) {\n context.error(DiagnosticCodes.InvalidAbsentReadModelStep, `Invalid absence assertion '${line.content}' - expected 'then no readmodel <ReadModelType> for <key>'`, locationOf(line));\n skipBody(context, line.indent);\n return null;\n }\n const keyText = match[2].trim();\n const validString = !(keyText.startsWith('\"') || keyText.startsWith(\"'\")) || absentKeyStringPattern.test(keyText);\n const key = validString ? parseMappingSource(keyText, locationOf(line), context.valueContext) : null;\n const concrete = key !== null && (key.kind === 'LiteralExpressionSyntax' || key.kind === 'ObjectExpressionSyntax' || key.kind === 'CaseValueExpressionSyntax');\n if (!concrete) context.error(DiagnosticCodes.InvalidAbsentReadModelStep, `Invalid absence key '${keyText}' - expected exactly one concrete value.`, locationOf(line));\n let hasChildren = false;\n for (let child = context.peekChild(line.indent); child !== undefined; child = context.peekChild(line.indent)) {\n context.reader.takeSignificant();\n context.error(DiagnosticCodes.InvalidAbsentReadModelStep, 'An absent read model assertion cannot have child mappings.', locationOf(child));\n hasChildren = true;\n }\n return hasChildren || !concrete ? null : { kind: 'SpecificationAbsentReadModelSyntax', name: match[1], key, location: locationOf(line) } as SpecificationAbsentReadModelSyntax;\n}\n\nfunction skipBody(context: ParserContext, indent: number): void {\n if (context.sourceOptions.numericMode !== 'exact') return context.skipBlock(indent);\n context.skipOpaqueBlock(indent);\n}\n\nfunction parseClock(context: ParserContext, line: SourceLine, keyword: string): SpecificationClockSyntax | null {\n const match = clockPattern.exec(line.content);\n skipBody(context, line.indent);\n if (match === null || match[1] !== keyword) {\n context.error(containsCaseReference(line.content) ? DiagnosticCodes.InvalidSpecificationCaseReference : DiagnosticCodes.InvalidSpecificationClock,\n `Invalid '${keyword} clock' - expected '${keyword} clock \"<ISO 8601 instant>\"', such as '${keyword} clock \"2026-10-05T08:00:00Z\"'`, locationOf(line));\n return null;\n }\n return { kind: 'SpecificationClockSyntax', instant: match[2], location: locationOf(line) };\n}\n\nfunction parseGivenGenerated(context: ParserContext, line: SourceLine): SpecificationGeneratedValueSyntax | null {\n const match = givenGeneratedPattern.exec(line.content);\n const block = match === null ? givenGeneratedBlockPattern.exec(line.content) : null;\n if (block !== null) {\n return { kind: 'SpecificationGeneratedValueSyntax', command: block[1], property: block[2], source: parseStructuredValue(context, line, block[3] as StructuredMarker), location: locationOf(line) };\n }\n if (match === null) {\n context.error(DiagnosticCodes.InvalidGeneratedFixture, \"Expected 'given generated <Command>.<property> = <value>' with exactly one concrete value.\", locationOf(line));\n context.skipBlock(line.indent);\n return null;\n }\n const location = locationOf(line);\n const source = parseConcrete(context, match[3], { ...location, column: location.column + line.content.indexOf(match[3], line.content.indexOf('=') + 1) }, DiagnosticCodes.InvalidGeneratedFixture);\n const child = context.peekChild(line.indent);\n if (child !== undefined) {\n context.error(DiagnosticCodes.InvalidGeneratedFixture, 'A pinned generated value cannot have child directives.', locationOf(child));\n context.skipBlock(line.indent);\n }\n return source === null ? null : { kind: 'SpecificationGeneratedValueSyntax', command: match[1], property: match[2], source, location };\n}\n\nfunction parseCapture(context: ParserContext, line: SourceLine, keyword: string): SpecificationCaptureSyntax | null {\n return parseNamedStep(context, line, capturePattern, DiagnosticCodes.InvalidSpecificationCapture, `${keyword} capture`, `${keyword} capture <Capture>`,\n (capture, record) => ({ kind: 'SpecificationCaptureSyntax', capture, record, location: locationOf(line) }));\n}\n\n// A step naming one thing on its header line, with '<field> = <value>' lines beneath it.\nfunction parseNamedStep<T>(\n context: ParserContext, line: SourceLine, regex: RegExp, code: string, keyword: string, expected: string,\n create: (name: string, values: PropertyMappingSyntax[]) => T, queryArguments = false): T | null {\n const match = regex.exec(line.content);\n if (match === null) {\n context.error(code, `Invalid '${keyword}' declaration '${line.content}' - expected '${expected}'`, locationOf(line));\n skipBody(context, line.indent);\n return null;\n }\n return create(match[1], parseValues(context, line, false, undefined, queryArguments ? context : undefined));\n}\n\nfunction parseResult(context: ParserContext, line: SourceLine, body: SpecificationBody): void {\n const match = thenResultPattern.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.InvalidSpecificationQueryAction, `Invalid 'then result' declaration '${line.content}' - expected 'then result [exactly]'`, locationOf(line));\n skipBody(context, line.indent);\n return;\n }\n body.thenResults.push({ kind: 'SpecificationQueryResultSyntax', properties: parseValues(context, line), exactly: match[1] !== undefined, location: locationOf(line) });\n}\n\nfunction parseReadModelStep(context: ParserContext, line: SourceLine, regex: RegExp, keyword: string): SpecificationReadModelSyntax | undefined {\n const match = regex.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.InvalidReadModelStep, `Invalid '${keyword} readmodel' declaration '${line.content}' - expected '${keyword} readmodel <ReadModelType>'`, locationOf(line));\n skipBody(context, line.indent);\n return undefined;\n }\n return {\n kind: 'SpecificationReadModelSyntax',\n name: match[1],\n properties: parseValues(context, line, false, match),\n exactly: keyword === 'then' && match.groups?.exactly !== undefined,\n inlineProperty: match.groups?.property ?? null,\n location: locationOf(line),\n };\n}\n\nfunction parseEventStep(context: ParserContext, line: SourceLine, regex: RegExp, keyword: string): SpecificationEventSyntax | undefined {\n const match = regex.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.InvalidEventStep, `Invalid '${keyword}' declaration '${line.content}' - expected '${keyword} <EventType>'`, locationOf(line));\n skipBody(context, line.indent);\n return undefined;\n }\n return { kind: 'SpecificationEventSyntax', eventType: match[1], ...parseValuesWithEventSource(context, line, undefined, match, keyword), inlineProperty: match.groups?.property ?? null, location: locationOf(line) };\n}\n\nexport const specificationStream = sourceStreamPattern('^stream\\\\s+([A-Za-z_]\\\\w*)\\\\.([A-Za-z_]\\\\w*)$');\nconst specificationStreamId = pattern('^streamId\\\\s*=(?!=|>)\\\\s*(.+)$');\n\nfunction parseValuesWithEventSource(context: ParserContext, parent: SourceLine, generated?: PropertyMappingSyntax[], inline?: RegExpExecArray, eventKeyword?: string): { values: PropertyMappingSyntax[]; for: ExpressionSyntax | null; stream?: SpecificationStreamSyntax; noStream?: SpecificationNoStreamSyntax } {\n const values: PropertyMappingSyntax[] = [];\n addInlineValue(context, parent, inline, values);\n let eventSource: ExpressionSyntax | null = null;\n let stream: SpecificationStreamSyntax | undefined;\n let noStream: SpecificationNoStreamSyntax | undefined;\n let hasRoute = false;\n for (let child = context.peekChild(parent.indent); child !== undefined; child = context.peekChild(parent.indent)) {\n context.reader.takeSignificant();\n let structured: PropertyMappingSyntax | undefined;\n if (generated !== undefined && generatedFixturePrefix.test(child.content)) {\n const fixture = parseConcreteMapping(context, child, generatedFixturePattern, DiagnosticCodes.InvalidGeneratedFixture);\n if (fixture !== null) generated.push(fixture);\n continue;\n }\n const mapping = mappingPattern.exec(child.content);\n if (mapping !== null) {\n addFixtureValue(context, values, mappingOf(context, child, mapping));\n } else if (firstWord(child.content) === 'stream' || child.content.startsWith('no stream')) {\n if (eventKeyword === undefined) {\n context.error(DiagnosticCodes.SpecificationStreamOnCommand, 'A command occurrence cannot declare a route; assert it on a then event.', locationOf(child));\n context.skipBlock(child.indent);\n continue;\n }\n if (hasRoute) {\n context.error(DiagnosticCodes.InvalidSpecificationStream, 'An event occurrence declares at most one stream or no stream directive.', locationOf(child));\n context.skipBlock(child.indent);\n continue;\n }\n const route = specificationStream.exec(child.content);\n if (child.content === 'no stream' && (eventKeyword === 'then' || eventKeyword === 'when redelivered')) {\n noStream = { kind: 'SpecificationNoStreamSyntax', location: locationOf(child) };\n hasRoute = true;\n rejectSpecificationRouteChildren(context, child);\n } else if (route !== null) {\n stream = parseSpecificationStream(context, child, route);\n hasRoute = true;\n } else {\n context.error(DiagnosticCodes.InvalidSpecificationStream, \"Expected 'stream Source.Stream', or 'no stream' on a then event.\", locationOf(child));\n context.skipBlock(child.indent);\n }\n } else if (firstWord(child.content) === 'for') {\n const source = child.content.substring('for'.length).trim();\n if (source.length === 0) {\n context.error(DiagnosticCodes.InvalidSpecificationEventSource, 'Invalid event-source assertion \\'for\\' - expected \\'for <value>\\'', locationOf(child));\n } else if (eventSource !== null) {\n context.error(DiagnosticCodes.DuplicateSpecificationEventSource, 'A specification step can declare its event-source assertion only once', locationOf(child));\n } else {\n eventSource = parseMappingSource(source, locationOf(child), context);\n }\n } else if ((structured = tryParseStructuredMapping(context, child)) !== undefined) {\n addFixtureValue(context, values, structured);\n } else {\n context.error(DiagnosticCodes.InvalidSpecificationValue, `Invalid property mapping '${child.content}' - expected '<property> = <value>'`, locationOf(child), diagnosticText('text', child.content));\n }\n }\n return { values, for: eventSource, ...(stream === undefined ? {} : { stream }), ...(noStream === undefined ? {} : { noStream }) };\n}\n\nexport function parseSpecificationStream(context: ParserContext, header: SourceLine, route: RegExpExecArray): SpecificationStreamSyntax {\n let streamId: PropertyMappingSyntax | null = null;\n let streamIdParts: PropertyMappingSyntax[] = [];\n let block = false;\n const directiveLocations: Record<string, ReturnType<typeof locationOf>> = {};\n for (let child = context.peekChild(header.indent); child !== undefined; child = context.peekChild(header.indent)) {\n context.reader.takeSignificant();\n if (child.content === 'streamId') {\n if (streamId !== null || block) {\n context.error(DiagnosticCodes.InvalidSpecificationStream, \"Declare either one 'streamId = <literal>' mapping or one streamId part block.\", locationOf(child));\n context.skipBlock(child.indent);\n } else {\n block = true;\n directiveLocations.streamId = locationOf(child);\n streamIdParts = parseRouteParts(context, child, DiagnosticCodes.InvalidSpecificationStream).map(part => part.source.kind === 'PathExpressionSyntax' && part.source.path.startsWith('case.')\n ? { ...part, source: parseMappingSource(part.source.path, part.source.location, context) } : part);\n }\n continue;\n }\n const mapping = specificationStreamId.exec(child.content);\n if (mapping === null || streamId !== null || block) {\n context.error(DiagnosticCodes.InvalidSpecificationStream, \"Declare either one 'streamId = <literal>' mapping or one streamId part block.\", locationOf(child));\n context.skipBlock(child.indent);\n continue;\n }\n const location = { ...locationOf(child), column: child.indent + 1 + child.content.indexOf(mapping[1], child.content.indexOf('=') + 1) };\n streamId = { kind: 'PropertyMappingSyntax', property: 'streamId', source: parseMappingSource(mapping[1], location, context), location: locationOf(child) };\n rejectSpecificationRouteChildren(context, child);\n }\n return { kind: 'SpecificationStreamSyntax', eventSource: route[1], stream: route[2], streamId, streamIdParts, directiveLocations,\n referenceLocation: { ...locationOf(header), column: header.indent + 1 + header.content.indexOf(route[1], 'stream'.length) },\n referenceLength: route[1].length + 1 + route[2].length, location: locationOf(header) };\n}\n\nexport function rejectSpecificationRouteChildren(context: ParserContext, line: SourceLine): void {\n const child = context.peekChild(line.indent);\n if (child !== undefined) {\n context.error(DiagnosticCodes.InvalidSpecificationStream, 'This directive cannot have children.', locationOf(child));\n context.skipBlock(line.indent);\n }\n}\n\nfunction parseValues(context: ParserContext, parent: SourceLine, nativeIdentifiers = false, inline?: RegExpExecArray, queryArgumentsContext?: ParserContext): PropertyMappingSyntax[] {\n const values: PropertyMappingSyntax[] = [];\n addInlineValue(context, parent, inline, values);\n for (let child = context.peekChild(parent.indent); child !== undefined; child = context.peekChild(parent.indent)) {\n context.reader.takeSignificant();\n const mapping = (nativeIdentifiers || context.sourceOptions.numericMode === 'exact' ? nativeMappingPattern : mappingPattern).exec(child.content);\n const structured = mapping === null ? tryParseStructuredMapping(context, child) : undefined;\n if (mapping === null && structured === undefined) {\n context.error(DiagnosticCodes.InvalidSpecificationValue, `Invalid property mapping '${child.content}' - expected '<property> = <value>'`, locationOf(child), diagnosticText('text', child.content));\n continue;\n }\n const value = structured ?? mappingOf(context, child, mapping!, nativeIdentifiers);\n if (queryArgumentsContext !== undefined) {\n if (values.some(existing => existing.property === value.property)) {\n queryArgumentsContext.error(DiagnosticCodes.UnknownSpecificationQueryArgument, `Query argument '${value.property}' is repeated.`, value.location, diagnosticText('argument', value.property));\n }\n values.push(value);\n } else {\n addFixtureValue(context, values, value);\n }\n }\n return values;\n}\n\nfunction mappingOf(context: ParserContext, line: SourceLine, match: RegExpExecArray, nativeIdentifiers = false): PropertyMappingSyntax {\n return { kind: 'PropertyMappingSyntax', property: match[1], source: parseMappingSource(match[2], locationOf(line), context, nativeIdentifiers), location: locationOf(line) };\n}\n\nconst lifecycleWhenStart = pattern('^when\\\\s+start\\\\s+(.+)$');\nconst lifecycleOutcome = pattern('^outcome\\\\s+([A-Za-z_]\\\\w*)\\\\s+([A-Za-z_]\\\\w*)$');\nconst lifecycleThen = pattern('^then\\\\s+(is|sends|starts|completes|fails\\\\s+at|waits\\\\s+at)(?:\\\\s+([A-Za-z_]\\\\w*))?$');\n\nfunction lifecycleExpectation(line: SourceLine): LifecycleExpectationSyntax | undefined {\n const match = lifecycleThen.exec(line.content);\n if (match === null) return undefined;\n const word = match[1].replace(/\\s+/g, ' ');\n const expectation: LifecycleExpectationKind = word === 'is' ? 'State' : word === 'sends' ? 'Sends' : word === 'starts' ? 'Starts' : word === 'completes' ? 'Completes' : word === 'fails at' ? 'Fails' : 'Waits';\n if ((match[2] !== undefined) === (expectation === 'Completes')) return undefined;\n return { kind: 'LifecycleExpectationSyntax', expectation, target: match[2] ?? null, location: locationOf(line) };\n}\n\n// A specification written inside a statemachine or a workflow - the port of C# SpecificationParser.ParseLifecycle.\nexport function parseLifecycleSpecification(context: ParserContext, header: SourceLine, code: string): LifecycleSpecificationSyntax {\n const match = specificationHeader.exec(header.content);\n if (match === null) {\n context.error(code, `Invalid specification '${header.content}' - expected 'specification <Name>'.`, locationOf(header));\n skipBody(context, header.indent);\n return { kind: 'LifecycleSpecificationSyntax', name: '', description: null, given: [], whenAppended: null, whenStarted: null, outcomes: [], then: [], location: locationOf(header) };\n }\n const name = match[1];\n let description: string | null = null;\n const given: SpecificationEventSyntax[] = [];\n let whenAppended: SpecificationEventSyntax | null = null;\n let whenStarted: ExpressionSyntax | null = null;\n let whenDeclared = false;\n const outcomes: LifecycleOutcomeSyntax[] = [];\n const then: LifecycleExpectationSyntax[] = [];\n const directiveLocations: Record<string, SourceLocation> = {};\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, `Specification '${name}'`);\n directiveLocations.description ??= locationOf(line);\n } else if (keyword === 'given') {\n const fact = parseEventStep(context, line, givenPattern, 'given');\n if (fact !== undefined) given.push(fact);\n } else if (keyword === 'when') {\n if (whenDeclared) {\n context.error(code, `Specification '${name}' already declares a 'when'.`, locationOf(line));\n skipBody(context, line.indent);\n continue;\n }\n whenDeclared = true;\n const start = lifecycleWhenStart.exec(line.content);\n if (start !== null) {\n const index = line.content.indexOf(start[1], 'when start'.length);\n whenStarted = parseMappingSource(start[1].trim(), sourceLocation(line.number, line.indent + (line.contentOffset ?? 0) + 1 + index, line.path), context);\n } else if (line.content.startsWith('when append')) whenAppended = parseEventStep(context, line, whenAppendPattern, 'when append') ?? null;\n else {\n context.error(code, `Invalid '${line.content}' - expected 'when append <Event>' or 'when start <key>'.`, locationOf(line));\n skipBody(context, line.indent);\n }\n } else if (keyword === 'outcome') {\n const outcome = lifecycleOutcome.exec(line.content);\n if (outcome !== null) outcomes.push({ kind: 'LifecycleOutcomeSyntax', node: outcome[1], outlet: outcome[2], location: locationOf(line) });\n else context.error(code, `Invalid outcome '${line.content}' - expected 'outcome <Node> <outlet>'.`, locationOf(line));\n rejectOperationChildren(context, line, code, 'An outcome cannot have children.');\n } else if (keyword === 'then') {\n const expectation = lifecycleExpectation(line);\n if (expectation !== undefined) then.push(expectation);\n else context.error(code, `Invalid '${line.content}' - expected 'then is <State>', 'then sends <Command>', 'then starts <Workflow>', 'then completes', 'then fails at <Node>' or 'then waits at <Node>'.`, locationOf(line));\n rejectOperationChildren(context, line, code, 'A then line cannot have children.');\n } else {\n context.error(code, `Unexpected '${line.content}' in specification '${name}' - expected description, given, when, outcome or then.`, locationOf(line));\n context.skipBlock(line.indent);\n }\n }\n return { kind: 'LifecycleSpecificationSyntax', name, description, given, whenAppended, whenStarted, outcomes, then, location: locationOf(header), directiveLocations };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SpecificationParser.js","names":["parseMappingSource","operationStepPrefix","pattern","operationStep","header","specificationHeader","callerPersonaPattern","nativePattern","prefix","exactly","dotNetWhitespace","givenPattern","whenAppendPattern","whenPattern","thenEventPattern","thenQueryPrefix","readModelPrefix","givenReadModelPattern","thenReadModelPattern","thenNoPrefix","thenErrorPattern","stringBodyPattern","mappingPattern","nativeMappingPattern","givenTimeZonePrefix","givenTimeZonePattern","givenClockPrefix","givenCapturePrefix","thenInvokesPrefix","thenInvokesPattern","givenGeneratedPrefix","givenGeneratedPattern","givenGeneratedBlockPattern","whenClockPrefix","whenTriggerPrefix","whenCapturePrefix","whenQueryPrefix","thenResultPrefix","noResultPrefix","whenRedeliveredPrefix","whenRedeliveredPattern","noEventsPrefix","clockPattern","whenTriggerPattern","capturePattern","whenQueryPattern","thenResultPattern","thenAbsentReadModelPattern","absentKeyStringPattern","thenQueryPattern","name","line","context","DiagnosticCodes","locationOf","description","parameters","cases","body","child","isFileDirective","keyword","firstWord","parameter","parseParameter","row","parseCase","parseDescription","_","_noEventsLine","members","specification","validateTable","action","query","outcome","match","values","value","parseConcreteMapping","rejectOperationChildren","givenRules","rule","state","unescapeString","pinned","capture","readModel","event","callerRolePattern","callerClaimPattern","authenticated","roles","claims","role","claim","containsCaseReference","appends","code","generatedValues","thenReturnsPrefix","expectation","parseReturn","invocation","caseValue","parseSpecificationValue","error","absent","parseStructuredValue","key","exact","at","message","args","results","hasArguments","keyText","concrete","hasChildren","indent","block","location","source","parseConcrete","regex","expected","create","queryArguments","specificationStream","sourceStreamPattern","specificationStreamId","addInlineValue","parent","inline","eventSource","stream","noStream","hasRoute","structured","generated","generatedFixturePrefix","fixture","generatedFixturePattern","mapping","addFixtureValue","eventKeyword","route","tryParseStructuredMapping","diagnosticText","streamId","streamIdParts","directiveLocations","parseRouteParts","part","nativeIdentifiers","queryArgumentsContext","existing","lifecycleWhenStart","lifecycleOutcome","lifecycleThen","word","given","whenAppended","whenStarted","whenDeclared","outcomes","then","fact","start","index","sourceLocation"],"sources":["../../../../../../Compiler/Parsing/SpecificationParser.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 { parseRouteParts } from './EventSourceParser';\nimport { diagnosticText } from '../Diagnostics/DiagnosticArgument';\nimport { DiagnosticCodes } from '../Diagnostics/DiagnosticCodes';\nimport { ExpressionSyntax, PropertyMappingSyntax } from '../Syntax/Expressions';\nimport {\n SpecificationCaptureSyntax, SpecificationClockSyntax, SpecificationTimeZoneSyntax, SpecificationGeneratedValueSyntax, SpecificationCommandSyntax, SpecificationErrorSyntax, SpecificationEventSyntax, SpecificationStreamSyntax, SpecificationNoStreamSyntax,\n SpecificationNoResultSyntax, SpecificationQueryResultSyntax, SpecificationReadModelSyntax, SpecificationSyntax, SpecificationTriggerSyntax,\n SpecificationWhenQuerySyntax, SpecificationCallerPersonaSyntax, SpecificationOperationFailureSyntax, SpecificationOperationSyntax, SpecificationCompensatedSyntax, SpecificationRedeliverySyntax,\n} from '../Syntax/Specifications';\nimport { SpecificationDeniedSyntax, SpecificationReturnSyntax } from '../Syntax/Responses';\nimport { dotNetWhitespace, nativePattern, pattern } from '../Text/patterns';\nimport { sourceStreamPattern } from '../Text/SourceStreamNames';\nimport { stringBodyPattern, unescapeString } from '../Text/StringLiteral';\nimport { containsCaseReference, parseCase, parseParameter, parseSpecificationValue as parseMappingSource, validateTable } from './SpecificationCaseParser';\nimport { parseDescription } from './DescriptionParser';\nimport { isFileDirective } from './FileReferences';\nimport { firstWord } from './LineText';\nimport { ParserContext } from './ParserContext';\nimport { addFixtureValue, addInlineValue } from './SpecificationExampleParser';\nimport { rejectOperationChildren } from './OperationParser';\nimport { generatedFixturePattern, generatedFixturePrefix, parseConcrete, parseConcreteMapping, parseReturn, thenReturnsPrefix } from './SpecificationResponseParser';\nimport { locationOf, SourceLine } from './SourceLine';\nimport { SourceLocation, sourceLocation } from '../Diagnostics/SourceLocation';\nimport { LifecycleExpectationKind, LifecycleExpectationSyntax, LifecycleOutcomeSyntax, LifecycleSpecificationSyntax } from '../Syntax/Lifecycles';\nimport { SpecificationAbsentReadModelSyntax, SpecificationCallerClaimSyntax, SpecificationCallerSyntax, SpecificationInvocationSyntax, SpecificationQuerySyntax } from '../Syntax/Specifications';\nimport { parseStructuredValue, StructuredMarker, tryParseStructuredMapping } from './StructuredBlockParser';\n\nconst operationStepPrefix = pattern('^(?:given\\\\s+operation|then\\\\s+(?:operation|compensated))(?:\\\\s|$)');\nconst operationStep = pattern('^(given operation|then operation|then compensated)\\\\s+([A-Za-z_]\\\\w*(?:\\\\.[A-Za-z_]\\\\w*)*)(\\\\s+fails)?$');\nconst header = pattern('^specification\\\\s+([A-Za-z_]\\\\w*)$');\nconst specificationHeader = header;\nconst callerPersonaPattern = pattern('^given caller as ([A-Za-z_]\\\\w*)$');\nconst stepName = '([A-Z]\\\\w*(?:\\\\.\\\\w+)*)';\nconst inlineAssignment = '(?:\\\\s+(?<property>[\\\\w.]+)\\\\s*=(?!=|>)\\\\s*(?<value>.+))?';\nconst stepPattern = (prefix: string, exactly = ''): RegExp => nativePattern(`^${prefix}\\\\s+${stepName}${exactly}${inlineAssignment}$`.replaceAll('\\\\s', dotNetWhitespace));\nconst givenPattern = stepPattern('given');\nconst whenAppendPattern = stepPattern('when\\\\s+append');\nconst whenPattern = stepPattern('when');\nconst thenEventPattern = stepPattern('then');\nconst thenQueryPrefix = pattern('^then\\\\s+query\\\\b');\nconst readModelPrefix = pattern('^(?:given|then)\\\\s+readmodel\\\\b');\nconst givenReadModelPattern = stepPattern('given\\\\s+readmodel');\nconst thenReadModelPattern = stepPattern('then\\\\s+readmodel', '(?<exactly>\\\\s+exactly)?');\nconst thenNoPrefix = pattern('^then\\\\s+no\\\\b');\nconst thenErrorPattern = pattern(`^then\\\\s+error\\\\s+\"(${stringBodyPattern})\"$`);\nconst mappingPattern = pattern('^([\\\\w.]+)\\\\s*=(?!=|>)\\\\s*(.+)$');\nconst nativeMappingPattern = nativePattern('^([\\\\w.]+)\\\\s*=(?!=|>)\\\\s*(.+)$');\nconst givenTimeZonePrefix = pattern('^given\\\\s+time\\\\s+zone\\\\b');\nconst givenTimeZonePattern = pattern(`^given\\\\s+time\\\\s+zone\\\\s+\"(${stringBodyPattern})\"$`);\nconst givenClockPrefix = pattern('^given\\\\s+clock\\\\b');\nconst givenCapturePrefix = pattern('^given\\\\s+capture\\\\b');\nconst thenInvokesPrefix = pattern('^then\\\\s+invokes\\\\b');\nconst thenInvokesPattern = pattern('^then\\\\s+invokes\\\\s+([A-Za-z_]\\\\w*(?:\\\\.[A-Za-z_]\\\\w*)*)$');\nconst givenGeneratedPrefix = pattern('^given\\\\s+generated\\\\b');\nconst givenGeneratedPattern = pattern('^given\\\\s+generated\\\\s+([A-Z]\\\\w*)\\\\.([a-z_]\\\\w*)\\\\s*=(?!=|>)\\\\s*(.+)$');\nconst givenGeneratedBlockPattern = pattern('^given\\\\s+generated\\\\s+([A-Z]\\\\w*)\\\\.([a-z_]\\\\w*)(?:\\\\s+(none|empty))?$');\nconst whenClockPrefix = pattern('^when\\\\s+clock\\\\b');\nconst whenTriggerPrefix = pattern('^when\\\\s+trigger\\\\b');\nconst whenCapturePrefix = pattern('^when\\\\s+capture\\\\b');\nconst whenQueryPrefix = pattern('^when\\\\s+query\\\\b');\nconst thenResultPrefix = pattern('^then\\\\s+result\\\\b');\nconst noResultPrefix = pattern('^then\\\\s+no\\\\s+result\\\\b');\nconst whenRedeliveredPrefix = nativePattern('^when\\\\s+redelivered\\\\b');\nconst whenRedeliveredPattern = nativePattern('^when\\\\s+redelivered\\\\s+([A-Za-z_]\\\\w*(?:\\\\.\\\\w+)*)\\\\s+to\\\\s+([A-Za-z_]\\\\w*(?:\\\\.\\\\w+)*)$');\nconst noEventsPrefix = pattern('^then\\\\s+no\\\\s+events\\\\b');\n\n// An instant in ISO 8601 - a date, a time to the minute or finer, and an explicit offset or Z - so the same text\n// means the same moment wherever the specification runs.\nconst clockPattern = pattern('^(given|when)\\\\s+clock\\\\s+\"(\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}(?::\\\\d{2}(?:\\\\.\\\\d+)?)?(?:Z|[+-]\\\\d{2}:\\\\d{2}))\"$');\nconst whenTriggerPattern = pattern('^when\\\\s+trigger\\\\s+([A-Za-z_]\\\\w*)$');\nconst capturePattern = pattern('^(?:given|when)\\\\s+capture\\\\s+([A-Za-z_]\\\\w*)$');\nconst whenQueryPattern = pattern('^when\\\\s+query\\\\s+([A-Za-z_]\\\\w*(?:\\\\.\\\\w+)*)$');\nconst thenResultPattern = pattern('^then\\\\s+result(\\\\s+exactly)?$');\nconst thenAbsentReadModelPattern = nativePattern('^then\\\\s+no\\\\s+readmodel\\\\s+([A-Z]\\\\w*)\\\\s+for(?:\\\\s+(.+))?$');\nconst absentKeyStringPattern = nativePattern(`^(?:\"${stringBodyPattern}\"|'(?:[^'\\\\\\\\]|\\\\\\\\.)*')$`);\nconst thenQueryPattern = nativePattern('^then\\\\s+query\\\\s+([A-Za-z_]\\\\w*(?:\\\\.\\\\w+)*)(\\\\s+exactly)?$');\n\ninterface SpecificationBody {\n given: SpecificationEventSyntax[];\n givenReadModels: SpecificationReadModelSyntax[];\n when: SpecificationCommandSyntax | null;\n whenAppended: SpecificationEventSyntax | null;\n whenRedelivered: SpecificationRedeliverySyntax | null;\n whenDeclared: boolean;\n thenEvents: SpecificationEventSyntax[];\n thenEventsInAnyOrder: boolean;\n thenNoEvents: boolean;\n noEventsLine?: SourceLine;\n thenReadModels: SpecificationReadModelSyntax[];\n thenErrors: SpecificationErrorSyntax[];\n thenAbsentReadModels: SpecificationAbsentReadModelSyntax[];\n thenQueries: SpecificationQuerySyntax[];\n givenClock: SpecificationClockSyntax | null;\n givenTimeZone: SpecificationTimeZoneSyntax | null;\n givenCaptures: SpecificationCaptureSyntax[];\n givenGenerated?: SpecificationGeneratedValueSyntax[];\n whenClock: SpecificationClockSyntax | null;\n whenTrigger: SpecificationTriggerSyntax | null;\n whenCapture: SpecificationCaptureSyntax | null;\n whenQuery: SpecificationWhenQuerySyntax | null;\n thenResults: SpecificationQueryResultSyntax[];\n thenNoResult: SpecificationNoResultSyntax | null;\n thenDenied: SpecificationDeniedSyntax | null;\n givenCaller: SpecificationCallerSyntax | null;\n givenCallerPersona?: SpecificationCallerPersonaSyntax;\n thenReturns: SpecificationReturnSyntax | null;\n givenOperationFailures: SpecificationOperationFailureSyntax[];\n thenOperations: SpecificationOperationSyntax[];\n thenCompensated: SpecificationCompensatedSyntax[];\n thenInvocations?: SpecificationInvocationSyntax[];\n}\n\nexport function parseSpecification(context: ParserContext, line: SourceLine): SpecificationSyntax {\n const name = header.exec(line.content)?.[1] ?? '';\n if (name === '') {\n context.error(DiagnosticCodes.InvalidSpecificationDeclaration, `Invalid specification declaration '${line.content}' - expected 'specification <Name>'`, locationOf(line));\n }\n let description: string | null = null;\n const parameters: NonNullable<SpecificationSyntax['parameters']>[number][] = [];\n const cases: NonNullable<SpecificationSyntax['cases']>[number][] = [];\n const body: SpecificationBody = {\n givenOperationFailures: [], thenOperations: [], thenCompensated: [], thenAbsentReadModels: [], thenQueries: [],\n given: [], givenReadModels: [], when: null, whenAppended: null, whenRedelivered: null, whenDeclared: false,\n thenEvents: [], thenEventsInAnyOrder: false, thenNoEvents: false, thenReadModels: [], thenErrors: [],\n givenClock: null, givenTimeZone: null, givenCaptures: [], whenClock: null, whenTrigger: null, whenCapture: null, whenQuery: null, thenResults: [], thenNoResult: null, thenDenied: null, givenCaller: null, thenReturns: null,\n };\n for (let child = context.peekChild(line.indent); child !== undefined; child = context.peekChild(line.indent)) {\n context.reader.takeSignificant();\n if (isFileDirective(child)) {\n continue;\n }\n if (parseOperationStep(context, child, body)) continue;\n // Absence assertions admit any whitespace after 'then'; every other directive keeps its first word.\n const keyword = thenNoPrefix.test(child.content) ? 'then' : firstWord(child.content);\n if (keyword === 'parameter') {\n const parameter = parseParameter(context, child);\n if (parameter !== null) parameters.push(parameter);\n } else if (keyword === 'case') {\n const row = parseCase(context, child);\n if (row !== null) cases.push(row);\n } else if (keyword === 'description') {\n description = parseDescription(context, child, description, `Specification '${name}'`);\n } else if (keyword === 'given') {\n parseGiven(context, child, body);\n } else if (keyword === 'when') {\n parseWhen(context, child, body, name);\n } else if (keyword === 'then') {\n parseThen(context, child, body);\n } else {\n context.error(DiagnosticCodes.UnknownSpecificationDirective, `Unexpected '${firstWord(child.content)}' in specification body`, locationOf(child));\n context.skipBlock(child.indent);\n }\n }\n if (body.noEventsLine !== undefined && (body.thenEvents.length > 0 || body.thenEventsInAnyOrder || body.thenErrors.length > 0 || body.thenDenied !== null)) {\n context.error(DiagnosticCodes.InvalidNoEventsExpectation,\n \"'then no events' cannot accompany event, event-order, error or denial expectations.\", locationOf(body.noEventsLine));\n }\n validateQueryRejection(context, line, body);\n const { whenDeclared: _, noEventsLine: _noEventsLine, ...members } = body;\n const specification: SpecificationSyntax = { kind: 'SpecificationSyntax', sourceOptions: context.sourceOptions, name, description, ...members,\n ...(parameters.length === 0 ? {} : { parameters }), ...(cases.length === 0 ? {} : { cases }), location: locationOf(line) };\n validateTable(specification, context);\n return specification;\n}\n\nfunction validateQueryRejection(context: ParserContext, line: SourceLine, body: SpecificationBody): void {\n if (!isQueryRejectionCandidate(body) || isWellFormedQueryRejection(body)) return;\n context.error(DiagnosticCodes.MismatchedSpecificationQueryResult,\n \"A query rejection requires exactly one query and one 'then error', no action, and no other outcomes\", locationOf(line));\n}\n\nfunction isQueryRejectionCandidate(body: SpecificationBody): boolean {\n return body.thenErrors.length > 0 && queriedCallCount(body) > 0 && (body.whenQuery !== null || !hasAction(body));\n}\n\nfunction isWellFormedQueryRejection(body: SpecificationBody): boolean {\n return !hasAction(body) && hasOneQueryAndOneError(body) && !hasOtherOutcome(body);\n}\n\nfunction hasOneQueryAndOneError(body: SpecificationBody): boolean {\n return queriedCallCount(body) === 1 && body.thenErrors.length === 1;\n}\n\nfunction hasAction(body: SpecificationBody): boolean {\n return [body.when, body.whenAppended, body.whenClock, body.whenTrigger, body.whenCapture, body.whenRedelivered].some(action => action !== null);\n}\n\nfunction queriedCallCount(body: SpecificationBody): number {\n return body.thenQueries.length + (body.whenQuery === null ? 0 : 1);\n}\n\nfunction hasOtherOutcome(body: SpecificationBody): boolean {\n return [\n body.thenResults.length > 0,\n body.thenNoResult !== null,\n body.thenDenied !== null,\n body.thenEvents.length > 0,\n body.thenNoEvents,\n body.thenEventsInAnyOrder,\n body.thenReadModels.length > 0,\n body.thenAbsentReadModels.length > 0,\n body.thenReturns !== null,\n body.thenQueries.some(query => query.results.length > 0)\n ].some(outcome => outcome);\n}\n\nfunction parseOperationStep(context: ParserContext, line: SourceLine, body: SpecificationBody): boolean {\n if (!operationStepPrefix.test(line.content)) return false;\n const match = operationStep.exec(line.content);\n if (match === null || (match[1] === 'given operation') !== (match[3] !== undefined)) {\n context.error(DiagnosticCodes.InvalidOperationSpecification, \"Expected 'given operation <Name> fails', 'then operation <Name>' or 'then compensated <Name>'.\", locationOf(line));\n skipBody(context, line.indent);\n } else if (match[1] === 'then operation') {\n const values: PropertyMappingSyntax[] = [];\n for (let child = context.peekChild(line.indent); child !== undefined; child = context.peekChild(line.indent)) {\n context.reader.takeSignificant();\n const value = parseConcreteMapping(context, child, mappingPattern, DiagnosticCodes.InvalidOperationSpecification);\n if (value !== null) values.push(value);\n }\n body.thenOperations.push({ kind: 'SpecificationOperationSyntax', operation: match[2], values, location: locationOf(line) });\n } else {\n rejectOperationChildren(context, line, DiagnosticCodes.InvalidOperationSpecification, 'Failure and compensation assertions cannot have children.');\n if (match[1] === 'given operation') body.givenOperationFailures.push({ kind: 'SpecificationOperationFailureSyntax', operation: match[2], location: locationOf(line) });\n else body.thenCompensated.push({ kind: 'SpecificationCompensatedSyntax', operation: match[2], location: locationOf(line) });\n }\n return true;\n}\n\n// The Given state the rules read and write: a narrow view of the specification body, so null versus undefined and lazy initialization stay the body's own.\ntype GivenState = Pick<SpecificationBody, 'given' | 'givenReadModels' | 'givenClock' | 'givenTimeZone' | 'givenCaptures' | 'givenGenerated' | 'givenCaller' | 'givenCallerPersona'>;\n\ninterface GivenRule {\n readonly matches: (line: SourceLine) => boolean;\n readonly parse: (context: ParserContext, line: SourceLine, state: GivenState) => void;\n}\n\n// Tried in order; the first match handles the line. The event rule matches everything, so a malformed Given keeps the event parser's diagnostics and recovery.\nconst givenRules: readonly GivenRule[] = [\n { matches: line => givenClockPrefix.test(line.content), parse: parseGivenClock },\n { matches: line => givenTimeZonePrefix.test(line.content), parse: parseGivenTimeZone },\n { matches: line => givenGeneratedPrefix.test(line.content), parse: parseGivenGeneratedValue },\n { matches: line => givenCapturePrefix.test(line.content), parse: parseGivenCapture },\n { matches: line => line.content.startsWith('given caller'), parse: parseGivenCaller },\n { matches: line => readModelPrefix.test(line.content), parse: parseGivenReadModel },\n { matches: () => true, parse: parseGivenEvent },\n];\n\nfunction parseGiven(context: ParserContext, line: SourceLine, state: GivenState): void {\n for (const rule of givenRules) {\n if (rule.matches(line)) {\n rule.parse(context, line, state);\n return;\n }\n }\n}\n\nfunction parseGivenClock(context: ParserContext, line: SourceLine, state: GivenState): void {\n if (state.givenClock !== null) {\n context.error(DiagnosticCodes.InvalidSpecificationClock, 'A specification states its clock at most once.', locationOf(line));\n skipBody(context, line.indent);\n } else {\n state.givenClock = parseClock(context, line, 'given');\n }\n}\n\nfunction parseGivenTimeZone(context: ParserContext, line: SourceLine, state: GivenState): void {\n const match = givenTimeZonePattern.exec(line.content);\n skipBody(context, line.indent);\n if (state.givenTimeZone !== null || match === null) {\n context.error(DiagnosticCodes.InvalidSpecificationTimeZone, \"A specification states its time zone at most once, as 'given time zone \\\"<id>\\\"'.\", locationOf(line));\n } else {\n state.givenTimeZone = { kind: 'SpecificationTimeZoneSyntax', id: unescapeString(match[1]), location: locationOf(line) };\n }\n}\n\nfunction parseGivenGeneratedValue(context: ParserContext, line: SourceLine, state: GivenState): void {\n const pinned = parseGivenGenerated(context, line);\n if (pinned !== null) {\n (state.givenGenerated ??= []).push(pinned);\n }\n}\n\nfunction parseGivenCapture(context: ParserContext, line: SourceLine, state: GivenState): void {\n const capture = parseCapture(context, line, 'given');\n if (capture !== null) {\n state.givenCaptures.push(capture);\n }\n}\n\nfunction parseGivenCaller(context: ParserContext, line: SourceLine, state: GivenState): void {\n if (state.givenCaller !== null || state.givenCallerPersona !== undefined) {\n context.error(DiagnosticCodes.DuplicateSpecificationCallerOrDenied, \"A specification has at most one 'given caller' block.\", locationOf(line));\n context.skipBlock(line.indent);\n } else if (line.content.startsWith('given caller as')) {\n parseGivenCallerPersona(context, line, state);\n } else {\n state.givenCaller = parseCaller(context, line);\n }\n}\n\nfunction parseGivenCallerPersona(context: ParserContext, line: SourceLine, state: GivenState): void {\n const match = callerPersonaPattern.exec(line.content);\n if (match === null) context.error(DiagnosticCodes.InvalidSpecificationCallerPersona, \"Expected 'given caller as <Persona>'.\", locationOf(line));\n const child = context.peekChild(line.indent);\n if (child !== undefined) context.error(DiagnosticCodes.InvalidSpecificationCallerPersona, \"'given caller as <Persona>' has no body; use an explicit 'given caller' for refinements.\", locationOf(child));\n skipBody(context, line.indent);\n if (match !== null) state.givenCallerPersona = { kind: 'SpecificationCallerPersonaSyntax', name: match[1], location: locationOf(line) };\n}\n\nfunction parseGivenReadModel(context: ParserContext, line: SourceLine, state: GivenState): void {\n const readModel = parseReadModelStep(context, line, givenReadModelPattern, 'given');\n if (readModel !== undefined) {\n state.givenReadModels.push(readModel);\n }\n}\n\nfunction parseGivenEvent(context: ParserContext, line: SourceLine, state: GivenState): void {\n const event = parseEventStep(context, line, givenPattern, 'given');\n if (event !== undefined) {\n state.given.push(event);\n }\n}\n\nconst callerRolePattern = pattern(`^role${dotNetWhitespace}+\"(${stringBodyPattern})\"$`);\nconst callerClaimPattern = pattern(`^claim${dotNetWhitespace}+\"(${stringBodyPattern})\"${dotNetWhitespace}*=${dotNetWhitespace}*\"(${stringBodyPattern})\"$`);\n\n// 'given caller' and the authenticated, role and claim lines under it.\nfunction parseCaller(context: ParserContext, line: SourceLine): SpecificationCallerSyntax | null {\n if (line.content !== 'given caller') {\n context.error(DiagnosticCodes.InvalidSpecificationCaller, \"Expected exactly 'given caller'.\", locationOf(line));\n context.skipBlock(line.indent);\n return null;\n }\n let authenticated = false;\n const roles: string[] = [];\n const claims: SpecificationCallerClaimSyntax[] = [];\n for (let child = context.peekChild(line.indent); child !== undefined; child = context.peekChild(line.indent)) {\n context.reader.takeSignificant();\n const role = callerRolePattern.exec(child.content);\n const claim = callerClaimPattern.exec(child.content);\n if (child.content === 'authenticated' && !authenticated) {\n authenticated = true;\n } else if (role !== null) {\n roles.push(unescapeString(role[1]));\n } else if (claim !== null) {\n claims.push({ kind: 'SpecificationCallerClaimSyntax', type: unescapeString(claim[1]), value: unescapeString(claim[2]), location: locationOf(child) });\n } else {\n context.error(containsCaseReference(child.content) ? DiagnosticCodes.InvalidSpecificationCaseReference : DiagnosticCodes.InvalidSpecificationCaller, `Invalid caller fixture '${child.content}' - expected authenticated, role \"...\", or claim \"...\" = \"...\".`, locationOf(child));\n }\n }\n return { kind: 'SpecificationCallerSyntax', authenticated, roles, claims, location: locationOf(line) };\n}\n\nfunction parseWhen(context: ParserContext, line: SourceLine, body: SpecificationBody, name: string): void {\n const appends = line.content.startsWith('when append');\n if (body.whenDeclared) {\n const code = body.whenAppended !== null || appends ? DiagnosticCodes.ConflictingSpecificationActions : DiagnosticCodes.DuplicateSpecificationWhen;\n context.error(code, `Specification '${name}' already declares a 'when' - a specification can have at most one`, locationOf(line));\n skipBody(context, line.indent);\n return;\n }\n body.whenDeclared = true;\n if (appends) {\n body.whenAppended = parseEventStep(context, line, whenAppendPattern, 'when append') ?? null;\n return;\n }\n if (whenRedeliveredPrefix.test(line.content)) {\n const match = whenRedeliveredPattern.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.UnmatchedRedeliveredOccurrence, \"Expected 'when redelivered <Event> to <Reaction>'.\", locationOf(line));\n skipBody(context, line.indent);\n } else {\n body.whenRedelivered = { kind: 'SpecificationRedeliverySyntax', eventType: match[1], reaction: match[2], ...parseValuesWithEventSource(context, line, undefined, undefined, 'when redelivered'), location: locationOf(line) };\n }\n return;\n }\n if (whenClockPrefix.test(line.content)) {\n body.whenClock = parseClock(context, line, 'when');\n return;\n }\n if (whenTriggerPrefix.test(line.content)) {\n body.whenTrigger = parseNamedStep(context, line, whenTriggerPattern, DiagnosticCodes.InvalidSpecificationTrigger, 'when trigger', 'when trigger <Trigger>',\n (trigger, values) => ({ kind: 'SpecificationTriggerSyntax', trigger, values, location: locationOf(line) }));\n return;\n }\n if (whenCapturePrefix.test(line.content)) {\n body.whenCapture = parseCapture(context, line, 'when');\n return;\n }\n if (whenQueryPrefix.test(line.content)) {\n body.whenQuery = parseNamedStep(context, line, whenQueryPattern, DiagnosticCodes.InvalidSpecificationQueryAction, 'when query', 'when query <Query>',\n (query, values) => ({ kind: 'SpecificationWhenQuerySyntax', query, arguments: values, location: locationOf(line) }), true);\n return;\n }\n const match = whenPattern.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.InvalidSpecificationWhen, `Invalid 'when' declaration '${line.content}' - expected 'when <CommandType>' or 'when append <EventType>'`, locationOf(line));\n skipBody(context, line.indent);\n return;\n }\n const generatedValues: PropertyMappingSyntax[] = [];\n const values = parseValuesWithEventSource(context, line, generatedValues, match);\n body.when = { kind: 'SpecificationCommandSyntax', commandType: match[1], ...values, generatedValues, inlineProperty: match.groups?.property ?? null, location: locationOf(line) };\n}\n\nfunction parseThen(context: ParserContext, line: SourceLine, body: SpecificationBody): void {\n if (noEventsPrefix.test(line.content)) {\n if (line.content !== 'then no events' || body.thenNoEvents) {\n context.error(DiagnosticCodes.InvalidNoEventsExpectation, \"Expected one 'then no events' directive.\", locationOf(line));\n } else {\n body.thenNoEvents = true;\n body.noEventsLine = line;\n }\n const child = context.peekChild(line.indent);\n if (child !== undefined) context.error(DiagnosticCodes.InvalidNoEventsExpectation, \"'then no events' cannot have child mappings.\", locationOf(child));\n skipBody(context, line.indent);\n return;\n }\n if (thenReturnsPrefix.test(line.content)) {\n const expectation = parseReturn(context, line);\n if (body.thenReturns !== null) {\n context.error(DiagnosticCodes.InvalidReturnExpectation, 'A specification declares at most one return expectation.', locationOf(line));\n } else {\n body.thenReturns = expectation;\n }\n return;\n }\n if (line.content.startsWith('then events')) {\n if (line.content !== 'then events in any order' || body.thenEventsInAnyOrder) {\n context.error(DiagnosticCodes.InvalidSpecificationEventOrder, 'Expected one \\'then events in any order\\' directive.', locationOf(line));\n } else {\n body.thenEventsInAnyOrder = true;\n }\n skipBody(context, line.indent);\n return;\n }\n if (thenResultPrefix.test(line.content)) {\n parseResult(context, line, body);\n return;\n }\n if (noResultPrefix.test(line.content)) {\n if (line.content !== 'then no result' || body.thenNoResult !== null) {\n context.error(DiagnosticCodes.InvalidSpecificationQueryAction, 'Expected one \\'then no result\\' directive.', locationOf(line));\n } else {\n body.thenNoResult = { kind: 'SpecificationNoResultSyntax', location: locationOf(line) };\n }\n skipBody(context, line.indent);\n return;\n }\n if (thenInvokesPrefix.test(line.content)) {\n const invocation = parseNamedStep(context, line, thenInvokesPattern, DiagnosticCodes.InvalidSpecificationInvocation, 'then invokes', 'then invokes <Command>',\n (command, values): SpecificationInvocationSyntax => ({ kind: 'SpecificationInvocationSyntax', command, values, location: locationOf(line) }));\n if (invocation !== null) (body.thenInvocations ??= []).push(invocation);\n return;\n }\n if (line.content.startsWith('then denied')) {\n if (line.content !== 'then denied') {\n context.error(DiagnosticCodes.InvalidSpecificationDenied, 'Expected exactly \\'then denied\\'.', locationOf(line));\n skipBody(context, line.indent);\n } else if (body.thenDenied !== null) {\n context.error(DiagnosticCodes.DuplicateSpecificationCallerOrDenied, \"A specification has at most one 'then denied' outcome.\", locationOf(line));\n } else {\n body.thenDenied = { kind: 'SpecificationDeniedSyntax', location: locationOf(line) };\n }\n return;\n }\n if (line.content === 'then error') {\n body.thenErrors.push({ kind: 'SpecificationErrorSyntax', name: null, location: locationOf(line) });\n return;\n }\n if (line.content.startsWith('then error case.')) {\n const caseValue = parseMappingSource(line.content.substring(11), { ...locationOf(line), column: locationOf(line).column + 11 }, context);\n if (caseValue.kind === 'CaseValueExpressionSyntax') body.thenErrors.push({ kind: 'SpecificationErrorSyntax', name: null, caseValue, location: locationOf(line) });\n return;\n }\n const error = thenErrorPattern.exec(line.content);\n if (error !== null) {\n body.thenErrors.push({ kind: 'SpecificationErrorSyntax', name: unescapeString(error[1]), location: locationOf(line) });\n return;\n }\n if (firstWord(line.content.substring('then'.length).trim()) === 'error') {\n context.error(DiagnosticCodes.InvalidThenError, `Invalid 'then error' declaration '${line.content}' - expected 'then error' or 'then error \"<reason>\"'`, locationOf(line));\n skipBody(context, line.indent);\n return;\n }\n if (thenNoPrefix.test(line.content)) {\n // Legacy documents keep skipping these assertions silently; Exact mirrors the native diagnostics.\n if (context.sourceOptions.numericMode === 'exact') {\n const absent = parseAbsentReadModel(context, line);\n if (absent !== null) body.thenAbsentReadModels.push(absent);\n return;\n }\n const match = thenAbsentReadModelPattern.exec(line.content);\n if (match !== null && match[2] === undefined && context.peekChild(line.indent) !== undefined) {\n // 'for' ending the line opens the key's members as an indented block.\n body.thenAbsentReadModels.push({ kind: 'SpecificationAbsentReadModelSyntax', name: match[1], key: parseStructuredValue(context.valueContext, line, undefined), location: locationOf(line) });\n return;\n }\n if (match !== null && match[2] !== undefined && !match[2].endsWith(' exactly')) {\n const key = parseMappingSource(match[2].trim(), locationOf(line), context.valueContext);\n if (key.kind === 'LiteralExpressionSyntax' || key.kind === 'ObjectExpressionSyntax' || key.kind === 'CaseValueExpressionSyntax') body.thenAbsentReadModels.push({ kind: 'SpecificationAbsentReadModelSyntax', name: match[1], key, location: locationOf(line) });\n }\n context.skipOpaqueBlock(line.indent);\n return;\n }\n if (thenQueryPrefix.test(line.content)) {\n // Legacy documents keep skipping malformed query bodies silently; Exact reports what the native parser reports.\n const exact = context.sourceOptions.numericMode === 'exact';\n const reject = (code: string, message: string, at: SourceLine): void => {\n if (!exact) return context.skipOpaqueBlock(at.indent);\n context.error(code, message, locationOf(at));\n context.skipBlock(at.indent);\n };\n const match = thenQueryPattern.exec(line.content);\n if (match === null) return reject(DiagnosticCodes.InvalidSpecificationQuery, `Invalid 'then query' declaration '${line.content}' - expected 'then query <Query> [exactly]'`, line);\n const args: PropertyMappingSyntax[] = [];\n const results: SpecificationQueryResultSyntax[] = [];\n let hasArguments = false;\n for (let child = context.peekChild(line.indent); child !== undefined; child = context.peekChild(line.indent)) {\n context.reader.takeSignificant();\n if (child.content === 'arguments' && !hasArguments) args.push(...parseValues(context.valueContext, child, true, undefined, context));\n else if (child.content === 'arguments') reject(DiagnosticCodes.DuplicateSpecificationQueryArguments, `Query assertion '${match[1]}' already declares arguments`, child);\n else if (child.content === 'result') results.push({ kind: 'SpecificationQueryResultSyntax', properties: parseValues(context.valueContext, child, true), exactly: false, location: locationOf(child) });\n else reject(DiagnosticCodes.UnknownSpecificationQueryDirective, `Unexpected '${firstWord(child.content)}' in 'then query' body - expected arguments or result`, child);\n hasArguments ||= child.content === 'arguments';\n }\n body.thenQueries.push({ kind: 'SpecificationQuerySyntax', query: match[1], arguments: args, results, exactly: match[2] !== undefined, location: locationOf(line) });\n return;\n }\n if (readModelPrefix.test(line.content)) {\n const readModel = parseReadModelStep(context, line, thenReadModelPattern, 'then');\n if (readModel !== undefined) {\n body.thenReadModels.push(readModel);\n }\n return;\n }\n const event = parseEventStep(context, line, thenEventPattern, 'then');\n if (event !== undefined) {\n body.thenEvents.push(event);\n }\n}\n\n// The Exact port of C# ParseAbsentReadModel: every malformed part is reported rather than dropped.\nfunction parseAbsentReadModel(context: ParserContext, line: SourceLine): SpecificationAbsentReadModelSyntax | null {\n const match = thenAbsentReadModelPattern.exec(line.content);\n if (match !== null && match[2] === undefined && context.peekChild(line.indent) !== undefined) {\n return { kind: 'SpecificationAbsentReadModelSyntax', name: match[1], key: parseStructuredValue(context, line, undefined), location: locationOf(line) } as SpecificationAbsentReadModelSyntax;\n }\n if (match === null || match[2] === undefined || match[2].endsWith(' exactly')) {\n context.error(DiagnosticCodes.InvalidAbsentReadModelStep, `Invalid absence assertion '${line.content}' - expected 'then no readmodel <ReadModelType> for <key>'`, locationOf(line));\n skipBody(context, line.indent);\n return null;\n }\n const keyText = match[2].trim();\n const validString = !(keyText.startsWith('\"') || keyText.startsWith(\"'\")) || absentKeyStringPattern.test(keyText);\n const key = validString ? parseMappingSource(keyText, locationOf(line), context.valueContext) : null;\n const concrete = key !== null && (key.kind === 'LiteralExpressionSyntax' || key.kind === 'ObjectExpressionSyntax' || key.kind === 'CaseValueExpressionSyntax');\n if (!concrete) context.error(DiagnosticCodes.InvalidAbsentReadModelStep, `Invalid absence key '${keyText}' - expected exactly one concrete value.`, locationOf(line));\n let hasChildren = false;\n for (let child = context.peekChild(line.indent); child !== undefined; child = context.peekChild(line.indent)) {\n context.reader.takeSignificant();\n context.error(DiagnosticCodes.InvalidAbsentReadModelStep, 'An absent read model assertion cannot have child mappings.', locationOf(child));\n hasChildren = true;\n }\n return hasChildren || !concrete ? null : { kind: 'SpecificationAbsentReadModelSyntax', name: match[1], key, location: locationOf(line) } as SpecificationAbsentReadModelSyntax;\n}\n\nfunction skipBody(context: ParserContext, indent: number): void {\n if (context.sourceOptions.numericMode !== 'exact') return context.skipBlock(indent);\n context.skipOpaqueBlock(indent);\n}\n\nfunction parseClock(context: ParserContext, line: SourceLine, keyword: string): SpecificationClockSyntax | null {\n const match = clockPattern.exec(line.content);\n skipBody(context, line.indent);\n if (match === null || match[1] !== keyword) {\n context.error(containsCaseReference(line.content) ? DiagnosticCodes.InvalidSpecificationCaseReference : DiagnosticCodes.InvalidSpecificationClock,\n `Invalid '${keyword} clock' - expected '${keyword} clock \"<ISO 8601 instant>\"', such as '${keyword} clock \"2026-10-05T08:00:00Z\"'`, locationOf(line));\n return null;\n }\n return { kind: 'SpecificationClockSyntax', instant: match[2], location: locationOf(line) };\n}\n\nfunction parseGivenGenerated(context: ParserContext, line: SourceLine): SpecificationGeneratedValueSyntax | null {\n const match = givenGeneratedPattern.exec(line.content);\n const block = match === null ? givenGeneratedBlockPattern.exec(line.content) : null;\n if (block !== null) {\n return { kind: 'SpecificationGeneratedValueSyntax', command: block[1], property: block[2], source: parseStructuredValue(context, line, block[3] as StructuredMarker), location: locationOf(line) };\n }\n if (match === null) {\n context.error(DiagnosticCodes.InvalidGeneratedFixture, \"Expected 'given generated <Command>.<property> = <value>' with exactly one concrete value.\", locationOf(line));\n context.skipBlock(line.indent);\n return null;\n }\n const location = locationOf(line);\n const source = parseConcrete(context, match[3], { ...location, column: location.column + line.content.indexOf(match[3], line.content.indexOf('=') + 1) }, DiagnosticCodes.InvalidGeneratedFixture);\n const child = context.peekChild(line.indent);\n if (child !== undefined) {\n context.error(DiagnosticCodes.InvalidGeneratedFixture, 'A pinned generated value cannot have child directives.', locationOf(child));\n context.skipBlock(line.indent);\n }\n return source === null ? null : { kind: 'SpecificationGeneratedValueSyntax', command: match[1], property: match[2], source, location };\n}\n\nfunction parseCapture(context: ParserContext, line: SourceLine, keyword: string): SpecificationCaptureSyntax | null {\n return parseNamedStep(context, line, capturePattern, DiagnosticCodes.InvalidSpecificationCapture, `${keyword} capture`, `${keyword} capture <Capture>`,\n (capture, record) => ({ kind: 'SpecificationCaptureSyntax', capture, record, location: locationOf(line) }));\n}\n\n// A step naming one thing on its header line, with '<field> = <value>' lines beneath it.\nfunction parseNamedStep<T>(\n context: ParserContext, line: SourceLine, regex: RegExp, code: string, keyword: string, expected: string,\n create: (name: string, values: PropertyMappingSyntax[]) => T, queryArguments = false): T | null {\n const match = regex.exec(line.content);\n if (match === null) {\n context.error(code, `Invalid '${keyword}' declaration '${line.content}' - expected '${expected}'`, locationOf(line));\n skipBody(context, line.indent);\n return null;\n }\n return create(match[1], parseValues(context, line, false, undefined, queryArguments ? context : undefined));\n}\n\nfunction parseResult(context: ParserContext, line: SourceLine, body: SpecificationBody): void {\n const match = thenResultPattern.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.InvalidSpecificationQueryAction, `Invalid 'then result' declaration '${line.content}' - expected 'then result [exactly]'`, locationOf(line));\n skipBody(context, line.indent);\n return;\n }\n body.thenResults.push({ kind: 'SpecificationQueryResultSyntax', properties: parseValues(context, line), exactly: match[1] !== undefined, location: locationOf(line) });\n}\n\nfunction parseReadModelStep(context: ParserContext, line: SourceLine, regex: RegExp, keyword: string): SpecificationReadModelSyntax | undefined {\n const match = regex.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.InvalidReadModelStep, `Invalid '${keyword} readmodel' declaration '${line.content}' - expected '${keyword} readmodel <ReadModelType>'`, locationOf(line));\n skipBody(context, line.indent);\n return undefined;\n }\n return {\n kind: 'SpecificationReadModelSyntax',\n name: match[1],\n properties: parseValues(context, line, false, match),\n exactly: keyword === 'then' && match.groups?.exactly !== undefined,\n inlineProperty: match.groups?.property ?? null,\n location: locationOf(line),\n };\n}\n\nfunction parseEventStep(context: ParserContext, line: SourceLine, regex: RegExp, keyword: string): SpecificationEventSyntax | undefined {\n const match = regex.exec(line.content);\n if (match === null) {\n context.error(DiagnosticCodes.InvalidEventStep, `Invalid '${keyword}' declaration '${line.content}' - expected '${keyword} <EventType>'`, locationOf(line));\n skipBody(context, line.indent);\n return undefined;\n }\n return { kind: 'SpecificationEventSyntax', eventType: match[1], ...parseValuesWithEventSource(context, line, undefined, match, keyword), inlineProperty: match.groups?.property ?? null, location: locationOf(line) };\n}\n\nexport const specificationStream = sourceStreamPattern('^stream\\\\s+([A-Za-z_]\\\\w*)\\\\.([A-Za-z_]\\\\w*)$');\nconst specificationStreamId = pattern('^streamId\\\\s*=(?!=|>)\\\\s*(.+)$');\n\nfunction parseValuesWithEventSource(context: ParserContext, parent: SourceLine, generated?: PropertyMappingSyntax[], inline?: RegExpExecArray, eventKeyword?: string): { values: PropertyMappingSyntax[]; for: ExpressionSyntax | null; stream?: SpecificationStreamSyntax; noStream?: SpecificationNoStreamSyntax } {\n const values: PropertyMappingSyntax[] = [];\n addInlineValue(context, parent, inline, values);\n let eventSource: ExpressionSyntax | null = null;\n let stream: SpecificationStreamSyntax | undefined;\n let noStream: SpecificationNoStreamSyntax | undefined;\n let hasRoute = false;\n for (let child = context.peekChild(parent.indent); child !== undefined; child = context.peekChild(parent.indent)) {\n context.reader.takeSignificant();\n let structured: PropertyMappingSyntax | undefined;\n if (generated !== undefined && generatedFixturePrefix.test(child.content)) {\n const fixture = parseConcreteMapping(context, child, generatedFixturePattern, DiagnosticCodes.InvalidGeneratedFixture);\n if (fixture !== null) generated.push(fixture);\n continue;\n }\n const mapping = mappingPattern.exec(child.content);\n if (mapping !== null) {\n addFixtureValue(context, values, mappingOf(context, child, mapping));\n } else if (firstWord(child.content) === 'stream' || child.content.startsWith('no stream')) {\n if (eventKeyword === undefined) {\n context.error(DiagnosticCodes.SpecificationStreamOnCommand, 'A command occurrence cannot declare a route; assert it on a then event.', locationOf(child));\n context.skipBlock(child.indent);\n continue;\n }\n if (hasRoute) {\n context.error(DiagnosticCodes.InvalidSpecificationStream, 'An event occurrence declares at most one stream or no stream directive.', locationOf(child));\n context.skipBlock(child.indent);\n continue;\n }\n const route = specificationStream.exec(child.content);\n if (child.content === 'no stream' && (eventKeyword === 'then' || eventKeyword === 'when redelivered')) {\n noStream = { kind: 'SpecificationNoStreamSyntax', location: locationOf(child) };\n hasRoute = true;\n rejectSpecificationRouteChildren(context, child);\n } else if (route !== null) {\n stream = parseSpecificationStream(context, child, route);\n hasRoute = true;\n } else {\n context.error(DiagnosticCodes.InvalidSpecificationStream, \"Expected 'stream Source.Stream', or 'no stream' on a then event.\", locationOf(child));\n context.skipBlock(child.indent);\n }\n } else if (firstWord(child.content) === 'for') {\n const source = child.content.substring('for'.length).trim();\n if (source.length === 0) {\n context.error(DiagnosticCodes.InvalidSpecificationEventSource, 'Invalid event-source assertion \\'for\\' - expected \\'for <value>\\'', locationOf(child));\n } else if (eventSource !== null) {\n context.error(DiagnosticCodes.DuplicateSpecificationEventSource, 'A specification step can declare its event-source assertion only once', locationOf(child));\n } else {\n eventSource = parseMappingSource(source, locationOf(child), context);\n }\n } else if ((structured = tryParseStructuredMapping(context, child)) !== undefined) {\n addFixtureValue(context, values, structured);\n } else {\n context.error(DiagnosticCodes.InvalidSpecificationValue, `Invalid property mapping '${child.content}' - expected '<property> = <value>'`, locationOf(child), diagnosticText('text', child.content));\n }\n }\n return { values, for: eventSource, ...(stream === undefined ? {} : { stream }), ...(noStream === undefined ? {} : { noStream }) };\n}\n\nexport function parseSpecificationStream(context: ParserContext, header: SourceLine, route: RegExpExecArray): SpecificationStreamSyntax {\n let streamId: PropertyMappingSyntax | null = null;\n let streamIdParts: PropertyMappingSyntax[] = [];\n let block = false;\n const directiveLocations: Record<string, ReturnType<typeof locationOf>> = {};\n for (let child = context.peekChild(header.indent); child !== undefined; child = context.peekChild(header.indent)) {\n context.reader.takeSignificant();\n if (child.content === 'streamId') {\n if (streamId !== null || block) {\n context.error(DiagnosticCodes.InvalidSpecificationStream, \"Declare either one 'streamId = <literal>' mapping or one streamId part block.\", locationOf(child));\n context.skipBlock(child.indent);\n } else {\n block = true;\n directiveLocations.streamId = locationOf(child);\n streamIdParts = parseRouteParts(context, child, DiagnosticCodes.InvalidSpecificationStream).map(part => part.source.kind === 'PathExpressionSyntax' && part.source.path.startsWith('case.')\n ? { ...part, source: parseMappingSource(part.source.path, part.source.location, context) } : part);\n }\n continue;\n }\n const mapping = specificationStreamId.exec(child.content);\n if (mapping === null || streamId !== null || block) {\n context.error(DiagnosticCodes.InvalidSpecificationStream, \"Declare either one 'streamId = <literal>' mapping or one streamId part block.\", locationOf(child));\n context.skipBlock(child.indent);\n continue;\n }\n const location = { ...locationOf(child), column: child.indent + 1 + child.content.indexOf(mapping[1], child.content.indexOf('=') + 1) };\n streamId = { kind: 'PropertyMappingSyntax', property: 'streamId', source: parseMappingSource(mapping[1], location, context), location: locationOf(child) };\n rejectSpecificationRouteChildren(context, child);\n }\n return { kind: 'SpecificationStreamSyntax', eventSource: route[1], stream: route[2], streamId, streamIdParts, directiveLocations,\n referenceLocation: { ...locationOf(header), column: header.indent + 1 + header.content.indexOf(route[1], 'stream'.length) },\n referenceLength: route[1].length + 1 + route[2].length, location: locationOf(header) };\n}\n\nexport function rejectSpecificationRouteChildren(context: ParserContext, line: SourceLine): void {\n const child = context.peekChild(line.indent);\n if (child !== undefined) {\n context.error(DiagnosticCodes.InvalidSpecificationStream, 'This directive cannot have children.', locationOf(child));\n context.skipBlock(line.indent);\n }\n}\n\nfunction parseValues(context: ParserContext, parent: SourceLine, nativeIdentifiers = false, inline?: RegExpExecArray, queryArgumentsContext?: ParserContext): PropertyMappingSyntax[] {\n const values: PropertyMappingSyntax[] = [];\n addInlineValue(context, parent, inline, values);\n for (let child = context.peekChild(parent.indent); child !== undefined; child = context.peekChild(parent.indent)) {\n context.reader.takeSignificant();\n const mapping = (nativeIdentifiers || context.sourceOptions.numericMode === 'exact' ? nativeMappingPattern : mappingPattern).exec(child.content);\n const structured = mapping === null ? tryParseStructuredMapping(context, child) : undefined;\n if (mapping === null && structured === undefined) {\n context.error(DiagnosticCodes.InvalidSpecificationValue, `Invalid property mapping '${child.content}' - expected '<property> = <value>'`, locationOf(child), diagnosticText('text', child.content));\n continue;\n }\n const value = structured ?? mappingOf(context, child, mapping!, nativeIdentifiers);\n if (queryArgumentsContext !== undefined) {\n if (values.some(existing => existing.property === value.property)) {\n queryArgumentsContext.error(DiagnosticCodes.UnknownSpecificationQueryArgument, `Query argument '${value.property}' is repeated.`, value.location, diagnosticText('argument', value.property));\n }\n values.push(value);\n } else {\n addFixtureValue(context, values, value);\n }\n }\n return values;\n}\n\nfunction mappingOf(context: ParserContext, line: SourceLine, match: RegExpExecArray, nativeIdentifiers = false): PropertyMappingSyntax {\n return { kind: 'PropertyMappingSyntax', property: match[1], source: parseMappingSource(match[2], locationOf(line), context, nativeIdentifiers), location: locationOf(line) };\n}\n\nconst lifecycleWhenStart = pattern('^when\\\\s+start\\\\s+(.+)$');\nconst lifecycleOutcome = pattern('^outcome\\\\s+([A-Za-z_]\\\\w*)\\\\s+([A-Za-z_]\\\\w*)$');\nconst lifecycleThen = pattern('^then\\\\s+(is|sends|starts|completes|fails\\\\s+at|waits\\\\s+at)(?:\\\\s+([A-Za-z_]\\\\w*))?$');\n\nfunction lifecycleExpectation(line: SourceLine): LifecycleExpectationSyntax | undefined {\n const match = lifecycleThen.exec(line.content);\n if (match === null) return undefined;\n const word = match[1].replace(/\\s+/g, ' ');\n const expectation: LifecycleExpectationKind = word === 'is' ? 'State' : word === 'sends' ? 'Sends' : word === 'starts' ? 'Starts' : word === 'completes' ? 'Completes' : word === 'fails at' ? 'Fails' : 'Waits';\n if ((match[2] !== undefined) === (expectation === 'Completes')) return undefined;\n return { kind: 'LifecycleExpectationSyntax', expectation, target: match[2] ?? null, location: locationOf(line) };\n}\n\n// A specification written inside a statemachine or a workflow - the port of C# SpecificationParser.ParseLifecycle.\nexport function parseLifecycleSpecification(context: ParserContext, header: SourceLine, code: string): LifecycleSpecificationSyntax {\n const match = specificationHeader.exec(header.content);\n if (match === null) {\n context.error(code, `Invalid specification '${header.content}' - expected 'specification <Name>'.`, locationOf(header));\n skipBody(context, header.indent);\n return { kind: 'LifecycleSpecificationSyntax', name: '', description: null, given: [], whenAppended: null, whenStarted: null, outcomes: [], then: [], location: locationOf(header) };\n }\n const name = match[1];\n let description: string | null = null;\n const given: SpecificationEventSyntax[] = [];\n let whenAppended: SpecificationEventSyntax | null = null;\n let whenStarted: ExpressionSyntax | null = null;\n let whenDeclared = false;\n const outcomes: LifecycleOutcomeSyntax[] = [];\n const then: LifecycleExpectationSyntax[] = [];\n const directiveLocations: Record<string, SourceLocation> = {};\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, `Specification '${name}'`);\n directiveLocations.description ??= locationOf(line);\n } else if (keyword === 'given') {\n const fact = parseEventStep(context, line, givenPattern, 'given');\n if (fact !== undefined) given.push(fact);\n } else if (keyword === 'when') {\n if (whenDeclared) {\n context.error(code, `Specification '${name}' already declares a 'when'.`, locationOf(line));\n skipBody(context, line.indent);\n continue;\n }\n whenDeclared = true;\n const start = lifecycleWhenStart.exec(line.content);\n if (start !== null) {\n const index = line.content.indexOf(start[1], 'when start'.length);\n whenStarted = parseMappingSource(start[1].trim(), sourceLocation(line.number, line.indent + (line.contentOffset ?? 0) + 1 + index, line.path), context);\n } else if (line.content.startsWith('when append')) whenAppended = parseEventStep(context, line, whenAppendPattern, 'when append') ?? null;\n else {\n context.error(code, `Invalid '${line.content}' - expected 'when append <Event>' or 'when start <key>'.`, locationOf(line));\n skipBody(context, line.indent);\n }\n } else if (keyword === 'outcome') {\n const outcome = lifecycleOutcome.exec(line.content);\n if (outcome !== null) outcomes.push({ kind: 'LifecycleOutcomeSyntax', node: outcome[1], outlet: outcome[2], location: locationOf(line) });\n else context.error(code, `Invalid outcome '${line.content}' - expected 'outcome <Node> <outlet>'.`, locationOf(line));\n rejectOperationChildren(context, line, code, 'An outcome cannot have children.');\n } else if (keyword === 'then') {\n const expectation = lifecycleExpectation(line);\n if (expectation !== undefined) then.push(expectation);\n else context.error(code, `Invalid '${line.content}' - expected 'then is <State>', 'then sends <Command>', 'then starts <Workflow>', 'then completes', 'then fails at <Node>' or 'then waits at <Node>'.`, locationOf(line));\n rejectOperationChildren(context, line, code, 'A then line cannot have children.');\n } else {\n context.error(code, `Unexpected '${line.content}' in specification '${name}' - expected description, given, when, outcome or then.`, locationOf(line));\n context.skipBlock(line.indent);\n }\n }\n return { kind: 'LifecycleSpecificationSyntax', name, description, given, whenAppended, whenStarted, outcomes, then, location: locationOf(header), directiveLocations };\n}\n"],"mappings":"A,wzCA8BA,MAAMC,GAAsBC,EAAQ,oEAAoE,EAClGC,GAAgBD,EAAQ,yGAAyG,EACjIE,EAASF,EAAQ,oCAAoC,EACrDG,EAAsBD,EACtBE,EAAuBJ,EAAQ,mCAAmC,EAGlE,aAAe,EAAgB,EAAU,KAAeK,EAAc,IAAIC,EAAO,6BAAiBC,8DAA8B,WAAW,MAAOC,CAAgB,CAAC,EACnKC,EAAe,YAAY,OAAO,EAClCC,EAAoB,YAAY,gBAAgB,EAChDC,EAAc,YAAY,MAAM,EAChCC,EAAmB,YAAY,MAAM,EACrCC,EAAkBb,EAAQ,mBAAmB,EAC7Cc,EAAkBd,EAAQ,iCAAiC,EAC3De,EAAwB,YAAY,oBAAoB,EACxDC,EAAuB,YAAY,oBAAqB,0BAA0B,EAClFC,EAAejB,EAAQ,gBAAgB,EACvCkB,EAAmBlB,EAAQ,uBAAuBmB,EAAkB,IAAI,EACxEC,EAAiBpB,EAAQ,iCAAiC,EAC1DqB,EAAuBhB,EAAc,iCAAiC,EACtEiB,EAAsBtB,EAAQ,2BAA2B,EACzDuB,EAAuBvB,EAAQ,+BAA+BmB,EAAkB,IAAI,EACpFK,EAAmBxB,EAAQ,oBAAoB,EAC/CyB,EAAqBzB,EAAQ,sBAAsB,EACnD0B,EAAoB1B,EAAQ,qBAAqB,EACjD2B,EAAqB3B,EAAQ,2DAA2D,EACxF4B,EAAuB5B,EAAQ,wBAAwB,EACvD6B,EAAwB7B,EAAQ,wEAAwE,EACxG8B,GAA6B9B,EAAQ,yEAAyE,EAC9G+B,GAAkB/B,EAAQ,mBAAmB,EAC7CgC,GAAoBhC,EAAQ,qBAAqB,EACjDiC,GAAoBjC,EAAQ,qBAAqB,EACjDkC,GAAkBlC,EAAQ,mBAAmB,EAC7CmC,GAAmBnC,EAAQ,oBAAoB,EAC/CoC,GAAiBpC,EAAQ,0BAA0B,EACnDqC,GAAwBhC,EAAc,yBAAyB,EAC/DiC,GAAyBjC,EAAc,2FAA2F,EAClIkC,GAAiBvC,EAAQ,0BAA0B,EAInDwC,GAAexC,EAAQ,kHAAkH,EACzIyC,GAAqBzC,EAAQ,sCAAsC,EACnE0C,GAAiB1C,EAAQ,gDAAgD,EACzE2C,GAAmB3C,EAAQ,gDAAgD,EAC3E4C,GAAoB5C,EAAQ,gCAAgC,EAC5D6C,EAA6BxC,EAAc,8DAA8D,EACzGyC,GAAyBzC,EAAc,QAAQc,EAAkB,0BAA0B,EAC3F4B,GAAmB1C,EAAc,8DAA8D,EAqCrG,SAAgB,mBAAmB,EAAwB,EAAuC,CAC9F,IAAM2C,EAAO9C,EAAO,KAAK+C,EAAK,OAAO,CAAC,GAAG,IAAM,GAC3CD,IAAS,IACTE,EAAQ,MAAMC,EAAgB,gCAAiC,sCAAsCF,EAAK,QAAQ,qCAAsCG,EAAWH,CAAI,CAAC,EAE5K,IAAII,EAA6B,KAC3BC,EAAuE,CAAC,EACxEC,EAA6D,CAAC,EAC9DC,EAA0B,CAC5B,uBAAwB,CAAC,EAAG,eAAgB,CAAC,EAAG,gBAAiB,CAAC,EAAG,qBAAsB,CAAC,EAAG,YAAa,CAAC,EAC7G,MAAO,CAAC,EAAG,gBAAiB,CAAC,EAAG,KAAM,KAAM,aAAc,KAAM,gBAAiB,KAAM,aAAc,GACrG,WAAY,CAAC,EAAG,qBAAsB,GAAO,aAAc,GAAO,eAAgB,CAAC,EAAG,WAAY,CAAC,EACnG,WAAY,KAAM,cAAe,KAAM,cAAe,CAAC,EAAG,UAAW,KAAM,YAAa,KAAM,YAAa,KAAM,UAAW,KAAM,YAAa,CAAC,EAAG,aAAc,KAAM,WAAY,KAAM,YAAa,KAAM,YAAa,IAC7N,EACA,IAAK,IAAIC,EAAQP,EAAQ,UAAUD,EAAK,MAAM,EAAGQ,IAAU,IAAA,GAAW,EAAQP,EAAQ,UAAUD,EAAK,MAAM,EAAG,CAK1G,GAJAC,EAAQ,OAAO,gBAAgB,EAC3BQ,GAAgBD,CAAK,GAGrB,mBAAmBP,EAASO,EAAOD,CAAI,EAAG,SAE9C,IAAMG,EAAU1C,EAAa,KAAKwC,EAAM,OAAO,EAAI,OAASG,EAAUH,EAAM,OAAO,EACnF,GAAIE,IAAY,YAAa,CACzB,IAAME,EAAYC,EAAeZ,EAASO,CAAK,EAC3CI,IAAc,MAAMP,EAAW,KAAKO,CAAS,CACrD,MAAO,GAAIF,IAAY,OAAQ,CAC3B,IAAMI,EAAMC,EAAUd,EAASO,CAAK,EAChCM,IAAQ,MAAMR,EAAM,KAAKQ,CAAG,CACpC,MAAWJ,IAAY,cACnB,EAAcM,EAAiBf,EAASO,EAAOJ,EAAa,kBAAkBL,EAAK,EAAE,EAC9EW,IAAY,QACnB,WAAWT,EAASO,EAAOD,CAAI,EACxBG,IAAY,OACnB,UAAUT,EAASO,EAAOD,EAAMR,CAAI,EAC7BW,IAAY,OACnB,UAAUT,EAASO,EAAOD,CAAI,GAE9BN,EAAQ,MAAMC,EAAgB,8BAA+B,eAAeS,EAAUH,EAAM,OAAO,EAAE,yBAA0BL,EAAWK,CAAK,CAAC,EAChJP,EAAQ,UAAUO,EAAM,MAAM,EAEtC,CACID,EAAK,eAAiB,IAAA,KAAcA,EAAK,WAAW,OAAS,GAAKA,EAAK,sBAAwBA,EAAK,WAAW,OAAS,GAAKA,EAAK,aAAe,OACjJN,EAAQ,MAAMC,EAAgB,2BAC1B,sFAAuFC,EAAWI,EAAK,YAAY,CAAC,EAE5H,uBAAuBN,EAASD,EAAMO,CAAI,EAC1C,GAAM,CAAE,aAAcU,EAAG,aAAcC,EAAe,GAAGC,GAAYZ,EAC/Da,EAAqC,CAAE,KAAM,sBAAuB,cAAenB,EAAQ,cAAe,OAAM,cAAa,GAAGkB,EAClI,GAAId,EAAW,SAAW,EAAI,CAAC,EAAI,CAAE,YAAW,EAAI,GAAIC,EAAM,SAAW,EAAI,CAAC,EAAI,CAAE,OAAM,EAAI,SAAUH,EAAWH,CAAI,CAAE,EAE7H,OADAqB,EAAcD,EAAenB,CAAO,EAC7BmB,CACX,CAEA,SAAS,uBAAuB,EAAwB,EAAkB,EAA+B,CAChG,0BAA0Bb,CAAI,GAAK,4BAA2BA,CAAI,GACvEN,EAAQ,MAAMC,EAAgB,mCAC1B,sGAAuGC,EAAWH,CAAI,CAAC,CAC/H,CAEA,SAAS,0BAA0B,EAAkC,CACjE,OAAOO,EAAK,WAAW,OAAS,GAAK,iBAAiBA,CAAI,EAAI,IAAMA,EAAK,YAAc,MAAQ,CAAC,UAAUA,CAAI,EAClH,CAEA,SAAS,2BAA2B,EAAkC,CAClE,MAAO,CAAC,UAAUA,CAAI,GAAK,uBAAuBA,CAAI,GAAK,CAAC,gBAAgBA,CAAI,CACpF,CAEA,SAAS,uBAAuB,EAAkC,CAC9D,OAAO,iBAAiBA,CAAI,IAAM,GAAKA,EAAK,WAAW,SAAW,CACtE,CAEA,SAAS,UAAU,EAAkC,CACjD,MAAO,CAACA,EAAK,KAAMA,EAAK,aAAcA,EAAK,UAAWA,EAAK,YAAaA,EAAK,YAAaA,EAAK,eAAe,CAAC,CAAC,KAAK,GAAUe,IAAW,IAAI,CAClJ,CAEA,SAAS,iBAAiB,EAAiC,CACvD,OAAOf,EAAK,YAAY,QAAUA,EAAK,YAAc,KAAO,EAAI,EACpE,CAEA,SAAS,gBAAgB,EAAkC,CACvD,MAAO,CACHA,EAAK,YAAY,OAAS,EAC1BA,EAAK,eAAiB,KACtBA,EAAK,aAAe,KACpBA,EAAK,WAAW,OAAS,EACzBA,EAAK,aACLA,EAAK,qBACLA,EAAK,eAAe,OAAS,EAC7BA,EAAK,qBAAqB,OAAS,EACnCA,EAAK,cAAgB,KACrBA,EAAK,YAAY,KAAK,GAASgB,EAAM,QAAQ,OAAS,CAAC,CAC3D,CAAC,CAAC,KAAK,GAAWC,CAAO,CAC7B,CAEA,SAAS,mBAAmB,EAAwB,EAAkB,EAAkC,CACpG,GAAI,CAAC1E,GAAoB,KAAKkD,EAAK,OAAO,EAAG,MAAO,GACpD,IAAMyB,EAAQzE,GAAc,KAAKgD,EAAK,OAAO,EAC7C,GAAIyB,IAAU,MAASA,EAAM,KAAO,oBAAwBA,EAAM,KAAO,IAAA,IACrExB,EAAQ,MAAMC,EAAgB,8BAA+B,iGAAkGC,EAAWH,CAAI,CAAC,EAC/K,SAASC,EAASD,EAAK,MAAM,OAC1B,GAAIyB,EAAM,KAAO,iBAAkB,CACtC,IAAMC,EAAkC,CAAC,EACzC,IAAK,IAAIlB,EAAQP,EAAQ,UAAUD,EAAK,MAAM,EAAGQ,IAAU,IAAA,GAAW,EAAQP,EAAQ,UAAUD,EAAK,MAAM,EAAG,CAC1GC,EAAQ,OAAO,gBAAgB,EAC/B,IAAM0B,EAAQC,EAAqB3B,EAASO,EAAOrC,EAAgB+B,EAAgB,6BAA6B,EAC5GyB,IAAU,MAAMD,EAAO,KAAKC,CAAK,CACzC,CACApB,EAAK,eAAe,KAAK,CAAE,KAAM,+BAAgC,UAAWkB,EAAM,GAAI,SAAQ,SAAUtB,EAAWH,CAAI,CAAE,CAAC,CAC9H,MACI6B,EAAwB5B,EAASD,EAAME,EAAgB,8BAA+B,2DAA2D,EAC7IuB,EAAM,KAAO,kBAAmBlB,EAAK,uBAAuB,KAAK,CAAE,KAAM,sCAAuC,UAAWkB,EAAM,GAAI,SAAUtB,EAAWH,CAAI,CAAE,CAAC,EAChKO,EAAK,gBAAgB,KAAK,CAAE,KAAM,iCAAkC,UAAWkB,EAAM,GAAI,SAAUtB,EAAWH,CAAI,CAAE,CAAC,EAE9H,MAAO,EACX,CAWA,MAAM8B,GAAmC,CACrC,CAAE,QAAS,GAAQvD,EAAiB,KAAKyB,EAAK,OAAO,EAAG,MAAO,eAAgB,EAC/E,CAAE,QAAS,GAAQ3B,EAAoB,KAAK2B,EAAK,OAAO,EAAG,MAAO,kBAAmB,EACrF,CAAE,QAAS,GAAQrB,EAAqB,KAAKqB,EAAK,OAAO,EAAG,MAAO,wBAAyB,EAC5F,CAAE,QAAS,GAAQxB,EAAmB,KAAKwB,EAAK,OAAO,EAAG,MAAO,iBAAkB,EACnF,CAAE,QAAS,GAAQA,EAAK,QAAQ,WAAW,cAAc,EAAG,MAAO,gBAAiB,EACpF,CAAE,QAAS,GAAQnC,EAAgB,KAAKmC,EAAK,OAAO,EAAG,MAAO,mBAAoB,EAClF,CAAE,YAAe,GAAM,MAAO,eAAgB,CAClD,EAEA,SAAS,WAAW,EAAwB,EAAkB,EAAyB,CACnF,IAAK,IAAM+B,KAAQD,GACf,GAAIC,EAAK,QAAQ/B,CAAI,EAAG,CACpB+B,EAAK,MAAM9B,EAASD,EAAMgC,CAAK,EAC/B,MACJ,CAER,CAEA,SAAS,gBAAgB,EAAwB,EAAkB,EAAyB,CACpFA,EAAM,aAAe,KAIrB,EAAM,WAAa,WAAW/B,EAASD,EAAM,OAAO,GAHpDC,EAAQ,MAAMC,EAAgB,0BAA2B,iDAAkDC,EAAWH,CAAI,CAAC,EAC3H,SAASC,EAASD,EAAK,MAAM,EAIrC,CAEA,SAAS,mBAAmB,EAAwB,EAAkB,EAAyB,CAC3F,IAAMyB,EAAQnD,EAAqB,KAAK0B,EAAK,OAAO,EACpD,SAASC,EAASD,EAAK,MAAM,EACzBgC,EAAM,gBAAkB,MAAQP,IAAU,KAC1CxB,EAAQ,MAAMC,EAAgB,6BAA8B,kFAAqFC,EAAWH,CAAI,CAAC,EAEjK,EAAM,cAAgB,CAAE,KAAM,8BAA+B,GAAIiC,EAAeR,EAAM,EAAE,EAAG,SAAUtB,EAAWH,CAAI,CAAE,CAE9H,CAEA,SAAS,yBAAyB,EAAwB,EAAkB,EAAyB,CACjG,IAAMkC,EAAS,oBAAoBjC,EAASD,CAAI,EAC5CkC,IAAW,OACV,EAAM,iBAAmB,CAAC,EAAA,CAAG,KAAKA,CAAM,CAEjD,CAEA,SAAS,kBAAkB,EAAwB,EAAkB,EAAyB,CAC1F,IAAMC,EAAU,aAAalC,EAASD,EAAM,OAAO,EAC/CmC,IAAY,MACZH,EAAM,cAAc,KAAKG,CAAO,CAExC,CAEA,SAAS,iBAAiB,EAAwB,EAAkB,EAAyB,CACrFH,EAAM,cAAgB,MAAQA,EAAM,qBAAuB,IAAA,IAC3D/B,EAAQ,MAAMC,EAAgB,qCAAsC,wDAAyDC,EAAWH,CAAI,CAAC,EAC7IC,EAAQ,UAAUD,EAAK,MAAM,GACtBA,EAAK,QAAQ,WAAW,iBAAiB,EAChD,wBAAwBC,EAASD,EAAMgC,CAAK,EAE5C,EAAM,YAAc,YAAY/B,EAASD,CAAI,CAErD,CAEA,SAAS,wBAAwB,EAAwB,EAAkB,EAAyB,CAChG,IAAMyB,EAAQtE,EAAqB,KAAK6C,EAAK,OAAO,EAChDyB,IAAU,MAAMxB,EAAQ,MAAMC,EAAgB,kCAAmC,wCAAyCC,EAAWH,CAAI,CAAC,EAC9I,IAAMQ,EAAQP,EAAQ,UAAUD,EAAK,MAAM,EACvCQ,IAAU,IAAA,IAAWP,EAAQ,MAAMC,EAAgB,kCAAmC,2FAA4FC,EAAWK,CAAK,CAAC,EACvM,SAASP,EAASD,EAAK,MAAM,EACzByB,IAAU,OAAM,EAAM,mBAAqB,CAAE,KAAM,mCAAoC,KAAMA,EAAM,GAAI,SAAUtB,EAAWH,CAAI,CAAE,EAC1I,CAEA,SAAS,oBAAoB,EAAwB,EAAkB,EAAyB,CAC5F,IAAMoC,EAAY,mBAAmBnC,EAASD,EAAMlC,EAAuB,OAAO,EAC9EsE,IAAc,IAAA,IACdJ,EAAM,gBAAgB,KAAKI,CAAS,CAE5C,CAEA,SAAS,gBAAgB,EAAwB,EAAkB,EAAyB,CACxF,IAAMC,EAAQ,eAAepC,EAASD,EAAMxC,EAAc,OAAO,EAC7D6E,IAAU,IAAA,IACVL,EAAM,MAAM,KAAKK,CAAK,CAE9B,CAEA,MAAMC,GAAoBvF,EAAQ,QAAQQ,EAAiB,KAAKW,EAAkB,IAAI,EAChFqE,GAAqBxF,EAAQ,SAASQ,EAAiB,KAAKW,EAAkB,IAAIX,EAAiB,IAAIA,EAAiB,KAAKW,EAAkB,IAAI,EAGzJ,SAAS,YAAY,EAAwB,EAAoD,CAC7F,GAAI8B,EAAK,UAAY,eAGjB,OAFAC,EAAQ,MAAMC,EAAgB,2BAA4B,mCAAoCC,EAAWH,CAAI,CAAC,EAC9GC,EAAQ,UAAUD,EAAK,MAAM,EACtB,KAEX,IAAIwC,EAAgB,GACdC,EAAkB,CAAC,EACnBC,EAA2C,CAAC,EAClD,IAAK,IAAIlC,EAAQP,EAAQ,UAAUD,EAAK,MAAM,EAAGQ,IAAU,IAAA,GAAW,EAAQP,EAAQ,UAAUD,EAAK,MAAM,EAAG,CAC1GC,EAAQ,OAAO,gBAAgB,EAC/B,IAAM0C,EAAOL,GAAkB,KAAK9B,EAAM,OAAO,EAC3CoC,EAAQL,GAAmB,KAAK/B,EAAM,OAAO,EAC/CA,EAAM,UAAY,iBAAmB,CAACgC,EACtC,EAAgB,GACTG,IAAS,KAETC,IAAU,KAGjB3C,EAAQ,MAAM4C,EAAsBrC,EAAM,OAAO,EAAIN,EAAgB,kCAAoCA,EAAgB,2BAA4B,2BAA2BM,EAAM,QAAQ,iEAAkEL,EAAWK,CAAK,CAAC,EAFjRkC,EAAO,KAAK,CAAE,KAAM,iCAAkC,KAAMT,EAAeW,EAAM,EAAE,EAAG,MAAOX,EAAeW,EAAM,EAAE,EAAG,SAAUzC,EAAWK,CAAK,CAAE,CAAC,EAFpJiC,EAAM,KAAKR,EAAeU,EAAK,EAAE,CAAC,CAM1C,CACA,MAAO,CAAE,KAAM,4BAA6B,gBAAe,QAAO,SAAQ,SAAUxC,EAAWH,CAAI,CAAE,CACzG,CAEA,SAAS,UAAU,EAAwB,EAAkB,EAAyB,EAAoB,CACtG,IAAM8C,EAAU9C,EAAK,QAAQ,WAAW,aAAa,EACrD,GAAIO,EAAK,aAAc,CACnB,IAAMwC,EAAOxC,EAAK,eAAiB,MAAQuC,EAAU5C,EAAgB,gCAAkCA,EAAgB,2BACvHD,EAAQ,MAAM8C,EAAM,kBAAkBhD,EAAK,oEAAqEI,EAAWH,CAAI,CAAC,EAChI,SAASC,EAASD,EAAK,MAAM,EAC7B,MACJ,CAEA,GADA,EAAK,aAAe,GAChB8C,EAAS,CACT,EAAK,aAAe,eAAe7C,EAASD,EAAMvC,EAAmB,aAAa,GAAK,KACvF,MACJ,CACA,GAAI2B,GAAsB,KAAKY,EAAK,OAAO,EAAG,CAC1C,IAAMyB,EAAQpC,GAAuB,KAAKW,EAAK,OAAO,EAClDyB,IAAU,MACVxB,EAAQ,MAAMC,EAAgB,+BAAgC,qDAAsDC,EAAWH,CAAI,CAAC,EACpI,SAASC,EAASD,EAAK,MAAM,GAE7B,EAAK,gBAAkB,CAAE,KAAM,gCAAiC,UAAWyB,EAAM,GAAI,SAAUA,EAAM,GAAI,GAAG,2BAA2BxB,EAASD,EAAM,IAAA,GAAW,IAAA,GAAW,kBAAkB,EAAG,SAAUG,EAAWH,CAAI,CAAE,EAEhO,MACJ,CACA,GAAIlB,GAAgB,KAAKkB,EAAK,OAAO,EAAG,CACpC,EAAK,UAAY,WAAWC,EAASD,EAAM,MAAM,EACjD,MACJ,CACA,GAAIjB,GAAkB,KAAKiB,EAAK,OAAO,EAAG,CACtC,EAAK,YAAc,eAAeC,EAASD,EAAMR,GAAoBU,EAAgB,4BAA6B,eAAgB,0BAC7H,EAAS,KAAY,CAAE,KAAM,6BAA8B,UAAS,SAAQ,SAAUC,EAAWH,CAAI,CAAE,EAAE,EAC9G,MACJ,CACA,GAAIhB,GAAkB,KAAKgB,EAAK,OAAO,EAAG,CACtC,EAAK,YAAc,aAAaC,EAASD,EAAM,MAAM,EACrD,MACJ,CACA,GAAIf,GAAgB,KAAKe,EAAK,OAAO,EAAG,CACpC,EAAK,UAAY,eAAeC,EAASD,EAAMN,GAAkBQ,EAAgB,gCAAiC,aAAc,sBAC3H,EAAO,KAAY,CAAE,KAAM,+BAAgC,QAAO,UAAWwB,EAAQ,SAAUvB,EAAWH,CAAI,CAAE,GAAI,EAAI,EAC7H,MACJ,CACA,IAAMyB,EAAQ/D,EAAY,KAAKsC,EAAK,OAAO,EAC3C,GAAIyB,IAAU,KAAM,CAChBxB,EAAQ,MAAMC,EAAgB,yBAA0B,+BAA+BF,EAAK,QAAQ,gEAAiEG,EAAWH,CAAI,CAAC,EACrL,SAASC,EAASD,EAAK,MAAM,EAC7B,MACJ,CACA,IAAMgD,EAA2C,CAAC,EAC5CtB,EAAS,2BAA2BzB,EAASD,EAAMgD,EAAiBvB,CAAK,EAC/E,EAAK,KAAO,CAAE,KAAM,6BAA8B,YAAaA,EAAM,GAAI,GAAGC,EAAQ,kBAAiB,eAAgBD,EAAM,QAAQ,UAAY,KAAM,SAAUtB,EAAWH,CAAI,CAAE,CACpL,CAEA,SAAS,UAAU,EAAwB,EAAkB,EAA+B,CACxF,GAAIV,GAAe,KAAKU,EAAK,OAAO,EAAG,CAC/BA,EAAK,UAAY,kBAAoBO,EAAK,aAC1CN,EAAQ,MAAMC,EAAgB,2BAA4B,2CAA4CC,EAAWH,CAAI,CAAC,GAEtH,EAAK,aAAe,GACpB,EAAK,aAAeA,GAExB,IAAMQ,EAAQP,EAAQ,UAAUD,EAAK,MAAM,EACvCQ,IAAU,IAAA,IAAWP,EAAQ,MAAMC,EAAgB,2BAA4B,+CAAgDC,EAAWK,CAAK,CAAC,EACpJ,SAASP,EAASD,EAAK,MAAM,EAC7B,MACJ,CACA,GAAIiD,EAAkB,KAAKjD,EAAK,OAAO,EAAG,CACtC,IAAMkD,EAAcC,EAAYlD,EAASD,CAAI,EACzCO,EAAK,cAAgB,KAGrB,EAAK,YAAc2C,EAFnBjD,EAAQ,MAAMC,EAAgB,yBAA0B,2DAA4DC,EAAWH,CAAI,CAAC,EAIxI,MACJ,CACA,GAAIA,EAAK,QAAQ,WAAW,aAAa,EAAG,CACpCA,EAAK,UAAY,4BAA8BO,EAAK,qBACpDN,EAAQ,MAAMC,EAAgB,+BAAgC,qDAAwDC,EAAWH,CAAI,CAAC,EAEtI,EAAK,qBAAuB,GAEhC,SAASC,EAASD,EAAK,MAAM,EAC7B,MACJ,CACA,GAAId,GAAiB,KAAKc,EAAK,OAAO,EAAG,CACrC,YAAYC,EAASD,EAAMO,CAAI,EAC/B,MACJ,CACA,GAAIpB,GAAe,KAAKa,EAAK,OAAO,EAAG,CAC/BA,EAAK,UAAY,kBAAoBO,EAAK,eAAiB,KAC3DN,EAAQ,MAAMC,EAAgB,gCAAiC,2CAA8CC,EAAWH,CAAI,CAAC,EAE7H,EAAK,aAAe,CAAE,KAAM,8BAA+B,SAAUG,EAAWH,CAAI,CAAE,EAE1F,SAASC,EAASD,EAAK,MAAM,EAC7B,MACJ,CACA,GAAIvB,EAAkB,KAAKuB,EAAK,OAAO,EAAG,CACtC,IAAMoD,EAAa,eAAenD,EAASD,EAAMtB,EAAoBwB,EAAgB,+BAAgC,eAAgB,0BAChI,EAAS,KAA2C,CAAE,KAAM,gCAAiC,UAAS,SAAQ,SAAUC,EAAWH,CAAI,CAAE,EAAE,EAC5IoD,IAAe,OAAO,EAAK,kBAAoB,CAAC,EAAA,CAAG,KAAKA,CAAU,EACtE,MACJ,CACA,GAAIpD,EAAK,QAAQ,WAAW,aAAa,EAAG,CACpCA,EAAK,UAAY,cAGVO,EAAK,aAAe,KAG3B,EAAK,WAAa,CAAE,KAAM,4BAA6B,SAAUJ,EAAWH,CAAI,CAAE,EAFlFC,EAAQ,MAAMC,EAAgB,qCAAsC,yDAA0DC,EAAWH,CAAI,CAAC,GAH9IC,EAAQ,MAAMC,EAAgB,2BAA4B,kCAAqCC,EAAWH,CAAI,CAAC,EAC/G,SAASC,EAASD,EAAK,MAAM,GAMjC,MACJ,CACA,GAAIA,EAAK,UAAY,aAAc,CAC/BO,EAAK,WAAW,KAAK,CAAE,KAAM,2BAA4B,KAAM,KAAM,SAAUJ,EAAWH,CAAI,CAAE,CAAC,EACjG,MACJ,CACA,GAAIA,EAAK,QAAQ,WAAW,kBAAkB,EAAG,CAC7C,IAAMqD,EAAYxG,EAAmBmD,EAAK,QAAQ,UAAU,EAAE,EAAG,CAAE,GAAGG,EAAWH,CAAI,EAAG,OAAQG,EAAWH,CAAI,CAAC,CAAC,OAAS,EAAG,EAAGC,CAAO,EACnIoD,EAAU,OAAS,6BAA6B9C,EAAK,WAAW,KAAK,CAAE,KAAM,2BAA4B,KAAM,KAAM,YAAW,SAAUJ,EAAWH,CAAI,CAAE,CAAC,EAChK,MACJ,CACA,IAAMuD,EAAQtF,EAAiB,KAAK+B,EAAK,OAAO,EAChD,GAAIuD,IAAU,KAAM,CAChBhD,EAAK,WAAW,KAAK,CAAE,KAAM,2BAA4B,KAAM0B,EAAesB,EAAM,EAAE,EAAG,SAAUpD,EAAWH,CAAI,CAAE,CAAC,EACrH,MACJ,CACA,GAAIW,EAAUX,EAAK,QAAQ,UAAU,CAAa,CAAC,CAAC,KAAK,CAAC,IAAM,QAAS,CACrEC,EAAQ,MAAMC,EAAgB,iBAAkB,qCAAqCF,EAAK,QAAQ,sDAAuDG,EAAWH,CAAI,CAAC,EACzK,SAASC,EAASD,EAAK,MAAM,EAC7B,MACJ,CACA,GAAIhC,EAAa,KAAKgC,EAAK,OAAO,EAAG,CAEjC,GAAIC,EAAQ,cAAc,cAAgB,QAAS,CAC/C,IAAMuD,EAAS,qBAAqBvD,EAASD,CAAI,EAC7CwD,IAAW,MAAMjD,EAAK,qBAAqB,KAAKiD,CAAM,EAC1D,MACJ,CACA,IAAM/B,EAAQ7B,EAA2B,KAAKI,EAAK,OAAO,EAC1D,GAAIyB,IAAU,MAAQA,EAAM,KAAO,IAAA,IAAaxB,EAAQ,UAAUD,EAAK,MAAM,IAAM,IAAA,GAAW,CAE1FO,EAAK,qBAAqB,KAAK,CAAE,KAAM,qCAAsC,KAAMkB,EAAM,GAAI,IAAKgC,EAAqBxD,EAAQ,aAAcD,EAAM,IAAA,EAAS,EAAG,SAAUG,EAAWH,CAAI,CAAE,CAAC,EAC3L,MACJ,CACA,GAAIyB,IAAU,MAAQA,EAAM,KAAO,IAAA,IAAa,CAACA,EAAM,EAAE,CAAC,SAAS,UAAU,EAAG,CAC5E,IAAMiC,EAAM7G,EAAmB4E,EAAM,EAAE,CAAC,KAAK,EAAGtB,EAAWH,CAAI,EAAGC,EAAQ,YAAY,GAClFyD,EAAI,OAAS,2BAA6BA,EAAI,OAAS,0BAA4BA,EAAI,OAAS,8BAA6BnD,EAAK,qBAAqB,KAAK,CAAE,KAAM,qCAAsC,KAAMkB,EAAM,GAAI,MAAK,SAAUtB,EAAWH,CAAI,CAAE,CAAC,CACnQ,CACAC,EAAQ,gBAAgBD,EAAK,MAAM,EACnC,MACJ,CACA,GAAIpC,EAAgB,KAAKoC,EAAK,OAAO,EAAG,CAEpC,IAAM2D,EAAQ1D,EAAQ,cAAc,cAAgB,QAC9C,QAAU,EAAc,EAAiB,IAAyB,CACpE,GAAI,CAAC0D,EAAO,OAAO1D,EAAQ,gBAAgB2D,EAAG,MAAM,EACpD3D,EAAQ,MAAM8C,EAAMc,EAAS1D,EAAWyD,CAAE,CAAC,EAC3C3D,EAAQ,UAAU2D,EAAG,MAAM,CAC/B,EACMnC,EAAQ3B,GAAiB,KAAKE,EAAK,OAAO,EAChD,GAAIyB,IAAU,KAAM,OAAO,OAAOvB,EAAgB,0BAA2B,qCAAqCF,EAAK,QAAQ,6CAA8CA,CAAI,EACjL,IAAM8D,EAAgC,CAAC,EACjCC,EAA4C,CAAC,EAC/CC,EAAe,GACnB,IAAK,IAAIxD,EAAQP,EAAQ,UAAUD,EAAK,MAAM,EAAGQ,IAAU,IAAA,GAAW,EAAQP,EAAQ,UAAUD,EAAK,MAAM,EACvGC,EAAQ,OAAO,gBAAgB,EAC3BO,EAAM,UAAY,aAAe,CAACwD,EAAcF,EAAK,KAAK,GAAG,YAAY7D,EAAQ,aAAcO,EAAO,GAAM,IAAA,GAAWP,CAAO,CAAC,EAC1HO,EAAM,UAAY,YAAa,OAAON,EAAgB,qCAAsC,oBAAoBuB,EAAM,GAAG,8BAA+BjB,CAAK,EAC7JA,EAAM,UAAY,SAAUuD,EAAQ,KAAK,CAAE,KAAM,iCAAkC,WAAY,YAAY9D,EAAQ,aAAcO,EAAO,EAAI,EAAG,QAAS,GAAO,SAAUL,EAAWK,CAAK,CAAE,CAAC,EAChM,OAAON,EAAgB,mCAAoC,eAAeS,EAAUH,EAAM,OAAO,EAAE,uDAAwDA,CAAK,EACrK,IAAiBA,EAAM,UAAY,YAEvCD,EAAK,YAAY,KAAK,CAAE,KAAM,2BAA4B,MAAOkB,EAAM,GAAI,UAAWqC,EAAM,UAAS,QAASrC,EAAM,KAAO,IAAA,GAAW,SAAUtB,EAAWH,CAAI,CAAE,CAAC,EAClK,MACJ,CACA,GAAInC,EAAgB,KAAKmC,EAAK,OAAO,EAAG,CACpC,IAAMoC,EAAY,mBAAmBnC,EAASD,EAAMjC,EAAsB,MAAM,EAC5EqE,IAAc,IAAA,IACd7B,EAAK,eAAe,KAAK6B,CAAS,EAEtC,MACJ,CACA,IAAMC,EAAQ,eAAepC,EAASD,EAAMrC,EAAkB,MAAM,EAChE0E,IAAU,IAAA,IACV9B,EAAK,WAAW,KAAK8B,CAAK,CAElC,CAGA,SAAS,qBAAqB,EAAwB,EAA6D,CAC/G,IAAMZ,EAAQ7B,EAA2B,KAAKI,EAAK,OAAO,EAC1D,GAAIyB,IAAU,MAAQA,EAAM,KAAO,IAAA,IAAaxB,EAAQ,UAAUD,EAAK,MAAM,IAAM,IAAA,GAC/E,MAAO,CAAE,KAAM,qCAAsC,KAAMyB,EAAM,GAAI,IAAKgC,EAAqBxD,EAASD,EAAM,IAAA,EAAS,EAAG,SAAUG,EAAWH,CAAI,CAAE,EAEzJ,GAAIyB,IAAU,MAAQA,EAAM,KAAO,IAAA,IAAaA,EAAM,EAAE,CAAC,SAAS,UAAU,EAGxE,OAFAxB,EAAQ,MAAMC,EAAgB,2BAA4B,8BAA8BF,EAAK,QAAQ,4DAA6DG,EAAWH,CAAI,CAAC,EAClL,SAASC,EAASD,EAAK,MAAM,EACtB,KAEX,IAAMiE,EAAUxC,EAAM,EAAE,CAAC,KAAK,EAExBiC,EADc,EAAEO,EAAQ,WAAW,GAAG,GAAKA,EAAQ,WAAW,GAAG,IAAMpE,GAAuB,KAAKoE,CAAO,EACtFpH,EAAmBoH,EAAS9D,EAAWH,CAAI,EAAGC,EAAQ,YAAY,EAAI,KAC1FiE,EAAWR,IAAQ,OAASA,EAAI,OAAS,2BAA6BA,EAAI,OAAS,0BAA4BA,EAAI,OAAS,6BAC7HQ,GAAUjE,EAAQ,MAAMC,EAAgB,2BAA4B,wBAAwB+D,EAAQ,0CAA2C9D,EAAWH,CAAI,CAAC,EACpK,IAAImE,EAAc,GAClB,IAAK,IAAI3D,EAAQP,EAAQ,UAAUD,EAAK,MAAM,EAAGQ,IAAU,IAAA,GAAW,EAAQP,EAAQ,UAAUD,EAAK,MAAM,EACvGC,EAAQ,OAAO,gBAAgB,EAC/BA,EAAQ,MAAMC,EAAgB,2BAA4B,6DAA8DC,EAAWK,CAAK,CAAC,EACzI,EAAc,GAElB,OAAO2D,GAAe,CAACD,EAAW,KAAO,CAAE,KAAM,qCAAsC,KAAMzC,EAAM,GAAI,MAAK,SAAUtB,EAAWH,CAAI,CAAE,CAC3I,CAEA,SAAS,SAAS,EAAwB,EAAsB,CAC5D,GAAIC,EAAQ,cAAc,cAAgB,QAAS,OAAOA,EAAQ,UAAUmE,CAAM,EAClFnE,EAAQ,gBAAgBmE,CAAM,CAClC,CAEA,SAAS,WAAW,EAAwB,EAAkB,EAAkD,CAC5G,IAAM3C,EAAQlC,GAAa,KAAKS,EAAK,OAAO,EAO5C,OANA,SAASC,EAASD,EAAK,MAAM,EACzByB,IAAU,MAAQA,EAAM,KAAOf,GAC/BT,EAAQ,MAAM4C,EAAsB7C,EAAK,OAAO,EAAIE,EAAgB,kCAAoCA,EAAgB,0BACpH,YAAYQ,EAAQ,sBAAsBA,EAAQ,yCAAyCA,EAAQ,gCAAiCP,EAAWH,CAAI,CAAC,EACjJ,MAEJ,CAAE,KAAM,2BAA4B,QAASyB,EAAM,GAAI,SAAUtB,EAAWH,CAAI,CAAE,CAC7F,CAEA,SAAS,oBAAoB,EAAwB,EAA4D,CAC7G,IAAMyB,EAAQ7C,EAAsB,KAAKoB,EAAK,OAAO,EAC/CqE,EAAQ5C,IAAU,KAAO5C,GAA2B,KAAKmB,EAAK,OAAO,EAAI,KAC/E,GAAIqE,IAAU,KACV,MAAO,CAAE,KAAM,oCAAqC,QAASA,EAAM,GAAI,SAAUA,EAAM,GAAI,OAAQZ,EAAqBxD,EAASD,EAAMqE,EAAM,EAAsB,EAAG,SAAUlE,EAAWH,CAAI,CAAE,EAErM,GAAIyB,IAAU,KAGV,OAFAxB,EAAQ,MAAMC,EAAgB,wBAAyB,6FAA8FC,EAAWH,CAAI,CAAC,EACrKC,EAAQ,UAAUD,EAAK,MAAM,EACtB,KAEX,IAAMsE,EAAWnE,EAAWH,CAAI,EAC1BuE,EAASC,GAAcvE,EAASwB,EAAM,GAAI,CAAE,GAAG6C,EAAU,OAAQA,EAAS,OAAStE,EAAK,QAAQ,QAAQyB,EAAM,GAAIzB,EAAK,QAAQ,QAAQ,GAAG,EAAI,CAAC,CAAE,EAAGE,EAAgB,uBAAuB,EAC3LM,EAAQP,EAAQ,UAAUD,EAAK,MAAM,EAK3C,OAJIQ,IAAU,IAAA,KACVP,EAAQ,MAAMC,EAAgB,wBAAyB,yDAA0DC,EAAWK,CAAK,CAAC,EAClIP,EAAQ,UAAUD,EAAK,MAAM,GAE1BuE,IAAW,KAAO,KAAO,CAAE,KAAM,oCAAqC,QAAS9C,EAAM,GAAI,SAAUA,EAAM,GAAI,SAAQ,UAAS,CACzI,CAEA,SAAS,aAAa,EAAwB,EAAkB,EAAoD,CAChH,OAAO,eAAexB,EAASD,EAAMP,GAAgBS,EAAgB,4BAA6B,GAAGQ,EAAQ,UAAW,GAAGA,EAAQ,qBAC9H,EAAS,KAAY,CAAE,KAAM,6BAA8B,UAAS,SAAQ,SAAUP,EAAWH,CAAI,CAAE,EAAE,CAClH,CAGA,SAAS,eACL,EAAwB,EAAkB,EAAe,EAAc,EAAiB,EACxF,EAA8D,EAAiB,GAAiB,CAChG,IAAMyB,EAAQgD,EAAM,KAAKzE,EAAK,OAAO,EAMrC,OALIyB,IAAU,MACVxB,EAAQ,MAAM8C,EAAM,YAAYrC,EAAQ,iBAAiBV,EAAK,QAAQ,gBAAgB0E,EAAS,GAAIvE,EAAWH,CAAI,CAAC,EACnH,SAASC,EAASD,EAAK,MAAM,EACtB,MAEJ2E,EAAOlD,EAAM,GAAI,YAAYxB,EAASD,EAAM,GAAO,IAAA,GAAW4E,EAAiB3E,EAAU,IAAA,EAAS,CAAC,CAC9G,CAEA,SAAS,YAAY,EAAwB,EAAkB,EAA+B,CAC1F,IAAMwB,EAAQ9B,GAAkB,KAAKK,EAAK,OAAO,EAC7CyB,IAAU,MACVxB,EAAQ,MAAMC,EAAgB,gCAAiC,sCAAsCF,EAAK,QAAQ,sCAAuCG,EAAWH,CAAI,CAAC,EACzK,SAASC,EAASD,EAAK,MAAM,GAGjCO,EAAK,YAAY,KAAK,CAAE,KAAM,iCAAkC,WAAY,YAAYN,EAASD,CAAI,EAAG,QAASyB,EAAM,KAAO,IAAA,GAAW,SAAUtB,EAAWH,CAAI,CAAE,CAAC,CACzK,CAEA,SAAS,mBAAmB,EAAwB,EAAkB,EAAe,EAA2D,CAC5I,IAAMyB,EAAQgD,EAAM,KAAKzE,EAAK,OAAO,EACrC,GAAIyB,IAAU,KACVxB,EAAQ,MAAMC,EAAgB,qBAAsB,YAAYQ,EAAQ,2BAA2BV,EAAK,QAAQ,gBAAgBU,EAAQ,6BAA8BP,EAAWH,CAAI,CAAC,EACtL,SAASC,EAASD,EAAK,MAAM,OAGjC,MAAO,CACH,KAAM,+BACN,KAAMyB,EAAM,GACZ,WAAY,YAAYxB,EAASD,EAAM,GAAOyB,CAAK,EACnD,QAASf,IAAY,QAAUe,EAAM,QAAQ,UAAY,IAAA,GACzD,eAAgBA,EAAM,QAAQ,UAAY,KAC1C,SAAUtB,EAAWH,CAAI,CAC7B,CACJ,CAEA,SAAS,eAAe,EAAwB,EAAkB,EAAe,EAAuD,CACpI,IAAMyB,EAAQgD,EAAM,KAAKzE,EAAK,OAAO,EACrC,GAAIyB,IAAU,KACVxB,EAAQ,MAAMC,EAAgB,iBAAkB,YAAYQ,EAAQ,iBAAiBV,EAAK,QAAQ,gBAAgBU,EAAQ,eAAgBP,EAAWH,CAAI,CAAC,EAC1J,SAASC,EAASD,EAAK,MAAM,OAGjC,MAAO,CAAE,KAAM,2BAA4B,UAAWyB,EAAM,GAAI,GAAG,2BAA2BxB,EAASD,EAAM,IAAA,GAAWyB,EAAOf,CAAO,EAAG,eAAgBe,EAAM,QAAQ,UAAY,KAAM,SAAUtB,EAAWH,CAAI,CAAE,CACxN,CAEA,MAAa6E,EAAsBC,EAAoB,+CAA+C,EAChGC,EAAwBhI,EAAQ,gCAAgC,EAEtE,SAAS,2BAA2B,EAAwB,EAAoB,EAAqC,EAA0B,EAAsK,CACjT,IAAM2E,EAAkC,CAAC,EACzCsD,EAAe/E,EAASgF,EAAQC,EAAQxD,CAAM,EAC9C,IAAIyD,EAAuC,KACvCC,EACAC,EACAC,EAAW,GACf,IAAK,IAAI9E,EAAQP,EAAQ,UAAUgF,EAAO,MAAM,EAAGzE,IAAU,IAAA,GAAW,EAAQP,EAAQ,UAAUgF,EAAO,MAAM,EAAG,CAC9GhF,EAAQ,OAAO,gBAAgB,EAC/B,IAAIsF,EACJ,GAAIC,IAAc,IAAA,IAAaC,EAAuB,KAAKjF,EAAM,OAAO,EAAG,CACvE,IAAMkF,EAAU9D,EAAqB3B,EAASO,EAAOmF,EAAyBzF,EAAgB,uBAAuB,EACjHwF,IAAY,MAAMF,EAAU,KAAKE,CAAO,EAC5C,QACJ,CACA,IAAME,EAAUzH,EAAe,KAAKqC,EAAM,OAAO,EACjD,GAAIoF,IAAY,KACZC,EAAgB5F,EAASyB,EAAQ,UAAUzB,EAASO,EAAOoF,CAAO,CAAC,OAChE,GAAIjF,EAAUH,EAAM,OAAO,IAAM,UAAYA,EAAM,QAAQ,WAAW,WAAW,EAAG,CACvF,GAAIsF,IAAiB,IAAA,GAAW,CAC5B7F,EAAQ,MAAMC,EAAgB,6BAA8B,0EAA2EC,EAAWK,CAAK,CAAC,EACxJP,EAAQ,UAAUO,EAAM,MAAM,EAC9B,QACJ,CACA,GAAI8E,EAAU,CACVrF,EAAQ,MAAMC,EAAgB,2BAA4B,0EAA2EC,EAAWK,CAAK,CAAC,EACtJP,EAAQ,UAAUO,EAAM,MAAM,EAC9B,QACJ,CACA,IAAMuF,EAAQlB,EAAoB,KAAKrE,EAAM,OAAO,EAChDA,EAAM,UAAY,cAAgBsF,IAAiB,QAAUA,IAAiB,qBAC9E,EAAW,CAAE,KAAM,8BAA+B,SAAU3F,EAAWK,CAAK,CAAE,EAC9E,EAAW,GACX,iCAAiCP,EAASO,CAAK,GACxCuF,IAAU,MAIjB9F,EAAQ,MAAMC,EAAgB,2BAA4B,mEAAoEC,EAAWK,CAAK,CAAC,EAC/IP,EAAQ,UAAUO,EAAM,MAAM,IAJ9B,EAAS,yBAAyBP,EAASO,EAAOuF,CAAK,EACvD,EAAW,GAKnB,MAAO,GAAIpF,EAAUH,EAAM,OAAO,IAAM,MAAO,CAC3C,IAAM+D,EAAS/D,EAAM,QAAQ,UAAU,CAAY,CAAC,CAAC,KAAK,EACtD+D,EAAO,SAAW,EAClBtE,EAAQ,MAAMC,EAAgB,gCAAiC,gEAAqEC,EAAWK,CAAK,CAAC,EAC9I2E,IAAgB,KAGvB,EAActI,EAAmB0H,EAAQpE,EAAWK,CAAK,EAAGP,CAAO,EAFnEA,EAAQ,MAAMC,EAAgB,kCAAmC,wEAAyEC,EAAWK,CAAK,CAAC,CAInK,MAAY,EAAawF,EAA0B/F,EAASO,CAAK,KAAO,IAAA,GAGpEP,EAAQ,MAAMC,EAAgB,0BAA2B,6BAA6BM,EAAM,QAAQ,qCAAsCL,EAAWK,CAAK,EAAGyF,EAAe,OAAQzF,EAAM,OAAO,CAAC,EAFlMqF,EAAgB5F,EAASyB,EAAQ6D,CAAU,CAInD,CACA,MAAO,CAAE,SAAQ,IAAKJ,EAAa,GAAIC,IAAW,IAAA,GAAY,CAAC,EAAI,CAAE,QAAO,EAAI,GAAIC,IAAa,IAAA,GAAY,CAAC,EAAI,CAAE,UAAS,CAAG,CACpI,CAEA,SAAgB,yBAAyB,EAAwB,EAAoB,EAAmD,CACpI,IAAIa,EAAyC,KACzCC,EAAyC,CAAC,EAC1C9B,EAAQ,GACN+B,EAAoE,CAAC,EAC3E,IAAK,IAAI5F,EAAQP,EAAQ,UAAUhD,EAAO,MAAM,EAAGuD,IAAU,IAAA,GAAW,EAAQP,EAAQ,UAAUhD,EAAO,MAAM,EAAG,CAE9G,GADAgD,EAAQ,OAAO,gBAAgB,EAC3BO,EAAM,UAAY,WAAY,CAC1B0F,IAAa,MAAQ7B,GACrBpE,EAAQ,MAAMC,EAAgB,2BAA4B,gFAAiFC,EAAWK,CAAK,CAAC,EAC5JP,EAAQ,UAAUO,EAAM,MAAM,IAE9B,EAAQ,GACR,EAAmB,SAAWL,EAAWK,CAAK,EAC9C,EAAgB6F,EAAgBpG,EAASO,EAAON,EAAgB,0BAA0B,CAAC,CAAC,IAAI,GAAQoG,EAAK,OAAO,OAAS,wBAA0BA,EAAK,OAAO,KAAK,WAAW,OAAO,EACpL,CAAE,GAAGA,EAAM,OAAQzJ,EAAmByJ,EAAK,OAAO,KAAMA,EAAK,OAAO,SAAUrG,CAAO,CAAE,EAAIqG,CAAI,GAEzG,QACJ,CACA,IAAMV,EAAUb,EAAsB,KAAKvE,EAAM,OAAO,EACxD,GAAIoF,IAAY,MAAQM,IAAa,MAAQ7B,EAAO,CAChDpE,EAAQ,MAAMC,EAAgB,2BAA4B,gFAAiFC,EAAWK,CAAK,CAAC,EAC5JP,EAAQ,UAAUO,EAAM,MAAM,EAC9B,QACJ,CACA,IAAM8D,EAAW,CAAE,GAAGnE,EAAWK,CAAK,EAAG,OAAQA,EAAM,OAAS,EAAIA,EAAM,QAAQ,QAAQoF,EAAQ,GAAIpF,EAAM,QAAQ,QAAQ,GAAG,EAAI,CAAC,CAAE,EACtI,EAAW,CAAE,KAAM,wBAAyB,SAAU,WAAY,OAAQ3D,EAAmB+I,EAAQ,GAAItB,EAAUrE,CAAO,EAAG,SAAUE,EAAWK,CAAK,CAAE,EACzJ,iCAAiCP,EAASO,CAAK,CACnD,CACA,MAAO,CAAE,KAAM,4BAA6B,YAAauF,EAAM,GAAI,OAAQA,EAAM,GAAI,WAAU,gBAAe,qBAC1G,kBAAmB,CAAE,GAAG5F,EAAWlD,CAAM,EAAG,OAAQA,EAAO,OAAS,EAAIA,EAAO,QAAQ,QAAQ8I,EAAM,GAAI,CAAe,CAAE,EAC1H,gBAAiBA,EAAM,EAAE,CAAC,OAAS,EAAIA,EAAM,EAAE,CAAC,OAAQ,SAAU5F,EAAWlD,CAAM,CAAE,CAC7F,CAEA,SAAgB,iCAAiC,EAAwB,EAAwB,CAC7F,IAAMuD,EAAQP,EAAQ,UAAUD,EAAK,MAAM,EACvCQ,IAAU,IAAA,KACVP,EAAQ,MAAMC,EAAgB,2BAA4B,uCAAwCC,EAAWK,CAAK,CAAC,EACnHP,EAAQ,UAAUD,EAAK,MAAM,EAErC,CAEA,SAAS,YAAY,EAAwB,EAAoB,EAAoB,GAAO,EAA0B,EAAgE,CAClL,IAAM0B,EAAkC,CAAC,EACzCsD,EAAe/E,EAASgF,EAAQC,EAAQxD,CAAM,EAC9C,IAAK,IAAIlB,EAAQP,EAAQ,UAAUgF,EAAO,MAAM,EAAGzE,IAAU,IAAA,GAAW,EAAQP,EAAQ,UAAUgF,EAAO,MAAM,EAAG,CAC9GhF,EAAQ,OAAO,gBAAgB,EAC/B,IAAM2F,GAAWW,GAAqBtG,EAAQ,cAAc,cAAgB,QAAU7B,EAAuBD,EAAA,CAAgB,KAAKqC,EAAM,OAAO,EACzI+E,EAAaK,IAAY,KAAOI,EAA0B/F,EAASO,CAAK,EAAI,IAAA,GAClF,GAAIoF,IAAY,MAAQL,IAAe,IAAA,GAAW,CAC9CtF,EAAQ,MAAMC,EAAgB,0BAA2B,6BAA6BM,EAAM,QAAQ,qCAAsCL,EAAWK,CAAK,EAAGyF,EAAe,OAAQzF,EAAM,OAAO,CAAC,EAClM,QACJ,CACA,IAAMmB,EAAQ4D,GAAc,UAAUtF,EAASO,EAAOoF,EAAUW,CAAiB,EAC7EC,IAA0B,IAAA,GAM1BX,EAAgB5F,EAASyB,EAAQC,CAAK,GALlCD,EAAO,KAAK,GAAY+E,EAAS,WAAa9E,EAAM,QAAQ,GAC5D6E,EAAsB,MAAMtG,EAAgB,kCAAmC,mBAAmByB,EAAM,SAAS,gBAAiBA,EAAM,SAAUsE,EAAe,WAAYtE,EAAM,QAAQ,CAAC,EAEhMD,EAAO,KAAKC,CAAK,EAIzB,CACA,OAAOD,CACX,CAEA,SAAS,UAAU,EAAwB,EAAkB,EAAwB,EAAoB,GAA8B,CACnI,MAAO,CAAE,KAAM,wBAAyB,SAAUD,EAAM,GAAI,OAAQ5E,EAAmB4E,EAAM,GAAItB,EAAWH,CAAI,EAAGC,EAASsG,CAAiB,EAAG,SAAUpG,EAAWH,CAAI,CAAE,CAC/K,CAEA,MAAM0G,GAAqB3J,EAAQ,yBAAyB,EACtD4J,GAAmB5J,EAAQ,iDAAiD,EAC5E6J,GAAgB7J,EAAQ,uFAAuF,EAErH,SAAS,qBAAqB,EAA0D,CACpF,IAAM0E,EAAQmF,GAAc,KAAK5G,EAAK,OAAO,EAC7C,GAAIyB,IAAU,KAAM,OACpB,IAAMoF,EAAOpF,EAAM,EAAE,CAAC,QAAQ,OAAQ,GAAG,EACnCyB,EAAwC2D,IAAS,KAAO,QAAUA,IAAS,QAAU,QAAUA,IAAS,SAAW,SAAWA,IAAS,YAAc,YAAcA,IAAS,WAAa,QAAU,QACzM,GAAKpF,EAAM,KAAO,IAAA,KAAgByB,IAAgB,aAClD,MAAO,CAAE,KAAM,6BAA8B,cAAa,OAAQzB,EAAM,IAAM,KAAM,SAAUtB,EAAWH,CAAI,CAAE,CACnH,CAGA,SAAgB,4BAA4B,EAAwB,EAAoB,EAA4C,CAChI,IAAMyB,EAAQvE,EAAoB,KAAKD,EAAO,OAAO,EACrD,GAAIwE,IAAU,KAGV,OAFAxB,EAAQ,MAAM8C,EAAM,0BAA0B9F,EAAO,QAAQ,sCAAuCkD,EAAWlD,CAAM,CAAC,EACtH,SAASgD,EAAShD,EAAO,MAAM,EACxB,CAAE,KAAM,+BAAgC,KAAM,GAAI,YAAa,KAAM,MAAO,CAAC,EAAG,aAAc,KAAM,YAAa,KAAM,SAAU,CAAC,EAAG,KAAM,CAAC,EAAG,SAAUkD,EAAWlD,CAAM,CAAE,EAEvL,IAAM8C,EAAO0B,EAAM,GACfrB,EAA6B,KAC3B0G,EAAoC,CAAC,EACvCC,EAAgD,KAChDC,EAAuC,KACvCC,EAAe,GACbC,EAAqC,CAAC,EACtCC,EAAqC,CAAC,EACtCf,EAAqD,CAAC,EAC5D,IAAK,IAAIpG,EAAOC,EAAQ,UAAUhD,EAAO,MAAM,EAAG+C,IAAS,IAAA,GAAW,EAAOC,EAAQ,UAAUhD,EAAO,MAAM,EAAG,CAC3GgD,EAAQ,OAAO,gBAAgB,EAC/B,IAAMS,EAAUC,EAAUX,EAAK,OAAO,EACtC,GAAIU,IAAY,cACZ,EAAcM,EAAiBf,EAASD,EAAMI,EAAa,kBAAkBL,EAAK,EAAE,EACpF,EAAmB,cAAgBI,EAAWH,CAAI,OAC/C,GAAIU,IAAY,QAAS,CAC5B,IAAM0G,EAAO,eAAenH,EAASD,EAAMxC,EAAc,OAAO,EAC5D4J,IAAS,IAAA,IAAWN,EAAM,KAAKM,CAAI,CAC3C,MAAO,GAAI1G,IAAY,OAAQ,CAC3B,GAAIuG,EAAc,CACdhH,EAAQ,MAAM8C,EAAM,kBAAkBhD,EAAK,8BAA+BI,EAAWH,CAAI,CAAC,EAC1F,SAASC,EAASD,EAAK,MAAM,EAC7B,QACJ,CACA,EAAe,GACf,IAAMqH,EAAQX,GAAmB,KAAK1G,EAAK,OAAO,EAClD,GAAIqH,IAAU,KAAM,CAChB,IAAMC,EAAQtH,EAAK,QAAQ,QAAQqH,EAAM,GAAI,EAAmB,EAChE,EAAcxK,EAAmBwK,EAAM,EAAE,CAAC,KAAK,EAAGE,EAAevH,EAAK,OAAQA,EAAK,QAAUA,EAAK,eAAiB,GAAK,EAAIsH,EAAOtH,EAAK,IAAI,EAAGC,CAAO,CAC1J,MAAWD,EAAK,QAAQ,WAAW,aAAa,EAAG,EAAe,eAAeC,EAASD,EAAMvC,EAAmB,aAAa,GAAK,MAEjIwC,EAAQ,MAAM8C,EAAM,YAAY/C,EAAK,QAAQ,2DAA4DG,EAAWH,CAAI,CAAC,EACzH,SAASC,EAASD,EAAK,MAAM,EAErC,MAAO,GAAIU,IAAY,UAAW,CAC9B,IAAMc,EAAUmF,GAAiB,KAAK3G,EAAK,OAAO,EAC9CwB,IAAY,KACXvB,EAAQ,MAAM8C,EAAM,oBAAoB/C,EAAK,QAAQ,yCAA0CG,EAAWH,CAAI,CAAC,EAD9FkH,EAAS,KAAK,CAAE,KAAM,yBAA0B,KAAM1F,EAAQ,GAAI,OAAQA,EAAQ,GAAI,SAAUrB,EAAWH,CAAI,CAAE,CAAC,EAExI6B,EAAwB5B,EAASD,EAAM+C,EAAM,kCAAkC,CACnF,MAAO,GAAIrC,IAAY,OAAQ,CAC3B,IAAMwC,EAAc,qBAAqBlD,CAAI,EACzCkD,IAAgB,IAAA,GACfjD,EAAQ,MAAM8C,EAAM,YAAY/C,EAAK,QAAQ,uJAAwJG,EAAWH,CAAI,CAAC,EAD3LmH,EAAK,KAAKjE,CAAW,EAEpDrB,EAAwB5B,EAASD,EAAM+C,EAAM,mCAAmC,CACpF,MACI9C,EAAQ,MAAM8C,EAAM,eAAe/C,EAAK,QAAQ,sBAAsBD,EAAK,yDAA0DI,EAAWH,CAAI,CAAC,EACrJC,EAAQ,UAAUD,EAAK,MAAM,CAErC,CACA,MAAO,CAAE,KAAM,+BAAgC,OAAM,cAAa,QAAO,eAAc,cAAa,WAAU,OAAM,SAAUG,EAAWlD,CAAM,EAAG,oBAAmB,CACzK,C"}
@@ -1,2 +1,2 @@
1
- const e={kinds:/* @__PURE__ */ `AddMappingSyntax.AllSyntax.ApplicationSyntax.ApplicationContextSyntax.ContextMemberSyntax.ApplicationTriggerInteractionTriggerSyntax.ArrangementContainerSyntax.ArrangementOverrideSyntax.ArrangementSlotSyntax.ArrangementSyntax.AuthenticatedConditionSyntax.AuthenticationProviderSyntax.AuthenticationSyntax.AuthorizeSyntax.NavigationItemSyntax.NavigationLogoSyntax.NavigationRegionSyntax.NavigationTargetSyntax.BehaviorArgumentSyntax.BehaviorParameterSyntax.BehaviorSyntax.BuiltInInteractionTriggerSyntax.CaptureAppendSyntax.CaptureChildrenSyntax.CaptureMapEntrySyntax.CaptureNestedSyntax.CaptureSourceSettingSyntax.CaptureSourceSyntax.CaptureSplitSyntax.CaptureSyntax.CaptureTranslationSyntax.CaptureWhenSyntax.CausedByExpressionSyntax.ClockOffsetExpressionSyntax.CommandCalendarSyntax.DateOfExpressionSyntax.SpecificationTimeZoneSyntax.TimeZoneSyntax.CaseValueExpressionSyntax.ChildrenSyntax.ClaimConditionSyntax.ClaimIdentitySourceSyntax.CodeIdentitySourceSyntax.FileIdentitySourceSyntax.IdentitySyntax.IdentityDetailSyntax.QueryIdentitySourceSyntax.ClearMappingSyntax.ClearWithSyntax.CloseDialogActionSyntax.CodeBlockSyntax.ComponentExposedValueSyntax.ComponentOutletSyntax.ComponentPropertySyntax.CodeValidateSyntax.CommandSyntax.CommandStreamSyntax.ObserverFilterSyntax.ComparisonConditionSyntax.CompositeKeySyntax.ConceptAttributeSyntax.ConceptSyntax.GenerationSyntax.ConcurrencySyntax.ConfirmActionSyntax.ContextExpressionSyntax.IdentityExpressionSyntax.ContributionSyntax.ContributionDestinationSyntax.CountMappingSyntax.DeclarativeValidateSyntax.DecrementMappingSyntax.DialogTemplateSyntax.DomainSyntax.EnvironmentExpressionSyntax.EventContextExpressionSyntax.EventInteractionTriggerSyntax.EventSourceIdExpressionSyntax.EventSourceSyntax.EventStreamIdPartSyntax.EventStreamSyntax.EventSpecSyntax.EventSyntax.EverySyntax.ExecuteCommandActionSyntax.ExpressionKeySyntax.FeatureSyntax.FileConstraintSyntax.FileImportSyntax.FileReferenceSyntax.FileValidateSyntax.FormColumnSyntax.ExposureSyntax.ExposedPropertySyntax.InstanceContributionsSyntax.InstanceContributionSyntax.ContributedItemSyntax.ContributedItemValueSyntax.ScreenContributionSyntax.TemplateSlotContentSyntax.CommandFormLayoutSyntax.FormLayoutColumnSyntax.FormFieldPlacementSyntax.FormWidthSyntax.FormFieldSyntax.FormPopulateFromItemSyntax.FormPopulateViaQuerySyntax.FormSyntax.FromSyntax.HandlerSyntax.PossibleEventsSyntax.PossibleEventSyntax.ImplementationSyntax.ImplementationHintSyntax.SystemSyntax.StateMachineSyntax.LifecycleSpecificationSyntax.LifecycleOutcomeSyntax.LifecycleExpectationSyntax.StateSyntax.StateEntrySyntax.StateTransitionSyntax.WorkflowSyntax.WorkflowNodeSyntax.WorkflowEdgeSyntax.WorkflowDurationSyntax.OperationSyntax.OperationPhaseSyntax.SpecificationExampleSyntax.SpecificationParameterSyntax.SpecificationCaseSyntax.SpecificationOperationFailureSyntax.SpecificationOperationSyntax.SpecificationCompensatedSyntax.ImportSyntax.IncrementMappingSyntax.InteractionAlternativeSyntax.InteractionOtherwiseSyntax.InteractionArgumentSyntax.InteractionBindingSyntax.IntervalInteractionTriggerSyntax.IntervalTriggerSourceSyntax.InvokesSyntax.InvocationRefusalSyntax.JoinEventSyntax.JoinSyntax.KeyPartSyntax.LayoutSyntax.ListExpressionSyntax.LiteralExpressionSyntax.LogicalConditionSyntax.LogicalPolicyConditionSyntax.LogicalPolicyRequirementSyntax.ModuleSyntax.NamedTriggerSourceSyntax.NavigateActionSyntax.NavigateBackActionSyntax.NestedSyntax.NotPolicyConditionSyntax.NotifyActionSyntax.OpenDialogActionSyntax.ObjectExpressionSyntax.ObjectMemberSyntax.OnboardingSyntax.OnboardingSignupSyntax.OnboardingInvitationSyntax.OnboardingLegalTermsSyntax.OnboardingOfferingSyntax.OnboardingEmailsSyntax.OnboardingEmailSyntax.OnboardingImagesSyntax.PathExpressionSyntax.PerformerSyntax.PersonaSyntax.StickyNoteSyntax.PlaceSyntax.PolicyReferenceSyntax.PolicySyntax.PurposeSyntax.PurposeReferenceSyntax.PurposeTransferSyntax.ProducesSyntax.ProjectionEntersOnSyntax.ProjectionSyntax.ProjectionVariantSyntax.PresentationValueSyntax.PropertyMappingSyntax.PropertySyntax.PropertyResponseSourceSyntax.ResponseFieldSyntax.ScalarCommandResponseSyntax.RecordCommandResponseSyntax.ScalarSpecificationReturnSyntax.RecordSpecificationReturnSyntax.QueryParameterSyntax.QuerySyntax.RaiseTriggerActionSyntax.RawExpressionSyntax.ReactionIdentitySyntax.ReactionSyntax.ReactionTriggerSyntax.RefusalExpressionSyntax.ReadModelSyntax.ReadsSyntax.ReducerRuleSyntax.ReducerSyntax.RefreshQueryActionSyntax.RemoveViaJoinSyntax.RemoveWithSyntax.RequirementSyntax.RoleConditionSyntax.ScheduleTriggerSourceSyntax.ScreenActionSyntax.ScreenNavigationParameterSyntax.ScreenGuardedActionSyntax.ScreenActionAlternativeSyntax.ScreenActionOtherwiseSyntax.ScreenBehaviorSyntax.ScreenCodeSyntax.ScreenComponentSyntax.ScreenColumnSyntax.ScreenDataSyntax.ScreenFieldSyntax.ScreenNavigateSyntax.ScreenSectionSyntax.ScreenSlotSyntax.ScreenSummarySyntax.ScreenSyntax.ScreenTableSyntax.ScreenTemplateReferenceSyntax.ScreenTemplateSyntax.ScreenTitleSyntax.ScreenToolbarSyntax.ScreenUsesBehaviorSyntax.SeedEventSyntax.SeedGroupSyntax.SeedSyntax.SetMappingSyntax.TemplateAssignmentSyntax.TemplateExposedValueSyntax.TemplateOutletSyntax.SetStateActionSyntax.SliceSyntax.SlotSyntax.SourceItemExpressionSyntax.SpecificationAbsentReadModelSyntax.SpecificationCallerClaimSyntax.SpecificationCallerPersonaSyntax.SpecificationCallerSyntax.SpecificationCaptureSyntax.SpecificationClockSyntax.SpecificationGeneratedValueSyntax.SpecificationInvocationSyntax.SpecificationCommandSyntax.SpecificationDeniedSyntax.SpecificationErrorSyntax.SpecificationEventSyntax.NewScreenTemplateSyntax.ProfileAppearanceSyntax.ProfileIdentitySyntax.RootTemplateSyntax.SampleDataBindingSyntax.ShellOptionSyntax.SampleDataFieldSyntax.SampleDataMappingSyntax.SampleDataPackReferenceSyntax.SampleDataPackSyntax.SampleDataRowSyntax.SampleDataSelectionSyntax.SampleDataSetSyntax.SpecificationNoResultSyntax.SpecificationStreamSyntax.SpecificationNoStreamSyntax.SpecificationQueryResultSyntax.SpecificationQuerySyntax.SpecificationReadModelSyntax.SpecificationRedeliverySyntax.SpecificationSyntax.SpecificationTriggerSyntax.SpecificationWhenQuerySyntax.StringsExpressionSyntax.SubtractMappingSyntax.TagSyntax.ToolbarButtonSyntax.ToolbarItemSyntax.TemplateExpressionSyntax.TemplateInterpolationSyntax.TemplateTextSyntax.ThemeSyntax.TriggerDataSyntax.TriggerSyntax.TypeRefSyntax.TypeSyntax.UiBindingSyntax.UiProfileSyntax.UniqueEventConstraintSyntax.UniquePropertyConstraintSyntax.DependsOnSyntax.UsesBehaviorSyntax.ValidationRuleSyntax.VariantSyntax.AnonymousConditionSyntax`.split(`.`),names:/* @__PURE__ */ `factor.property.value.autoMap.mappings.authentication.behaviors.commandReadMode.concepts.context.domain.eventSources.examples.exposures.fileImports.identity.imports.instanceContributions.layouts.modules.onboarding.personas.policies.purposes.reactionProductionMode.sampleDataPacks.seeds.sourceOptions.numericMode.stateMachines.stickyNotes.systems.templates.themes.timeZone.triggers.types.uiProfiles.workflows.description.members.name.triggerName.children.columns.gap.grow.rows.span.syntaxKind.height.root.width.growFactor.mode.overrides.variants.alias.providers.requirement.icon.id.slot.target.title.image.buttons.items.logo.region.feature.module.type.bindings.file.order.parameters.event.tags.when.appends.identifiedBy.map.source.translations.settings.separator.targets.key.keyIsEventSource.nested.from.to.expression.fromValue.properties.toValue.amount.clock.unit.contextMember.operand.configurable.parameter.blocks.claim.matches.matchesSubject.code.details.by.query.arguments.onFailure.onResult.onSuccess.language.binding.directives.authorize.calendar.concurrency.documentation.handler.produces.reads.response.stream.streamCandidates.validations.eventSource.propertyCandidate.streamId.streamIdParts.left.leftExpression.operator.right.parts.criminal.reason.scope.specialCategory.attributes.generation.valueNumbers.values.alphabet.case.checksum.count.encoding.pattern.prefix.range.rule.size.strategy.eventSourceType.eventStreamId.eventStreamType.eventTypes.message.messageIsLiteral.path.contributionPoint.destination.group.label.navigate.presentation.requirements.rules.arrangement.category.content.displayName.exposes.outlets.restrictsScopes.scopes.sliceKinds.slots.templateType.usedBehaviors.eventName.identifier.streams.x.y.hasGenerationMarker.origin.visibility.includeChildren.command.contributions.dependsOn.features.isPlacement.slices.toolbars.additionalRules.ignoreCasing.releasedBy.owner.component.editableFields.isCollection.operations.reExposes.restrictsFields.instance.field.columnGap.placements.rowGap.index.maxWidth.minWidth.column.columnSpan.row.rowSpan.composeUsing.columnMode.fields.for.generationMode.layout.onSubmit.populate.events.parentKey.implementation.possibleEvents.oneOf.hints.text.follows.specifications.states.given.outcomes.then.whenAppended.whenStarted.node.outlet.expectation.entering.isFinal.isInitial.transitions.entryKind.nodes.subject.attempts.condition.duration.edges.expiresAfter.joinCount.joinMode.nodeKind.parallel.retryAfter.schedule.state.stateMachine.timeout.triggerKind.compensate.execute.inputs.uses.generatedValues.noStream.operation.qualifiedName.actions.alternatives.otherwise.trigger.onRefused.acknowledge.constraint.selector.on.navigation.literalType.dialogTemplates.forms.screenTemplates.screen.level.dialogTemplate.emails.invitations.legalTerms.offering.signup.outcome.grant.documents.images.goals.canvas.colour.hidden.sizeHeight.sizeWidth.slotName.authorization.basis.basisReference.conditionReference.erasureException.interest.recipients.retention.subjects.transfers.safeguard.inlineEvent.inlineOperation.readModel.sequence.entersOn.isGenerated.isIdentifier.isKey.isSubject.byParts.filters.isObservable.performer.returnType.roles.runsAs.where.data.invokes.member.isPassive.partsKey.severity.role.dayOfMonth.dayOfWeek.time.behavior.stableId.route.rowClick.blueprint.version.fitsSlot.eventSourceId.groups.captures.commands.constraints.direction.projections.queries.reactions.readModels.reducers.screens.contributes.authenticated.claims.capture.record.instant.commandType.inlineProperty.caseValue.eventType.accent.colorScheme.corners.font.logoKind.logoValue.showName.options.pack.shape.isBlueprint.locale.sets.active.exactly.results.reaction.cases.givenCaller.givenCallerPersona.givenCaptures.givenClock.givenGenerated.givenOperationFailures.givenReadModels.givenTimeZone.thenAbsentReadModels.thenCompensated.thenDenied.thenErrors.thenEvents.thenEventsInAnyOrder.thenInvocations.thenNoEvents.thenNoResult.thenOperations.thenQueries.thenReadModels.thenResults.thenReturns.whenCapture.whenClock.whenQuery.whenRedelivered.whenTrigger.confirm.emphasis.slice.compatibleWith.isOptional.bindingKind.componentId.componentPropertyPath.expectedValueType.literal.nullBehavior.rawText.appearance.defaultSizeClass.icons.newScreenTemplate.packages.platforms.sampleData.theme.additionalProperties.places`.split(`.`),rules:[[`ref`,32,33,35,38,65,66,74,75,77,148,149,161,171,197,201,244,280,285],[`null`],[`union`,0,1],[`string`],[`object`,[[0,2,!1],[1,3,!0],[2,0,!0]]],[`enum`,`Inherit`,`Disabled`,`Enabled`],[`ref`,0,47,69,71,135,237,281],[`array`,6],[`object`,[[3,5,!0],[4,7,!1]]],[`ref`,12],[`union`,9,1],[`ref`,20],[`array`,11],[`enum`,`Protected`],[`union`,13,1],[`ref`,61],[`array`,15],[`ref`,3],[`union`,17,1],[`ref`,73],[`union`,19,1],[`ref`,78],[`array`,21],[`ref`,128],[`array`,23],[`ref`,92],[`array`,25],[`ref`,88],[`array`,27],[`ref`,44],[`union`,29,1],[`ref`,134],[`array`,31],[`ref`,94],[`array`,33],[`ref`,147],[`array`,35],[`union`,36,1],[`ref`,153],[`array`,38],[`ref`,163],[`union`,40,1],[`ref`,173],[`array`,42],[`union`,43,1],[`ref`,177],[`array`,45],[`ref`,178],[`array`,47],[`enum`,`Atomic`],[`union`,49,1],[`ref`,266],[`array`,51],[`ref`,236],[`array`,53],[`union`,54,1],[`enum`,`legacy`,`exact`],[`object`,[[28,56,!0]]],[`ref`,115],[`array`,58],[`ref`,174],[`array`,60],[`ref`,114],[`array`,62],[`ref`,238],[`array`,64],[`ref`,288],[`array`,66],[`union`,67,1],[`ref`,37],[`union`,69,1],[`ref`,290],[`array`,71],[`union`,72,1],[`ref`,292],[`array`,74],[`union`,75,1],[`ref`,294],[`array`,77],[`union`,78,1],[`ref`,122],[`array`,80],[`object`,[[5,10,!1],[6,12,!1],[7,14,!1],[8,16,!1],[9,18,!1],[10,20,!1],[11,22,!1],[12,24,!1],[13,26,!1],[14,28,!1],[15,30,!1],[16,32,!1],[17,34,!1],[18,37,!1],[19,39,!1],[20,41,!1],[21,44,!1],[22,46,!1],[23,48,!1],[24,50,!1],[25,52,!1],[26,55,!1],[27,57,!1],[29,59,!1],[30,61,!1],[31,63,!1],[32,65,!1],[33,68,!1],[34,70,!1],[35,73,!1],[36,76,!1],[37,79,!1],[38,81,!1]]],[`union`,3,1],[`ref`,4],[`array`,84],[`object`,[[39,83,!1],[40,85,!1]]],[`object`,[[41,3,!0]]],[`object`,[[42,3,!0]]],[`ref`,6,8],[`array`,89],[`integer`,-2147483648,2147483647],[`union`,91,1],[`number`],[`union`,93,1],[`enum`,`Flat`,`Row`,`Column`,`Grid`],[`object`,[[43,90,!1],[44,92,!1],[45,92,!1],[46,94,!1],[47,92,!1],[48,92,!1],[49,95,!0]]],[`object`,[[50,83,!1],[51,89,!0],[52,83,!1]]],[`boolean`],[`object`,[[46,98,!1],[53,94,!1],[50,92,!1],[41,3,!0],[48,92,!1],[52,92,!1]]],[`enum`,`Flow`,`Freeform`],[`ref`,7],[`array`,101],[`union`,102,1],[`union`,89,1],[`ref`,300],[`array`,105],[`union`,106,1],[`object`,[[54,100,!0],[55,103,!1],[51,104,!1],[56,107,!1]]],[`object`,[]],[`object`,[[57,83,!1],[41,3,!0]]],[`ref`,11],[`array`,111],[`object`,[[58,112,!1]]],[`ref`,152,176],[`object`,[[59,114,!0]]],[`ref`,14],[`array`,116],[`ref`,17],[`union`,118,1],[`object`,[[43,117,!1],[60,83,!1],[61,3,!0],[62,83,!1],[63,119,!1],[64,3,!0]]],[`object`,[[65,3,!0],[64,3,!0]]],[`ref`,283],[`array`,122],[`ref`,15],[`union`,124,1],[`enum`,`Unspecified`,`Inherit`,`Extend`,`Override`],[`enum`,`Topbar`,`Sidebar`],[`object`,[[66,123,!1],[67,117,!1],[68,125,!1],[54,126,!0],[69,127,!0]]],[`object`,[[70,83,!1],[71,3,!0]]],[`object`,[[41,3,!0],[2,3,!0]]],[`ref`,291],[`union`,131,1],[`object`,[[41,3,!0],[72,132,!1]]],[`ref`,139],[`array`,134],[`ref`,89],[`union`,136,1],[`ref`,19],[`array`,138],[`object`,[[73,135,!1],[39,83,!1],[74,137,!1],[41,83,!1],[75,92,!1],[76,139,!1]]],[`enum`,`Click`,`DoubleClick`,`Select`,`Submit`,`Change`,`Load`,`Unload`,`Enter`,`Leave`,`Unknown`],[`object`,[[49,141,!0]]],[`ref`,186],[`array`,143],[`ref`,282],[`array`,145],[`union`,146,1],[`ref`,31],[`union`,148,1],[`object`,[[77,3,!0],[4,144,!1],[78,147,!1],[79,149,!1]]],[`ref`,22],[`array`,151],[`ref`,24,28],[`array`,153],[`object`,[[80,152,!1],[81,3,!0],[82,154,!1],[1,3,!0]]],[`ref`,30],[`array`,156],[`object`,[[1,3,!0],[83,0,!0],[84,157,!1]]],[`object`,[[80,152,!1],[82,154,!1],[1,3,!0]]],[`ref`,26],[`array`,160],[`object`,[[85,161,!1],[49,3,!0]]],[`array`,3],[`object`,[[86,3,!0],[83,0,!0],[87,163,!1]]],[`ref`,23],[`array`,165],[`ref`,25],[`array`,167],[`ref`,27],[`union`,169,1],[`object`,[[80,152,!1],[43,166,!1],[88,83,!1],[89,98,!1],[82,154,!1],[41,3,!0],[90,168,!1],[83,170,!1],[27,57,!1]]],[`object`,[[91,3,!0],[92,3,!0]]],[`enum`,`PropertyChanged`,`Added`,`Removed`,`Changed`,`LogicalOr`,`LogicalAnd`,`ValueTransition`,`Expression`],[`object`,[[93,83,!1],[94,83,!1],[95,163,!1],[49,173,!0],[96,83,!1]]],[`object`,[[1,83,!1]]],[`object`,[[97,91,!0],[98,3,!0],[99,3,!0]]],[`object`,[[100,83,!1],[61,83,!1]]],[`object`,[[101,0,!0]]],[`object`,[[61,3,!0]]],[`object`,[[102,98,!0],[61,3,!0]]],[`object`,[[103,3,!0]]],[`ref`,1,39,48,83,108,145,157,184,207,208],[`array`,182],[`object`,[[3,5,!0],[104,183,!1],[81,0,!0],[1,3,!0]]],[`object`,[[105,3,!0],[106,2,!1],[107,98,!0]]],[`object`,[[105,3,!0]]],[`ref`,50],[`object`,[[108,187,!0]]],[`object`,[[74,136,!0]]],[`ref`,45],[`array`,190],[`object`,[[39,83,!1],[109,191,!1]]],[`ref`,41,42,43,46],[`object`,[[41,3,!0],[83,193,!0],[72,131,!0]]],[`object`,[[110,0,!0],[111,3,!0]]],[`object`,[[1,3,!0]]],[`object`,[[77,3,!0]]],[`ref`,138],[`array`,198],[`ref`,49,64,84,155,156,159,160,196,206,241],[`array`,200],[`object`,[[112,199,!1],[113,201,!1],[114,201,!1],[115,201,!1]]],[`object`,[[108,3,!0],[116,3,!0]]],[`ref`,293],[`object`,[[117,204,!0],[41,3,!0]]],[`ref`,212,214,217,218,219,221,223,224,225,226,228,229,231,232,233],[`array`,206],[`object`,[[118,207,!1],[41,3,!0]]],[`union`,204,1],[`object`,[[117,209,!1],[1,3,!0],[2,2,!1]]],[`ref`,13],[`union`,211,1],[`ref`,34],[`union`,213,1],[`ref`,63],[`union`,215,1],[`ref`,109],[`union`,217,1],[`ref`,181],[`array`,219],[`ref`,187],[`array`,221],[`ref`,203],[`array`,223],[`union`,224,1],[`ref`,190,191],[`union`,226,1],[`ref`,56],[`union`,228,1],[`array`,228],[`ref`,54,70,90],[`array`,231],[`object`,[[119,212,!1],[120,214,!1],[121,216,!1],[39,83,!1],[122,83,!1],[123,218,!1],[41,3,!0],[124,220,!1],[95,222,!1],[125,225,!1],[126,227,!1],[127,229,!1],[128,230,!1],[129,232,!1]]],[`union`,221,1],[`union`,143,1],[`object`,[[130,3,!0],[131,234,!1],[127,3,!0],[132,235,!1],[133,144,!1]]],[`object`,[[130,3,!0],[127,83,!1]]],[`enum`,`Equal`,`NotEqual`,`GreaterThan`,`GreaterThanOrEqual`,`LessThan`,`LessThanOrEqual`,`Contains`,`StartsWith`],[`object`,[[134,3,!0],[135,2,!1],[136,238,!0],[137,0,!0]]],[`ref`,146],[`array`,240],[`object`,[[138,241,!1],[72,3,!0]]],[`object`,[[139,98,!1],[41,3,!0],[140,83,!1],[141,83,!1],[142,83,!1]]],[`ref`,60],[`array`,244],[`ref`,62],[`union`,246,1],[`union`,232,1],[`array`,91],[`union`,249,1],[`object`,[[143,245,!1],[39,83,!1],[74,137,!1],[144,247,!1],[41,3,!0],[72,3,!0],[129,248,!1],[145,250,!1],[146,163,!1]]],[`union`,187,1],[`object`,[[147,83,!1],[148,83,!1],[149,83,!1],[108,252,!1],[150,92,!1],[151,83,!1],[74,137,!1],[152,83,!1],[153,83,!1],[154,83,!1],[155,83,!1],[156,92,!1],[157,3,!0]]],[`object`,[[130,98,!0],[158,83,!1],[159,83,!1],[160,83,!1],[161,163,!1]]],[`object`,[[112,199,!1],[162,3,!0],[163,98,!0],[113,201,!1],[114,201,!1],[115,201,!1]]],[`object`,[[164,3,!0]]],[`ref`,68],[`union`,257,1],[`ref`,223],[`union`,259,1],[`object`,[[165,3,!0],[166,258,!1],[167,83,!1],[60,83,!1],[61,83,!1],[168,83,!1],[169,260,!1],[75,92,!1],[170,83,!1]]],[`enum`,`Outlet`,`Dialog`,`External`],[`object`,[[49,262,!0],[63,3,!0]]],[`ref`,209],[`array`,264],[`union`,265,1],[`ref`,299],[`array`,267],[`object`,[[171,266,!1],[172,268,!1]]],[`ref`,9],[`union`,270,1],[`ref`,99],[`array`,272],[`ref`,239],[`array`,274],[`ref`,240],[`array`,276],[`ref`,243],[`array`,278],[`ref`,298],[`array`,280],[`object`,[[173,271,!1],[6,12,!1],[174,83,!1],[175,273,!1],[39,83,!1],[176,83,!1],[177,275,!1],[41,3,!0],[178,277,!1],[179,98,!1],[180,163,!1],[181,163,!1],[182,279,!1],[183,83,!1],[184,281,!1]]],[`object`,[[185,3,!0]]],[`ref`,80],[`array`,284],[`object`,[[39,83,!1],[61,83,!1],[186,132,!1],[41,3,!0],[187,285,!1],[188,92,!1],[189,92,!1]]],[`object`,[[41,3,!0],[72,131,!0]]],[`ref`,79],[`array`,288],[`object`,[[39,83,!1],[61,83,!1],[41,3,!0],[132,132,!1],[133,289,!1]]],[`object`,[[77,3,!0],[88,2,!1]]],[`integer`,0,4294967295],[`enum`,`Private`,`Public`],[`object`,[[39,83,!1],[122,83,!1],[74,137,!1],[144,292,!1],[190,98,!1],[61,83,!1],[41,3,!0],[191,83,!1],[95,222,!1],[78,147,!1],[192,293,!1]]],[`object`,[[3,5,!0],[193,98,!0],[4,7,!1]]],[`object`,[[112,199,!1],[194,3,!0],[113,201,!1],[114,201,!1],[115,201,!1]]],[`object`,[[93,0,!0]]],[`ref`,67],[`array`,298],[`union`,299,1],[`ref`,297],[`array`,301],[`ref`,86],[`array`,303],[`ref`,179],[`array`,305],[`ref`,242],[`array`,307],[`ref`,232],[`array`,309],[`object`,[[119,212,!1],[6,12,!1],[195,300,!1],[196,302,!1],[39,83,!1],[122,83,!1],[12,24,!1],[197,304,!1],[14,28,!1],[198,98,!0],[41,3,!0],[23,306,!1],[199,308,!1],[32,65,!1],[200,310,!1],[184,281,!1]]],[`ref`,87,295,296],[`array`,312],[`object`,[[201,313,!1],[39,83,!1],[74,136,!0],[202,98,!0],[162,83,!1],[41,3,!0],[203,163,!1]]],[`object`,[[152,3,!0]]],[`object`,[[168,83,!1],[1,3,!0]]],[`ref`,93],[`array`,317],[`object`,[[204,3,!0],[95,318,!1]]],[`object`,[[205,3,!0],[206,163,!1],[207,98,!0],[168,83,!1],[208,163,!1],[164,3,!0],[209,83,!1],[210,98,!0]]],[`ref`,95],[`array`,321],[`object`,[[195,322,!1],[211,3,!0]]],[`ref`,96],[`array`,324],[`object`,[[205,3,!0],[67,325,!1],[164,3,!0],[2,2,!1]]],[`ref`,97],[`array`,327],[`object`,[[61,3,!0],[146,328,!1]]],[`object`,[[212,3,!0],[2,0,!0]]],[`object`,[[165,3,!0],[118,207,!1],[75,92,!1]]],[`object`,[[118,207,!1],[62,3,!0]]],[`ref`,103],[`union`,333,1],[`ref`,101],[`array`,335],[`ref`,102],[`array`,337],[`object`,[[213,334,!1],[44,336,!1],[214,338,!1],[215,334,!1]]],[`object`,[[216,91,!0],[217,334,!1],[218,334,!1],[52,334,!1]]],[`object`,[[219,91,!0],[220,92,!1],[212,3,!0],[221,91,!0],[222,92,!1],[52,334,!1]]],[`enum`,`Fraction`,`Pixels`,`Percent`,`Auto`],[`object`,[[99,342,!0],[2,94,!1]]],[`object`,[[223,83,!1],[91,83,!1],[168,83,!1],[1,3,!0]]],[`object`,[[110,83,!1],[111,3,!0]]],[`enum`,`Unspecified`,`Auto`,`Manual`],[`ref`,91],[`array`,347],[`ref`,104],[`array`,349],[`ref`,100],[`union`,351,1],[`ref`,105,106],[`union`,353,1],[`object`,[[6,12,!1],[224,346,!0],[44,348,!1],[39,83,!1],[225,350,!1],[226,3,!0],[227,346,!0],[228,352,!1],[41,3,!0],[229,260,!1],[230,354,!1],[184,281,!1]]],[`ref`,81],[`array`,356],[`ref`,59,85],[`union`,358,1],[`object`,[[231,357,!1],[88,359,!1],[4,7,!1],[232,2,!1]]],[`ref`,112],[`union`,361,1],[`ref`,110],[`union`,363,1],[`object`,[[108,252,!1],[74,137,!1],[233,362,!1],[234,364,!1]]],[`ref`,111],[`array`,366],[`object`,[[231,367,!1]]],[`object`,[[77,3,!0],[235,98,!0],[1,83,!1],[127,229,!1],[78,146,!1]]],[`ref`,113],[`array`,370],[`object`,[[236,371,!1]]],[`object`,[[237,3,!0]]],[`object`,[[39,83,!1],[41,3,!0]]],[`ref`,116],[`array`,375],[`ref`,119],[`array`,377],[`object`,[[39,83,!1],[238,3,!0],[41,3,!0],[239,376,!1],[240,378,!1]]],[`ref`,256],[`array`,380],[`ref`,117],[`array`,382],[`ref`,118],[`array`,384],[`union`,380,1],[`object`,[[39,83,!1],[241,381,!1],[41,3,!0],[242,383,!1],[243,385,!1],[244,386,!1],[245,2,!1]]],[`object`,[[246,3,!0],[247,3,!0]]],[`enum`,`State`,`Sends`,`Starts`,`Completes`,`Fails`,`Waits`],[`object`,[[248,389,!0],[63,83,!1]]],[`ref`,120],[`array`,391],[`ref`,121],[`array`,393],[`object`,[[249,392,!1],[250,98,!0],[251,98,!0],[41,3,!0],[252,394,!1]]],[`enum`,`Send`,`Start`],[`object`,[[253,396,!0],[63,3,!0]]],[`ref`,58,150],[`union`,398,1],[`object`,[[77,3,!0],[63,3,!0],[79,399,!1]]],[`ref`,123],[`array`,401],[`object`,[[39,83,!1],[41,3,!0],[254,402,!1],[239,376,!1],[255,3,!0]]],[`ref`,125],[`union`,404,1],[`ref`,124],[`array`,406],[`enum`,`All`,`Any`,`AtLeast`],[`union`,408,1],[`enum`,`Trigger`,`Action`,`Decide`,`Wait`,`Approval`,`ForEach`,`Join`],[`ref`,141,154,211],[`union`,411,1],[`enum`,`Event`,`StateEntered`,`Schedule`,`Manual`],[`union`,413,1],[`object`,[[256,92,!1],[110,83,!1],[194,83,!1],[257,399,!1],[258,405,!1],[259,407,!1],[77,83,!1],[260,405,!1],[67,83,!1],[261,92,!1],[262,409,!1],[41,3,!0],[263,410,!0],[264,92,!1],[265,405,!1],[266,412,!1],[267,83,!1],[268,83,!1],[269,405,!1],[270,414,!1]]],[`object`,[[247,3,!0],[63,3,!0]]],[`enum`,`Seconds`,`Minutes`,`Hours`,`Days`],[`object`,[[97,91,!0],[99,417,!0]]],[`ref`,127],[`union`,419,1],[`object`,[[271,420,!1],[39,83,!1],[272,420,!1],[273,222,!1],[41,3,!0],[274,3,!0]]],[`object`,[[108,252,!1],[39,83,!1],[74,137,!1],[233,362,!1]]],[`ref`,272],[`union`,423,1],[`ref`,271],[`union`,425,1],[`object`,[[39,83,!1],[226,2,!1],[275,144,!1],[41,3,!0],[276,424,!1],[127,426,!1],[72,3,!0],[146,144,!1]]],[`object`,[[41,3,!0],[146,144,!1]]],[`object`,[[277,3,!0]]],[`object`,[[277,3,!0],[146,144,!1]]],[`object`,[[191,83,!1],[278,3,!0],[192,293,!1]]],[`object`,[[279,201,!1],[257,398,!0]]],[`object`,[[279,201,!1]]],[`object`,[[117,3,!0],[41,3,!0]]],[`ref`,136],[`array`,435],[`ref`,137],[`union`,437,1],[`ref`,5,21,76,140],[`object`,[[279,201,!1],[280,436,!1],[257,83,!1],[281,438,!1],[282,439,!0]]],[`ref`,143],[`array`,441],[`object`,[[194,3,!0],[4,144,!1],[283,442,!1]]],[`object`,[[284,98,!0],[285,83,!1],[124,220,!1],[286,3,!0]]],[`object`,[[3,5,!0],[77,3,!0],[4,7,!1]]],[`ref`,144],[`array`,446],[`object`,[[231,447,!1],[287,3,!0],[1,3,!0]]],[`object`,[[93,0,!0],[1,3,!0]]],[`ref`,16],[`array`,450],[`object`,[[173,271,!1],[6,12,!1],[174,83,!1],[177,275,!1],[41,3,!0],[288,451,!1],[178,277,!1],[179,98,!1],[180,163,!1],[181,163,!1],[182,279,!1],[183,83,!1],[184,281,!1]]],[`array`,0],[`object`,[[67,453,!1]]],[`union`,3,98,1],[`number`,-17976931348623157e292,17976931348623157e292],[`enum`,`Int32`,`Int64`,`Decimal`,`Single`],[`string`,`^-?[0-9]+(\\.[0-9]+)?([Ee][+-]?[0-9]+)?$`],[`object`,[[289,457,!0],[2,458,!0]]],[`const`,`ExactNumber`],[`string`,`^(?:0|-?(?:[1-9][0-9]{0,28}|(?:0|[1-9][0-9]{0,28})\\.[0-9]{0,27}[1-9]))$`],[`object`,[[289,460,!0],[2,461,!0]]],[`union`,455,456,459,462],[`object`,[[2,463,!1]]],[`enum`,`And`,`Or`],[`object`,[[134,398,!0],[136,465,!0],[137,398,!0]]],[`ref`,10,40,151,158,210,301],[`object`,[[134,467,!0],[136,465,!0],[137,467,!0]]],[`object`,[[134,114,!0],[136,465,!0],[137,114,!0]]],[`ref`,72],[`array`,470],[`union`,471,1],[`ref`,107],[`array`,473],[`union`,474,1],[`ref`,230],[`array`,476],[`object`,[[119,212,!1],[6,12,!1],[195,300,!1],[196,302,!1],[39,83,!1],[290,472,!1],[122,83,!1],[12,24,!1],[197,304,!1],[14,28,!1],[291,475,!1],[198,98,!0],[41,3,!0],[288,451,!1],[23,306,!1],[292,477,!1],[32,65,!1],[200,310,!1],[184,281,!1]]],[`object`,[[112,199,!1],[113,201,!1],[114,201,!1],[115,201,!1],[293,3,!0]]],[`object`,[[3,5,!0],[104,183,!1],[1,3,!0]]],[`object`,[[101,467,!0]]],[`enum`,`Info`,`Warning`,`Error`,`Unknown`],[`object`,[[112,199,!1],[294,482,!0],[162,3,!0],[163,98,!0],[113,201,!1],[114,201,!1],[115,201,!1]]],[`object`,[[112,199,!1],[295,3,!0],[113,201,!1],[114,201,!1],[115,201,!1]]],[`ref`,162],[`array`,485],[`object`,[[40,486,!1]]],[`object`,[[41,3,!0],[2,0,!0]]],[`ref`,168],[`union`,489,1],[`ref`,165],[`array`,491],[`ref`,166],[`union`,493,1],[`ref`,167],[`union`,495,1],[`ref`,164],[`union`,497,1],[`object`,[[296,490,!1],[297,492,!1],[298,494,!1],[299,496,!1],[300,498,!1]]],[`enum`,`CreatesTenant`,`JoinsTenant`],[`object`,[[301,500,!0]]],[`enum`,`Tenant`,`Member`],[`object`,[[110,163,!1],[302,163,!1],[49,502,!0]]],[`array`,136],[`object`,[[303,504,!1]]],[`ref`,170],[`union`,506,1],[`ref`,169],[`array`,508],[`object`,[[304,507,!1],[32,509,!1]]],[`object`,[[74,136,!0],[49,3,!0]]],[`object`,[[108,252,!1],[74,137,!1]]],[`object`,[[39,83,!1],[305,163,!1],[50,92,!1],[41,3,!0],[22,163,!1],[52,92,!1],[188,92,!1],[189,92,!1]]],[`object`,[[306,3,!0],[307,83,!1],[50,92,!1],[237,3,!0],[52,92,!1],[188,91,!0],[189,91,!0]]],[`object`,[[308,98,!1],[309,83,!1],[310,83,!1],[311,3,!0],[188,92,!1],[189,92,!1]]],[`union`,467,1],[`object`,[[108,252,!1],[257,516,!1],[39,83,!1],[74,137,!1],[41,3,!0]]],[`ref`,180],[`array`,518],[`object`,[[312,83,!1],[313,83,!1],[314,83,!1],[257,83,!1],[315,83,!1],[39,83,!1],[316,83,!1],[317,83,!1],[41,3,!0],[318,163,!1],[319,83,!1],[320,163,!1],[321,519,!1]]],[`object`,[[166,3,!0],[322,3,!0]]],[`ref`,82],[`union`,522,1],[`ref`,126],[`union`,524,1],[`object`,[[77,3,!0],[226,2,!1],[323,523,!1],[324,525,!1],[4,144,!1],[127,229,!1],[78,147,!1],[79,399,!1]]],[`object`,[[3,5,!0],[104,183,!1],[39,83,!1],[74,137,!1],[88,359,!1],[41,3,!0],[325,83,!1],[326,83,!1],[27,57,!1]]],[`ref`,182],[`array`,528],[`object`,[[104,183,!1],[327,529,!1],[41,3,!0]]],[`object`,[[1,3,!0],[83,0,!0]]],[`object`,[[328,98,!1],[329,98,!1],[330,98,!1],[331,98,!1],[41,3,!0],[72,131,!0]]],[`ref`,188],[`object`,[[41,3,!0],[83,533,!0],[72,132,!1]]],[`object`,[[83,533,!0]]],[`ref`,189],[`array`,536],[`object`,[[225,537,!1]]],[`object`,[[2,0,!0]]],[`object`,[[225,144,!1]]],[`object`,[[41,3,!0],[83,2,!1],[72,131,!0]]],[`ref`,194],[`union`,542,1],[`array`,542],[`ref`,172],[`union`,545,1],[`object`,[[119,212,!1],[110,543,!1],[332,544,!1],[39,83,!1],[333,544,!1],[334,98,!1],[41,3,!0],[335,546,!1],[336,131,!0],[141,83,!1]]],[`object`,[[112,199,!1],[113,201,!1],[114,201,!1],[115,201,!1],[282,3,!0]]],[`object`,[[337,163,!1],[49,3,!0]]],[`ref`,57],[`union`,550,1],[`ref`,198],[`union`,552,1],[`ref`,200],[`array`,554],[`object`,[[39,83,!1],[122,83,!1],[91,551,!1],[41,3,!0],[338,553,!1],[35,555,!1],[339,399,!1]]],[`ref`,289],[`array`,557],[`ref`,142],[`array`,559],[`union`,560,1],[`union`,220,1],[`object`,[[108,252,!1],[340,558,!1],[39,83,!1],[74,137,!1],[341,561,!1],[124,562,!1],[125,225,!1],[83,411,!0]]],[`object`,[[342,3,!0]]],[`object`,[[39,83,!1],[122,83,!1],[74,137,!1],[343,98,!1],[41,3,!0],[95,222,!1]]],[`object`,[[57,83,!1],[110,83,!1],[332,144,!1],[325,3,!0]]],[`object`,[[108,252,!1],[39,83,!1],[77,3,!0],[74,137,!1]]],[`ref`,204],[`array`,568],[`object`,[[39,83,!1],[91,551,!1],[41,3,!0],[325,3,!0],[172,569,!1]]],[`object`,[[112,199,!1],[113,201,!1],[114,201,!1],[115,201,!1],[111,3,!0]]],[`ref`,59],[`union`,572,1],[`object`,[[77,3,!0],[88,2,!1],[232,2,!1],[344,573,!1]]],[`enum`,`Error`,`Information`,`Warning`],[`object`,[[257,398,!0],[162,83,!1],[345,575,!0]]],[`object`,[[346,3,!0]]],[`enum`,`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],[`union`,578,1],[`string`,`^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]{1,7})?$`],[`object`,[[347,92,!1],[348,579,!1],[349,580,!0]]],[`enum`,`Item`,`Screen`],[`union`,582,1],[`object`,[[194,3,!0],[273,199,!1],[168,83,!1],[169,260,!1],[255,583,!1]]],[`ref`,215],[`array`,585],[`ref`,216],[`union`,587,1],[`object`,[[280,586,!1],[168,3,!0],[169,260,!1],[281,588,!1],[255,583,!1]]],[`object`,[[112,199,!1],[194,3,!0],[257,398,!0]]],[`enum`,`Hidden`,`Execute`,`Unknown`],[`object`,[[112,199,!1],[194,83,!1],[301,591,!0]]],[`object`,[[350,11,!0]]],[`ref`,51],[`array`,594],[`ref`,52],[`array`,596],[`ref`,185],[`array`,598],[`ref`,53],[`array`,600],[`object`,[[6,12,!1],[205,3,!0],[9,209,!1],[177,595,!1],[60,83,!1],[41,3,!0],[178,597,!1],[170,599,!1],[95,601,!1],[351,83,!1],[184,281,!1]]],[`object`,[[110,83,!1],[111,3,!0],[72,131,!0]]],[`object`,[[168,3,!0],[1,3,!0]]],[`ref`,213],[`array`,605],[`object`,[[110,83,!1],[247,83,!1],[76,606,!1],[352,83,!1],[293,3,!0]]],[`ref`,222],[`array`,608],[`object`,[[225,609,!1],[63,3,!0]]],[`ref`,98],[`array`,611],[`object`,[[195,612,!1],[39,83,!1],[118,207,!1],[74,137,!1],[41,3,!0]]],[`ref`,220],[`array`,614],[`object`,[[6,12,!1],[44,615,!1],[353,260,!1],[63,3,!0],[184,281,!1]]],[`ref`,225],[`array`,617],[`object`,[[354,83,!1],[41,3,!0],[182,618,!1],[355,83,!1]]],[`object`,[[173,271,!1],[6,12,!1],[174,83,!1],[175,273,!1],[39,83,!1],[176,83,!1],[177,275,!1],[356,83,!1],[41,3,!0],[178,277,!1],[179,98,!1],[180,163,!1],[181,163,!1],[182,279,!1],[183,83,!1],[184,281,!1]]],[`ref`,284],[`array`,621],[`object`,[[66,123,!1],[67,622,!1],[41,3,!0]]],[`object`,[[274,280,!0]]],[`object`,[[77,3,!0],[95,144,!1]]],[`ref`,234],[`array`,626],[`object`,[[357,3,!0],[231,627,!1]]],[`ref`,235],[`array`,629],[`object`,[[358,630,!1],[41,83,!1],[188,92,!1],[189,92,!1]]],[`object`,[[354,83,!1],[41,3,!0],[355,83,!1]]],[`object`,[[112,199,!1],[113,201,!1],[114,201,!1],[115,201,!1],[63,3,!0],[2,3,!0]]],[`ref`,29],[`array`,634],[`ref`,55],[`array`,636],[`enum`,`Inbound`,`Outbound`],[`union`,638,1],[`array`,522],[`array`,524],[`ref`,183],[`array`,642],[`ref`,195],[`array`,644],[`ref`,199],[`array`,646],[`ref`,202],[`array`,648],[`union`,649,1],[`ref`,205],[`array`,651],[`union`,652,1],[`ref`,227],[`array`,654],[`ref`,277],[`array`,656],[`enum`,`StateChange`,`StateView`,`Automation`,`Translate`],[`object`,[[359,635,!1],[360,637,!1],[361,313,!1],[39,83,!1],[362,639,!1],[122,83,!1],[231,640,!1],[12,24,!1],[74,137,!1],[41,3,!0],[208,641,!1],[363,643,!1],[23,306,!1],[364,645,!1],[365,647,!1],[366,650,!1],[367,653,!1],[368,655,!1],[239,657,!1],[32,65,!1],[72,658,!0]]],[`object`,[[369,83,!1],[41,3,!0]]],[`object`,[[88,0,!0],[41,3,!0]]],[`object`,[[72,3,!0],[2,3,!0]]],[`ref`,246],[`array`,663],[`object`,[[370,98,!0],[371,664,!1],[337,163,!1]]],[`object`,[[372,3,!0],[373,144,!1]]],[`object`,[[374,3,!0]]],[`object`,[[194,3,!0],[1,3,!0],[83,0,!0]]],[`object`,[[194,3,!0],[146,144,!1]]],[`object`,[[375,3,!0],[226,2,!1],[275,144,!1],[376,83,!1],[146,144,!1]]],[`ref`,38],[`union`,671,1],[`object`,[[377,672,!1],[41,83,!1]]],[`object`,[[378,3,!0],[226,2,!1],[376,83,!1],[276,424,!1],[127,426,!1],[146,144,!1]]],[`object`,[[379,83,!1],[380,83,!1],[381,83,!1],[382,83,!1]]],[`union`,98,1],[`object`,[[383,83,!1],[384,83,!1],[41,83,!1],[385,676,!1]]],[`ref`,262],[`array`,678],[`object`,[[354,83,!1],[41,3,!0],[386,679,!1],[355,83,!1]]],[`ref`,265],[`object`,[[387,681,!0],[325,3,!0]]],[`enum`,`Word`,`Text`,`Number`,`Flag`],[`object`,[[41,3,!0],[49,683,!0],[2,3,!0]]],[`enum`,`Text`,`Number`,`Flag`,`Null`],[`object`,[[41,3,!0],[49,685,!0],[2,83,!1]]],[`object`,[[325,3,!0],[388,3,!0]]],[`object`,[[389,98,!0],[41,3,!0]]],[`ref`,269],[`array`,689],[`object`,[[390,83,!1],[41,3,!0],[391,690,!1],[64,83,!1]]],[`ref`,263],[`array`,692],[`object`,[[225,693,!1]]],[`union`,681,1],[`ref`,261],[`array`,696],[`ref`,264],[`array`,698],[`object`,[[392,695,!1],[73,697,!1],[4,699,!1]]],[`ref`,267],[`array`,701],[`object`,[[47,702,!1],[388,3,!0]]],[`object`,[[130,3,!0],[127,3,!0],[132,235,!1],[133,144,!1]]],[`object`,[[393,98,!0],[95,144,!1]]],[`ref`,273],[`array`,706],[`object`,[[112,144,!1],[393,98,!0],[111,3,!0],[394,707,!1]]],[`object`,[[393,98,!0],[376,83,!1],[41,3,!0],[95,144,!1]]],[`object`,[[378,3,!0],[226,2,!1],[276,424,!1],[395,3,!0],[127,426,!1],[146,144,!1]]],[`ref`,130],[`array`,711],[`ref`,248],[`union`,713,1],[`ref`,247],[`union`,715,1],[`ref`,249],[`array`,717],[`ref`,250],[`union`,719,1],[`ref`,251],[`array`,721],[`ref`,131],[`array`,723],[`ref`,275],[`array`,725],[`union`,726,1],[`ref`,36],[`union`,728,1],[`ref`,129],[`array`,730],[`ref`,245],[`array`,732],[`ref`,133],[`array`,734],[`ref`,254],[`union`,736,1],[`ref`,255],[`array`,738],[`ref`,252],[`array`,740],[`ref`,270],[`union`,742,1],[`ref`,132],[`array`,744],[`ref`,274],[`array`,746],[`ref`,192,193],[`union`,748,1],[`ref`,253],[`union`,750,1],[`union`,717,1],[`ref`,279],[`union`,753,1],[`ref`,276],[`union`,755,1],[`ref`,278],[`union`,757,1],[`object`,[[396,712,!1],[39,83,!1],[12,24,!1],[74,137,!1],[241,381,!1],[397,714,!1],[398,716,!1],[399,718,!1],[400,720,!1],[401,722,!1],[402,724,!1],[403,727,!1],[404,729,!1],[41,3,!0],[76,731,!1],[27,57,!1],[405,733,!1],[406,735,!1],[407,737,!1],[408,739,!1],[409,381,!1],[410,98,!0],[411,741,!1],[412,98,!1],[413,743,!1],[414,745,!1],[415,747,!1],[416,727,!1],[417,707,!1],[418,749,!1],[79,751,!1],[244,386,!1],[419,752,!1],[420,720,!1],[421,754,!1],[422,756,!1],[423,758,!1]]],[`object`,[[282,3,!0],[146,144,!1]]],[`object`,[[112,144,!1],[111,3,!0]]],[`object`,[[88,3,!0]]],[`enum`,`Primary`,`Secondary`,`Quiet`],[`union`,763,1],[`object`,[[119,212,!1],[424,83,!1],[425,764,!1],[60,83,!1],[61,3,!0],[426,83,!1],[64,3,!0]]],[`enum`,`Unknown`,`Action`,`Navigate`,`Dialog`],[`object`,[[424,83,!1],[60,83,!1],[168,83,!1],[41,3,!0],[76,606,!1],[170,599,!1],[255,583,!1],[49,766,!0],[63,3,!0]]],[`ref`,286,287],[`array`,768],[`object`,[[138,769,!1]]],[`object`,[[427,163,!1],[41,3,!0]]],[`object`,[[340,558,!1],[39,83,!1],[74,137,!1],[41,3,!0]]],[`object`,[[207,98,!0],[428,98,!0],[41,3,!0]]],[`object`,[[39,83,!1],[74,137,!1],[41,3,!0],[95,222,!1]]],[`enum`,`Invalid`,`DataContext`,`QueryResult`,`ComponentProperty`,`Literal`],[`enum`,`OneWay`,`TwoWay`],[`union`,776,1],[`enum`,`Propagate`,`Clear`,`Preserve`],[`union`,778,1],[`object`,[[429,775,!0],[430,83,!1],[431,83,!1],[432,83,!1],[433,2,!1],[54,777,!1],[434,779,!1],[164,3,!0],[111,83,!1],[435,83,!1]]],[`ref`,258],[`union`,781,1],[`ref`,259],[`union`,783,1],[`ref`,257],[`union`,785,1],[`ref`,260],[`union`,787,1],[`ref`,268],[`union`,789,1],[`object`,[[436,782,!1],[437,83,!1],[438,163,!1],[15,784,!1],[228,83,!1],[41,3,!0],[439,786,!1],[440,163,!1],[441,163,!1],[51,788,!1],[442,790,!1],[443,83,!1]]],[`object`,[[201,313,!1],[39,83,!1],[77,3,!0],[202,98,!0],[162,83,!1],[41,3,!0],[203,163,!1]]],[`object`,[[444,163,!1],[201,313,!1],[39,83,!1],[77,3,!0],[202,98,!0],[162,83,!1],[41,3,!0],[1,3,!0],[203,163,!1]]],[`object`,[[63,3,!0]]],[`ref`,18],[`array`,795],[`object`,[[112,796,!1],[350,3,!0]]],[`enum`,`NotEmpty`,`Max`,`Min`,`GreaterThan`,`GreaterThanOrEqual`,`LessThan`,`LessThanOrEqual`,`Equal`,`Length`,`Matches`,`AllGreaterThan`,`AllGreaterThanOrEqual`,`Rule`,`NotEqual`,`Checksum`,`Contains`,`NotContains`,`StartsWith`,`EndsWith`,`DecimalPlaces`],[`object`,[[108,252,!1],[74,137,!1],[233,362,!1],[162,83,!1],[1,3,!0],[155,798,!0],[345,575,!0],[2,2,!1]]],[`ref`,175],[`array`,800],[`object`,[[50,3,!0],[445,801,!1],[52,3,!0]]]],contracts:[4,8,82,86,87,88,96,97,99,108,109,110,113,115,120,121,128,129,130,133,140,142,150,155,158,159,130,162,164,171,172,174,175,176,177,178,179,180,181,184,185,186,188,189,192,194,195,196,197,202,203,205,208,210,188,233,236,237,239,242,243,251,253,254,255,256,256,261,263,196,269,196,282,87,87,256,283,109,286,287,290,291,294,295,296,297,311,314,315,256,189,316,319,320,323,326,329,330,331,332,339,340,341,343,344,109,345,355,360,365,368,369,372,373,374,379,387,388,390,395,397,400,403,415,416,418,421,422,427,287,428,429,430,429,431,196,432,433,434,440,418,418,443,444,445,448,449,452,454,464,466,468,469,478,87,479,202,480,481,483,484,487,488,499,501,503,505,87,510,511,256,256,512,513,514,515,87,517,520,87,521,526,291,527,530,130,531,532,196,534,535,538,539,540,541,547,548,373,549,556,563,564,565,566,567,570,571,291,574,576,577,581,584,205,589,590,592,593,188,602,316,603,604,607,208,208,610,613,616,619,620,373,623,624,625,628,631,531,632,133,87,633,659,660,256,661,662,87,665,666,667,668,669,670,109,673,674,632,675,677,680,682,684,686,687,688,691,694,700,703,109,704,109,705,708,709,710,759,760,761,762,4,539,765,767,770,297,373,771,133,772,773,774,780,791,792,793,794,797,799,802,109]};export{e as syntaxCollections};
1
+ const e={kinds:/* @__PURE__ */ `AddMappingSyntax.AllSyntax.ApplicationSyntax.ApplicationContextSyntax.ContextMemberSyntax.ApplicationTriggerInteractionTriggerSyntax.ArrangementContainerSyntax.ArrangementOverrideSyntax.ArrangementSlotSyntax.ArrangementSyntax.AuthenticatedConditionSyntax.AuthenticationProviderSyntax.AuthenticationSyntax.AuthorizeSyntax.NavigationItemSyntax.NavigationLogoSyntax.NavigationRegionSyntax.NavigationTargetSyntax.BehaviorArgumentSyntax.BehaviorParameterSyntax.BehaviorSyntax.BuiltInInteractionTriggerSyntax.CaptureAppendSyntax.CaptureChildrenSyntax.CaptureMapEntrySyntax.CaptureNestedSyntax.CaptureSourceSettingSyntax.CaptureSourceSyntax.CaptureSplitSyntax.CaptureSyntax.CaptureTranslationSyntax.CaptureWhenSyntax.CausedByExpressionSyntax.ClockOffsetExpressionSyntax.CommandCalendarSyntax.DateOfExpressionSyntax.SpecificationTimeZoneSyntax.TimeZoneSyntax.CaseValueExpressionSyntax.ChildrenSyntax.ClaimConditionSyntax.ClaimIdentitySourceSyntax.CodeIdentitySourceSyntax.FileIdentitySourceSyntax.IdentitySyntax.IdentityDetailSyntax.QueryIdentitySourceSyntax.ClearMappingSyntax.ClearWithSyntax.CloseDialogActionSyntax.CodeBlockSyntax.ComponentExposedValueSyntax.ComponentOutletSyntax.ComponentPropertySyntax.CodeValidateSyntax.CommandSyntax.CommandStreamSyntax.ObserverFilterSyntax.ComparisonConditionSyntax.CompositeKeySyntax.ConceptAttributeSyntax.ConceptSyntax.GenerationSyntax.ConcurrencySyntax.ConfirmActionSyntax.ContextExpressionSyntax.IdentityExpressionSyntax.ContributionSyntax.ContributionDestinationSyntax.CountMappingSyntax.DeclarativeValidateSyntax.DecrementMappingSyntax.DialogTemplateSyntax.DomainSyntax.EnvironmentExpressionSyntax.EventContextExpressionSyntax.EventInteractionTriggerSyntax.EventSourceIdExpressionSyntax.EventSourceSyntax.EventStreamIdPartSyntax.EventStreamSyntax.EventSpecSyntax.EventSyntax.EverySyntax.ExecuteCommandActionSyntax.ExpressionKeySyntax.FeatureSyntax.FileConstraintSyntax.FileImportSyntax.FileReferenceSyntax.FileValidateSyntax.FormColumnSyntax.ExposureSyntax.ExposedPropertySyntax.InstanceContributionsSyntax.InstanceContributionSyntax.ContributedItemSyntax.ContributedItemValueSyntax.ScreenContributionSyntax.TemplateSlotContentSyntax.CommandFormLayoutSyntax.FormLayoutColumnSyntax.FormFieldPlacementSyntax.FormWidthSyntax.FormFieldSyntax.FormPopulateFromItemSyntax.FormPopulateViaQuerySyntax.FormSyntax.FromSyntax.HandlerSyntax.PossibleEventsSyntax.PossibleEventSyntax.ImplementationSyntax.ImplementationHintSyntax.SystemSyntax.StateMachineSyntax.LifecycleSpecificationSyntax.LifecycleOutcomeSyntax.LifecycleExpectationSyntax.StateSyntax.StateEntrySyntax.StateTransitionSyntax.WorkflowSyntax.WorkflowNodeSyntax.WorkflowEdgeSyntax.WorkflowDurationSyntax.OperationSyntax.OperationPhaseSyntax.SpecificationExampleSyntax.SpecificationParameterSyntax.SpecificationCaseSyntax.SpecificationOperationFailureSyntax.SpecificationOperationSyntax.SpecificationCompensatedSyntax.ImportSyntax.IncrementMappingSyntax.InteractionAlternativeSyntax.InteractionOtherwiseSyntax.InteractionArgumentSyntax.InteractionBindingSyntax.IntervalInteractionTriggerSyntax.IntervalTriggerSourceSyntax.InvokesSyntax.InvocationRefusalSyntax.JoinEventSyntax.JoinSyntax.KeyPartSyntax.LayoutSyntax.ListExpressionSyntax.LiteralExpressionSyntax.LogicalConditionSyntax.LogicalPolicyConditionSyntax.LogicalPolicyRequirementSyntax.ModuleSyntax.NamedTriggerSourceSyntax.NavigateActionSyntax.NavigateBackActionSyntax.NestedSyntax.NotPolicyConditionSyntax.NotifyActionSyntax.OpenDialogActionSyntax.ObjectExpressionSyntax.ObjectMemberSyntax.OnboardingSyntax.OnboardingSignupSyntax.OnboardingInvitationSyntax.OnboardingLegalTermsSyntax.OnboardingOfferingSyntax.OnboardingEmailsSyntax.OnboardingEmailSyntax.OnboardingImagesSyntax.PathExpressionSyntax.PerformerSyntax.PersonaSyntax.StickyNoteSyntax.PlaceSyntax.PolicyReferenceSyntax.PolicySyntax.PurposeSyntax.PurposeReferenceSyntax.PurposeTransferSyntax.ProducesSyntax.ProjectionEntersOnSyntax.ProjectionSyntax.ProjectionVariantSyntax.PresentationValueSyntax.PropertyMappingSyntax.PropertySyntax.PropertyResponseSourceSyntax.ResponseFieldSyntax.ScalarCommandResponseSyntax.RecordCommandResponseSyntax.ScalarSpecificationReturnSyntax.RecordSpecificationReturnSyntax.QueryParameterSyntax.QuerySyntax.RaiseTriggerActionSyntax.RawExpressionSyntax.ReactionIdentitySyntax.ReactionSyntax.ReactionTriggerSyntax.RefusalExpressionSyntax.ReadModelSyntax.ReadsSyntax.ReducerRuleSyntax.ReducerSyntax.RefreshQueryActionSyntax.RemoveViaJoinSyntax.RemoveWithSyntax.RequirementSyntax.RoleConditionSyntax.ScheduleTriggerSourceSyntax.ScreenActionSyntax.ScreenNavigationParameterSyntax.ScreenGuardedActionSyntax.ScreenActionAlternativeSyntax.ScreenActionOtherwiseSyntax.ScreenBehaviorSyntax.ScreenCodeSyntax.ScreenComponentSyntax.ScreenColumnSyntax.ScreenDataSyntax.ScreenFieldSyntax.ScreenNavigateSyntax.ScreenSectionSyntax.ScreenSlotSyntax.ScreenSummarySyntax.ScreenSyntax.ScreenTableSyntax.ScreenTemplateReferenceSyntax.ScreenTemplateSyntax.ScreenTitleSyntax.ScreenToolbarSyntax.ScreenUsesBehaviorSyntax.SeedEventSyntax.SeedGroupSyntax.SeedSyntax.SetMappingSyntax.TemplateAssignmentSyntax.TemplateExposedValueSyntax.TemplateOutletSyntax.SetStateActionSyntax.SliceSyntax.SlotSyntax.SourceItemExpressionSyntax.SpecificationAbsentReadModelSyntax.SpecificationCallerClaimSyntax.SpecificationCallerPersonaSyntax.SpecificationCallerSyntax.SpecificationCaptureSyntax.SpecificationClockSyntax.SpecificationGeneratedValueSyntax.SpecificationInvocationSyntax.SpecificationCommandSyntax.SpecificationDeniedSyntax.SpecificationErrorSyntax.SpecificationEventSyntax.NewScreenTemplateSyntax.ProfileAppearanceSyntax.ProfileIdentitySyntax.RootTemplateSyntax.SampleDataBindingSyntax.ShellOptionSyntax.SampleDataFieldSyntax.SampleDataMappingSyntax.SampleDataPackReferenceSyntax.SampleDataPackSyntax.SampleDataRowSyntax.SampleDataSelectionSyntax.SampleDataSetSyntax.SpecificationNoResultSyntax.SpecificationStreamSyntax.SpecificationNoStreamSyntax.SpecificationQueryResultSyntax.SpecificationQuerySyntax.SpecificationReadModelSyntax.SpecificationRedeliverySyntax.SpecificationSyntax.SpecificationTriggerSyntax.SpecificationWhenQuerySyntax.StringsExpressionSyntax.SubtractMappingSyntax.TagSyntax.ToolbarButtonSyntax.ToolbarItemSyntax.TemplateExpressionSyntax.TemplateInterpolationSyntax.TemplateTextSyntax.ThemeSyntax.TriggerDataSyntax.TriggerSyntax.TypeRefSyntax.TypeSyntax.UiBindingSyntax.UiProfileSyntax.UniqueEventConstraintSyntax.UniquePropertyConstraintSyntax.DependsOnSyntax.UsesBehaviorSyntax.ValidationRuleSyntax.VariantSyntax.AnonymousConditionSyntax`.split(`.`),names:/* @__PURE__ */ `factor.property.value.autoMap.mappings.authentication.behaviors.commandReadMode.concepts.context.domain.eventSources.examples.exposures.fileImports.identity.imports.instanceContributions.layouts.modules.onboarding.personas.policies.purposes.reactionProductionMode.sampleDataPacks.seeds.sourceOptions.numericMode.stateMachines.stickyNotes.systems.templates.themes.timeZone.triggers.types.uiProfiles.workflows.description.members.name.triggerName.children.columns.gap.grow.rows.span.syntaxKind.height.root.width.growFactor.mode.overrides.variants.alias.providers.requirement.icon.id.slot.target.title.image.buttons.items.logo.region.feature.module.type.bindings.file.order.parameters.event.tags.when.appends.identifiedBy.map.source.translations.settings.separator.targets.key.keyIsEventSource.nested.from.to.expression.fromValue.properties.toValue.amount.clock.unit.contextMember.operand.configurable.parameter.blocks.claim.matches.matchesSubject.code.details.by.query.arguments.onFailure.onResult.onSuccess.language.binding.directives.authorize.calendar.concurrency.documentation.handler.produces.reads.response.stream.streamCandidates.validations.eventSource.propertyCandidate.streamId.streamIdParts.left.leftExpression.operator.right.parts.criminal.reason.scope.specialCategory.attributes.generation.valueNumbers.values.alphabet.case.checksum.count.encoding.pattern.prefix.range.rule.size.strategy.eventSourceType.eventStreamId.eventStreamType.eventTypes.message.messageIsLiteral.path.contributionPoint.destination.group.label.navigate.presentation.requirements.rules.arrangement.category.content.displayName.exposes.outlets.restrictsScopes.scopes.sliceKinds.slots.templateType.usedBehaviors.eventName.identifier.streams.x.y.hasGenerationMarker.origin.visibility.includeChildren.command.contributions.dependsOn.features.isPlacement.slices.toolbars.additionalRules.ignoreCasing.releasedBy.owner.component.editableFields.isCollection.operations.reExposes.restrictsFields.instance.field.columnGap.placements.rowGap.index.maxWidth.minWidth.column.columnSpan.row.rowSpan.composeUsing.columnMode.fields.for.generationMode.layout.onSubmit.populate.events.parentKey.implementation.possibleEvents.oneOf.hints.text.follows.specifications.states.given.outcomes.then.whenAppended.whenStarted.node.outlet.expectation.entering.isFinal.isInitial.transitions.entryKind.nodes.subject.attempts.condition.duration.edges.expiresAfter.joinCount.joinMode.nodeKind.parallel.retryAfter.schedule.state.stateMachine.timeout.triggerKind.compensate.execute.inputs.uses.generatedValues.noStream.operation.qualifiedName.actions.alternatives.otherwise.trigger.onRefused.acknowledge.constraint.selector.on.navigation.literalType.dialogTemplates.forms.screenTemplates.screen.level.dialogTemplate.emails.invitations.legalTerms.offering.signup.outcome.grant.documents.images.goals.canvas.colour.hidden.sizeHeight.sizeWidth.slotName.authorization.basis.basisReference.conditionReference.erasureException.interest.recipients.retention.subjects.transfers.safeguard.inlineEvent.inlineOperation.readModel.sequence.entersOn.isGenerated.isIdentifier.isKey.isSubject.byParts.filters.isObservable.performer.returnType.roles.runsAs.where.data.invokes.member.isPassive.partsKey.severity.role.dayOfMonth.dayOfWeek.time.behavior.stableId.route.rowClick.blueprint.version.fitsSlot.eventSourceId.groups.captures.commands.constraints.direction.projections.queries.reactions.readModels.reducers.screens.contributes.authenticated.claims.capture.record.instant.commandType.inlineProperty.caseValue.eventType.accent.colorScheme.corners.font.logoKind.logoValue.showName.options.pack.shape.isBlueprint.locale.sets.active.exactly.results.reaction.cases.givenCaller.givenCallerPersona.givenCaptures.givenClock.givenGenerated.givenOperationFailures.givenReadModels.givenTimeZone.thenAbsentReadModels.thenCompensated.thenDenied.thenErrors.thenEvents.thenEventsInAnyOrder.thenInvocations.thenNoEvents.thenNoResult.thenOperations.thenQueries.thenReadModels.thenResults.thenReturns.whenCapture.whenClock.whenQuery.whenRedelivered.whenTrigger.confirm.emphasis.slice.compatibleWith.isOptional.bindingKind.componentId.componentPropertyPath.expectedValueType.literal.nullBehavior.rawText.appearance.defaultSizeClass.icons.newScreenTemplate.packages.platforms.sampleData.theme.additionalProperties.places`.split(`.`),rules:[[`ref`,32,33,35,38,65,66,74,75,77,148,149,161,171,197,201,244,280,285],[`null`],[`union`,0,1],[`string`],[`object`,[[0,2,!1],[1,3,!0],[2,0,!0]]],[`enum`,`Inherit`,`Disabled`,`Enabled`],[`ref`,0,47,69,71,135,237,281],[`array`,6],[`object`,[[3,5,!0],[4,7,!1]]],[`ref`,12],[`union`,9,1],[`ref`,20],[`array`,11],[`enum`,`Protected`],[`union`,13,1],[`ref`,61],[`array`,15],[`ref`,3],[`union`,17,1],[`ref`,73],[`union`,19,1],[`ref`,78],[`array`,21],[`ref`,128],[`array`,23],[`ref`,92],[`array`,25],[`ref`,88],[`array`,27],[`ref`,44],[`union`,29,1],[`ref`,134],[`array`,31],[`ref`,94],[`array`,33],[`ref`,147],[`array`,35],[`union`,36,1],[`ref`,153],[`array`,38],[`ref`,163],[`union`,40,1],[`ref`,173],[`array`,42],[`union`,43,1],[`ref`,177],[`array`,45],[`ref`,178],[`array`,47],[`enum`,`Atomic`],[`union`,49,1],[`ref`,266],[`array`,51],[`ref`,236],[`array`,53],[`union`,54,1],[`enum`,`legacy`,`exact`],[`object`,[[28,56,!0]]],[`ref`,115],[`array`,58],[`ref`,174],[`array`,60],[`ref`,114],[`array`,62],[`ref`,238],[`array`,64],[`ref`,288],[`array`,66],[`union`,67,1],[`ref`,37],[`union`,69,1],[`ref`,290],[`array`,71],[`union`,72,1],[`ref`,292],[`array`,74],[`union`,75,1],[`ref`,294],[`array`,77],[`union`,78,1],[`ref`,122],[`array`,80],[`object`,[[5,10,!1],[6,12,!1],[7,14,!1],[8,16,!1],[9,18,!1],[10,20,!1],[11,22,!1],[12,24,!1],[13,26,!1],[14,28,!1],[15,30,!1],[16,32,!1],[17,34,!1],[18,37,!1],[19,39,!1],[20,41,!1],[21,44,!1],[22,46,!1],[23,48,!1],[24,50,!1],[25,52,!1],[26,55,!1],[27,57,!1],[29,59,!1],[30,61,!1],[31,63,!1],[32,65,!1],[33,68,!1],[34,70,!1],[35,73,!1],[36,76,!1],[37,79,!1],[38,81,!1]]],[`union`,3,1],[`ref`,4],[`array`,84],[`object`,[[39,83,!1],[40,85,!1]]],[`object`,[[41,3,!0]]],[`object`,[[42,3,!0]]],[`ref`,6,8],[`array`,89],[`integer`,-2147483648,2147483647],[`union`,91,1],[`number`],[`union`,93,1],[`enum`,`Flat`,`Row`,`Column`,`Grid`],[`object`,[[43,90,!1],[44,92,!1],[45,92,!1],[46,94,!1],[47,92,!1],[48,92,!1],[49,95,!0]]],[`object`,[[50,83,!1],[51,89,!0],[52,83,!1]]],[`boolean`],[`object`,[[46,98,!1],[53,94,!1],[50,92,!1],[41,3,!0],[48,92,!1],[52,92,!1]]],[`enum`,`Flow`,`Freeform`],[`ref`,7],[`array`,101],[`union`,102,1],[`union`,89,1],[`ref`,300],[`array`,105],[`union`,106,1],[`object`,[[54,100,!0],[55,103,!1],[51,104,!1],[56,107,!1]]],[`object`,[]],[`object`,[[57,83,!1],[41,3,!0]]],[`ref`,11],[`array`,111],[`object`,[[58,112,!1]]],[`ref`,152,176],[`object`,[[59,114,!0]]],[`ref`,14],[`array`,116],[`ref`,17],[`union`,118,1],[`object`,[[43,117,!1],[60,83,!1],[61,3,!0],[62,83,!1],[63,119,!1],[64,3,!0]]],[`object`,[[65,3,!0],[64,3,!0]]],[`ref`,283],[`array`,122],[`ref`,15],[`union`,124,1],[`enum`,`Unspecified`,`Inherit`,`Extend`,`Override`],[`enum`,`Topbar`,`Sidebar`],[`object`,[[66,123,!1],[67,117,!1],[68,125,!1],[54,126,!0],[69,127,!0]]],[`object`,[[70,83,!1],[71,3,!0]]],[`object`,[[41,3,!0],[2,3,!0]]],[`ref`,291],[`union`,131,1],[`object`,[[41,3,!0],[72,132,!1]]],[`ref`,139],[`array`,134],[`ref`,89],[`union`,136,1],[`ref`,19],[`array`,138],[`object`,[[73,135,!1],[39,83,!1],[74,137,!1],[41,83,!1],[75,92,!1],[76,139,!1]]],[`enum`,`Click`,`DoubleClick`,`Select`,`Submit`,`Change`,`Load`,`Unload`,`Enter`,`Leave`,`Unknown`],[`object`,[[49,141,!0]]],[`ref`,186],[`array`,143],[`ref`,282],[`array`,145],[`union`,146,1],[`ref`,31],[`union`,148,1],[`object`,[[77,3,!0],[4,144,!1],[78,147,!1],[79,149,!1]]],[`ref`,22],[`array`,151],[`ref`,24,28],[`array`,153],[`object`,[[80,152,!1],[81,3,!0],[82,154,!1],[1,3,!0]]],[`ref`,30],[`array`,156],[`object`,[[1,3,!0],[83,0,!0],[84,157,!1]]],[`object`,[[80,152,!1],[82,154,!1],[1,3,!0]]],[`ref`,26],[`array`,160],[`object`,[[85,161,!1],[49,3,!0]]],[`array`,3],[`object`,[[86,3,!0],[83,0,!0],[87,163,!1]]],[`ref`,23],[`array`,165],[`ref`,25],[`array`,167],[`ref`,27],[`union`,169,1],[`object`,[[80,152,!1],[43,166,!1],[88,83,!1],[89,98,!1],[82,154,!1],[41,3,!0],[90,168,!1],[83,170,!1],[27,57,!1]]],[`object`,[[91,3,!0],[92,3,!0]]],[`enum`,`PropertyChanged`,`Added`,`Removed`,`Changed`,`LogicalOr`,`LogicalAnd`,`ValueTransition`,`Expression`],[`object`,[[93,83,!1],[94,83,!1],[95,163,!1],[49,173,!0],[96,83,!1]]],[`object`,[[1,83,!1]]],[`object`,[[97,91,!0],[98,3,!0],[99,3,!0]]],[`object`,[[100,83,!1],[61,83,!1]]],[`object`,[[101,0,!0]]],[`object`,[[61,3,!0]]],[`object`,[[102,98,!0],[61,3,!0]]],[`object`,[[103,3,!0]]],[`ref`,1,39,48,83,108,145,157,184,207,208],[`array`,182],[`object`,[[3,5,!0],[104,183,!1],[81,0,!0],[1,3,!0]]],[`object`,[[105,3,!0],[106,2,!1],[107,98,!0]]],[`object`,[[105,3,!0]]],[`ref`,50],[`object`,[[108,187,!0]]],[`object`,[[74,136,!0]]],[`ref`,45],[`array`,190],[`object`,[[39,83,!1],[109,191,!1]]],[`ref`,41,42,43,46],[`object`,[[41,3,!0],[83,193,!0],[72,131,!0]]],[`object`,[[110,0,!0],[111,3,!0]]],[`object`,[[1,3,!0]]],[`object`,[[77,3,!0]]],[`ref`,138],[`array`,198],[`ref`,49,64,84,155,156,159,160,196,206,241],[`array`,200],[`object`,[[112,199,!1],[113,201,!1],[114,201,!1],[115,201,!1]]],[`object`,[[108,3,!0],[116,3,!0]]],[`ref`,293],[`object`,[[117,204,!0],[41,3,!0]]],[`ref`,212,214,217,218,219,221,223,224,225,226,228,229,231,232,233],[`array`,206],[`object`,[[118,207,!1],[41,3,!0]]],[`union`,204,1],[`object`,[[117,209,!1],[1,3,!0],[2,2,!1]]],[`ref`,13],[`union`,211,1],[`ref`,34],[`union`,213,1],[`ref`,63],[`union`,215,1],[`ref`,109],[`union`,217,1],[`ref`,181],[`array`,219],[`ref`,187],[`array`,221],[`ref`,203],[`array`,223],[`union`,224,1],[`ref`,190,191],[`union`,226,1],[`ref`,56],[`union`,228,1],[`array`,228],[`ref`,54,70,90],[`array`,231],[`object`,[[119,212,!1],[120,214,!1],[121,216,!1],[39,83,!1],[122,83,!1],[123,218,!1],[41,3,!0],[124,220,!1],[95,222,!1],[125,225,!1],[126,227,!1],[127,229,!1],[128,230,!1],[129,232,!1]]],[`union`,221,1],[`union`,143,1],[`object`,[[130,3,!0],[131,234,!1],[127,3,!0],[132,235,!1],[133,144,!1]]],[`object`,[[130,3,!0],[127,83,!1]]],[`enum`,`Equal`,`NotEqual`,`GreaterThan`,`GreaterThanOrEqual`,`LessThan`,`LessThanOrEqual`,`Contains`,`StartsWith`],[`object`,[[134,3,!0],[135,2,!1],[136,238,!0],[137,0,!0]]],[`ref`,146],[`array`,240],[`object`,[[138,241,!1],[72,3,!0]]],[`object`,[[139,98,!1],[41,3,!0],[140,83,!1],[141,83,!1],[142,83,!1]]],[`ref`,60],[`array`,244],[`ref`,62],[`union`,246,1],[`union`,232,1],[`array`,91],[`union`,249,1],[`object`,[[143,245,!1],[39,83,!1],[74,137,!1],[144,247,!1],[41,3,!0],[72,3,!0],[129,248,!1],[145,250,!1],[146,163,!1]]],[`union`,187,1],[`object`,[[147,83,!1],[148,83,!1],[149,83,!1],[108,252,!1],[150,92,!1],[151,83,!1],[74,137,!1],[152,83,!1],[153,83,!1],[154,83,!1],[155,83,!1],[156,92,!1],[157,3,!0]]],[`object`,[[130,98,!0],[158,83,!1],[159,83,!1],[160,83,!1],[161,163,!1]]],[`object`,[[112,199,!1],[162,3,!0],[163,98,!0],[113,201,!1],[114,201,!1],[115,201,!1]]],[`object`,[[164,3,!0]]],[`ref`,68],[`union`,257,1],[`ref`,223],[`union`,259,1],[`object`,[[165,3,!0],[166,258,!1],[167,83,!1],[60,83,!1],[61,83,!1],[168,83,!1],[169,260,!1],[75,92,!1],[170,83,!1]]],[`enum`,`Outlet`,`Dialog`,`External`],[`object`,[[49,262,!0],[63,3,!0]]],[`ref`,209],[`array`,264],[`union`,265,1],[`ref`,299],[`array`,267],[`object`,[[171,266,!1],[172,268,!1]]],[`ref`,9],[`union`,270,1],[`ref`,99],[`array`,272],[`ref`,239],[`array`,274],[`ref`,240],[`array`,276],[`ref`,243],[`array`,278],[`ref`,298],[`array`,280],[`object`,[[173,271,!1],[6,12,!1],[174,83,!1],[175,273,!1],[39,83,!1],[176,83,!1],[177,275,!1],[41,3,!0],[178,277,!1],[179,98,!1],[180,163,!1],[181,163,!1],[182,279,!1],[183,83,!1],[184,281,!1]]],[`object`,[[185,3,!0]]],[`ref`,80],[`array`,284],[`object`,[[39,83,!1],[61,83,!1],[186,132,!1],[41,3,!0],[187,285,!1],[188,92,!1],[189,92,!1]]],[`object`,[[41,3,!0],[72,131,!0]]],[`ref`,79],[`array`,288],[`object`,[[39,83,!1],[61,83,!1],[41,3,!0],[132,132,!1],[133,289,!1]]],[`object`,[[77,3,!0],[88,2,!1]]],[`integer`,0,4294967295],[`enum`,`Private`,`Public`],[`object`,[[39,83,!1],[122,83,!1],[74,137,!1],[144,292,!1],[190,98,!1],[61,83,!1],[41,3,!0],[191,83,!1],[95,222,!1],[78,147,!1],[192,293,!1]]],[`object`,[[3,5,!0],[193,98,!0],[4,7,!1]]],[`object`,[[112,199,!1],[194,3,!0],[113,201,!1],[114,201,!1],[115,201,!1]]],[`object`,[[93,0,!0]]],[`ref`,67],[`array`,298],[`union`,299,1],[`ref`,297],[`array`,301],[`ref`,86],[`array`,303],[`ref`,179],[`array`,305],[`ref`,242],[`array`,307],[`ref`,232],[`array`,309],[`object`,[[119,212,!1],[6,12,!1],[195,300,!1],[196,302,!1],[39,83,!1],[122,83,!1],[12,24,!1],[197,304,!1],[14,28,!1],[198,98,!0],[41,3,!0],[23,306,!1],[199,308,!1],[32,65,!1],[200,310,!1],[184,281,!1]]],[`ref`,87,295,296],[`array`,312],[`object`,[[201,313,!1],[39,83,!1],[74,136,!0],[202,98,!0],[162,83,!1],[41,3,!0],[203,163,!1]]],[`object`,[[152,3,!0]]],[`object`,[[168,83,!1],[1,3,!0]]],[`ref`,93],[`array`,317],[`object`,[[204,3,!0],[95,318,!1]]],[`object`,[[205,3,!0],[206,163,!1],[207,98,!0],[168,83,!1],[208,163,!1],[164,3,!0],[209,83,!1],[210,98,!0]]],[`ref`,95],[`array`,321],[`object`,[[195,322,!1],[211,3,!0]]],[`ref`,96],[`array`,324],[`object`,[[205,3,!0],[67,325,!1],[164,3,!0],[2,2,!1]]],[`ref`,97],[`array`,327],[`object`,[[61,3,!0],[146,328,!1]]],[`object`,[[212,3,!0],[2,0,!0]]],[`object`,[[165,3,!0],[118,207,!1],[75,92,!1]]],[`object`,[[118,207,!1],[62,3,!0]]],[`ref`,103],[`union`,333,1],[`ref`,101],[`array`,335],[`ref`,102],[`array`,337],[`object`,[[213,334,!1],[44,336,!1],[214,338,!1],[215,334,!1]]],[`object`,[[216,91,!0],[217,334,!1],[218,334,!1],[52,334,!1]]],[`object`,[[219,91,!0],[220,92,!1],[212,3,!0],[221,91,!0],[222,92,!1],[52,334,!1]]],[`enum`,`Fraction`,`Pixels`,`Percent`,`Auto`],[`object`,[[99,342,!0],[2,94,!1]]],[`object`,[[223,83,!1],[91,83,!1],[168,83,!1],[1,3,!0]]],[`object`,[[110,83,!1],[111,3,!0]]],[`enum`,`Unspecified`,`Auto`,`Manual`],[`ref`,91],[`array`,347],[`ref`,104],[`array`,349],[`ref`,100],[`union`,351,1],[`ref`,105,106],[`union`,353,1],[`object`,[[6,12,!1],[224,346,!0],[44,348,!1],[39,83,!1],[225,350,!1],[226,3,!0],[227,346,!0],[228,352,!1],[41,3,!0],[229,260,!1],[230,354,!1],[184,281,!1]]],[`ref`,81],[`array`,356],[`ref`,59,85],[`union`,358,1],[`object`,[[231,357,!1],[88,359,!1],[4,7,!1],[232,2,!1]]],[`ref`,112],[`union`,361,1],[`ref`,110],[`union`,363,1],[`object`,[[108,252,!1],[74,137,!1],[233,362,!1],[234,364,!1]]],[`ref`,111],[`array`,366],[`object`,[[231,367,!1]]],[`object`,[[77,3,!0],[235,98,!0],[1,83,!1],[127,229,!1],[78,146,!1]]],[`ref`,113],[`array`,370],[`object`,[[236,371,!1]]],[`object`,[[237,3,!0]]],[`object`,[[39,83,!1],[41,3,!0]]],[`ref`,116],[`array`,375],[`ref`,119],[`array`,377],[`object`,[[39,83,!1],[238,3,!0],[41,3,!0],[239,376,!1],[240,378,!1]]],[`ref`,256],[`array`,380],[`ref`,117],[`array`,382],[`ref`,118],[`array`,384],[`union`,380,1],[`object`,[[39,83,!1],[241,381,!1],[41,3,!0],[242,383,!1],[243,385,!1],[244,386,!1],[245,2,!1]]],[`object`,[[246,3,!0],[247,3,!0]]],[`enum`,`State`,`Sends`,`Starts`,`Completes`,`Fails`,`Waits`],[`object`,[[248,389,!0],[63,83,!1]]],[`ref`,120],[`array`,391],[`ref`,121],[`array`,393],[`object`,[[249,392,!1],[250,98,!0],[251,98,!0],[41,3,!0],[252,394,!1]]],[`enum`,`Send`,`Start`],[`object`,[[253,396,!0],[63,3,!0]]],[`ref`,58,150],[`union`,398,1],[`object`,[[77,3,!0],[63,3,!0],[79,399,!1]]],[`ref`,123],[`array`,401],[`object`,[[39,83,!1],[41,3,!0],[254,402,!1],[239,376,!1],[255,3,!0]]],[`ref`,125],[`union`,404,1],[`ref`,124],[`array`,406],[`enum`,`All`,`Any`,`AtLeast`],[`union`,408,1],[`enum`,`Trigger`,`Action`,`Decide`,`Wait`,`Approval`,`ForEach`,`Join`],[`ref`,141,154,211],[`union`,411,1],[`enum`,`Event`,`StateEntered`,`Schedule`,`Manual`],[`union`,413,1],[`object`,[[256,92,!1],[110,83,!1],[194,83,!1],[257,399,!1],[258,405,!1],[259,407,!1],[77,83,!1],[260,405,!1],[67,83,!1],[261,92,!1],[262,409,!1],[41,3,!0],[263,410,!0],[264,92,!1],[265,405,!1],[266,412,!1],[267,83,!1],[268,83,!1],[269,405,!1],[270,414,!1]]],[`object`,[[247,3,!0],[63,3,!0]]],[`enum`,`Seconds`,`Minutes`,`Hours`,`Days`],[`object`,[[97,91,!0],[99,417,!0]]],[`ref`,127],[`union`,419,1],[`object`,[[271,420,!1],[39,83,!1],[272,420,!1],[273,222,!1],[41,3,!0],[274,3,!0]]],[`object`,[[108,252,!1],[39,83,!1],[74,137,!1],[233,362,!1]]],[`ref`,272],[`union`,423,1],[`ref`,271],[`union`,425,1],[`object`,[[39,83,!1],[226,2,!1],[275,144,!1],[41,3,!0],[276,424,!1],[127,426,!1],[72,3,!0],[146,144,!1]]],[`object`,[[41,3,!0],[146,144,!1]]],[`object`,[[277,3,!0]]],[`object`,[[277,3,!0],[146,144,!1]]],[`object`,[[191,83,!1],[278,3,!0],[192,293,!1]]],[`object`,[[279,201,!1],[257,398,!0]]],[`object`,[[279,201,!1]]],[`object`,[[117,3,!0],[41,3,!0]]],[`ref`,136],[`array`,435],[`ref`,137],[`union`,437,1],[`ref`,5,21,76,140],[`object`,[[279,201,!1],[280,436,!1],[257,83,!1],[281,438,!1],[282,439,!0]]],[`ref`,143],[`array`,441],[`object`,[[194,3,!0],[4,144,!1],[283,442,!1]]],[`object`,[[284,98,!0],[285,83,!1],[124,220,!1],[286,3,!0]]],[`object`,[[3,5,!0],[77,3,!0],[4,7,!1]]],[`ref`,144],[`array`,446],[`object`,[[231,447,!1],[287,3,!0],[1,3,!0]]],[`object`,[[93,0,!0],[1,3,!0]]],[`ref`,16],[`array`,450],[`object`,[[173,271,!1],[6,12,!1],[174,83,!1],[177,275,!1],[41,3,!0],[288,451,!1],[178,277,!1],[179,98,!1],[180,163,!1],[181,163,!1],[182,279,!1],[183,83,!1],[184,281,!1]]],[`array`,0],[`object`,[[67,453,!1]]],[`union`,3,98,1],[`number`,-17976931348623157e292,17976931348623157e292],[`enum`,`Int32`,`Int64`,`Decimal`,`Single`],[`string`,`^-?[0-9]+(\\.[0-9]+)?([Ee][+-]?[0-9]+)?$`],[`object`,[[289,457,!0],[2,458,!0]]],[`const`,`ExactNumber`],[`string`,`^(?:0|-?(?:[1-9][0-9]{0,28}|(?:0|[1-9][0-9]{0,28})\\.[0-9]{0,27}[1-9]))$`],[`object`,[[289,460,!0],[2,461,!0]]],[`union`,455,456,459,462],[`object`,[[2,463,!1]]],[`enum`,`And`,`Or`],[`object`,[[134,398,!0],[136,465,!0],[137,398,!0]]],[`ref`,10,40,151,158,210,301],[`object`,[[134,467,!0],[136,465,!0],[137,467,!0]]],[`object`,[[134,114,!0],[136,465,!0],[137,114,!0]]],[`ref`,72],[`array`,470],[`union`,471,1],[`ref`,107],[`array`,473],[`union`,474,1],[`ref`,230],[`array`,476],[`object`,[[119,212,!1],[6,12,!1],[195,300,!1],[196,302,!1],[39,83,!1],[290,472,!1],[122,83,!1],[12,24,!1],[197,304,!1],[14,28,!1],[291,475,!1],[198,98,!0],[41,3,!0],[288,451,!1],[23,306,!1],[292,477,!1],[32,65,!1],[200,310,!1],[184,281,!1]]],[`object`,[[112,199,!1],[113,201,!1],[114,201,!1],[115,201,!1],[293,3,!0]]],[`object`,[[3,5,!0],[104,183,!1],[1,3,!0]]],[`object`,[[101,467,!0]]],[`enum`,`Info`,`Warning`,`Error`,`Unknown`],[`object`,[[112,199,!1],[294,482,!0],[162,3,!0],[163,98,!0],[113,201,!1],[114,201,!1],[115,201,!1]]],[`object`,[[112,199,!1],[295,3,!0],[113,201,!1],[114,201,!1],[115,201,!1]]],[`ref`,162],[`array`,485],[`object`,[[40,486,!1]]],[`object`,[[41,3,!0],[2,0,!0]]],[`ref`,168],[`union`,489,1],[`ref`,165],[`array`,491],[`ref`,166],[`union`,493,1],[`ref`,167],[`union`,495,1],[`ref`,164],[`union`,497,1],[`object`,[[296,490,!1],[297,492,!1],[298,494,!1],[299,496,!1],[300,498,!1]]],[`enum`,`CreatesTenant`,`JoinsTenant`],[`object`,[[301,500,!0]]],[`enum`,`Tenant`,`Member`],[`object`,[[110,163,!1],[302,163,!1],[49,502,!0]]],[`array`,136],[`object`,[[303,504,!1]]],[`ref`,170],[`union`,506,1],[`ref`,169],[`array`,508],[`object`,[[304,507,!1],[32,509,!1]]],[`object`,[[74,136,!0],[49,3,!0]]],[`object`,[[108,252,!1],[74,137,!1]]],[`object`,[[39,83,!1],[305,163,!1],[50,92,!1],[41,3,!0],[22,163,!1],[52,92,!1],[188,92,!1],[189,92,!1]]],[`object`,[[306,3,!0],[307,83,!1],[50,92,!1],[237,3,!0],[52,92,!1],[188,91,!0],[189,91,!0]]],[`object`,[[308,98,!1],[309,83,!1],[310,83,!1],[311,3,!0],[188,92,!1],[189,92,!1]]],[`union`,467,1],[`object`,[[108,252,!1],[257,516,!1],[39,83,!1],[74,137,!1],[41,3,!0]]],[`ref`,180],[`array`,518],[`object`,[[312,83,!1],[313,83,!1],[314,83,!1],[257,83,!1],[315,83,!1],[39,83,!1],[316,83,!1],[317,83,!1],[41,3,!0],[318,163,!1],[319,83,!1],[320,163,!1],[321,519,!1]]],[`object`,[[166,3,!0],[322,3,!0]]],[`ref`,82],[`union`,522,1],[`ref`,126],[`union`,524,1],[`object`,[[77,3,!0],[226,2,!1],[323,523,!1],[324,525,!1],[4,144,!1],[127,229,!1],[78,147,!1],[79,399,!1]]],[`object`,[[3,5,!0],[104,183,!1],[39,83,!1],[74,137,!1],[88,359,!1],[41,3,!0],[325,83,!1],[326,83,!1],[27,57,!1]]],[`ref`,182],[`array`,528],[`object`,[[104,183,!1],[327,529,!1],[41,3,!0]]],[`object`,[[1,3,!0],[83,0,!0]]],[`object`,[[328,98,!1],[329,98,!1],[330,98,!1],[331,98,!1],[41,3,!0],[72,131,!0]]],[`ref`,188],[`object`,[[41,3,!0],[83,533,!0],[72,132,!1]]],[`object`,[[83,533,!0]]],[`ref`,189],[`array`,536],[`object`,[[225,537,!1]]],[`object`,[[2,0,!0]]],[`object`,[[225,144,!1]]],[`object`,[[41,3,!0],[83,2,!1],[72,131,!0]]],[`ref`,194],[`union`,542,1],[`array`,542],[`ref`,172],[`union`,545,1],[`object`,[[119,212,!1],[110,543,!1],[332,544,!1],[39,83,!1],[333,544,!1],[334,98,!1],[41,3,!0],[335,546,!1],[336,131,!0],[141,83,!1]]],[`object`,[[112,199,!1],[113,201,!1],[114,201,!1],[115,201,!1],[282,3,!0]]],[`object`,[[337,163,!1],[49,3,!0]]],[`ref`,57],[`union`,550,1],[`ref`,198],[`union`,552,1],[`ref`,200],[`array`,554],[`object`,[[39,83,!1],[122,83,!1],[91,551,!1],[41,3,!0],[338,553,!1],[35,555,!1],[339,399,!1]]],[`ref`,289],[`array`,557],[`ref`,142],[`array`,559],[`union`,560,1],[`union`,220,1],[`object`,[[108,252,!1],[340,558,!1],[39,83,!1],[74,137,!1],[341,561,!1],[124,562,!1],[125,225,!1],[83,411,!0]]],[`object`,[[342,3,!0]]],[`object`,[[39,83,!1],[122,83,!1],[74,137,!1],[343,98,!1],[41,3,!0],[95,222,!1]]],[`object`,[[57,83,!1],[110,83,!1],[332,144,!1],[325,3,!0]]],[`object`,[[108,252,!1],[39,83,!1],[77,3,!0],[74,137,!1]]],[`ref`,204],[`array`,568],[`object`,[[39,83,!1],[91,551,!1],[41,3,!0],[325,3,!0],[172,569,!1]]],[`object`,[[112,199,!1],[113,201,!1],[114,201,!1],[115,201,!1],[111,3,!0]]],[`ref`,59],[`union`,572,1],[`object`,[[77,3,!0],[88,2,!1],[232,2,!1],[344,573,!1]]],[`enum`,`Error`,`Information`,`Warning`],[`object`,[[257,398,!0],[162,83,!1],[345,575,!0]]],[`object`,[[346,3,!0]]],[`enum`,`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],[`union`,578,1],[`string`,`^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]{1,7})?$`],[`object`,[[347,92,!1],[348,579,!1],[349,580,!0]]],[`enum`,`Item`,`Screen`],[`union`,582,1],[`object`,[[194,3,!0],[273,199,!1],[168,83,!1],[169,260,!1],[255,583,!1]]],[`ref`,215],[`array`,585],[`ref`,216],[`union`,587,1],[`object`,[[280,586,!1],[168,3,!0],[169,260,!1],[281,588,!1],[255,583,!1]]],[`object`,[[112,199,!1],[194,3,!0],[257,398,!0]]],[`enum`,`Hidden`,`Execute`,`Unknown`],[`object`,[[112,199,!1],[194,83,!1],[301,591,!0]]],[`object`,[[350,11,!0]]],[`ref`,51],[`array`,594],[`ref`,52],[`array`,596],[`ref`,185],[`array`,598],[`ref`,53],[`array`,600],[`object`,[[6,12,!1],[205,3,!0],[9,209,!1],[177,595,!1],[60,83,!1],[41,3,!0],[178,597,!1],[170,599,!1],[95,601,!1],[351,83,!1],[184,281,!1]]],[`object`,[[110,83,!1],[111,3,!0],[72,131,!0]]],[`object`,[[168,3,!0],[1,3,!0]]],[`ref`,213],[`array`,605],[`object`,[[110,83,!1],[247,83,!1],[76,606,!1],[352,83,!1],[293,3,!0]]],[`ref`,222],[`array`,608],[`object`,[[225,609,!1],[63,3,!0]]],[`ref`,98],[`array`,611],[`object`,[[195,612,!1],[39,83,!1],[118,207,!1],[74,137,!1],[41,3,!0]]],[`ref`,220],[`array`,614],[`object`,[[6,12,!1],[44,615,!1],[353,260,!1],[63,3,!0],[184,281,!1]]],[`ref`,225],[`array`,617],[`object`,[[354,83,!1],[41,3,!0],[182,618,!1],[355,83,!1]]],[`object`,[[173,271,!1],[6,12,!1],[174,83,!1],[175,273,!1],[39,83,!1],[176,83,!1],[177,275,!1],[356,83,!1],[41,3,!0],[178,277,!1],[179,98,!1],[180,163,!1],[181,163,!1],[182,279,!1],[183,83,!1],[184,281,!1]]],[`ref`,284],[`array`,621],[`object`,[[66,123,!1],[67,622,!1],[41,3,!0]]],[`object`,[[274,280,!0]]],[`object`,[[77,3,!0],[95,144,!1]]],[`ref`,234],[`array`,626],[`object`,[[357,3,!0],[231,627,!1]]],[`ref`,235],[`array`,629],[`object`,[[358,630,!1],[41,83,!1],[188,92,!1],[189,92,!1]]],[`object`,[[354,83,!1],[41,3,!0],[355,83,!1]]],[`object`,[[112,199,!1],[113,201,!1],[114,201,!1],[115,201,!1],[63,3,!0],[2,3,!0]]],[`ref`,29],[`array`,634],[`ref`,55],[`array`,636],[`enum`,`Inbound`,`Outbound`],[`union`,638,1],[`array`,522],[`array`,524],[`ref`,183],[`array`,642],[`ref`,195],[`array`,644],[`ref`,199],[`array`,646],[`ref`,202],[`array`,648],[`union`,649,1],[`ref`,205],[`array`,651],[`union`,652,1],[`ref`,227],[`array`,654],[`ref`,277],[`array`,656],[`enum`,`StateChange`,`StateView`,`Automation`,`Translate`],[`object`,[[359,635,!1],[360,637,!1],[361,313,!1],[39,83,!1],[362,639,!1],[122,83,!1],[231,640,!1],[12,24,!1],[74,137,!1],[41,3,!0],[208,641,!1],[363,643,!1],[23,306,!1],[364,645,!1],[365,647,!1],[366,650,!1],[367,653,!1],[368,655,!1],[239,657,!1],[32,65,!1],[72,658,!0]]],[`object`,[[369,83,!1],[41,3,!0]]],[`object`,[[88,0,!0],[41,3,!0]]],[`object`,[[72,3,!0],[2,3,!0]]],[`ref`,246],[`array`,663],[`object`,[[370,98,!0],[371,664,!1],[337,163,!1]]],[`object`,[[372,3,!0],[373,144,!1]]],[`object`,[[374,3,!0]]],[`object`,[[194,3,!0],[1,3,!0],[83,0,!0]]],[`object`,[[194,3,!0],[146,144,!1]]],[`object`,[[375,3,!0],[226,2,!1],[275,144,!1],[376,83,!1],[146,144,!1]]],[`ref`,38],[`union`,671,1],[`object`,[[377,672,!1],[41,83,!1]]],[`object`,[[378,3,!0],[226,2,!1],[376,83,!1],[276,424,!1],[127,426,!1],[146,144,!1]]],[`object`,[[379,83,!1],[380,83,!1],[381,83,!1],[382,83,!1]]],[`union`,98,1],[`object`,[[383,83,!1],[384,83,!1],[41,83,!1],[385,676,!1]]],[`ref`,262],[`array`,678],[`object`,[[354,83,!1],[41,3,!0],[386,679,!1],[355,83,!1]]],[`ref`,265],[`object`,[[387,681,!0],[325,3,!0]]],[`enum`,`Word`,`Text`,`Number`,`Flag`],[`object`,[[41,3,!0],[49,683,!0],[2,3,!0]]],[`ref`,267],[`array`,685],[`enum`,`Text`,`Number`,`Flag`,`Null`,`Rows`],[`object`,[[41,3,!0],[47,686,!1],[49,687,!0],[2,83,!1]]],[`object`,[[325,3,!0],[388,3,!0]]],[`object`,[[389,98,!0],[41,3,!0]]],[`ref`,269],[`array`,691],[`object`,[[390,83,!1],[41,3,!0],[391,692,!1],[64,83,!1]]],[`ref`,263],[`array`,694],[`object`,[[225,695,!1]]],[`union`,681,1],[`ref`,261],[`array`,698],[`ref`,264],[`array`,700],[`object`,[[392,697,!1],[73,699,!1],[4,701,!1]]],[`object`,[[47,686,!1],[388,3,!0]]],[`object`,[[130,3,!0],[127,3,!0],[132,235,!1],[133,144,!1]]],[`object`,[[393,98,!0],[95,144,!1]]],[`ref`,273],[`array`,706],[`object`,[[112,144,!1],[393,98,!0],[111,3,!0],[394,707,!1]]],[`object`,[[393,98,!0],[376,83,!1],[41,3,!0],[95,144,!1]]],[`object`,[[378,3,!0],[226,2,!1],[276,424,!1],[395,3,!0],[127,426,!1],[146,144,!1]]],[`ref`,130],[`array`,711],[`ref`,248],[`union`,713,1],[`ref`,247],[`union`,715,1],[`ref`,249],[`array`,717],[`ref`,250],[`union`,719,1],[`ref`,251],[`array`,721],[`ref`,131],[`array`,723],[`ref`,275],[`array`,725],[`union`,726,1],[`ref`,36],[`union`,728,1],[`ref`,129],[`array`,730],[`ref`,245],[`array`,732],[`ref`,133],[`array`,734],[`ref`,254],[`union`,736,1],[`ref`,255],[`array`,738],[`ref`,252],[`array`,740],[`ref`,270],[`union`,742,1],[`ref`,132],[`array`,744],[`ref`,274],[`array`,746],[`ref`,192,193],[`union`,748,1],[`ref`,253],[`union`,750,1],[`union`,717,1],[`ref`,279],[`union`,753,1],[`ref`,276],[`union`,755,1],[`ref`,278],[`union`,757,1],[`object`,[[396,712,!1],[39,83,!1],[12,24,!1],[74,137,!1],[241,381,!1],[397,714,!1],[398,716,!1],[399,718,!1],[400,720,!1],[401,722,!1],[402,724,!1],[403,727,!1],[404,729,!1],[41,3,!0],[76,731,!1],[27,57,!1],[405,733,!1],[406,735,!1],[407,737,!1],[408,739,!1],[409,381,!1],[410,98,!0],[411,741,!1],[412,98,!1],[413,743,!1],[414,745,!1],[415,747,!1],[416,727,!1],[417,707,!1],[418,749,!1],[79,751,!1],[244,386,!1],[419,752,!1],[420,720,!1],[421,754,!1],[422,756,!1],[423,758,!1]]],[`object`,[[282,3,!0],[146,144,!1]]],[`object`,[[112,144,!1],[111,3,!0]]],[`object`,[[88,3,!0]]],[`enum`,`Primary`,`Secondary`,`Quiet`],[`union`,763,1],[`object`,[[119,212,!1],[424,83,!1],[425,764,!1],[60,83,!1],[61,3,!0],[426,83,!1],[64,3,!0]]],[`enum`,`Unknown`,`Action`,`Navigate`,`Dialog`],[`object`,[[424,83,!1],[60,83,!1],[168,83,!1],[41,3,!0],[76,606,!1],[170,599,!1],[255,583,!1],[49,766,!0],[63,3,!0]]],[`ref`,286,287],[`array`,768],[`object`,[[138,769,!1]]],[`object`,[[427,163,!1],[41,3,!0]]],[`object`,[[340,558,!1],[39,83,!1],[74,137,!1],[41,3,!0]]],[`object`,[[207,98,!0],[428,98,!0],[41,3,!0]]],[`object`,[[39,83,!1],[74,137,!1],[41,3,!0],[95,222,!1]]],[`enum`,`Invalid`,`DataContext`,`QueryResult`,`ComponentProperty`,`Literal`],[`enum`,`OneWay`,`TwoWay`],[`union`,776,1],[`enum`,`Propagate`,`Clear`,`Preserve`],[`union`,778,1],[`object`,[[429,775,!0],[430,83,!1],[431,83,!1],[432,83,!1],[433,2,!1],[54,777,!1],[434,779,!1],[164,3,!0],[111,83,!1],[435,83,!1]]],[`ref`,258],[`union`,781,1],[`ref`,259],[`union`,783,1],[`ref`,257],[`union`,785,1],[`ref`,260],[`union`,787,1],[`ref`,268],[`union`,789,1],[`object`,[[436,782,!1],[437,83,!1],[438,163,!1],[15,784,!1],[228,83,!1],[41,3,!0],[439,786,!1],[440,163,!1],[441,163,!1],[51,788,!1],[442,790,!1],[443,83,!1]]],[`object`,[[201,313,!1],[39,83,!1],[77,3,!0],[202,98,!0],[162,83,!1],[41,3,!0],[203,163,!1]]],[`object`,[[444,163,!1],[201,313,!1],[39,83,!1],[77,3,!0],[202,98,!0],[162,83,!1],[41,3,!0],[1,3,!0],[203,163,!1]]],[`object`,[[63,3,!0]]],[`ref`,18],[`array`,795],[`object`,[[112,796,!1],[350,3,!0]]],[`enum`,`NotEmpty`,`Max`,`Min`,`GreaterThan`,`GreaterThanOrEqual`,`LessThan`,`LessThanOrEqual`,`Equal`,`Length`,`Matches`,`AllGreaterThan`,`AllGreaterThanOrEqual`,`Rule`,`NotEqual`,`Checksum`,`Contains`,`NotContains`,`StartsWith`,`EndsWith`,`DecimalPlaces`],[`object`,[[108,252,!1],[74,137,!1],[233,362,!1],[162,83,!1],[1,3,!0],[155,798,!0],[345,575,!0],[2,2,!1]]],[`ref`,175],[`array`,800],[`object`,[[50,3,!0],[445,801,!1],[52,3,!0]]]],contracts:[4,8,82,86,87,88,96,97,99,108,109,110,113,115,120,121,128,129,130,133,140,142,150,155,158,159,130,162,164,171,172,174,175,176,177,178,179,180,181,184,185,186,188,189,192,194,195,196,197,202,203,205,208,210,188,233,236,237,239,242,243,251,253,254,255,256,256,261,263,196,269,196,282,87,87,256,283,109,286,287,290,291,294,295,296,297,311,314,315,256,189,316,319,320,323,326,329,330,331,332,339,340,341,343,344,109,345,355,360,365,368,369,372,373,374,379,387,388,390,395,397,400,403,415,416,418,421,422,427,287,428,429,430,429,431,196,432,433,434,440,418,418,443,444,445,448,449,452,454,464,466,468,469,478,87,479,202,480,481,483,484,487,488,499,501,503,505,87,510,511,256,256,512,513,514,515,87,517,520,87,521,526,291,527,530,130,531,532,196,534,535,538,539,540,541,547,548,373,549,556,563,564,565,566,567,570,571,291,574,576,577,581,584,205,589,590,592,593,188,602,316,603,604,607,208,208,610,613,616,619,620,373,623,624,625,628,631,531,632,133,87,633,659,660,256,661,662,87,665,666,667,668,669,670,109,673,674,632,675,677,680,682,684,688,689,690,693,696,702,703,109,704,109,705,708,709,710,759,760,761,762,4,539,765,767,770,297,373,771,133,772,773,774,780,791,792,793,794,797,799,802,109]};export{e as syntaxCollections};
2
2
  //# sourceMappingURL=SyntaxCollections.js.map