@cratis/screenplay-language 4.182.0 → 4.184.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/bundles/compiler/Authoring/QuickFixes.js +2 -2
  2. package/dist/bundles/compiler/Authoring/QuickFixes.js.map +1 -1
  3. package/dist/bundles/compiler/Diagnostics/DiagnosticCodes.js +1 -1
  4. package/dist/bundles/compiler/Diagnostics/DiagnosticCodes.js.map +1 -1
  5. package/dist/bundles/compiler/Generation/FiniteGenerationRules.js +1 -1
  6. package/dist/bundles/compiler/Generation/RuleConsistency.js +1 -1
  7. package/dist/bundles/compiler/Generation/TextRuleExpression.js +1 -0
  8. package/dist/bundles/compiler/Parsing/CommandParser.js +1 -1
  9. package/dist/bundles/compiler/Parsing/CommandParser.js.map +1 -1
  10. package/dist/bundles/compiler/Parsing/LegacyTextRulePatterns.js +3 -0
  11. package/dist/bundles/compiler/Parsing/LegacyTextRulePatterns.js.map +1 -0
  12. package/dist/bundles/compiler/Parsing/MatchOperandValidation.js +2 -0
  13. package/dist/bundles/compiler/Parsing/MatchOperandValidation.js.map +1 -0
  14. package/dist/bundles/compiler/Parsing/PortableMatchGroupName.js +2 -0
  15. package/dist/bundles/compiler/Parsing/PortableMatchGroupName.js.map +1 -0
  16. package/dist/bundles/compiler/Parsing/PortableMatchPattern.js +2 -0
  17. package/dist/bundles/compiler/Parsing/PortableMatchPattern.js.map +1 -0
  18. package/dist/bundles/compiler/Parsing/PortableMatchSuggestions.js +2 -0
  19. package/dist/bundles/compiler/Parsing/PortableMatchSuggestions.js.map +1 -0
  20. package/dist/bundles/compiler/Parsing/checkPortableMatchPattern.js +2 -0
  21. package/dist/bundles/compiler/Parsing/checkPortableMatchPattern.js.map +1 -0
  22. package/dist/bundles/compiler/Syntax/SyntaxCollections.js +1 -1
  23. package/dist/bundles/compiler/Syntax/SyntaxCollections.js.map +1 -1
  24. package/dist/bundles/compiler/index.js +1 -1
  25. package/dist/bundles/completion-items.js +1 -1
  26. package/dist/bundles/completion-items.js.map +1 -1
  27. package/dist/bundles/diagnostic-codes.js +1 -1
  28. package/dist/bundles/diagnostic-codes.js.map +1 -1
  29. package/dist/bundles/keyword-docs.js +1 -1
  30. package/dist/bundles/keyword-docs.js.map +1 -1
  31. package/dist/bundles/language.js +1 -1
  32. package/dist/bundles/language.js.map +1 -1
  33. package/dist/bundles/validation.js +1 -1
  34. package/dist/bundles/validation.js.map +1 -1
  35. package/dist/completion-items.d.ts.map +1 -1
  36. package/dist/diagnostic-codes.d.ts +4 -0
  37. package/dist/diagnostic-codes.d.ts.map +1 -1
  38. package/dist/keyword-docs.d.ts.map +1 -1
  39. package/dist/language.d.ts.map +1 -1
  40. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CommandParser.js","names":["header","pattern","routeHeader","sourceStreamPattern","severityPattern","messagePattern","stringBodyPattern","rulePattern","operandPattern","ruleNamePattern","optionalReads","operandKinds","severities","opaqueDirectives","propertyShapedDirectives","names","lookahead","ParserContext","context","line","name","DiagnosticCodes","locationOf","properties","responses","identifier","validations","produces","reads","referenceReads","concurrency","description","documentation","authorize","handler","handlers","stream","streamCandidates","child","keyword","firstWord","asProperty","tryParseProperty","scalar","scalarResponsePattern","responseNames","parseCommandResponse","reportInvalidModifierOrder","source","streamName","ambiguous","route","parseCommandStream","isReactionIdentityLine","misplacedReactionIdentity","parseDescription","parseDocumentation","combineAuthorize","parseAuthorize","validate","production","parseProduces","parseHandler","reference","parseReads","captureConcurrency","read","candidates","entry","property","discoveredNames","response","removed","parsed","validateHandlerOccurrences","isPendingHandler","syntax","commandReadSources","dependencySources","reportLegacyOptionalSuffix","commandName","fence","code","parseCode","rules","requirements","wrapperIndent","owner","condition","parseCondition","message","severity","hasSeverity","directive","matched","unescapeString","rule","checksum","valueContext","withSeverity","match","body","wrapped","commandOwner","parseImplementationWrapper","isFile","parseFile","isCode","extra","content","text","algorithm","operand","parseMappingSource"],"sources":["../../../../../../Compiler/Parsing/CommandParser.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DiagnosticCodes } from '../Diagnostics/DiagnosticCodes';\nimport { isPendingHandler, validateHandlerOccurrences } from './CommandHandlerValidator';\nimport { SourceLocation } from '../Diagnostics/SourceLocation';\nimport { RequirementSyntax } from '../Syntax/Conditions';\nimport { parseCondition } from './ConditionParser';\nimport { AuthorizeSyntax } from '../Syntax/Authorization';\nimport { CommandSyntax, ValidateSyntax, ValidationRuleKind, ValidationRuleSyntax, ValidationSeverity } from '../Syntax/Commands';\nimport { PropertySyntax } from '../Syntax/Declarations';\nimport { CommandStreamSyntax } from '../Syntax/EventSources';\nimport { parseCommandStream } from './EventSourceParser';\nimport { ExpressionSyntax } from '../Syntax/Expressions';\nimport { ProducesSyntax } from '../Syntax/Reactions';\nimport { CommandResponseSyntax } from '../Syntax/Responses';\nimport { pattern } from '../Text/patterns';\nimport { sourceStreamPattern } from '../Text/SourceStreamNames';\nimport { stringBodyPattern, unescapeString } from '../Text/StringLiteral';\nimport { combineAuthorize, parseAuthorize } from './AuthorizeParser';\nimport { parseCommandResponse, scalarResponsePattern } from './CommandResponseParser';\nimport { parseDescription } from './DescriptionParser';\nimport { parseDocumentation } from './DocumentationParser';\nimport { isCode, isFile, parseCode, parseFile, parseHandler, parseImplementationWrapper } from './ImplementationParser';\nimport { CodeBlockSyntax, FileReferenceSyntax, HandlerSyntax, ImplementationSyntax } from '../Syntax/Implementations';\nimport { parseMappingSource } from './ExpressionParser';\nimport { firstWord } from './LineText';\nimport { ParserContext } from './ParserContext';\nimport { isReactionIdentityLine, misplacedReactionIdentity } from './ReactionIdentityParser';\nimport { commandReadSources } from './CommandReadSources';\nimport { dependencySources, ReadsSyntax, ConcurrencySyntax } from '../Syntax/DependencySources';\nimport { captureConcurrency } from './DependencySourceParser';\nimport { parseReads } from './ReadsParser';\nimport { parseProduces } from './ProducesParser';\nimport { reportInvalidModifierOrder, reportLegacyOptionalSuffix, tryParseProperty } from './PropertyLineParser';\nimport { locationOf, SourceLine } from './SourceLine';\n\nconst header = pattern('^command\\\\s+([A-Za-z_]\\\\w*)$');\nconst routeHeader = sourceStreamPattern('^stream\\\\s+[A-Za-z_]\\\\w*\\\\.[A-Za-z_]\\\\w*$');\nconst severityPattern = pattern('\\\\bseverity\\\\s+(\\\\S+)$');\nconst messagePattern = pattern(`\\\\bmessage\\\\s+(?:\"(${stringBodyPattern})\"|(\\\\$strings\\\\.\\\\S*))$`);\nconst rulePattern = pattern('^([\\\\w.]+)\\\\s+(.+)$');\nconst operandPattern = pattern('^(not empty|length ==|all >=|all >|matches|max|min|rule|>=|<=|==|!=|>|<)\\\\s*(.*)$');\nconst ruleNamePattern = sourceStreamPattern('^[A-Za-z_]\\\\w*$');\nconst optionalReads = pattern('^reads\\\\s+[A-Z]\\\\w*\\\\s+optional(?:\\\\s|$)');\n\n// Every operand the pattern matches has a kind, so an operand never goes unrecognized here.\nconst operandKinds: Record<string, ValidationRuleKind> = {\n max: 'Max',\n min: 'Min',\n '>': 'GreaterThan',\n '>=': 'GreaterThanOrEqual',\n '<': 'LessThan',\n '<=': 'LessThanOrEqual',\n '==': 'Equal',\n '!=': 'NotEqual',\n 'length ==': 'Length',\n matches: 'Matches',\n 'all >': 'AllGreaterThan',\n 'all >=': 'AllGreaterThanOrEqual',\n};\n\nconst severities: Record<string, ValidationSeverity> = { information: 'Information', warning: 'Warning', error: 'Error' };\n\n// Command directives this compiler does not model. They are skipped whole.\nconst opaqueDirectives = new Set(['reads', 'concurrency']);\n\n// The bare directives cannot take a type reference, so a line with property shape is a property whatever\n// keyword it starts with - 'description String' declares a property called description.\nconst propertyShapedDirectives = new Set(['description', 'documentation', 'handler', 'concurrency']);\n\nexport function parseCommand(context: ParserContext, line: SourceLine): CommandSyntax {\n // Properties are leaves, not indentation owners. Resolve ambiguous returns spelling\n // before the committed pass decides whether its deeper lines belong to a response.\n const names = new Set<string>();\n const lookahead = new ParserContext(context.reader.fork(), context.path, context.languages);\n lookahead.sourceOptions = context.sourceOptions;\n lookahead.streamCandidates = context.streamCandidates;\n parseCommandBody(lookahead, line, undefined, names);\n return parseCommandBody(context, line, names);\n}\n\nfunction parseCommandBody(context: ParserContext, line: SourceLine, responseNames?: ReadonlySet<string>, discoveredNames?: Set<string>): CommandSyntax {\n const name = header.exec(line.content)?.[1] ?? '';\n if (name === '') {\n context.error(DiagnosticCodes.InvalidCommandDeclaration, `Invalid command declaration '${line.content}' - expected 'command <Name>'`, locationOf(line));\n }\n const properties: PropertySyntax[] = [];\n const responses: { line: SourceLine; candidate: PropertySyntax | null; response: CommandResponseSyntax | null }[] = [];\n let identifier: PropertySyntax | undefined;\n const validations: ValidateSyntax[] = [];\n const produces: ProducesSyntax[] = [];\n const reads: { readModel: string; alias: string | null }[] = [];\n const referenceReads: ReadsSyntax[] = [];\n let concurrency: ConcurrencySyntax | undefined;\n let description: string | null = null;\n let documentation: string | null = null;\n let authorize: AuthorizeSyntax | null = null;\n let handler: HandlerSyntax | null = null;\n const handlers: { handler: HandlerSyntax | null; location: SourceLocation }[] = [];\n let stream: CommandStreamSyntax | null = null;\n const streamCandidates: CommandStreamSyntax[] = [];\n for (let child = context.peekChild(line.indent); child !== undefined; child = context.peekChild(line.indent)) {\n context.reader.takeSignificant();\n const keyword = firstWord(child.content);\n const asProperty = tryParseProperty(child);\n if (asProperty !== undefined && (propertyShapedDirectives.has(keyword) || (keyword === 'validate' && child.content !== 'validate csharp'))) {\n identifier = addProperty(context, properties, asProperty, name, child, identifier);\n } else if (keyword === 'returns') {\n const scalar = scalarResponsePattern.exec(child.content);\n if (scalar !== null && !scalar[1].startsWith('@') && asProperty !== undefined) {\n if (responseNames === undefined) {\n properties.push(asProperty);\n responses.push({ line: child, candidate: asProperty, response: null });\n } else if (responseNames.has(asProperty.type.name)) {\n responses.push({ line: child, candidate: null, response: parseCommandResponse(context, child) });\n } else {\n identifier = addProperty(context, properties, asProperty, name, child, identifier);\n }\n } else if (asProperty !== undefined) {\n identifier = addProperty(context, properties, asProperty, name, child, identifier);\n } else if (reportInvalidModifierOrder(context, child)) {\n context.skipBlock(child.indent);\n } else {\n responses.push({ line: child, candidate: null, response: parseCommandResponse(context, child) });\n }\n } else if (keyword === 'stream' && routeHeader.test(child.content) && asProperty !== undefined && context.streamCandidates?.hasSource(asProperty.type.name.split('.')[0]) === true) {\n const [source, streamName] = asProperty.type.name.split('.');\n const ambiguous = context.streamCandidates.hasPropertyType(asProperty.type.name) && context.streamCandidates.hasUniqueStream(source, streamName);\n const route = parseCommandStream(context, child, asProperty, ambiguous);\n if (stream !== null || streamCandidates.length > 0) context.error(DiagnosticCodes.InvalidCommandStream, 'A command declares at most one stream route.', locationOf(child));\n if (ambiguous || stream !== null) streamCandidates.push(route);\n else stream = route;\n } else if (keyword === 'runs' && isReactionIdentityLine(child)) {\n misplacedReactionIdentity(context, child);\n } else if (keyword === 'description') {\n description = parseDescription(context, child, description, `Command '${name}'`);\n } else if (keyword === 'documentation') {\n documentation = parseDocumentation(context, child, documentation, `Command '${name}'`);\n } else if (keyword === 'authorize') {\n authorize = combineAuthorize(authorize, parseAuthorize(context, child));\n } else if (keyword === 'validate') {\n const validate = parseValidate(context, child, 'command');\n if (validate !== undefined) {\n validations.push(validate);\n }\n } else if (keyword === 'produces') {\n const production = parseProduces(context, child, true);\n if (production !== undefined) produces.push(production);\n } else if (keyword === 'handler') {\n handler = parseHandler(context, child);\n handlers.push({ handler, location: locationOf(child) });\n } else if (opaqueDirectives.has(keyword)) {\n const reference = keyword === 'reads' ? parseReads(context, child) : undefined;\n if (reference !== undefined) referenceReads.push(reference);\n if (keyword === 'concurrency' && concurrency === undefined) concurrency = captureConcurrency(context, child);\n const read = /^reads\\s+([A-Z]\\w*)(?:\\s+as\\s+([a-z_]\\w*))?(?:\\s+by\\s+([a-z_]\\w*))?$/.exec(child.content);\n if (read !== null) reads.push({ readModel: read[1], alias: read[2] ?? null });\n if (optionalReads.test(child.content)) {\n context.error(DiagnosticCodes.OptionalReadsNotSupported, 'Optional reads are not yet supported (see #308).', locationOf(child));\n }\n context.skipOpaqueBlock(child.indent);\n } else if (asProperty !== undefined) {\n identifier = addProperty(context, properties, asProperty, name, child, identifier);\n } else {\n reportInvalidModifierOrder(context, child);\n context.error(DiagnosticCodes.UnknownCommandDirective, `Unexpected '${child.content}' in command body`, locationOf(child));\n context.skipBlock(child.indent);\n }\n }\n const candidates = new Set(responses.flatMap(entry => entry.candidate === null ? [] : [entry.candidate]));\n const names = new Set(properties.filter(property => !candidates.has(property)).map(property => property.name));\n if (responses.some(entry => entry.candidate !== null && !names.has(entry.candidate.type.name) && entry.candidate.type.name !== 'returns')) names.add('returns');\n for (const name of names) discoveredNames?.add(name);\n let response: CommandResponseSyntax | null = null;\n const removed = new Set<PropertySyntax>();\n for (const entry of responses) {\n let parsed = entry.response;\n if (entry.candidate !== null) {\n if (!names.has(entry.candidate.type.name)) continue;\n removed.add(entry.candidate);\n parsed = { kind: 'ScalarCommandResponseSyntax', source: { kind: 'PropertyResponseSourceSyntax', property: entry.candidate.type.name, location: entry.candidate.type.location }, location: locationOf(entry.line) };\n }\n if (parsed === null) continue;\n if (response !== null) {\n context.error(DiagnosticCodes.InvalidCommandResponse, 'A command declares at most one unconditional response.', locationOf(entry.line));\n } else {\n response = parsed;\n }\n }\n validateHandlerOccurrences(handlers, context);\n if (handler !== null && !isPendingHandler(handler) && produces.length > 0) {\n context.error(DiagnosticCodes.CommandWithProducesAndHandler, `Command '${name}' cannot declare both 'produces' and 'handler'`, locationOf(line));\n }\n const syntax: CommandSyntax = { kind: 'CommandSyntax', name, description, documentation, authorize, properties: properties.filter(property => !removed.has(property)), validations, produces, handler, response, stream, streamCandidates, location: locationOf(line) };\n commandReadSources.set(syntax, reads);\n dependencySources.set(syntax, { reads: referenceReads, concurrency });\n return syntax;\n}\n\nfunction addProperty(context: ParserContext, properties: PropertySyntax[], property: PropertySyntax, commandName: string, line: SourceLine, identifier: PropertySyntax | undefined): PropertySyntax | undefined {\n reportLegacyOptionalSuffix(context, property.type, line);\n if (property.isIdentifier && identifier !== undefined) {\n context.error(DiagnosticCodes.DuplicateCommandIdentifier, `Command '${commandName}' already marks '${identifier.name}' as identifier - only one property can be the identifier`, property.location);\n property = { ...property, isIdentifier: false };\n }\n properties.push(property);\n return identifier ?? (property.isIdentifier ? property : undefined);\n}\n\n// Reads a 'validate' block: declarative rules, or code - which is recognized but not modeled.\nexport function parseValidate(context: ParserContext, line: SourceLine, owner: 'command' | 'concept'): ValidateSyntax | undefined {\n if (line.content === 'validate') {\n const fence = context.peekChild(line.indent);\n if (fence !== undefined && fence.content.startsWith('```')) {\n context.reader.takeSignificant();\n const code = parseCode(context.valueContext, fence);\n if (code === null) context.skipFencedBody();\n return { kind: 'CodeValidateSyntax', code, location: locationOf(line) };\n }\n const rules: ValidationRuleSyntax[] = [];\n const requirements: RequirementSyntax[] = [];\n let wrapperIndent: number | undefined;\n for (let child = context.peekChild(line.indent); child !== undefined; child = context.peekChild(line.indent)) {\n context.reader.takeSignificant();\n if (owner === 'concept') {\n if (context.sourceOptions.numericMode === 'legacy' && child.content.startsWith('```')) { context.skipFencedBody(); continue; }\n if (wrapperIndent !== undefined && child.indent <= wrapperIndent) wrapperIndent = undefined;\n if (wrapperIndent !== undefined || firstWord(child.content) === 'implementation') {\n context.error(DiagnosticCodes.InvalidValidationRule, `Invalid validation rule '${child.content}'`, locationOf(child));\n wrapperIndent ??= child.indent;\n continue;\n }\n }\n if (firstWord(child.content) === 'require') {\n const condition = parseCondition(owner === 'concept' ? context.valueContext : context, child.content.substring('require'.length).trim(), locationOf(child));\n let message: string | null = null;\n let severity: ValidationSeverity = 'Error';\n let hasSeverity = false;\n for (let directive = context.peekChild(child.indent); directive !== undefined; directive = context.peekChild(child.indent)) {\n context.reader.takeSignificant();\n const matched = messagePattern.exec(directive.content);\n if (matched !== null && matched.index === 0) message = matched[1] !== undefined ? unescapeString(matched[1]) : matched[2];\n else if (firstWord(directive.content) === 'severity') {\n if (!hasSeverity) severity = severities[directive.content.substring('severity'.length).trim()] ?? 'Error';\n hasSeverity = true;\n } else context.skipOpaqueBlock(directive.indent);\n }\n if (condition !== null) requirements.push({ kind: 'RequirementSyntax', condition, message, severity, location: locationOf(child) });\n continue;\n }\n const rule = parseValidationRule(context, owner === 'concept' ? { ...child, content: `value ${child.content}` } : child, owner);\n if (rule !== undefined) {\n rules.push(rule);\n }\n }\n return { kind: 'DeclarativeValidateSyntax', rules, requirements, location: locationOf(line) };\n }\n if (owner === 'concept' && firstWord(line.content.substring('validate'.length).trimStart()) === 'checksum') {\n const ruleLine = { ...line, content: `value ${line.content.substring('validate'.length).trimStart()}` };\n const rule = parseValidationRule(context, ruleLine, owner);\n return rule === undefined ? undefined : { kind: 'DeclarativeValidateSyntax', rules: [rule], requirements: [], location: locationOf(line) };\n }\n if (line.content === 'validate csharp') {\n const code = parseCode(context.valueContext, { ...line, content: 'csharp' });\n if (code === null) context.skipOpaqueBlock(line.indent);\n return { kind: 'CodeValidateSyntax', code, location: locationOf(line) };\n }\n context.error(DiagnosticCodes.InvalidValidateDeclaration, `Invalid validate declaration '${line.content}' - expected 'validate' or 'validate csharp'`, locationOf(line));\n context.skipBlock(line.indent);\n return undefined;\n}\n\nfunction parseValidationRule(context: ParserContext, line: SourceLine, owner: 'command' | 'concept'): ValidationRuleSyntax | undefined {\n // Checksum is a new declaration, not enrichment of a formerly opaque Legacy rule.\n const checksum = firstWord(rulePattern.exec(line.content)?.[2] ?? '') === 'checksum';\n const valueContext = owner === 'concept' && !checksum ? context.valueContext : context;\n const { content: withSeverity, message } = splitMessage(line.content);\n const severity = splitSeverity(valueContext, line, withSeverity);\n if (severity === undefined) {\n return undefined;\n }\n const match = rulePattern.exec(severity.content);\n if (match === null) {\n valueContext.error(DiagnosticCodes.InvalidValidationRule, `Invalid validation rule '${line.content}'`, locationOf(line));\n return undefined;\n }\n const parsed = parseRule(valueContext, match[2], line);\n if (parsed === undefined) {\n return undefined;\n }\n const source = parsed.kind === 'Rule' ? parseRuleImplementation(context, line, owner === 'command') : { file: null, code: null, implementation: null };\n return {\n kind: 'ValidationRuleSyntax',\n property: match[1],\n rule: parsed.kind,\n value: parsed.value,\n message,\n severity: severity.severity,\n ...source,\n location: locationOf(line),\n };\n}\n\nfunction parseRuleImplementation(context: ParserContext, rule: SourceLine, commandOwner: boolean): { file: FileReferenceSyntax | null; code: CodeBlockSyntax | null; implementation: ImplementationSyntax | null } {\n const body = context.peekChild(rule.indent);\n if (body === undefined) return { file: null, code: null, implementation: null };\n context.reader.takeSignificant();\n const wrapped = commandOwner && firstWord(body.content) === 'implementation';\n const source = wrapped ? parseImplementationWrapper(context, body) : {\n file: isFile(body) ? parseFile(context, body) : null,\n code: !isFile(body) && isCode(context, body) ? parseCode(context, body) : null,\n implementation: null,\n };\n if (!wrapped && source.file === null && source.code === null) {\n context.error(DiagnosticCodes.UnknownRuleImplementationDirective, `Unexpected '${body.content}' in rule implementation - expected 'file <path>' or an inline code block`, locationOf(body));\n context.skipBlock(body.indent);\n }\n for (let extra = context.peekChild(rule.indent); extra !== undefined && (wrapped || (commandOwner && firstWord(extra.content) === 'implementation')); extra = context.peekChild(rule.indent)) {\n context.reader.takeSignificant();\n context.error(wrapped && firstWord(extra.content) === 'implementation' ? DiagnosticCodes.InvalidImplementationBlock : DiagnosticCodes.ConflictingImplementationSources,\n 'A named rule has one implementation wrapper and cannot mix wrapped and direct sources.', locationOf(extra));\n if (isCode(context, extra)) parseCode(context, extra);\n else context.skipBlock(extra.indent);\n }\n return source;\n}\n\nfunction splitMessage(content: string): { content: string; message: string | null } {\n const match = messagePattern.exec(content);\n if (match === null) {\n return { content, message: null };\n }\n const message = match[1] !== undefined ? unescapeString(match[1]) : match[2];\n return { content: content.substring(0, match.index).trimEnd(), message };\n}\n\nfunction splitSeverity(context: ParserContext, line: SourceLine, text: string): { content: string; severity: ValidationSeverity } | undefined {\n const match = severityPattern.exec(text);\n if (match === null) {\n return { content: text, severity: 'Error' };\n }\n const severity = severities[match[1]];\n if (severity === undefined) {\n context.error(DiagnosticCodes.InvalidValidationSeverity, `Unknown validation severity '${match[1]}' - expected information, warning or error`, locationOf(line));\n return undefined;\n }\n return { content: text.substring(0, match.index).trimEnd(), severity };\n}\n\nfunction parseRule(context: ParserContext, rule: string, line: SourceLine): { kind: ValidationRuleKind; value: ExpressionSyntax | null } | undefined {\n if (rule === 'not empty') {\n return { kind: 'NotEmpty', value: null };\n }\n if (firstWord(rule) === 'checksum') {\n const algorithm = rule.substring('checksum'.length).trim();\n if (algorithm !== 'luhn' && algorithm !== 'mod11' && algorithm !== 'mod97') {\n context.error(DiagnosticCodes.InvalidGenerationArgument, 'Checksum validation requires luhn, mod11 or mod97.', locationOf(line));\n return undefined;\n }\n return { kind: 'Checksum', value: { kind: 'LiteralExpressionSyntax', value: algorithm, location: locationOf(line) } };\n }\n const operand = operandPattern.exec(rule);\n if (operand === null) {\n context.error(DiagnosticCodes.InvalidValidationRule, `Invalid validation rule '${line.content}'`, locationOf(line));\n return undefined;\n }\n if (operand[1] === 'rule') {\n const name = operand[2].trim();\n if (!ruleNamePattern.test(name)) {\n context.error(DiagnosticCodes.InvalidRuleName, `Invalid rule name '${name}' in '${line.content}' - expected 'rule <Name>' with an identifier`, locationOf(line));\n return undefined;\n }\n return { kind: 'Rule', value: { kind: 'PathExpressionSyntax', path: name, location: locationOf(line) } };\n }\n return { kind: operandKinds[operand[1]], value: parseMappingSource(operand[2], locationOf(line), context) };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CommandParser.js","names":["header","pattern","routeHeader","sourceStreamPattern","severityPattern","messagePattern","stringBodyPattern","rulePattern","operandPattern","ruleNamePattern","optionalReads","operandKinds","severities","opaqueDirectives","propertyShapedDirectives","names","lookahead","ParserContext","context","line","name","DiagnosticCodes","locationOf","properties","responses","identifier","validations","produces","reads","referenceReads","concurrency","description","documentation","authorize","handler","handlers","stream","streamCandidates","child","keyword","firstWord","asProperty","tryParseProperty","scalar","scalarResponsePattern","responseNames","parseCommandResponse","reportInvalidModifierOrder","source","streamName","ambiguous","route","parseCommandStream","isReactionIdentityLine","misplacedReactionIdentity","parseDescription","parseDocumentation","combineAuthorize","parseAuthorize","validate","production","parseProduces","parseHandler","reference","parseReads","captureConcurrency","read","candidates","entry","property","discoveredNames","response","removed","parsed","validateHandlerOccurrences","isPendingHandler","syntax","commandReadSources","dependencySources","reportLegacyOptionalSuffix","commandName","fence","code","parseCode","rules","requirements","wrapperIndent","owner","condition","parseCondition","message","severity","hasSeverity","directive","matched","unescapeString","rule","checksum","valueContext","withSeverity","match","validateMatchOperand","body","wrapped","commandOwner","parseImplementationWrapper","isFile","parseFile","isCode","extra","content","text","algorithm","operand","parseMappingSource"],"sources":["../../../../../../Compiler/Parsing/CommandParser.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DiagnosticCodes } from '../Diagnostics/DiagnosticCodes';\nimport { isPendingHandler, validateHandlerOccurrences } from './CommandHandlerValidator';\nimport { SourceLocation } from '../Diagnostics/SourceLocation';\nimport { RequirementSyntax } from '../Syntax/Conditions';\nimport { parseCondition } from './ConditionParser';\nimport { AuthorizeSyntax } from '../Syntax/Authorization';\nimport { CommandSyntax, ValidateSyntax, ValidationRuleKind, ValidationRuleSyntax, ValidationSeverity } from '../Syntax/Commands';\nimport { PropertySyntax } from '../Syntax/Declarations';\nimport { CommandStreamSyntax } from '../Syntax/EventSources';\nimport { parseCommandStream } from './EventSourceParser';\nimport { ExpressionSyntax } from '../Syntax/Expressions';\nimport { ProducesSyntax } from '../Syntax/Reactions';\nimport { CommandResponseSyntax } from '../Syntax/Responses';\nimport { pattern } from '../Text/patterns';\nimport { sourceStreamPattern } from '../Text/SourceStreamNames';\nimport { stringBodyPattern, unescapeString } from '../Text/StringLiteral';\nimport { combineAuthorize, parseAuthorize } from './AuthorizeParser';\nimport { parseCommandResponse, scalarResponsePattern } from './CommandResponseParser';\nimport { parseDescription } from './DescriptionParser';\nimport { parseDocumentation } from './DocumentationParser';\nimport { isCode, isFile, parseCode, parseFile, parseHandler, parseImplementationWrapper } from './ImplementationParser';\nimport { CodeBlockSyntax, FileReferenceSyntax, HandlerSyntax, ImplementationSyntax } from '../Syntax/Implementations';\nimport { parseMappingSource } from './ExpressionParser';\nimport { firstWord } from './LineText';\nimport { ParserContext } from './ParserContext';\nimport { validateMatchOperand } from './MatchOperandValidation';\nimport { isReactionIdentityLine, misplacedReactionIdentity } from './ReactionIdentityParser';\nimport { commandReadSources } from './CommandReadSources';\nimport { dependencySources, ReadsSyntax, ConcurrencySyntax } from '../Syntax/DependencySources';\nimport { captureConcurrency } from './DependencySourceParser';\nimport { parseReads } from './ReadsParser';\nimport { parseProduces } from './ProducesParser';\nimport { reportInvalidModifierOrder, reportLegacyOptionalSuffix, tryParseProperty } from './PropertyLineParser';\nimport { locationOf, SourceLine } from './SourceLine';\n\nconst header = pattern('^command\\\\s+([A-Za-z_]\\\\w*)$');\nconst routeHeader = sourceStreamPattern('^stream\\\\s+[A-Za-z_]\\\\w*\\\\.[A-Za-z_]\\\\w*$');\nconst severityPattern = pattern('\\\\bseverity\\\\s+(\\\\S+)$');\nconst messagePattern = pattern(`\\\\bmessage\\\\s+(?:\"(${stringBodyPattern})\"|(\\\\$strings\\\\.\\\\S*))$`);\nconst rulePattern = pattern('^([\\\\w.]+)\\\\s+(.+)$');\nconst operandPattern = pattern('^(not empty|length ==|all >=|all >|matches|not contains|contains|starts with|ends with|max|min|rule|>=|<=|==|!=|>|<)\\\\s*(.*)$');\nconst ruleNamePattern = sourceStreamPattern('^[A-Za-z_]\\\\w*$');\nconst optionalReads = pattern('^reads\\\\s+[A-Z]\\\\w*\\\\s+optional(?:\\\\s|$)');\n\n// Every operand the pattern matches has a kind, so an operand never goes unrecognized here.\nconst operandKinds: Record<string, ValidationRuleKind> = {\n max: 'Max',\n min: 'Min',\n '>': 'GreaterThan',\n '>=': 'GreaterThanOrEqual',\n '<': 'LessThan',\n '<=': 'LessThanOrEqual',\n '==': 'Equal',\n '!=': 'NotEqual',\n 'length ==': 'Length',\n matches: 'Matches',\n contains: 'Contains',\n 'not contains': 'NotContains',\n 'starts with': 'StartsWith',\n 'ends with': 'EndsWith',\n 'all >': 'AllGreaterThan',\n 'all >=': 'AllGreaterThanOrEqual',\n};\n\nconst severities: Record<string, ValidationSeverity> = { information: 'Information', warning: 'Warning', error: 'Error' };\n\n// Command directives this compiler does not model. They are skipped whole.\nconst opaqueDirectives = new Set(['reads', 'concurrency']);\n\n// The bare directives cannot take a type reference, so a line with property shape is a property whatever\n// keyword it starts with - 'description String' declares a property called description.\nconst propertyShapedDirectives = new Set(['description', 'documentation', 'handler', 'concurrency']);\n\nexport function parseCommand(context: ParserContext, line: SourceLine): CommandSyntax {\n // Properties are leaves, not indentation owners. Resolve ambiguous returns spelling\n // before the committed pass decides whether its deeper lines belong to a response.\n const names = new Set<string>();\n const lookahead = new ParserContext(context.reader.fork(), context.path, context.languages);\n lookahead.sourceOptions = context.sourceOptions;\n lookahead.streamCandidates = context.streamCandidates;\n parseCommandBody(lookahead, line, undefined, names);\n return parseCommandBody(context, line, names);\n}\n\nfunction parseCommandBody(context: ParserContext, line: SourceLine, responseNames?: ReadonlySet<string>, discoveredNames?: Set<string>): CommandSyntax {\n const name = header.exec(line.content)?.[1] ?? '';\n if (name === '') {\n context.error(DiagnosticCodes.InvalidCommandDeclaration, `Invalid command declaration '${line.content}' - expected 'command <Name>'`, locationOf(line));\n }\n const properties: PropertySyntax[] = [];\n const responses: { line: SourceLine; candidate: PropertySyntax | null; response: CommandResponseSyntax | null }[] = [];\n let identifier: PropertySyntax | undefined;\n const validations: ValidateSyntax[] = [];\n const produces: ProducesSyntax[] = [];\n const reads: { readModel: string; alias: string | null }[] = [];\n const referenceReads: ReadsSyntax[] = [];\n let concurrency: ConcurrencySyntax | undefined;\n let description: string | null = null;\n let documentation: string | null = null;\n let authorize: AuthorizeSyntax | null = null;\n let handler: HandlerSyntax | null = null;\n const handlers: { handler: HandlerSyntax | null; location: SourceLocation }[] = [];\n let stream: CommandStreamSyntax | null = null;\n const streamCandidates: CommandStreamSyntax[] = [];\n for (let child = context.peekChild(line.indent); child !== undefined; child = context.peekChild(line.indent)) {\n context.reader.takeSignificant();\n const keyword = firstWord(child.content);\n const asProperty = tryParseProperty(child);\n if (asProperty !== undefined && (propertyShapedDirectives.has(keyword) || (keyword === 'validate' && child.content !== 'validate csharp'))) {\n identifier = addProperty(context, properties, asProperty, name, child, identifier);\n } else if (keyword === 'returns') {\n const scalar = scalarResponsePattern.exec(child.content);\n if (scalar !== null && !scalar[1].startsWith('@') && asProperty !== undefined) {\n if (responseNames === undefined) {\n properties.push(asProperty);\n responses.push({ line: child, candidate: asProperty, response: null });\n } else if (responseNames.has(asProperty.type.name)) {\n responses.push({ line: child, candidate: null, response: parseCommandResponse(context, child) });\n } else {\n identifier = addProperty(context, properties, asProperty, name, child, identifier);\n }\n } else if (asProperty !== undefined) {\n identifier = addProperty(context, properties, asProperty, name, child, identifier);\n } else if (reportInvalidModifierOrder(context, child)) {\n context.skipBlock(child.indent);\n } else {\n responses.push({ line: child, candidate: null, response: parseCommandResponse(context, child) });\n }\n } else if (keyword === 'stream' && routeHeader.test(child.content) && asProperty !== undefined && context.streamCandidates?.hasSource(asProperty.type.name.split('.')[0]) === true) {\n const [source, streamName] = asProperty.type.name.split('.');\n const ambiguous = context.streamCandidates.hasPropertyType(asProperty.type.name) && context.streamCandidates.hasUniqueStream(source, streamName);\n const route = parseCommandStream(context, child, asProperty, ambiguous);\n if (stream !== null || streamCandidates.length > 0) context.error(DiagnosticCodes.InvalidCommandStream, 'A command declares at most one stream route.', locationOf(child));\n if (ambiguous || stream !== null) streamCandidates.push(route);\n else stream = route;\n } else if (keyword === 'runs' && isReactionIdentityLine(child)) {\n misplacedReactionIdentity(context, child);\n } else if (keyword === 'description') {\n description = parseDescription(context, child, description, `Command '${name}'`);\n } else if (keyword === 'documentation') {\n documentation = parseDocumentation(context, child, documentation, `Command '${name}'`);\n } else if (keyword === 'authorize') {\n authorize = combineAuthorize(authorize, parseAuthorize(context, child));\n } else if (keyword === 'validate') {\n const validate = parseValidate(context, child, 'command');\n if (validate !== undefined) {\n validations.push(validate);\n }\n } else if (keyword === 'produces') {\n const production = parseProduces(context, child, true);\n if (production !== undefined) produces.push(production);\n } else if (keyword === 'handler') {\n handler = parseHandler(context, child);\n handlers.push({ handler, location: locationOf(child) });\n } else if (opaqueDirectives.has(keyword)) {\n const reference = keyword === 'reads' ? parseReads(context, child) : undefined;\n if (reference !== undefined) referenceReads.push(reference);\n if (keyword === 'concurrency' && concurrency === undefined) concurrency = captureConcurrency(context, child);\n const read = /^reads\\s+([A-Z]\\w*)(?:\\s+as\\s+([a-z_]\\w*))?(?:\\s+by\\s+([a-z_]\\w*))?$/.exec(child.content);\n if (read !== null) reads.push({ readModel: read[1], alias: read[2] ?? null });\n if (optionalReads.test(child.content)) {\n context.error(DiagnosticCodes.OptionalReadsNotSupported, 'Optional reads are not yet supported (see #308).', locationOf(child));\n }\n context.skipOpaqueBlock(child.indent);\n } else if (asProperty !== undefined) {\n identifier = addProperty(context, properties, asProperty, name, child, identifier);\n } else {\n reportInvalidModifierOrder(context, child);\n context.error(DiagnosticCodes.UnknownCommandDirective, `Unexpected '${child.content}' in command body`, locationOf(child));\n context.skipBlock(child.indent);\n }\n }\n const candidates = new Set(responses.flatMap(entry => entry.candidate === null ? [] : [entry.candidate]));\n const names = new Set(properties.filter(property => !candidates.has(property)).map(property => property.name));\n if (responses.some(entry => entry.candidate !== null && !names.has(entry.candidate.type.name) && entry.candidate.type.name !== 'returns')) names.add('returns');\n for (const name of names) discoveredNames?.add(name);\n let response: CommandResponseSyntax | null = null;\n const removed = new Set<PropertySyntax>();\n for (const entry of responses) {\n let parsed = entry.response;\n if (entry.candidate !== null) {\n if (!names.has(entry.candidate.type.name)) continue;\n removed.add(entry.candidate);\n parsed = { kind: 'ScalarCommandResponseSyntax', source: { kind: 'PropertyResponseSourceSyntax', property: entry.candidate.type.name, location: entry.candidate.type.location }, location: locationOf(entry.line) };\n }\n if (parsed === null) continue;\n if (response !== null) {\n context.error(DiagnosticCodes.InvalidCommandResponse, 'A command declares at most one unconditional response.', locationOf(entry.line));\n } else {\n response = parsed;\n }\n }\n validateHandlerOccurrences(handlers, context);\n if (handler !== null && !isPendingHandler(handler) && produces.length > 0) {\n context.error(DiagnosticCodes.CommandWithProducesAndHandler, `Command '${name}' cannot declare both 'produces' and 'handler'`, locationOf(line));\n }\n const syntax: CommandSyntax = { kind: 'CommandSyntax', name, description, documentation, authorize, properties: properties.filter(property => !removed.has(property)), validations, produces, handler, response, stream, streamCandidates, location: locationOf(line) };\n commandReadSources.set(syntax, reads);\n dependencySources.set(syntax, { reads: referenceReads, concurrency });\n return syntax;\n}\n\nfunction addProperty(context: ParserContext, properties: PropertySyntax[], property: PropertySyntax, commandName: string, line: SourceLine, identifier: PropertySyntax | undefined): PropertySyntax | undefined {\n reportLegacyOptionalSuffix(context, property.type, line);\n if (property.isIdentifier && identifier !== undefined) {\n context.error(DiagnosticCodes.DuplicateCommandIdentifier, `Command '${commandName}' already marks '${identifier.name}' as identifier - only one property can be the identifier`, property.location);\n property = { ...property, isIdentifier: false };\n }\n properties.push(property);\n return identifier ?? (property.isIdentifier ? property : undefined);\n}\n\n// Reads a 'validate' block: declarative rules, or code - which is recognized but not modeled.\nexport function parseValidate(context: ParserContext, line: SourceLine, owner: 'command' | 'concept'): ValidateSyntax | undefined {\n if (line.content === 'validate') {\n const fence = context.peekChild(line.indent);\n if (fence !== undefined && fence.content.startsWith('```')) {\n context.reader.takeSignificant();\n const code = parseCode(context.valueContext, fence);\n if (code === null) context.skipFencedBody();\n return { kind: 'CodeValidateSyntax', code, location: locationOf(line) };\n }\n const rules: ValidationRuleSyntax[] = [];\n const requirements: RequirementSyntax[] = [];\n let wrapperIndent: number | undefined;\n for (let child = context.peekChild(line.indent); child !== undefined; child = context.peekChild(line.indent)) {\n context.reader.takeSignificant();\n if (owner === 'concept') {\n if (context.sourceOptions.numericMode === 'legacy' && child.content.startsWith('```')) { context.skipFencedBody(); continue; }\n if (wrapperIndent !== undefined && child.indent <= wrapperIndent) wrapperIndent = undefined;\n if (wrapperIndent !== undefined || firstWord(child.content) === 'implementation') {\n context.error(DiagnosticCodes.InvalidValidationRule, `Invalid validation rule '${child.content}'`, locationOf(child));\n wrapperIndent ??= child.indent;\n continue;\n }\n }\n if (firstWord(child.content) === 'require') {\n const condition = parseCondition(owner === 'concept' ? context.valueContext : context, child.content.substring('require'.length).trim(), locationOf(child));\n let message: string | null = null;\n let severity: ValidationSeverity = 'Error';\n let hasSeverity = false;\n for (let directive = context.peekChild(child.indent); directive !== undefined; directive = context.peekChild(child.indent)) {\n context.reader.takeSignificant();\n const matched = messagePattern.exec(directive.content);\n if (matched !== null && matched.index === 0) message = matched[1] !== undefined ? unescapeString(matched[1]) : matched[2];\n else if (firstWord(directive.content) === 'severity') {\n if (!hasSeverity) severity = severities[directive.content.substring('severity'.length).trim()] ?? 'Error';\n hasSeverity = true;\n } else context.skipOpaqueBlock(directive.indent);\n }\n if (condition !== null) requirements.push({ kind: 'RequirementSyntax', condition, message, severity, location: locationOf(child) });\n continue;\n }\n const rule = parseValidationRule(context, owner === 'concept' ? { ...child, content: `value ${child.content}` } : child, owner);\n if (rule !== undefined) {\n rules.push(rule);\n }\n }\n return { kind: 'DeclarativeValidateSyntax', rules, requirements, location: locationOf(line) };\n }\n if (owner === 'concept' && firstWord(line.content.substring('validate'.length).trimStart()) === 'checksum') {\n const ruleLine = { ...line, content: `value ${line.content.substring('validate'.length).trimStart()}` };\n const rule = parseValidationRule(context, ruleLine, owner);\n return rule === undefined ? undefined : { kind: 'DeclarativeValidateSyntax', rules: [rule], requirements: [], location: locationOf(line) };\n }\n if (line.content === 'validate csharp') {\n const code = parseCode(context.valueContext, { ...line, content: 'csharp' });\n if (code === null) context.skipOpaqueBlock(line.indent);\n return { kind: 'CodeValidateSyntax', code, location: locationOf(line) };\n }\n context.error(DiagnosticCodes.InvalidValidateDeclaration, `Invalid validate declaration '${line.content}' - expected 'validate' or 'validate csharp'`, locationOf(line));\n context.skipBlock(line.indent);\n return undefined;\n}\n\nfunction parseValidationRule(context: ParserContext, line: SourceLine, owner: 'command' | 'concept'): ValidationRuleSyntax | undefined {\n // Checksum is a new declaration, not enrichment of a formerly opaque Legacy rule.\n const checksum = firstWord(rulePattern.exec(line.content)?.[2] ?? '') === 'checksum';\n const valueContext = owner === 'concept' && !checksum ? context.valueContext : context;\n const { content: withSeverity, message } = splitMessage(line.content);\n const severity = splitSeverity(valueContext, line, withSeverity);\n if (severity === undefined) {\n return undefined;\n }\n const match = rulePattern.exec(severity.content);\n if (match === null) {\n valueContext.error(DiagnosticCodes.InvalidValidationRule, `Invalid validation rule '${line.content}'`, locationOf(line));\n return undefined;\n }\n const parsed = parseRule(valueContext, match[2], line);\n if (parsed === undefined) {\n return undefined;\n }\n if (parsed.kind === 'Matches' && parsed.value !== null) validateMatchOperand(context, parsed.value, locationOf(line), line.raw);\n const source = parsed.kind === 'Rule' ? parseRuleImplementation(context, line, owner === 'command') : { file: null, code: null, implementation: null };\n return {\n kind: 'ValidationRuleSyntax',\n property: match[1],\n rule: parsed.kind,\n value: parsed.value,\n message,\n severity: severity.severity,\n ...source,\n location: locationOf(line),\n };\n}\n\nfunction parseRuleImplementation(context: ParserContext, rule: SourceLine, commandOwner: boolean): { file: FileReferenceSyntax | null; code: CodeBlockSyntax | null; implementation: ImplementationSyntax | null } {\n const body = context.peekChild(rule.indent);\n if (body === undefined) return { file: null, code: null, implementation: null };\n context.reader.takeSignificant();\n const wrapped = commandOwner && firstWord(body.content) === 'implementation';\n const source = wrapped ? parseImplementationWrapper(context, body) : {\n file: isFile(body) ? parseFile(context, body) : null,\n code: !isFile(body) && isCode(context, body) ? parseCode(context, body) : null,\n implementation: null,\n };\n if (!wrapped && source.file === null && source.code === null) {\n context.error(DiagnosticCodes.UnknownRuleImplementationDirective, `Unexpected '${body.content}' in rule implementation - expected 'file <path>' or an inline code block`, locationOf(body));\n context.skipBlock(body.indent);\n }\n for (let extra = context.peekChild(rule.indent); extra !== undefined && (wrapped || (commandOwner && firstWord(extra.content) === 'implementation')); extra = context.peekChild(rule.indent)) {\n context.reader.takeSignificant();\n context.error(wrapped && firstWord(extra.content) === 'implementation' ? DiagnosticCodes.InvalidImplementationBlock : DiagnosticCodes.ConflictingImplementationSources,\n 'A named rule has one implementation wrapper and cannot mix wrapped and direct sources.', locationOf(extra));\n if (isCode(context, extra)) parseCode(context, extra);\n else context.skipBlock(extra.indent);\n }\n return source;\n}\n\nfunction splitMessage(content: string): { content: string; message: string | null } {\n const match = messagePattern.exec(content);\n if (match === null) {\n return { content, message: null };\n }\n const message = match[1] !== undefined ? unescapeString(match[1]) : match[2];\n return { content: content.substring(0, match.index).trimEnd(), message };\n}\n\nfunction splitSeverity(context: ParserContext, line: SourceLine, text: string): { content: string; severity: ValidationSeverity } | undefined {\n const match = severityPattern.exec(text);\n if (match === null) {\n return { content: text, severity: 'Error' };\n }\n const severity = severities[match[1]];\n if (severity === undefined) {\n context.error(DiagnosticCodes.InvalidValidationSeverity, `Unknown validation severity '${match[1]}' - expected information, warning or error`, locationOf(line));\n return undefined;\n }\n return { content: text.substring(0, match.index).trimEnd(), severity };\n}\n\nfunction parseRule(context: ParserContext, rule: string, line: SourceLine): { kind: ValidationRuleKind; value: ExpressionSyntax | null } | undefined {\n if (rule === 'not empty') {\n return { kind: 'NotEmpty', value: null };\n }\n if (firstWord(rule) === 'checksum') {\n const algorithm = rule.substring('checksum'.length).trim();\n if (algorithm !== 'luhn' && algorithm !== 'mod11' && algorithm !== 'mod97') {\n context.error(DiagnosticCodes.InvalidGenerationArgument, 'Checksum validation requires luhn, mod11 or mod97.', locationOf(line));\n return undefined;\n }\n return { kind: 'Checksum', value: { kind: 'LiteralExpressionSyntax', value: algorithm, location: locationOf(line) } };\n }\n const operand = operandPattern.exec(rule);\n if (operand === null) {\n context.error(DiagnosticCodes.InvalidValidationRule, `Invalid validation rule '${line.content}'`, locationOf(line));\n return undefined;\n }\n if (operand[1] === 'rule') {\n const name = operand[2].trim();\n if (!ruleNamePattern.test(name)) {\n context.error(DiagnosticCodes.InvalidRuleName, `Invalid rule name '${name}' in '${line.content}' - expected 'rule <Name>' with an identifier`, locationOf(line));\n return undefined;\n }\n return { kind: 'Rule', value: { kind: 'PathExpressionSyntax', path: name, location: locationOf(line) } };\n }\n return { kind: operandKinds[operand[1]], value: parseMappingSource(operand[2], locationOf(line), context) };\n}\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";function recognizeLegacyTextRule(e){if(e.length>=12&&e.startsWith(`^(?![\\s\\S]*`)&&e.endsWith(`)`)){let t=e.slice(11,-1),n=decode(t,!1)??decode(t,!0);return n===void 0?void 0:{kind:`NotContains`,value:n}}if(e.startsWith(`^(?!`)){if(e.length>=15&&e.endsWith(`(?![\\s\\S]))`))return replacement(`NotEqual`,e.slice(4,-11),!1);if(e.length>=6&&e.endsWith(`$)`))return replacement(`NotEqual`,e.slice(4,-2),!0)}if(!(e.length<10||!e.endsWith(`(?![\\s\\S])`)))return e.length>=11&&e.startsWith(`^`)?replacement(`Equal`,e.slice(1,-10),!1):replacement(`EndsWith`,e.slice(0,-10),!1)}function escapeLegacyTextRule(e,t){let n=``;for(let r=0;r<e.length;r++){let i=e[r],a=t?{" ":`t`,"\n":`n`,"\f":`f`,"\r":`r`}[i]:void 0;n+=a===void 0?((t?`\\*+?|{[()^$.# `:`\\^$.|?*+()[]{}/`).includes(i)?`\\`:``)+i:`\\`+a}return n}function replacement(e,t,n){let r=decode(t,n);return r===void 0?void 0:{kind:e,value:r}}function decode(e,t){let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(i===`\\`){if(++r===e.length)return;i=e[r],t&&(i={t:` `,n:`
2
+ `,f:`\f`,r:`\r`}[i]??i)}n+=i}return escapeLegacyTextRule(n,t)===e?n:void 0}export{escapeLegacyTextRule,recognizeLegacyTextRule};
3
+ //# sourceMappingURL=LegacyTextRulePatterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LegacyTextRulePatterns.js","names":["pattern","literal","value","escaped","index","character","control","v1"],"sources":["../../../../../../Compiler/Parsing/LegacyTextRulePatterns.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 { PortableMatchReplacement } from './PortableMatchReplacement';\n\nconst strictEnd = '(?![\\\\s\\\\S])';\nconst v2Escaped = '\\\\^$.|?*+()[]{}/';\nconst v1Escaped = '\\\\*+?|{[()^$.# ';\n\n/** Recognizes only losslessly re-escaped Studio shapes, never arbitrary lookaround. */\nexport function recognizeLegacyTextRule(pattern: string): PortableMatchReplacement | undefined {\n if (pattern.length >= 11 + 1 && pattern.startsWith('^(?![\\\\s\\\\S]*') && pattern.endsWith(')')) {\n const literal = pattern.slice(11, -1);\n const value = decode(literal, false) ?? decode(literal, true);\n return value === undefined ? undefined : { kind: 'NotContains', value };\n }\n if (pattern.startsWith('^(?!')) {\n if (pattern.length >= 4 + strictEnd.length + 1 && pattern.endsWith(strictEnd + ')')) return replacement('NotEqual', pattern.slice(4, -(strictEnd.length + 1)), false);\n if (pattern.length >= 4 + 2 && pattern.endsWith('$)')) return replacement('NotEqual', pattern.slice(4, -2), true);\n }\n if (pattern.length < strictEnd.length || !pattern.endsWith(strictEnd)) return undefined;\n if (pattern.length >= 1 + strictEnd.length && pattern.startsWith('^')) return replacement('Equal', pattern.slice(1, -strictEnd.length), false);\n return replacement('EndsWith', pattern.slice(0, -strictEnd.length), false);\n}\n\nexport function escapeLegacyTextRule(value: string, v1: boolean): string {\n let escaped = '';\n for (let index = 0; index < value.length; index++) {\n const character = value[index];\n const control = v1 ? ({ '\\t': 't', '\\n': 'n', '\\f': 'f', '\\r': 'r' } as Record<string, string>)[character] : undefined;\n if (control !== undefined) escaped += '\\\\' + control;\n else escaped += ((v1 ? v1Escaped : v2Escaped).includes(character) ? '\\\\' : '') + character;\n }\n return escaped;\n}\n\nfunction replacement(kind: PortableMatchReplacement['kind'], literal: string, v1: boolean): PortableMatchReplacement | undefined {\n const value = decode(literal, v1);\n return value === undefined ? undefined : { kind, value };\n}\nfunction decode(literal: string, v1: boolean): string | undefined {\n let value = '';\n for (let index = 0; index < literal.length; index++) {\n let character = literal[index];\n if (character === '\\\\') {\n if (++index === literal.length) return undefined;\n character = literal[index];\n if (v1) character = ({ t: '\\t', n: '\\n', f: '\\f', r: '\\r' } as Record<string, string>)[character] ?? character;\n }\n value += character;\n }\n return escapeLegacyTextRule(value, v1) === literal ? value : undefined;\n}\n"],"mappings":"qDAUA,SAAgB,wBAAwB,EAAuD,CAC3F,GAAIA,EAAQ,QAAU,IAAUA,EAAQ,WAAW,eAAe,GAAKA,EAAQ,SAAS,GAAG,EAAG,CAC1F,IAAMC,EAAUD,EAAQ,MAAM,GAAI,EAAE,EAC9BE,EAAQ,OAAOD,EAAS,EAAK,GAAK,OAAOA,EAAS,EAAI,EAC5D,OAAOC,IAAU,IAAA,GAAY,IAAA,GAAY,CAAE,KAAM,cAAe,OAAM,CAC1E,CACA,GAAIF,EAAQ,WAAW,MAAM,EAAG,CAC5B,GAAIA,EAAQ,QAAU,IAA4BA,EAAQ,SAAS,eAAe,EAAG,OAAO,YAAY,WAAYA,EAAQ,MAAM,EAAG,GAAuB,EAAG,EAAK,EACpK,GAAIA,EAAQ,QAAU,GAASA,EAAQ,SAAS,IAAI,EAAG,OAAO,YAAY,WAAYA,EAAQ,MAAM,EAAG,EAAE,EAAG,EAAI,CACpH,CACA,GAAI,IAAQ,OAAS,IAAoB,CAACA,EAAQ,SAAS,cAAS,GAEpE,OADIA,EAAQ,QAAU,IAAwBA,EAAQ,WAAW,GAAG,EAAU,YAAY,QAASA,EAAQ,MAAM,EAAG,GAAiB,EAAG,EAAK,EACtI,YAAY,WAAYA,EAAQ,MAAM,EAAG,GAAiB,EAAG,EAAK,CAC7E,CAEA,SAAgB,qBAAqB,EAAe,EAAqB,CACrE,IAAIG,EAAU,GACd,IAAK,IAAIC,EAAQ,EAAGA,EAAQF,EAAM,OAAQ,IAAS,CAC/C,IAAMG,EAAYH,EAAME,GAClBE,EAAUC,EAAM,CAAE,IAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,GAAI,EAA6BF,GAAa,IAAA,GAC7G,AAA2BF,GAAvBG,IAAY,IAAA,KACEC,EAAK,kBAAY,mBAAA,CAAW,SAASF,CAAS,EAAI,KAAO,IAAMA,EAD3C,KAAOC,CAEjD,CACA,OAAOH,CACX,CAEA,SAAS,YAAY,EAAwC,EAAiB,EAAmD,CAC7H,IAAMD,EAAQ,OAAOD,EAASM,CAAE,EAChC,OAAOL,IAAU,IAAA,GAAY,IAAA,GAAY,CAAE,OAAM,OAAM,CAC3D,CACA,SAAS,OAAO,EAAiB,EAAiC,CAC9D,IAAIA,EAAQ,GACZ,IAAK,IAAIE,EAAQ,EAAGA,EAAQH,EAAQ,OAAQ,IAAS,CACjD,IAAII,EAAYJ,EAAQG,GACxB,GAAIC,IAAc,KAAM,CACpB,GAAI,EAAED,IAAUH,EAAQ,OAAQ,OAChC,EAAYA,EAAQG,GAChBG,IAAI,EAAa,CAAE,EAAG,IAAM,EAAG;EAAM,EAAG,KAAM,EAAG,IAAK,EAA6BF,IAAcA,EACzG,CACA,GAASA,CACb,CACA,OAAO,qBAAqBH,EAAOK,CAAE,IAAMN,EAAUC,EAAQ,IAAA,EACjE"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";import{DiagnosticCodes as e}from"../Diagnostics/DiagnosticCodes.js";import{emailMatchPattern as t,validateMatchPattern as n}from"./PortableMatchPattern.js";import{checkPortableMatchPattern as r}from"./checkPortableMatchPattern.js";function validateMatchOperand(i,a,o,s){if(a.kind===`PathExpressionSyntax`&&a.path!==`email`){i.error(e.UnknownMatchPattern,`Named match pattern '${a.path}' is not defined; use 'email' or a quoted portable regular expression.`,o);return}let c=a.kind===`LiteralExpressionSyntax`&&typeof a.value==`string`?a.value:a.kind===`PathExpressionSyntax`?t:void 0;if(c===void 0)return;let l=r(c);if(l.replacement!==void 0){i.warning(e.DeprecatedStudioTextRulePattern,l.description,o);return}let u=n(c);if(u===void 0)return;let d=`${u.construct} at offset ${u.offset}. ${u.suggestion??``}`.trimEnd();i.error(u.invalid?e.InvalidMatchPattern:e.PatternOutsidePortableMatchDialect,`Match pattern: ${d}`,patternLocation(s,o,u.offset))}function patternLocation(e,t,n){let r=e.indexOf(`"`,t.column-1);if(r<0)return t;let i=r+1;for(let t=0;t<n&&i<e.length;t++,i++)e[i]===`\\`&&`\\"nrt`.includes(e[i+1]??`\0`)&&i++;return{...t,column:i+1}}export{validateMatchOperand};
2
+ //# sourceMappingURL=MatchOperandValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MatchOperandValidation.js","names":["value","context","DiagnosticCodes","location","pattern","emailMatchPattern","check","checkPortableMatchPattern","issue","validateMatchPattern","description","raw","quote","offset","decoded","patternOffset"],"sources":["../../../../../../Compiler/Parsing/MatchOperandValidation.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DiagnosticCodes } from '../Diagnostics/DiagnosticCodes';\nimport { SourceLocation } from '../Diagnostics/SourceLocation';\nimport { ExpressionSyntax } from '../Syntax/Expressions';\nimport { ParserContext } from './ParserContext';\nimport { checkPortableMatchPattern } from './checkPortableMatchPattern';\nimport { emailMatchPattern, validateMatchPattern } from './PortableMatchPattern';\n\nexport function validateMatchOperand(context: ParserContext, value: ExpressionSyntax, location: SourceLocation, raw: string): void {\n if (value.kind === 'PathExpressionSyntax' && value.path !== 'email') {\n context.error(DiagnosticCodes.UnknownMatchPattern, `Named match pattern '${value.path}' is not defined; use 'email' or a quoted portable regular expression.`, location);\n return;\n }\n const pattern = value.kind === 'LiteralExpressionSyntax' && typeof value.value === 'string' ? value.value : value.kind === 'PathExpressionSyntax' ? emailMatchPattern : undefined;\n if (pattern === undefined) return;\n const check = checkPortableMatchPattern(pattern);\n if (check.replacement !== undefined) {\n context.warning(DiagnosticCodes.DeprecatedStudioTextRulePattern, check.description, location);\n return;\n }\n const issue = validateMatchPattern(pattern);\n if (issue === undefined) return;\n const description = `${issue.construct} at offset ${issue.offset}. ${issue.suggestion ?? ''}`.trimEnd();\n context.error(issue.invalid ? DiagnosticCodes.InvalidMatchPattern : DiagnosticCodes.PatternOutsidePortableMatchDialect, `Match pattern: ${description}`, patternLocation(raw, location, issue.offset));\n}\n\nfunction patternLocation(raw: string, location: SourceLocation, patternOffset: number): SourceLocation {\n const quote = raw.indexOf('\"', location.column - 1);\n if (quote < 0) return location;\n let offset = quote + 1;\n for (let decoded = 0; decoded < patternOffset && offset < raw.length; decoded++, offset++) {\n if (raw[offset] === '\\\\' && '\\\\\"nrt'.includes(raw[offset + 1] ?? '\\0')) offset++;\n }\n return { ...location, column: offset + 1 };\n}\n"],"mappings":"4RAUA,SAAgB,qBAAqB,EAAwB,EAAyB,EAA0B,EAAmB,CAC/H,GAAIA,EAAM,OAAS,wBAA0BA,EAAM,OAAS,QAAS,CACjEC,EAAQ,MAAMC,EAAgB,oBAAqB,wBAAwBF,EAAM,KAAK,wEAAyEG,CAAQ,EACvK,MACJ,CACA,IAAMC,EAAUJ,EAAM,OAAS,2BAA6B,OAAOA,EAAM,OAAU,SAAWA,EAAM,MAAQA,EAAM,OAAS,uBAAyBK,EAAoB,IAAA,GACxK,GAAID,IAAY,IAAA,GAAW,OAC3B,IAAME,EAAQC,EAA0BH,CAAO,EAC/C,GAAIE,EAAM,cAAgB,IAAA,GAAW,CACjCL,EAAQ,QAAQC,EAAgB,gCAAiCI,EAAM,YAAaH,CAAQ,EAC5F,MACJ,CACA,IAAMK,EAAQC,EAAqBL,CAAO,EAC1C,GAAII,IAAU,IAAA,GAAW,OACzB,IAAME,EAAc,GAAGF,EAAM,UAAU,aAAaA,EAAM,OAAO,IAAIA,EAAM,YAAc,KAAK,QAAQ,EACtGP,EAAQ,MAAMO,EAAM,QAAUN,EAAgB,oBAAsBA,EAAgB,mCAAoC,kBAAkBQ,IAAe,gBAAgBC,EAAKR,EAAUK,EAAM,MAAM,CAAC,CACzM,CAEA,SAAS,gBAAgB,EAAa,EAA0B,EAAuC,CACnG,IAAMI,EAAQD,EAAI,QAAQ,IAAKR,EAAS,OAAS,CAAC,EAClD,GAAIS,EAAQ,EAAG,OAAOT,EACtB,IAAIU,EAASD,EAAQ,EACrB,IAAK,IAAIE,EAAU,EAAGA,EAAUC,GAAiBF,EAASF,EAAI,OAAQ,IAAW,IACzEA,EAAIE,KAAY,MAAQ,SAAS,SAASF,EAAIE,EAAS,IAAM,IAAI,GAAG,IAE5E,MAAO,CAAE,GAAGV,EAAU,OAAQU,EAAS,CAAE,CAC7C"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";function isJavaScriptGroupName(e){let t=e.replace(/\\u(?:\{([0-9a-fA-F]+)\}|([0-9a-fA-F]{4}))/g,(e,t,n)=>{let r=parseInt(t??n,16);return r<=1114111?String.fromCodePoint(r):`\\`});return/^[$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*$/u.test(t)}export{isJavaScriptGroupName};
2
+ //# sourceMappingURL=PortableMatchGroupName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PortableMatchGroupName.js","names":["decoded","name","value","braced","fixed"],"sources":["../../../../../../Compiler/Parsing/PortableMatchGroupName.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n/** RegExpIdentifierName uses Unicode identifiers, even in flagless JavaScript. */\nexport function isJavaScriptGroupName(name: string): boolean {\n const decoded = name.replace(/\\\\u(?:\\{([0-9a-fA-F]+)\\}|([0-9a-fA-F]{4}))/g, (_, braced: string | undefined, fixed: string | undefined) => {\n const value = parseInt(braced ?? fixed!, 16);\n return value <= 0x10ffff ? String.fromCodePoint(value) : '\\\\';\n });\n return /^[$_\\p{ID_Start}][$\\u200c\\u200d\\p{ID_Continue}]*$/u.test(decoded);\n}\n"],"mappings":"qDAIA,SAAgB,sBAAsB,EAAuB,CACzD,IAAMA,EAAUC,EAAK,QAAQ,+CAAgD,EAAG,EAA4B,IAA8B,CACtI,IAAMC,EAAQ,SAASC,GAAUC,EAAQ,EAAE,EAC3C,OAAOF,GAAS,QAAW,OAAO,cAAcA,CAAK,EAAI,IAC7D,CAAC,EACD,MAAO,qDAAqD,KAAKF,CAAO,CAC5E"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";import{isJavaScriptGroupName as e}from"./PortableMatchGroupName.js";import{portableMatchSuggestions as t}from"./PortableMatchSuggestions.js";const n=`^[^\\s@]+@[^\\s@.]+(?:\\.[^\\s@.]+)+$`,r=3e3;function validateMatchPattern(e){return new PortableMatchParser(e).parse()}var PortableMatchParser=class{pattern;offset=0;issue;names=/* @__PURE__ */ new Map;branches=[];scope=0;constructor(e){this.pattern=e}parse(){this.pattern.length>1e3&&this.fail(`pattern length`,1e3);let e=this.expression();return this.issue===void 0&&this.offset!==this.pattern.length&&this.fail(`unmatched closing group`,this.offset,!0),e.size>r&&this.fail(`expanded pattern size`,e.budgetOffset??this.offset),this.issue}expression(){let e=0,t,n={scope:this.scope++,alternative:0};for(this.branches.push(n);this.issue===void 0&&this.offset<this.pattern.length&&!this.at(`)`);){if(this.at(`|`)){e=Math.min(3001,e+1),e>r&&(t??=this.offset),this.offset++,n.alternative++;continue}let i=this.offset,a=this.quantify(this.atom());e=Math.min(3001,e+a.size),e>r&&(t??=a.budgetOffset??i)}return this.branches.pop(),{size:e,quantifiable:!0,budgetOffset:t}}atom(){let e=this.offset,t=this.pattern[this.offset++];return t===`(`?this.group(e):(t===`[`?this.characterClass(e):t===`\\`?this.escape(e,!1):t===`]`?this.fail(`unescaped closing bracket`,e):t===`{`&&/^\{[0-9]+(?:,[0-9]*)?\}/.test(this.pattern.slice(e))?this.fail(`quantifier without an atom`,e,!0):t===`{`||t===`}`?this.fail(`unescaped brace`,e):`*+?`.includes(t)&&this.fail(`quantifier without an atom`,e,!0),{size:1,quantifiable:t!==`^`&&t!==`$`})}group(t){if(this.take(`?`)&&!this.take(`:`)){if(this.at(`=`)||this.at(`!`)||this.at(`<`)&&`=!`.includes(this.pattern[this.offset+1]??` `))this.fail(`lookaround`,t);else if(this.take(`<`)){let t=this.offset;for(;this.offset<this.pattern.length&&!this.at(`>`);)this.offset++;let n=this.pattern.slice(t,this.offset);this.take(`>`)?e(n)?/^[A-Za-z_][A-Za-z0-9_]*$/.test(n)?this.registerName(n,t):this.fail(`group name`,t):this.fail(`group name`,t,!0):this.fail(`unterminated group name`,t,!0)}else this.fail(`ims-`.includes(this.pattern[this.offset]??` `)?`inline options`:`group extension`,t)}let n=this.expression();return this.take(`)`)||this.fail(`unterminated group`,t,!0),n}characterClass(e){let t=this.take(`^`);for(this.at(`]`)&&this.fail(t?`negated empty character class`:`empty character class`,e);this.issue===void 0&&this.offset<this.pattern.length&&!this.at(`]`);){this.at(`-`)&&this.offset+1<this.pattern.length&&this.pattern[this.offset+1]===`[`&&this.fail(`class subtraction`,this.offset);let e=this.classItem();if(this.at(`-`)&&this.offset+1<this.pattern.length&&this.pattern[this.offset+1]!==`]`){let t=this.offset++;this.at(`[`)&&this.fail(`class subtraction`,t);let n=this.classItem();e===void 0||n===void 0?this.fail(`class escape range endpoint`,t):e>n&&this.fail(`reversed character range`,t,!0)}}this.take(`]`)||this.fail(`unterminated character class`,e,!0)}classItem(){if(this.offset>=this.pattern.length){this.fail(`unterminated character class`,this.offset,!0);return}let e=this.offset,t=this.pattern[this.offset++];return t===`\\`?this.escape(e,!0):t.charCodeAt(0)}escape(e,t){if(this.offset===this.pattern.length){this.fail(`trailing backslash`,e,!0);return}let n=this.pattern[this.offset++];if(!`dDwWsS`.includes(n)){if(n===`0`&&/[0-9]/.test(this.pattern[this.offset]??` `))this.fail(`octal escape`,e);else if(`tnrfv0`.includes(n))return{t:9,n:10,r:13,f:12,v:11,0:0}[n];else if(n===`x`||n===`u`&&!this.at(`{`)){let t=n===`x`?2:4,r=this.pattern.slice(this.offset,this.offset+t);if(r.length!==t||!/^[0-9a-fA-F]+$/.test(r))this.fail(`invalid hexadecimal escape`,e,!0);else return this.offset+=t,parseInt(r,16)}else if(`^$\\.*+?()[]{}|/`.includes(n)||t&&n===`-`)return n.charCodeAt(0);else this.fail(escapeConstruct(n,t),e)}}quantify(e){if(this.issue!==void 0||this.offset>=this.pattern.length)return e;let t=this.offset,n=1n,i=1n;if(this.at(`*`)||this.at(`+`)||this.at(`?`))this.offset++;else if(this.take(`{`)){let r=this.digits();if(r===void 0)return this.fail(`unescaped brace`,t),e;if(n=r,i=0n,this.take(`,`)){if(this.at(`}`))n=r+1n,i=1n;else{let a=this.digits();if(a===void 0)return this.fail(`unescaped brace`,t),e;n=a,i=a-r,n<r&&this.fail(`reversed counted repeat`,t,!0)}}this.take(`}`)||this.fail(`unescaped brace`,t)}else return e;e.quantifiable||this.fail(`quantified assertion`,t,!0),this.take(`?`);let a=BigInt(e.size)*n+i,o=Number(a>BigInt(3001)?BigInt(3001):a);return{size:o,quantifiable:!1,budgetOffset:o>r?e.budgetOffset??t:void 0}}digits(){let e=this.offset,t=0n;for(;this.offset<this.pattern.length&&/[0-9]/.test(this.pattern[this.offset]);)t=t*10n+BigInt(this.pattern[this.offset++]);return this.offset===e?void 0:t}registerName(e,t){let n=this.names.get(e)??[],disjoint=e=>e.some(e=>this.branches.some(t=>t.scope===e.scope&&t.alternative!==e.alternative));n.some(e=>!disjoint(e))&&this.fail(`duplicate group name`,t,!0),n.push(this.branches.map(e=>({...e}))),this.names.set(e,n)}at(e){return this.offset<this.pattern.length&&this.pattern[this.offset]===e}take(e){return this.at(e)?(this.offset++,!0):!1}fail(e,n,r=!1){this.issue??={construct:e,offset:n,invalid:r,suggestion:r?void 0:t[e]}}};function escapeConstruct(e,t){return`123456789k`.includes(e)?`backreference`:e===`b`&&t?`class backspace escape`:`bB`.includes(e)?`word boundary`:`pP`.includes(e)?`Unicode property escape`:e===`u`?`Unicode code point escape`:e===`c`?`control escape`:e===`A`?`start of input escape`:`zZ`.includes(e)?`end of input escape`:`identity escape`}export{n as emailMatchPattern,validateMatchPattern};
2
+ //# sourceMappingURL=PortableMatchPattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PortableMatchPattern.js","names":["emailMatchPattern","sizeLimit","pattern","expression","size","budgetOffset","branch","start","atom","character","nameStart","name","isJavaScriptGroupName","body","negated","left","rangeOffset","right","escape","width","hex","inClass","count","choices","minimum","maximum","expanded","value","occurrences","previous","current","invalid","portableMatchSuggestions","construct"],"sources":["../../../../../../Compiler/Parsing/PortableMatchPattern.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 { isJavaScriptGroupName } from './PortableMatchGroupName';\nimport { portableMatchSuggestions } from './PortableMatchSuggestions';\n\nexport const emailMatchPattern = '^[^\\\\s@]+@[^\\\\s@.]+(?:\\\\.[^\\\\s@.]+)+$';\nexport interface MatchPatternIssue { construct: string; offset: number; invalid: boolean; suggestion?: string }\ninterface Fragment { size: number; quantifiable: boolean; budgetOffset?: number }\ninterface Branch { scope: number; alternative: number }\nconst sizeLimit = 3000;\n\n/** Decision 0084. This validates syntax without invoking a browser's backtracking engine. */\nexport function validateMatchPattern(pattern: string): MatchPatternIssue | undefined {\n return new PortableMatchParser(pattern).parse();\n}\n\nclass PortableMatchParser {\n private offset = 0;\n private issue: MatchPatternIssue | undefined;\n private readonly names = new Map<string, Branch[][]>();\n private readonly branches: Branch[] = [];\n private scope = 0;\n constructor(private readonly pattern: string) { }\n\n parse(): MatchPatternIssue | undefined {\n if (this.pattern.length > 1000) this.fail('pattern length', 1000);\n const expression = this.expression();\n if (this.issue === undefined && this.offset !== this.pattern.length) this.fail('unmatched closing group', this.offset, true);\n if (expression.size > sizeLimit) this.fail('expanded pattern size', expression.budgetOffset ?? this.offset);\n return this.issue;\n }\n\n private expression(): Fragment {\n let size = 0;\n let budgetOffset: number | undefined;\n const branch: Branch = { scope: this.scope++, alternative: 0 };\n this.branches.push(branch);\n while (this.issue === undefined && this.offset < this.pattern.length && !this.at(')')) {\n if (this.at('|')) {\n size = Math.min(sizeLimit + 1, size + 1);\n if (size > sizeLimit) budgetOffset ??= this.offset;\n this.offset++;\n branch.alternative++;\n continue;\n }\n const start = this.offset;\n const atom = this.quantify(this.atom());\n size = Math.min(sizeLimit + 1, size + atom.size);\n if (size > sizeLimit) budgetOffset ??= atom.budgetOffset ?? start;\n }\n this.branches.pop();\n return { size, quantifiable: true, budgetOffset };\n }\n\n private atom(): Fragment {\n const start = this.offset;\n const character = this.pattern[this.offset++];\n if (character === '(') return this.group(start);\n if (character === '[') this.characterClass(start);\n else if (character === '\\\\') this.escape(start, false);\n else if (character === ']') this.fail('unescaped closing bracket', start);\n else if (character === '{' && /^\\{[0-9]+(?:,[0-9]*)?\\}/.test(this.pattern.slice(start))) this.fail('quantifier without an atom', start, true);\n else if (character === '{' || character === '}') this.fail('unescaped brace', start);\n else if ('*+?'.includes(character)) this.fail('quantifier without an atom', start, true);\n return { size: 1, quantifiable: character !== '^' && character !== '$' };\n }\n\n private group(start: number): Fragment {\n if (this.take('?')) {\n if (this.take(':')) { /* Non-capturing group. */ }\n else if (this.at('=') || this.at('!') || (this.at('<') && '=!'.includes(this.pattern[this.offset + 1] ?? ' '))) this.fail('lookaround', start);\n else if (this.take('<')) {\n const nameStart = this.offset;\n while (this.offset < this.pattern.length && !this.at('>')) this.offset++;\n const name = this.pattern.slice(nameStart, this.offset);\n if (!this.take('>')) this.fail('unterminated group name', nameStart, true);\n else if (!isJavaScriptGroupName(name)) this.fail('group name', nameStart, true);\n else if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(name)) this.fail('group name', nameStart);\n else this.registerName(name, nameStart);\n } else this.fail('ims-'.includes(this.pattern[this.offset] ?? ' ') ? 'inline options' : 'group extension', start);\n }\n const body = this.expression();\n if (!this.take(')')) this.fail('unterminated group', start, true);\n return body;\n }\n\n private characterClass(start: number): void {\n const negated = this.take('^');\n if (this.at(']')) this.fail(negated ? 'negated empty character class' : 'empty character class', start);\n while (this.issue === undefined && this.offset < this.pattern.length && !this.at(']')) {\n if (this.at('-') && this.offset + 1 < this.pattern.length && this.pattern[this.offset + 1] === '[') this.fail('class subtraction', this.offset);\n const left = this.classItem();\n if (this.at('-') && this.offset + 1 < this.pattern.length && this.pattern[this.offset + 1] !== ']') {\n const rangeOffset = this.offset++;\n if (this.at('[')) this.fail('class subtraction', rangeOffset);\n const right = this.classItem();\n if (left === undefined || right === undefined) this.fail('class escape range endpoint', rangeOffset);\n else if (left > right) this.fail('reversed character range', rangeOffset, true);\n }\n }\n if (!this.take(']')) this.fail('unterminated character class', start, true);\n }\n\n private classItem(): number | undefined {\n if (this.offset >= this.pattern.length) { this.fail('unterminated character class', this.offset, true); return undefined; }\n const start = this.offset;\n const character = this.pattern[this.offset++];\n return character === '\\\\' ? this.escape(start, true) : character.charCodeAt(0);\n }\n\n private escape(start: number, inClass: boolean): number | undefined {\n if (this.offset === this.pattern.length) { this.fail('trailing backslash', start, true); return undefined; }\n const escape = this.pattern[this.offset++];\n if ('dDwWsS'.includes(escape)) return undefined;\n if (escape === '0' && /[0-9]/.test(this.pattern[this.offset] ?? ' ')) this.fail('octal escape', start);\n else if ('tnrfv0'.includes(escape)) return ({ t: 9, n: 10, r: 13, f: 12, v: 11, '0': 0 } as Record<string, number>)[escape];\n else if (escape === 'x' || (escape === 'u' && !this.at('{'))) {\n const width = escape === 'x' ? 2 : 4;\n const hex = this.pattern.slice(this.offset, this.offset + width);\n if (hex.length !== width || !/^[0-9a-fA-F]+$/.test(hex)) this.fail('invalid hexadecimal escape', start, true);\n else { this.offset += width; return parseInt(hex, 16); }\n } else if ('^$\\\\.*+?()[]{}|/'.includes(escape) || (inClass && escape === '-')) return escape.charCodeAt(0);\n else this.fail(escapeConstruct(escape, inClass), start);\n return undefined;\n }\n\n private quantify(atom: Fragment): Fragment {\n if (this.issue !== undefined || this.offset >= this.pattern.length) return atom;\n const start = this.offset;\n let count = 1n;\n let choices = 1n;\n if (this.at('*') || this.at('+') || this.at('?')) this.offset++;\n else if (this.take('{')) {\n const minimum = this.digits();\n if (minimum === undefined) { this.fail('unescaped brace', start); return atom; }\n count = minimum;\n choices = 0n;\n if (this.take(',')) {\n if (this.at('}')) { count = minimum + 1n; choices = 1n; }\n else {\n const maximum = this.digits();\n if (maximum === undefined) { this.fail('unescaped brace', start); return atom; }\n count = maximum;\n choices = maximum - minimum;\n if (count < minimum) this.fail('reversed counted repeat', start, true);\n }\n }\n if (!this.take('}')) this.fail('unescaped brace', start);\n } else return atom;\n if (!atom.quantifiable) this.fail('quantified assertion', start, true);\n this.take('?');\n const expanded = BigInt(atom.size) * count + choices;\n const size = Number(expanded > BigInt(sizeLimit + 1) ? BigInt(sizeLimit + 1) : expanded);\n return { size, quantifiable: false, budgetOffset: size > sizeLimit ? atom.budgetOffset ?? start : undefined };\n }\n\n private digits(): bigint | undefined {\n const start = this.offset;\n let value = 0n;\n while (this.offset < this.pattern.length && /[0-9]/.test(this.pattern[this.offset])) value = value * 10n + BigInt(this.pattern[this.offset++]);\n return this.offset === start ? undefined : value;\n }\n\n private registerName(name: string, start: number): void {\n const occurrences = this.names.get(name) ?? [];\n const disjoint = (previous: Branch[]) => previous.some(branch => this.branches.some(current => current.scope === branch.scope && current.alternative !== branch.alternative));\n if (occurrences.some(previous => !disjoint(previous))) this.fail('duplicate group name', start, true);\n occurrences.push(this.branches.map(branch => ({ ...branch })));\n this.names.set(name, occurrences);\n }\n\n private at(character: string): boolean { return this.offset < this.pattern.length && this.pattern[this.offset] === character; }\n private take(character: string): boolean { if (!this.at(character)) return false; this.offset++; return true; }\n private fail(construct: string, offset: number, invalid = false): void {\n this.issue ??= { construct, offset, invalid, suggestion: invalid ? undefined : portableMatchSuggestions[construct] };\n }\n}\n\nfunction escapeConstruct(escape: string, inClass: boolean): string {\n if ('123456789k'.includes(escape)) return 'backreference';\n if (escape === 'b' && inClass) return 'class backspace escape';\n if ('bB'.includes(escape)) return 'word boundary';\n if ('pP'.includes(escape)) return 'Unicode property escape';\n if (escape === 'u') return 'Unicode code point escape';\n if (escape === 'c') return 'control escape';\n if (escape === 'A') return 'start of input escape';\n if ('zZ'.includes(escape)) return 'end of input escape';\n return 'identity escape';\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e={lookaround:`There is no general equivalent; a length-only lookahead can be replaced with a {n} counted repeat.`,backreference:`There is no equivalent in the portable match dialect.`,"word boundary":`There is no equivalent word-boundary assertion in the portable match dialect.`,"Unicode property escape":`Use an explicit character class where the required set is known; there is no general equivalent.`,"Unicode code point escape":`Use \\uHHHH escapes for UTF-16 code units.`,"control escape":`Use an explicit hexadecimal escape such as \\x01.`,"class backspace escape":`Use \\x08.`,"start of input escape":`Use ^.`,"end of input escape":`Use $.`,"inline options":`Use explicit case classes such as [aA] for case-insensitive matching; there is no general equivalent for other options.`,"empty character class":`Use [^\\s\\S] to match no UTF-16 code unit.`,"negated empty character class":`Use [\\s\\S].`,"class subtraction":`Use an explicit character class containing the resulting ranges.`,"class escape range endpoint":`Write single-character range endpoints or a union of classes.`,"unescaped closing bracket":`Escape a literal closing bracket as \\].`,"unescaped brace":`Escape a literal brace as \\{ or \\}.`,"identity escape":`Write the literal character without a backslash, or use \\xHH or \\uHHHH.`,"octal escape":`Use \\xHH or \\uHHHH.`,"group name":`Use a name matching [A-Za-z_][A-Za-z0-9_]*.`,"group extension":`Use an ordinary group or a (?:...) non-capturing group.`,"pattern length":`Shorten the pattern to at most 1000 UTF-16 code units.`,"expanded pattern size":`Reduce repeats and alternatives to at most 3000 expanded nodes, including choice points.`};export{e as portableMatchSuggestions};
2
+ //# sourceMappingURL=PortableMatchSuggestions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PortableMatchSuggestions.js","names":["portableMatchSuggestions","\"lookaround\"","\"backreference\""],"sources":["../../../../../../Compiler/Parsing/PortableMatchSuggestions.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n// Held equal to the C# table by the shared portable-match conformance vectors.\nexport const portableMatchSuggestions: Readonly<Record<string, string>> = {\n 'lookaround': 'There is no general equivalent; a length-only lookahead can be replaced with a {n} counted repeat.',\n 'backreference': 'There is no equivalent in the portable match dialect.',\n 'word boundary': 'There is no equivalent word-boundary assertion in the portable match dialect.',\n 'Unicode property escape': 'Use an explicit character class where the required set is known; there is no general equivalent.',\n 'Unicode code point escape': 'Use \\\\uHHHH escapes for UTF-16 code units.',\n 'control escape': 'Use an explicit hexadecimal escape such as \\\\x01.',\n 'class backspace escape': 'Use \\\\x08.',\n 'start of input escape': 'Use ^.',\n 'end of input escape': 'Use $.',\n 'inline options': 'Use explicit case classes such as [aA] for case-insensitive matching; there is no general equivalent for other options.',\n 'empty character class': 'Use [^\\\\s\\\\S] to match no UTF-16 code unit.',\n 'negated empty character class': 'Use [\\\\s\\\\S].',\n 'class subtraction': 'Use an explicit character class containing the resulting ranges.',\n 'class escape range endpoint': 'Write single-character range endpoints or a union of classes.',\n 'unescaped closing bracket': 'Escape a literal closing bracket as \\\\].',\n 'unescaped brace': 'Escape a literal brace as \\\\{ or \\\\}.',\n 'identity escape': 'Write the literal character without a backslash, or use \\\\xHH or \\\\uHHHH.',\n 'octal escape': 'Use \\\\xHH or \\\\uHHHH.',\n 'group name': 'Use a name matching [A-Za-z_][A-Za-z0-9_]*.',\n 'group extension': 'Use an ordinary group or a (?:...) non-capturing group.',\n 'pattern length': 'Shorten the pattern to at most 1000 UTF-16 code units.',\n 'expanded pattern size': 'Reduce repeats and alternatives to at most 3000 expanded nodes, including choice points.',\n};\n"],"mappings":"AAIA,MAAaA,EAA6D,CACtEC,WAAc,qGACdC,cAAiB,wDACjB,gBAAiB,gFACjB,0BAA2B,mGAC3B,4BAA6B,6CAC7B,iBAAkB,oDAClB,yBAA0B,aAC1B,wBAAyB,SACzB,sBAAuB,SACvB,iBAAkB,0HAClB,wBAAyB,8CACzB,gCAAiC,gBACjC,oBAAqB,mEACrB,8BAA+B,gEAC/B,4BAA6B,2CAC7B,kBAAmB,wCACnB,kBAAmB,4EACnB,eAAgB,wBAChB,aAAc,8CACd,kBAAmB,0DACnB,iBAAkB,yDAClB,wBAAyB,0FAC7B"}
@@ -0,0 +1,2 @@
1
+ import"../../_virtual/_virtual/_rolldown/runtime.js";import{DiagnosticCodes as e}from"../Diagnostics/DiagnosticCodes.js";import{recognizeLegacyTextRule as t}from"./LegacyTextRulePatterns.js";import{validateMatchPattern as n}from"./PortableMatchPattern.js";function checkPortableMatchPattern(r){let i=t(r);if(i!==void 0){let t=`Use '${i.kind===`Equal`?`==`:i.kind===`NotEqual`?`!=`:i.kind===`NotContains`?`not contains`:`ends with`}' with the literal text operand instead.`;return{status:`deprecated`,code:e.DeprecatedStudioTextRulePattern,construct:`Studio text rule`,offset:0,suggestion:t,description:`This Studio lookaround pattern is deprecated. ${t}`,replacement:i}}let a=n(r);return a===void 0?{status:`admitted`,code:null,construct:null,offset:0,suggestion:null,description:``}:{status:a.invalid?`invalid`:`refused`,code:a.invalid?e.InvalidMatchPattern:e.PatternOutsidePortableMatchDialect,construct:a.construct,offset:a.offset,suggestion:a.suggestion??null,description:`${a.construct} at offset ${a.offset}. ${a.suggestion??``}`.trimEnd()}}export{checkPortableMatchPattern};
2
+ //# sourceMappingURL=checkPortableMatchPattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkPortableMatchPattern.js","names":["replacement","recognizeLegacyTextRule","pattern","suggestion","DiagnosticCodes","issue","validateMatchPattern"],"sources":["../../../../../../Compiler/Parsing/checkPortableMatchPattern.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DiagnosticCodes } from '../Diagnostics/DiagnosticCodes';\nimport { PortableMatchCheck } from './PortableMatchCheck';\nimport { PortableMatchStatus } from './PortableMatchStatus';\nimport { recognizeLegacyTextRule } from './LegacyTextRulePatterns';\nimport { validateMatchPattern } from './PortableMatchPattern';\n\n/** Checks a decoded pattern without executing it or constructing a platform RegExp. */\nexport function checkPortableMatchPattern(pattern: string): PortableMatchCheck {\n const replacement = recognizeLegacyTextRule(pattern);\n if (replacement !== undefined) {\n const spelling = replacement.kind === 'Equal' ? '==' : replacement.kind === 'NotEqual' ? '!=' : replacement.kind === 'NotContains' ? 'not contains' : 'ends with';\n const suggestion = `Use '${spelling}' with the literal text operand instead.`;\n return { status: PortableMatchStatus.Deprecated, code: DiagnosticCodes.DeprecatedStudioTextRulePattern, construct: 'Studio text rule', offset: 0, suggestion, description: `This Studio lookaround pattern is deprecated. ${suggestion}`, replacement };\n }\n const issue = validateMatchPattern(pattern);\n if (issue === undefined) return { status: PortableMatchStatus.Admitted, code: null, construct: null, offset: 0, suggestion: null, description: '' };\n return {\n status: issue.invalid ? PortableMatchStatus.Invalid : PortableMatchStatus.Refused,\n code: issue.invalid ? DiagnosticCodes.InvalidMatchPattern : DiagnosticCodes.PatternOutsidePortableMatchDialect,\n construct: issue.construct,\n offset: issue.offset,\n suggestion: issue.suggestion ?? null,\n description: `${issue.construct} at offset ${issue.offset}. ${issue.suggestion ?? ''}`.trimEnd(),\n };\n}\n"],"mappings":"gQAUA,SAAgB,0BAA0B,EAAqC,CAC3E,IAAMA,EAAcC,EAAwBC,CAAO,EACnD,GAAIF,IAAgB,IAAA,GAAW,CAE3B,IAAMG,EAAa,QADFH,EAAY,OAAS,QAAU,KAAOA,EAAY,OAAS,WAAa,KAAOA,EAAY,OAAS,cAAgB,eAAiB,YAClH,0CACpC,MAAO,CAAE,OAAA,aAAwC,KAAMI,EAAgB,gCAAiC,UAAW,mBAAoB,OAAQ,EAAG,aAAY,YAAa,iDAAiDD,IAAc,aAAY,CAC1P,CACA,IAAME,EAAQC,EAAqBJ,CAAO,EAE1C,OADIG,IAAU,IAAA,GAAkB,CAAE,OAAA,WAAsC,KAAM,KAAM,UAAW,KAAM,OAAQ,EAAG,WAAY,KAAM,YAAa,EAAG,EAC3I,CACH,OAAQA,EAAM,QAAA,UAAA,UACd,KAAMA,EAAM,QAAUD,EAAgB,oBAAsBA,EAAgB,mCAC5E,UAAWC,EAAM,UACjB,OAAQA,EAAM,OACd,WAAYA,EAAM,YAAc,KAChC,YAAa,GAAGA,EAAM,UAAU,aAAaA,EAAM,OAAO,IAAIA,EAAM,YAAc,KAAK,QAAQ,CACnG,CACJ"}
@@ -1,2 +1,2 @@
1
- const e={kinds:/* @__PURE__ */ `AddMappingSyntax.AllSyntax.ApplicationSyntax.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.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.FormColumnSyntax.ExposureSyntax.ExposedPropertySyntax.InstanceContributionsSyntax.InstanceContributionSyntax.ContributedItemSyntax.ContributedItemValueSyntax.ScreenContributionSyntax.TemplateSlotContentSyntax.CommandFormLayoutSyntax.FormLayoutColumnSyntax.FormFieldPlacementSyntax.FormWidthSyntax.FormFieldSyntax.FormPopulateFromItemSyntax.FormPopulateViaQuerySyntax.FormSyntax.FromSyntax.HandlerSyntax.ImplementationSyntax.ImplementationHintSyntax.SystemSyntax.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.PathExpressionSyntax.PerformerSyntax.PersonaSyntax.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.SpecificationCommandSyntax.SpecificationDeniedSyntax.SpecificationErrorSyntax.SpecificationEventSyntax.SampleDataBindingSyntax.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`.split(`.`),names:/* @__PURE__ */ `property.value.autoMap.mappings.authentication.behaviors.concepts.domain.eventSources.examples.exposures.fileImports.identity.imports.instanceContributions.layouts.modules.personas.policies.purposes.reactionProductionMode.sampleDataPacks.seeds.sourceOptions.numericMode.systems.templates.themes.triggers.types.uiProfiles.triggerName.children.columns.gap.grow.rows.span.syntaxKind.height.root.width.growFactor.name.mode.overrides.variants.alias.providers.requirement.icon.id.slot.target.title.image.items.logo.region.feature.module.type.bindings.description.file.order.parameters.event.tags.when.appends.identifiedBy.map.source.translations.settings.separator.targets.key.nested.from.to.expression.fromValue.properties.toValue.parameter.blocks.claim.matches.matchesSubject.code.details.by.query.arguments.onFailure.onResult.onSuccess.language.binding.directives.authorize.concurrency.documentation.handler.produces.reads.response.stream.streamCandidates.validations.eventSource.propertyCandidate.streamId.streamIdParts.left.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.hasGenerationMarker.origin.visibility.includeChildren.command.contributions.dependsOn.features.isPlacement.slices.additionalRules.ignoreCasing.releasedBy.owner.component.editableFields.isCollection.operations.reExposes.restrictsFields.instance.field.columnGap.placements.rowGap.index.maxWidth.minWidth.column.columnSpan.row.rowSpan.unit.composeUsing.columnMode.fields.for.generationMode.layout.onSubmit.populate.events.parentKey.implementation.hints.text.compensate.execute.inputs.uses.generatedValues.noStream.operation.qualifiedName.actions.condition.alternatives.otherwise.trigger.amount.onRefused.acknowledge.constraint.selector.on.navigation.literalType.dialogTemplates.forms.screenTemplates.screen.operand.level.dialogTemplate.members.hidden.sizeHeight.sizeWidth.slotName.x.y.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.severity.role.dayOfMonth.dayOfWeek.time.outcome.behavior.context.stableId.outlet.route.rowClick.blueprint.version.fitsSlot.buttons.eventSourceId.groups.captures.commands.constraints.direction.projections.queries.reactions.readModels.reducers.screens.specifications.contributes.authenticated.claims.capture.record.instant.commandType.inlineProperty.caseValue.eventType.pack.shape.isBlueprint.locale.sets.active.exactly.results.reaction.cases.given.givenCaller.givenCallerPersona.givenCaptures.givenClock.givenOperationFailures.givenReadModels.thenAbsentReadModels.thenCompensated.thenDenied.thenErrors.thenEvents.thenEventsInAnyOrder.thenNoEvents.thenNoResult.thenOperations.thenQueries.thenReadModels.thenResults.thenReturns.whenAppended.whenCapture.whenClock.whenQuery.whenRedelivered.whenTrigger.emphasis.slice.compatibleWith.isOptional.bindingKind.componentId.componentPropertyPath.expectedValueType.literal.nullBehavior.rawText.defaultSizeClass.icons.packages.platforms.sampleData.theme.additionalProperties.places`.split(`.`),rules:[[`string`],[`ref`,30,31,58,59,67,68,70,127,128,140,142,167,171,214,243,248],[`object`,[[0,0,!0],[1,1,!0]]],[`enum`,`Inherit`,`Disabled`,`Enabled`],[`ref`,0,40,62,64,114,207,244],[`array`,4],[`object`,[[2,3,!0],[3,5,!1]]],[`ref`,10],[`null`],[`union`,7,8],[`ref`,18],[`array`,10],[`ref`,54],[`array`,12],[`ref`,66],[`union`,14,8],[`ref`,71],[`array`,16],[`ref`,107],[`array`,18],[`ref`,84],[`array`,20],[`ref`,81],[`array`,22],[`ref`,37],[`union`,24,8],[`ref`,113],[`array`,26],[`ref`,86],[`array`,28],[`ref`,126],[`array`,30],[`union`,31,8],[`ref`,132],[`array`,33],[`ref`,144],[`array`,35],[`union`,36,8],[`ref`,147],[`array`,38],[`ref`,148],[`array`,40],[`enum`,`Atomic`],[`union`,42,8],[`ref`,229],[`array`,44],[`ref`,206],[`array`,46],[`union`,47,8],[`enum`,`legacy`,`exact`],[`object`,[[24,49,!0]]],[`ref`,104],[`array`,51],[`ref`,208],[`array`,53],[`ref`,251],[`array`,55],[`union`,56,8],[`ref`,253],[`array`,58],[`union`,59,8],[`ref`,255],[`array`,61],[`union`,62,8],[`ref`,257],[`array`,64],[`union`,65,8],[`object`,[[4,9,!1],[5,11,!1],[6,13,!1],[7,15,!1],[8,17,!1],[9,19,!1],[10,21,!1],[11,23,!1],[12,25,!1],[13,27,!1],[14,29,!1],[15,32,!1],[16,34,!1],[17,37,!1],[18,39,!1],[19,41,!1],[20,43,!1],[21,45,!1],[22,48,!1],[23,50,!1],[25,52,!1],[26,54,!1],[27,57,!1],[28,60,!1],[29,63,!1],[30,66,!1]]],[`object`,[[31,0,!0]]],[`ref`,4,6],[`array`,69],[`integer`,-2147483648,2147483647],[`union`,71,8],[`number`],[`union`,73,8],[`enum`,`Flat`,`Row`,`Column`,`Grid`],[`object`,[[32,70,!1],[33,72,!1],[34,72,!1],[35,74,!1],[36,72,!1],[37,72,!1],[38,75,!0]]],[`union`,0,8],[`object`,[[39,77,!1],[40,69,!0],[41,77,!1]]],[`boolean`],[`object`,[[35,79,!1],[42,74,!1],[39,72,!1],[43,0,!0],[37,72,!1],[41,72,!1]]],[`enum`,`Flow`,`Freeform`],[`ref`,5],[`array`,82],[`union`,83,8],[`union`,69,8],[`ref`,263],[`array`,86],[`union`,87,8],[`object`,[[44,81,!0],[45,84,!1],[40,85,!1],[46,88,!1]]],[`object`,[]],[`object`,[[47,77,!1],[43,0,!0]]],[`ref`,9],[`array`,92],[`object`,[[48,93,!1]]],[`ref`,131,146],[`object`,[[49,95,!0]]],[`ref`,12],[`array`,97],[`ref`,15],[`union`,99,8],[`object`,[[32,98,!1],[50,77,!1],[51,0,!0],[52,77,!1],[53,100,!1],[54,0,!0]]],[`object`,[[55,0,!0],[54,0,!0]]],[`ref`,13],[`union`,103,8],[`enum`,`Unspecified`,`Inherit`,`Extend`,`Override`],[`enum`,`Topbar`,`Sidebar`],[`object`,[[56,98,!1],[57,104,!1],[44,105,!0],[58,106,!0]]],[`object`,[[59,77,!1],[60,0,!0]]],[`object`,[[43,0,!0],[1,0,!0]]],[`ref`,254],[`union`,110,8],[`object`,[[43,0,!0],[61,111,!1]]],[`ref`,118],[`array`,113],[`ref`,82],[`union`,115,8],[`ref`,17],[`array`,117],[`object`,[[62,114,!1],[63,77,!1],[64,116,!1],[43,77,!1],[65,72,!1],[66,118,!1]]],[`enum`,`Click`,`DoubleClick`,`Select`,`Submit`,`Change`,`Load`,`Unload`,`Enter`,`Leave`,`Unknown`],[`object`,[[38,120,!0]]],[`ref`,156],[`array`,122],[`ref`,245],[`array`,124],[`union`,125,8],[`ref`,29],[`union`,127,8],[`object`,[[67,0,!0],[3,123,!1],[68,126,!1],[69,128,!1]]],[`ref`,20],[`array`,130],[`ref`,22,26],[`array`,132],[`object`,[[70,131,!1],[71,0,!0],[72,133,!1],[0,0,!0]]],[`ref`,28],[`array`,135],[`object`,[[0,0,!0],[73,1,!0],[74,136,!1]]],[`object`,[[70,131,!1],[72,133,!1],[0,0,!0]]],[`ref`,24],[`array`,139],[`object`,[[75,140,!1],[38,0,!0]]],[`array`,0],[`object`,[[76,0,!0],[73,1,!0],[77,142,!1]]],[`ref`,21],[`array`,144],[`ref`,23],[`array`,146],[`ref`,25],[`union`,148,8],[`object`,[[70,131,!1],[32,145,!1],[78,77,!1],[72,133,!1],[43,0,!0],[79,147,!1],[73,149,!1],[23,50,!1]]],[`object`,[[80,0,!0],[81,0,!0]]],[`enum`,`PropertyChanged`,`Added`,`Removed`,`Changed`,`LogicalOr`,`LogicalAnd`,`ValueTransition`,`Expression`],[`object`,[[82,77,!1],[83,77,!1],[84,142,!1],[38,152,!0],[85,77,!1]]],[`object`,[[0,77,!1]]],[`object`,[[86,0,!0]]],[`ref`,1,32,41,76,100,124,136,154,177,178],[`array`,156],[`object`,[[2,3,!0],[87,157,!1],[71,1,!0],[0,0,!0]]],[`union`,1,8],[`object`,[[88,0,!0],[89,159,!1],[90,79,!0]]],[`object`,[[88,0,!0]]],[`ref`,43],[`object`,[[91,162,!0]]],[`object`,[[64,115,!0]]],[`ref`,38],[`array`,165],[`object`,[[63,77,!1],[92,166,!1]]],[`ref`,34,35,36,39],[`object`,[[43,0,!0],[73,168,!0],[61,110,!0]]],[`object`,[[93,1,!0],[94,0,!0]]],[`object`,[[0,0,!0]]],[`object`,[[67,0,!0]]],[`ref`,117],[`array`,173],[`ref`,42,57,77,134,135,138,139,166,176,211],[`array`,175],[`object`,[[95,174,!1],[96,176,!1],[97,176,!1],[98,176,!1]]],[`object`,[[91,0,!0],[99,0,!0]]],[`ref`,256],[`object`,[[100,179,!0],[43,0,!0]]],[`ref`,182,184,187,188,189,191,193,194,195,196,198,199,201,202,203],[`array`,181],[`object`,[[101,182,!1],[43,0,!0]]],[`union`,179,8],[`object`,[[100,184,!1],[0,0,!0],[1,159,!1]]],[`ref`,11],[`union`,186,8],[`ref`,56],[`union`,188,8],[`ref`,101],[`union`,190,8],[`ref`,151],[`array`,192],[`ref`,157],[`array`,194],[`ref`,173],[`array`,196],[`union`,197,8],[`ref`,160,161],[`union`,199,8],[`ref`,49],[`union`,201,8],[`array`,201],[`ref`,47,63],[`array`,204],[`object`,[[102,187,!1],[103,189,!1],[63,77,!1],[104,77,!1],[105,191,!1],[43,0,!0],[106,193,!1],[84,195,!1],[107,198,!1],[108,200,!1],[109,202,!1],[110,203,!1],[111,205,!1]]],[`union`,194,8],[`union`,122,8],[`object`,[[112,0,!0],[113,207,!1],[109,0,!0],[114,208,!1],[115,123,!1]]],[`object`,[[112,0,!0],[109,77,!1]]],[`enum`,`Equal`,`NotEqual`,`GreaterThan`,`GreaterThanOrEqual`,`LessThan`,`LessThanOrEqual`,`Contains`,`StartsWith`],[`object`,[[116,0,!0],[117,211,!0],[118,1,!0]]],[`ref`,125],[`array`,213],[`object`,[[119,214,!1],[61,0,!0]]],[`object`,[[120,79,!1],[43,0,!0],[121,77,!1],[122,77,!1],[123,77,!1]]],[`ref`,53],[`array`,217],[`ref`,55],[`union`,219,8],[`union`,205,8],[`array`,71],[`union`,222,8],[`object`,[[124,218,!1],[63,77,!1],[64,116,!1],[125,220,!1],[43,0,!0],[61,0,!0],[111,221,!1],[126,223,!1],[127,142,!1]]],[`union`,162,8],[`object`,[[128,77,!1],[129,77,!1],[130,77,!1],[91,225,!1],[131,72,!1],[132,77,!1],[64,116,!1],[133,77,!1],[134,77,!1],[135,77,!1],[136,77,!1],[137,72,!1],[138,0,!0]]],[`object`,[[112,79,!0],[139,77,!1],[140,77,!1],[141,77,!1],[142,142,!1]]],[`object`,[[95,174,!1],[143,0,!0],[144,79,!0],[96,176,!1],[97,176,!1],[98,176,!1]]],[`object`,[[145,0,!0]]],[`ref`,61],[`union`,230,8],[`ref`,193],[`union`,232,8],[`object`,[[146,0,!0],[147,231,!1],[148,77,!1],[50,77,!1],[51,77,!1],[149,77,!1],[150,233,!1],[65,72,!1],[151,77,!1]]],[`enum`,`Outlet`,`Dialog`,`External`],[`object`,[[38,235,!0],[53,0,!0]]],[`ref`,179],[`array`,237],[`union`,238,8],[`ref`,262],[`array`,240],[`object`,[[152,239,!1],[153,241,!1]]],[`ref`,7],[`union`,243,8],[`ref`,91],[`array`,245],[`ref`,209],[`array`,247],[`ref`,210],[`array`,249],[`ref`,213],[`array`,251],[`ref`,261],[`array`,253],[`object`,[[154,244,!1],[5,11,!1],[155,77,!1],[156,246,!1],[63,77,!1],[157,77,!1],[158,248,!1],[43,0,!0],[159,250,!1],[160,79,!1],[161,142,!1],[162,142,!1],[163,252,!1],[164,77,!1],[165,254,!1]]],[`object`,[[43,0,!0]]],[`object`,[[166,0,!0]]],[`ref`,73],[`array`,258],[`object`,[[63,77,!1],[51,77,!1],[167,111,!1],[43,0,!0],[168,259,!1]]],[`object`,[[43,0,!0],[61,110,!0]]],[`ref`,72],[`array`,262],[`object`,[[63,77,!1],[51,77,!1],[43,0,!0],[114,111,!1],[115,263,!1]]],[`object`,[[67,0,!0],[78,159,!1]]],[`integer`,0,4294967295],[`enum`,`Private`,`Public`],[`object`,[[63,77,!1],[104,77,!1],[64,116,!1],[125,266,!1],[169,79,!1],[51,77,!1],[43,0,!0],[170,77,!1],[84,195,!1],[68,126,!1],[171,267,!1]]],[`object`,[[2,3,!0],[172,79,!0],[3,5,!1]]],[`object`,[[95,174,!1],[173,0,!0],[96,176,!1],[97,176,!1],[98,176,!1]]],[`object`,[[82,1,!0]]],[`ref`,60],[`array`,272],[`union`,273,8],[`ref`,260],[`array`,275],[`ref`,79],[`array`,277],[`ref`,149],[`array`,279],[`ref`,212],[`array`,281],[`object`,[[102,187,!1],[5,11,!1],[174,274,!1],[175,276,!1],[63,77,!1],[104,77,!1],[9,19,!1],[176,278,!1],[11,23,!1],[177,79,!0],[43,0,!0],[19,280,!1],[178,282,!1],[26,54,!1],[165,254,!1]]],[`ref`,80,258,259],[`array`,284],[`object`,[[179,285,!1],[63,77,!1],[64,115,!0],[180,79,!0],[143,77,!1],[43,0,!0],[181,142,!1]]],[`object`,[[133,0,!0]]],[`object`,[[149,77,!1],[0,0,!0]]],[`ref`,85],[`array`,289],[`object`,[[182,0,!0],[84,290,!1]]],[`object`,[[183,0,!0],[184,142,!1],[185,79,!0],[149,77,!1],[186,142,!1],[145,0,!0],[187,77,!1],[188,79,!0]]],[`ref`,87],[`array`,293],[`object`,[[174,294,!1],[189,0,!0]]],[`ref`,88],[`array`,296],[`object`,[[183,0,!0],[56,297,!1],[145,0,!0],[1,159,!1]]],[`ref`,89],[`array`,299],[`object`,[[51,0,!0],[127,300,!1]]],[`object`,[[190,0,!0],[1,1,!0]]],[`object`,[[146,0,!0],[101,182,!1],[65,72,!1]]],[`object`,[[101,182,!1],[52,0,!0]]],[`ref`,95],[`union`,305,8],[`ref`,93],[`array`,307],[`ref`,94],[`array`,309],[`object`,[[191,306,!1],[33,308,!1],[192,310,!1],[193,306,!1]]],[`object`,[[194,71,!0],[195,306,!1],[196,306,!1],[41,306,!1]]],[`object`,[[197,71,!0],[198,72,!1],[190,0,!0],[199,71,!0],[200,72,!1],[41,306,!1]]],[`enum`,`Fraction`,`Pixels`,`Percent`,`Auto`],[`object`,[[201,314,!0],[1,74,!1]]],[`object`,[[202,77,!1],[80,77,!1],[149,77,!1],[0,0,!0]]],[`object`,[[93,77,!1],[94,0,!0]]],[`enum`,`Unspecified`,`Auto`,`Manual`],[`ref`,83],[`array`,319],[`ref`,96],[`array`,321],[`ref`,92],[`union`,323,8],[`ref`,97,98],[`union`,325,8],[`object`,[[5,11,!1],[203,318,!0],[33,320,!1],[63,77,!1],[204,322,!1],[205,0,!0],[206,318,!0],[207,324,!1],[43,0,!0],[208,233,!1],[209,326,!1],[165,254,!1]]],[`ref`,74],[`array`,328],[`ref`,52,78],[`union`,330,8],[`object`,[[210,329,!1],[78,331,!1],[3,5,!1],[211,159,!1]]],[`ref`,102],[`union`,333,8],[`object`,[[91,225,!1],[64,116,!1],[212,334,!1]]],[`ref`,103],[`array`,336],[`object`,[[213,337,!1]]],[`object`,[[214,0,!0]]],[`object`,[[63,77,!1],[43,0,!0]]],[`ref`,106],[`union`,341,8],[`object`,[[215,342,!1],[63,77,!1],[216,342,!1],[217,195,!1],[43,0,!0],[218,0,!0]]],[`object`,[[91,225,!1],[63,77,!1],[64,116,!1],[212,334,!1]]],[`ref`,235],[`union`,345,8],[`ref`,234],[`union`,347,8],[`object`,[[63,77,!1],[205,159,!1],[219,123,!1],[43,0,!0],[220,346,!1],[109,348,!1],[61,0,!0],[127,123,!1]]],[`object`,[[43,0,!0],[127,123,!1]]],[`object`,[[221,0,!0]]],[`object`,[[221,0,!0],[127,123,!1]]],[`object`,[[170,77,!1],[222,0,!0],[171,267,!1]]],[`ref`,51,129],[`object`,[[223,176,!1],[224,354,!0]]],[`object`,[[223,176,!1]]],[`object`,[[100,0,!0],[43,0,!0]]],[`ref`,115],[`array`,358],[`ref`,116],[`union`,360,8],[`ref`,3,19,69,119],[`object`,[[223,176,!1],[225,359,!1],[224,77,!1],[226,361,!1],[227,362,!0]]],[`enum`,`Seconds`,`Minutes`,`Hours`,`Days`],[`object`,[[228,71,!0],[201,364,!0]]],[`ref`,122],[`array`,366],[`object`,[[173,0,!0],[3,123,!1],[229,367,!1]]],[`object`,[[230,79,!0],[231,77,!1],[106,193,!1],[232,0,!0]]],[`object`,[[2,3,!0],[67,0,!0],[3,5,!1]]],[`ref`,123],[`array`,371],[`object`,[[210,372,!1],[233,0,!0],[0,0,!0]]],[`object`,[[82,1,!0],[0,0,!0]]],[`ref`,14],[`array`,375],[`object`,[[154,244,!1],[5,11,!1],[155,77,!1],[158,248,!1],[43,0,!0],[234,376,!1],[159,250,!1],[160,79,!1],[161,142,!1],[162,142,!1],[163,252,!1],[164,77,!1],[165,254,!1]]],[`array`,1],[`object`,[[56,378,!1]]],[`union`,0,79,8],[`number`,-17976931348623157e292,17976931348623157e292],[`enum`,`Int32`,`Int64`,`Decimal`,`Single`],[`string`,`^-?[0-9]+(\\.[0-9]+)?([Ee][+-]?[0-9]+)?$`],[`object`,[[235,382,!0],[1,383,!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`,[[235,385,!0],[1,386,!0]]],[`union`,380,381,384,387],[`object`,[[1,388,!1]]],[`enum`,`And`,`Or`],[`object`,[[116,354,!0],[117,390,!0],[118,354,!0]]],[`ref`,8,33,130,137,180],[`object`,[[116,392,!0],[117,390,!0],[118,392,!0]]],[`object`,[[116,95,!0],[117,390,!0],[118,95,!0]]],[`ref`,65],[`array`,395],[`union`,396,8],[`ref`,99],[`array`,398],[`union`,399,8],[`ref`,200],[`array`,401],[`object`,[[102,187,!1],[5,11,!1],[174,274,!1],[175,276,!1],[63,77,!1],[236,397,!1],[104,77,!1],[9,19,!1],[176,278,!1],[11,23,!1],[237,400,!1],[177,79,!0],[43,0,!0],[234,376,!1],[19,280,!1],[238,402,!1],[26,54,!1],[165,254,!1]]],[`object`,[[95,174,!1],[96,176,!1],[97,176,!1],[98,176,!1],[239,0,!0]]],[`object`,[[2,3,!0],[87,157,!1],[0,0,!0]]],[`object`,[[240,392,!0]]],[`enum`,`Info`,`Warning`,`Error`,`Unknown`],[`object`,[[95,174,!1],[241,407,!0],[143,0,!0],[144,79,!0],[96,176,!1],[97,176,!1],[98,176,!1]]],[`object`,[[95,174,!1],[242,0,!0],[96,176,!1],[97,176,!1],[98,176,!1]]],[`ref`,141],[`array`,410],[`object`,[[243,411,!1]]],[`object`,[[43,0,!0],[1,1,!0]]],[`object`,[[91,225,!1],[64,116,!1]]],[`object`,[[63,77,!1],[43,0,!0],[18,142,!1]]],[`object`,[[244,79,!1],[245,77,!1],[246,77,!1],[247,0,!0],[248,72,!1],[249,72,!1]]],[`union`,392,8],[`object`,[[91,225,!1],[224,417,!1],[63,77,!1],[64,116,!1],[43,0,!0]]],[`ref`,150],[`array`,419],[`object`,[[250,77,!1],[251,77,!1],[252,77,!1],[224,77,!1],[253,77,!1],[63,77,!1],[254,77,!1],[255,77,!1],[43,0,!0],[256,142,!1],[257,77,!1],[258,142,!1],[259,420,!1]]],[`object`,[[147,0,!0],[260,0,!0]]],[`ref`,75],[`union`,423,8],[`ref`,105],[`union`,425,8],[`union`,354,8],[`object`,[[67,0,!0],[205,159,!1],[261,424,!1],[262,426,!1],[3,123,!1],[109,202,!1],[68,126,!1],[69,427,!1]]],[`object`,[[2,3,!0],[87,157,!1],[63,77,!1],[64,116,!1],[78,331,!1],[43,0,!0],[263,77,!1],[264,77,!1],[23,50,!1]]],[`ref`,152],[`array`,430],[`object`,[[87,157,!1],[265,431,!1],[43,0,!0]]],[`object`,[[0,0,!0],[73,1,!0]]],[`object`,[[266,79,!1],[267,79,!1],[268,79,!1],[269,79,!1],[43,0,!0],[61,110,!0]]],[`ref`,158],[`object`,[[43,0,!0],[73,435,!0],[61,111,!1]]],[`object`,[[73,435,!0]]],[`ref`,159],[`array`,438],[`object`,[[204,439,!1]]],[`object`,[[1,1,!0]]],[`object`,[[204,123,!1]]],[`object`,[[43,0,!0],[73,159,!1],[61,110,!0]]],[`ref`,164],[`union`,444,8],[`array`,444],[`ref`,143],[`union`,447,8],[`object`,[[102,187,!1],[93,445,!1],[270,446,!1],[63,77,!1],[271,446,!1],[272,79,!1],[43,0,!0],[273,448,!1],[274,110,!0],[122,77,!1]]],[`object`,[[95,174,!1],[96,176,!1],[97,176,!1],[98,176,!1],[227,0,!0]]],[`object`,[[275,142,!1],[38,0,!0]]],[`ref`,50],[`union`,452,8],[`ref`,168],[`union`,454,8],[`ref`,170],[`array`,456],[`object`,[[63,77,!1],[104,77,!1],[80,453,!1],[43,0,!0],[276,455,!1],[28,457,!1],[277,427,!1]]],[`ref`,252],[`array`,459],[`ref`,121],[`array`,461],[`union`,462,8],[`union`,193,8],[`ref`,120,133,181],[`object`,[[91,225,!1],[278,460,!1],[63,77,!1],[64,116,!1],[279,463,!1],[106,464,!1],[107,198,!1],[73,465,!0]]],[`object`,[[280,0,!0]]],[`object`,[[63,77,!1],[104,77,!1],[64,116,!1],[43,0,!0],[84,195,!1]]],[`object`,[[47,77,!1],[93,77,!1],[270,123,!1],[263,0,!0]]],[`object`,[[91,225,!1],[63,77,!1],[67,0,!0],[64,116,!1]]],[`ref`,174],[`array`,471],[`object`,[[63,77,!1],[80,453,!1],[43,0,!0],[263,0,!0],[153,472,!1]]],[`object`,[[95,174,!1],[96,176,!1],[97,176,!1],[98,176,!1],[94,0,!0]]],[`object`,[[67,0,!0],[78,159,!1],[211,159,!1]]],[`enum`,`Error`,`Information`,`Warning`],[`object`,[[224,354,!0],[143,77,!1],[281,476,!0]]],[`object`,[[282,0,!0]]],[`enum`,`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],[`union`,479,8],[`string`,`^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]{1,7})?$`],[`object`,[[283,72,!1],[284,480,!1],[285,481,!0]]],[`object`,[[173,0,!0],[149,77,!1],[150,233,!1]]],[`ref`,185],[`array`,484],[`ref`,186],[`union`,486,8],[`object`,[[225,485,!1],[149,0,!0],[150,233,!1],[226,487,!1]]],[`object`,[[95,174,!1],[173,0,!0],[224,354,!0]]],[`enum`,`Hidden`,`Execute`,`Unknown`],[`object`,[[95,174,!1],[173,77,!1],[286,490,!0]]],[`object`,[[287,10,!0]]],[`ref`,44],[`array`,493],[`ref`,45],[`array`,495],[`ref`,155],[`array`,497],[`ref`,46],[`array`,499],[`object`,[[5,11,!1],[183,0,!0],[288,184,!1],[158,494,!1],[50,77,!1],[43,0,!0],[159,496,!1],[151,498,!1],[84,500,!1],[289,77,!1],[165,254,!1]]],[`object`,[[93,77,!1],[94,0,!0],[61,110,!0]]],[`object`,[[149,0,!0],[0,0,!0]]],[`ref`,183],[`array`,504],[`object`,[[93,77,!1],[290,77,!1],[66,505,!1],[291,77,!1],[239,0,!0]]],[`ref`,192],[`array`,507],[`object`,[[204,508,!1],[53,0,!0]]],[`ref`,90],[`array`,510],[`object`,[[174,511,!1],[63,77,!1],[101,182,!1],[64,116,!1],[43,0,!0]]],[`ref`,190],[`array`,513],[`object`,[[5,11,!1],[33,514,!1],[292,233,!1],[53,0,!0],[165,254,!1]]],[`ref`,195],[`array`,516],[`object`,[[293,77,!1],[43,0,!0],[163,517,!1],[294,77,!1]]],[`object`,[[154,244,!1],[5,11,!1],[155,77,!1],[156,246,!1],[63,77,!1],[157,77,!1],[158,248,!1],[295,77,!1],[43,0,!0],[159,250,!1],[160,79,!1],[161,142,!1],[162,142,!1],[163,252,!1],[164,77,!1],[165,254,!1]]],[`ref`,246],[`array`,520],[`ref`,247],[`array`,522],[`object`,[[296,521,!1],[56,523,!1],[43,0,!0]]],[`object`,[[218,253,!0]]],[`object`,[[67,0,!0],[84,123,!1]]],[`ref`,204],[`array`,527],[`object`,[[297,0,!0],[210,528,!1]]],[`ref`,205],[`array`,530],[`object`,[[298,531,!1]]],[`object`,[[293,77,!1],[43,0,!0],[294,77,!1]]],[`object`,[[95,174,!1],[96,176,!1],[97,176,!1],[98,176,!1],[53,0,!0],[1,0,!0]]],[`ref`,27],[`array`,535],[`ref`,48],[`array`,537],[`enum`,`Inbound`,`Outbound`],[`union`,539,8],[`array`,423],[`array`,425],[`ref`,153],[`array`,543],[`ref`,165],[`array`,545],[`ref`,169],[`array`,547],[`ref`,172],[`array`,549],[`union`,550,8],[`ref`,175],[`array`,552],[`union`,553,8],[`ref`,197],[`array`,555],[`ref`,240],[`array`,557],[`enum`,`StateChange`,`StateView`,`Automation`,`Translate`],[`object`,[[299,536,!1],[300,538,!1],[301,285,!1],[63,77,!1],[302,540,!1],[104,77,!1],[210,541,!1],[9,19,!1],[64,116,!1],[43,0,!0],[186,542,!1],[303,544,!1],[19,280,!1],[304,546,!1],[305,548,!1],[306,551,!1],[307,554,!1],[308,556,!1],[309,558,!1],[26,54,!1],[61,559,!0]]],[`object`,[[310,77,!1],[43,0,!0]]],[`object`,[[78,1,!0],[43,0,!0]]],[`object`,[[61,0,!0],[1,0,!0]]],[`ref`,216],[`array`,564],[`object`,[[311,79,!0],[312,565,!1],[275,142,!1]]],[`object`,[[313,0,!0],[314,123,!1]]],[`object`,[[315,0,!0]]],[`object`,[[316,0,!0],[205,159,!1],[219,123,!1],[317,77,!1],[127,123,!1]]],[`ref`,31],[`union`,570,8],[`object`,[[318,571,!1],[43,77,!1]]],[`object`,[[319,0,!0],[205,159,!1],[317,77,!1],[220,346,!1],[109,348,!1],[127,123,!1]]],[`ref`,228],[`object`,[[320,574,!0],[263,0,!0]]],[`enum`,`Text`,`Number`,`Flag`,`Null`],[`object`,[[43,0,!0],[38,576,!0],[1,77,!1]]],[`object`,[[263,0,!0],[321,0,!0]]],[`object`,[[322,79,!0],[43,0,!0]]],[`ref`,232],[`array`,580],[`object`,[[323,77,!1],[43,0,!0],[324,581,!1],[54,77,!1]]],[`ref`,226],[`array`,583],[`object`,[[204,584,!1]]],[`union`,574,8],[`ref`,225],[`array`,587],[`ref`,227],[`array`,589],[`object`,[[325,586,!1],[62,588,!1],[3,590,!1]]],[`ref`,230],[`array`,592],[`object`,[[36,593,!1],[321,0,!0]]],[`object`,[[112,0,!0],[109,0,!0],[114,208,!1],[115,123,!1]]],[`object`,[[326,79,!0],[84,123,!1]]],[`ref`,236],[`array`,597],[`object`,[[95,123,!1],[326,79,!0],[94,0,!0],[327,598,!1]]],[`object`,[[326,79,!0],[317,77,!1],[43,0,!0],[84,123,!1]]],[`object`,[[319,0,!0],[205,159,!1],[220,346,!1],[328,0,!0],[109,348,!1],[127,123,!1]]],[`ref`,109],[`array`,602],[`ref`,224],[`array`,604],[`ref`,218],[`union`,606,8],[`ref`,217],[`union`,608,8],[`ref`,219],[`array`,610],[`ref`,220],[`union`,612,8],[`ref`,110],[`array`,614],[`ref`,238],[`array`,616],[`union`,617,8],[`ref`,108],[`array`,619],[`ref`,215],[`array`,621],[`ref`,112],[`array`,623],[`ref`,222],[`union`,625,8],[`ref`,223],[`array`,627],[`ref`,233],[`union`,629,8],[`ref`,111],[`array`,631],[`ref`,237],[`array`,633],[`ref`,162,163],[`union`,635,8],[`ref`,221],[`union`,637,8],[`union`,604,8],[`union`,610,8],[`ref`,242],[`union`,641,8],[`ref`,239],[`union`,643,8],[`ref`,241],[`union`,645,8],[`object`,[[329,603,!1],[63,77,!1],[9,19,!1],[64,116,!1],[330,605,!1],[331,607,!1],[332,609,!1],[333,611,!1],[334,613,!1],[335,615,!1],[336,618,!1],[43,0,!0],[66,620,!1],[23,50,!1],[337,622,!1],[338,624,!1],[339,626,!1],[340,628,!1],[341,605,!1],[342,79,!0],[343,79,!1],[344,630,!1],[345,632,!1],[346,634,!1],[347,618,!1],[348,598,!1],[349,636,!1],[69,638,!1],[350,639,!1],[351,640,!1],[352,613,!1],[353,642,!1],[354,644,!1],[355,646,!1]]],[`object`,[[227,0,!0],[127,123,!1]]],[`object`,[[95,123,!1],[94,0,!0]]],[`object`,[[78,0,!0]]],[`enum`,`Primary`,`Secondary`,`Quiet`],[`union`,651,8],[`object`,[[356,652,!1],[50,77,!1],[51,0,!0],[357,77,!1],[54,0,!0]]],[`enum`,`Unknown`,`Action`,`Navigate`,`Dialog`],[`object`,[[50,77,!1],[149,77,!1],[43,0,!0],[66,505,!1],[151,498,!1],[38,654,!0],[53,0,!0]]],[`ref`,249,250],[`array`,656],[`object`,[[119,657,!1]]],[`object`,[[358,142,!1],[43,0,!0]]],[`object`,[[278,460,!1],[63,77,!1],[64,116,!1],[43,0,!0]]],[`object`,[[185,79,!0],[359,79,!0],[43,0,!0]]],[`object`,[[63,77,!1],[64,116,!1],[43,0,!0],[84,195,!1]]],[`enum`,`Invalid`,`DataContext`,`QueryResult`,`ComponentProperty`,`Literal`],[`enum`,`OneWay`,`TwoWay`],[`union`,664,8],[`enum`,`Propagate`,`Clear`,`Preserve`],[`union`,666,8],[`object`,[[360,663,!0],[361,77,!1],[362,77,!1],[363,77,!1],[364,159,!1],[44,665,!1],[365,667,!1],[145,0,!0],[94,77,!1],[366,77,!1]]],[`ref`,231],[`union`,669,8],[`object`,[[367,77,!1],[368,142,!1],[207,77,!1],[43,0,!0],[369,142,!1],[370,142,!1],[371,670,!1],[372,77,!1]]],[`object`,[[179,285,!1],[63,77,!1],[67,0,!0],[180,79,!0],[143,77,!1],[43,0,!0],[181,142,!1]]],[`object`,[[373,142,!1],[179,285,!1],[63,77,!1],[67,0,!0],[180,79,!0],[143,77,!1],[43,0,!0],[0,0,!0],[181,142,!1]]],[`object`,[[53,0,!0]]],[`ref`,16],[`array`,675],[`object`,[[95,676,!1],[287,0,!0]]],[`enum`,`NotEmpty`,`Max`,`Min`,`GreaterThan`,`GreaterThanOrEqual`,`LessThan`,`LessThanOrEqual`,`Equal`,`Length`,`Matches`,`AllGreaterThan`,`AllGreaterThanOrEqual`,`Rule`,`NotEqual`,`Checksum`],[`object`,[[91,225,!1],[64,116,!1],[212,334,!1],[143,77,!1],[0,0,!0],[136,678,!0],[281,476,!0],[1,159,!1]]],[`ref`,145],[`array`,680],[`object`,[[39,0,!0],[374,681,!1],[41,0,!0]]]],contracts:[2,6,67,68,76,78,80,89,90,91,94,96,101,102,107,108,109,112,119,121,129,134,137,138,109,141,143,150,151,153,154,155,158,160,161,163,164,167,169,170,171,172,177,178,180,183,185,163,206,209,210,212,215,216,224,226,227,228,229,229,234,236,171,242,171,255,256,256,229,257,90,260,261,264,265,268,269,270,271,283,286,287,229,288,291,292,295,298,301,302,303,304,311,312,313,315,316,90,317,327,332,335,338,339,340,343,344,349,261,350,351,352,351,353,171,355,356,357,363,365,365,368,369,370,373,374,377,379,389,391,393,394,403,256,404,177,405,406,408,409,412,413,229,414,415,416,256,418,421,256,422,428,265,429,432,109,433,434,171,436,437,440,441,442,443,449,450,339,451,458,466,467,468,469,470,473,474,265,475,477,478,482,483,180,488,489,491,492,163,501,288,502,503,506,183,183,509,512,515,518,519,339,524,525,526,529,532,433,533,112,256,534,560,561,229,562,563,256,566,567,568,569,90,572,573,575,577,578,579,582,585,591,594,90,595,90,596,599,600,601,647,648,649,650,2,441,653,655,658,271,339,659,112,660,661,662,668,671,672,673,674,677,679,682]};export{e as syntaxCollections};
1
+ const e={kinds:/* @__PURE__ */ `AddMappingSyntax.AllSyntax.ApplicationSyntax.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.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.FormColumnSyntax.ExposureSyntax.ExposedPropertySyntax.InstanceContributionsSyntax.InstanceContributionSyntax.ContributedItemSyntax.ContributedItemValueSyntax.ScreenContributionSyntax.TemplateSlotContentSyntax.CommandFormLayoutSyntax.FormLayoutColumnSyntax.FormFieldPlacementSyntax.FormWidthSyntax.FormFieldSyntax.FormPopulateFromItemSyntax.FormPopulateViaQuerySyntax.FormSyntax.FromSyntax.HandlerSyntax.ImplementationSyntax.ImplementationHintSyntax.SystemSyntax.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.PathExpressionSyntax.PerformerSyntax.PersonaSyntax.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.SpecificationCommandSyntax.SpecificationDeniedSyntax.SpecificationErrorSyntax.SpecificationEventSyntax.SampleDataBindingSyntax.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`.split(`.`),names:/* @__PURE__ */ `property.value.autoMap.mappings.authentication.behaviors.concepts.domain.eventSources.examples.exposures.fileImports.identity.imports.instanceContributions.layouts.modules.personas.policies.purposes.reactionProductionMode.sampleDataPacks.seeds.sourceOptions.numericMode.systems.templates.themes.triggers.types.uiProfiles.triggerName.children.columns.gap.grow.rows.span.syntaxKind.height.root.width.growFactor.name.mode.overrides.variants.alias.providers.requirement.icon.id.slot.target.title.image.items.logo.region.feature.module.type.bindings.description.file.order.parameters.event.tags.when.appends.identifiedBy.map.source.translations.settings.separator.targets.key.nested.from.to.expression.fromValue.properties.toValue.parameter.blocks.claim.matches.matchesSubject.code.details.by.query.arguments.onFailure.onResult.onSuccess.language.binding.directives.authorize.concurrency.documentation.handler.produces.reads.response.stream.streamCandidates.validations.eventSource.propertyCandidate.streamId.streamIdParts.left.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.hasGenerationMarker.origin.visibility.includeChildren.command.contributions.dependsOn.features.isPlacement.slices.additionalRules.ignoreCasing.releasedBy.owner.component.editableFields.isCollection.operations.reExposes.restrictsFields.instance.field.columnGap.placements.rowGap.index.maxWidth.minWidth.column.columnSpan.row.rowSpan.unit.composeUsing.columnMode.fields.for.generationMode.layout.onSubmit.populate.events.parentKey.implementation.hints.text.compensate.execute.inputs.uses.generatedValues.noStream.operation.qualifiedName.actions.condition.alternatives.otherwise.trigger.amount.onRefused.acknowledge.constraint.selector.on.navigation.literalType.dialogTemplates.forms.screenTemplates.screen.operand.level.dialogTemplate.members.hidden.sizeHeight.sizeWidth.slotName.x.y.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.severity.role.dayOfMonth.dayOfWeek.time.outcome.behavior.context.stableId.outlet.route.rowClick.blueprint.version.fitsSlot.buttons.eventSourceId.groups.captures.commands.constraints.direction.projections.queries.reactions.readModels.reducers.screens.specifications.contributes.authenticated.claims.capture.record.instant.commandType.inlineProperty.caseValue.eventType.pack.shape.isBlueprint.locale.sets.active.exactly.results.reaction.cases.given.givenCaller.givenCallerPersona.givenCaptures.givenClock.givenOperationFailures.givenReadModels.thenAbsentReadModels.thenCompensated.thenDenied.thenErrors.thenEvents.thenEventsInAnyOrder.thenNoEvents.thenNoResult.thenOperations.thenQueries.thenReadModels.thenResults.thenReturns.whenAppended.whenCapture.whenClock.whenQuery.whenRedelivered.whenTrigger.emphasis.slice.compatibleWith.isOptional.bindingKind.componentId.componentPropertyPath.expectedValueType.literal.nullBehavior.rawText.defaultSizeClass.icons.packages.platforms.sampleData.theme.additionalProperties.places`.split(`.`),rules:[[`string`],[`ref`,30,31,58,59,67,68,70,127,128,140,142,167,171,214,243,248],[`object`,[[0,0,!0],[1,1,!0]]],[`enum`,`Inherit`,`Disabled`,`Enabled`],[`ref`,0,40,62,64,114,207,244],[`array`,4],[`object`,[[2,3,!0],[3,5,!1]]],[`ref`,10],[`null`],[`union`,7,8],[`ref`,18],[`array`,10],[`ref`,54],[`array`,12],[`ref`,66],[`union`,14,8],[`ref`,71],[`array`,16],[`ref`,107],[`array`,18],[`ref`,84],[`array`,20],[`ref`,81],[`array`,22],[`ref`,37],[`union`,24,8],[`ref`,113],[`array`,26],[`ref`,86],[`array`,28],[`ref`,126],[`array`,30],[`union`,31,8],[`ref`,132],[`array`,33],[`ref`,144],[`array`,35],[`union`,36,8],[`ref`,147],[`array`,38],[`ref`,148],[`array`,40],[`enum`,`Atomic`],[`union`,42,8],[`ref`,229],[`array`,44],[`ref`,206],[`array`,46],[`union`,47,8],[`enum`,`legacy`,`exact`],[`object`,[[24,49,!0]]],[`ref`,104],[`array`,51],[`ref`,208],[`array`,53],[`ref`,251],[`array`,55],[`union`,56,8],[`ref`,253],[`array`,58],[`union`,59,8],[`ref`,255],[`array`,61],[`union`,62,8],[`ref`,257],[`array`,64],[`union`,65,8],[`object`,[[4,9,!1],[5,11,!1],[6,13,!1],[7,15,!1],[8,17,!1],[9,19,!1],[10,21,!1],[11,23,!1],[12,25,!1],[13,27,!1],[14,29,!1],[15,32,!1],[16,34,!1],[17,37,!1],[18,39,!1],[19,41,!1],[20,43,!1],[21,45,!1],[22,48,!1],[23,50,!1],[25,52,!1],[26,54,!1],[27,57,!1],[28,60,!1],[29,63,!1],[30,66,!1]]],[`object`,[[31,0,!0]]],[`ref`,4,6],[`array`,69],[`integer`,-2147483648,2147483647],[`union`,71,8],[`number`],[`union`,73,8],[`enum`,`Flat`,`Row`,`Column`,`Grid`],[`object`,[[32,70,!1],[33,72,!1],[34,72,!1],[35,74,!1],[36,72,!1],[37,72,!1],[38,75,!0]]],[`union`,0,8],[`object`,[[39,77,!1],[40,69,!0],[41,77,!1]]],[`boolean`],[`object`,[[35,79,!1],[42,74,!1],[39,72,!1],[43,0,!0],[37,72,!1],[41,72,!1]]],[`enum`,`Flow`,`Freeform`],[`ref`,5],[`array`,82],[`union`,83,8],[`union`,69,8],[`ref`,263],[`array`,86],[`union`,87,8],[`object`,[[44,81,!0],[45,84,!1],[40,85,!1],[46,88,!1]]],[`object`,[]],[`object`,[[47,77,!1],[43,0,!0]]],[`ref`,9],[`array`,92],[`object`,[[48,93,!1]]],[`ref`,131,146],[`object`,[[49,95,!0]]],[`ref`,12],[`array`,97],[`ref`,15],[`union`,99,8],[`object`,[[32,98,!1],[50,77,!1],[51,0,!0],[52,77,!1],[53,100,!1],[54,0,!0]]],[`object`,[[55,0,!0],[54,0,!0]]],[`ref`,13],[`union`,103,8],[`enum`,`Unspecified`,`Inherit`,`Extend`,`Override`],[`enum`,`Topbar`,`Sidebar`],[`object`,[[56,98,!1],[57,104,!1],[44,105,!0],[58,106,!0]]],[`object`,[[59,77,!1],[60,0,!0]]],[`object`,[[43,0,!0],[1,0,!0]]],[`ref`,254],[`union`,110,8],[`object`,[[43,0,!0],[61,111,!1]]],[`ref`,118],[`array`,113],[`ref`,82],[`union`,115,8],[`ref`,17],[`array`,117],[`object`,[[62,114,!1],[63,77,!1],[64,116,!1],[43,77,!1],[65,72,!1],[66,118,!1]]],[`enum`,`Click`,`DoubleClick`,`Select`,`Submit`,`Change`,`Load`,`Unload`,`Enter`,`Leave`,`Unknown`],[`object`,[[38,120,!0]]],[`ref`,156],[`array`,122],[`ref`,245],[`array`,124],[`union`,125,8],[`ref`,29],[`union`,127,8],[`object`,[[67,0,!0],[3,123,!1],[68,126,!1],[69,128,!1]]],[`ref`,20],[`array`,130],[`ref`,22,26],[`array`,132],[`object`,[[70,131,!1],[71,0,!0],[72,133,!1],[0,0,!0]]],[`ref`,28],[`array`,135],[`object`,[[0,0,!0],[73,1,!0],[74,136,!1]]],[`object`,[[70,131,!1],[72,133,!1],[0,0,!0]]],[`ref`,24],[`array`,139],[`object`,[[75,140,!1],[38,0,!0]]],[`array`,0],[`object`,[[76,0,!0],[73,1,!0],[77,142,!1]]],[`ref`,21],[`array`,144],[`ref`,23],[`array`,146],[`ref`,25],[`union`,148,8],[`object`,[[70,131,!1],[32,145,!1],[78,77,!1],[72,133,!1],[43,0,!0],[79,147,!1],[73,149,!1],[23,50,!1]]],[`object`,[[80,0,!0],[81,0,!0]]],[`enum`,`PropertyChanged`,`Added`,`Removed`,`Changed`,`LogicalOr`,`LogicalAnd`,`ValueTransition`,`Expression`],[`object`,[[82,77,!1],[83,77,!1],[84,142,!1],[38,152,!0],[85,77,!1]]],[`object`,[[0,77,!1]]],[`object`,[[86,0,!0]]],[`ref`,1,32,41,76,100,124,136,154,177,178],[`array`,156],[`object`,[[2,3,!0],[87,157,!1],[71,1,!0],[0,0,!0]]],[`union`,1,8],[`object`,[[88,0,!0],[89,159,!1],[90,79,!0]]],[`object`,[[88,0,!0]]],[`ref`,43],[`object`,[[91,162,!0]]],[`object`,[[64,115,!0]]],[`ref`,38],[`array`,165],[`object`,[[63,77,!1],[92,166,!1]]],[`ref`,34,35,36,39],[`object`,[[43,0,!0],[73,168,!0],[61,110,!0]]],[`object`,[[93,1,!0],[94,0,!0]]],[`object`,[[0,0,!0]]],[`object`,[[67,0,!0]]],[`ref`,117],[`array`,173],[`ref`,42,57,77,134,135,138,139,166,176,211],[`array`,175],[`object`,[[95,174,!1],[96,176,!1],[97,176,!1],[98,176,!1]]],[`object`,[[91,0,!0],[99,0,!0]]],[`ref`,256],[`object`,[[100,179,!0],[43,0,!0]]],[`ref`,182,184,187,188,189,191,193,194,195,196,198,199,201,202,203],[`array`,181],[`object`,[[101,182,!1],[43,0,!0]]],[`union`,179,8],[`object`,[[100,184,!1],[0,0,!0],[1,159,!1]]],[`ref`,11],[`union`,186,8],[`ref`,56],[`union`,188,8],[`ref`,101],[`union`,190,8],[`ref`,151],[`array`,192],[`ref`,157],[`array`,194],[`ref`,173],[`array`,196],[`union`,197,8],[`ref`,160,161],[`union`,199,8],[`ref`,49],[`union`,201,8],[`array`,201],[`ref`,47,63],[`array`,204],[`object`,[[102,187,!1],[103,189,!1],[63,77,!1],[104,77,!1],[105,191,!1],[43,0,!0],[106,193,!1],[84,195,!1],[107,198,!1],[108,200,!1],[109,202,!1],[110,203,!1],[111,205,!1]]],[`union`,194,8],[`union`,122,8],[`object`,[[112,0,!0],[113,207,!1],[109,0,!0],[114,208,!1],[115,123,!1]]],[`object`,[[112,0,!0],[109,77,!1]]],[`enum`,`Equal`,`NotEqual`,`GreaterThan`,`GreaterThanOrEqual`,`LessThan`,`LessThanOrEqual`,`Contains`,`StartsWith`],[`object`,[[116,0,!0],[117,211,!0],[118,1,!0]]],[`ref`,125],[`array`,213],[`object`,[[119,214,!1],[61,0,!0]]],[`object`,[[120,79,!1],[43,0,!0],[121,77,!1],[122,77,!1],[123,77,!1]]],[`ref`,53],[`array`,217],[`ref`,55],[`union`,219,8],[`union`,205,8],[`array`,71],[`union`,222,8],[`object`,[[124,218,!1],[63,77,!1],[64,116,!1],[125,220,!1],[43,0,!0],[61,0,!0],[111,221,!1],[126,223,!1],[127,142,!1]]],[`union`,162,8],[`object`,[[128,77,!1],[129,77,!1],[130,77,!1],[91,225,!1],[131,72,!1],[132,77,!1],[64,116,!1],[133,77,!1],[134,77,!1],[135,77,!1],[136,77,!1],[137,72,!1],[138,0,!0]]],[`object`,[[112,79,!0],[139,77,!1],[140,77,!1],[141,77,!1],[142,142,!1]]],[`object`,[[95,174,!1],[143,0,!0],[144,79,!0],[96,176,!1],[97,176,!1],[98,176,!1]]],[`object`,[[145,0,!0]]],[`ref`,61],[`union`,230,8],[`ref`,193],[`union`,232,8],[`object`,[[146,0,!0],[147,231,!1],[148,77,!1],[50,77,!1],[51,77,!1],[149,77,!1],[150,233,!1],[65,72,!1],[151,77,!1]]],[`enum`,`Outlet`,`Dialog`,`External`],[`object`,[[38,235,!0],[53,0,!0]]],[`ref`,179],[`array`,237],[`union`,238,8],[`ref`,262],[`array`,240],[`object`,[[152,239,!1],[153,241,!1]]],[`ref`,7],[`union`,243,8],[`ref`,91],[`array`,245],[`ref`,209],[`array`,247],[`ref`,210],[`array`,249],[`ref`,213],[`array`,251],[`ref`,261],[`array`,253],[`object`,[[154,244,!1],[5,11,!1],[155,77,!1],[156,246,!1],[63,77,!1],[157,77,!1],[158,248,!1],[43,0,!0],[159,250,!1],[160,79,!1],[161,142,!1],[162,142,!1],[163,252,!1],[164,77,!1],[165,254,!1]]],[`object`,[[43,0,!0]]],[`object`,[[166,0,!0]]],[`ref`,73],[`array`,258],[`object`,[[63,77,!1],[51,77,!1],[167,111,!1],[43,0,!0],[168,259,!1]]],[`object`,[[43,0,!0],[61,110,!0]]],[`ref`,72],[`array`,262],[`object`,[[63,77,!1],[51,77,!1],[43,0,!0],[114,111,!1],[115,263,!1]]],[`object`,[[67,0,!0],[78,159,!1]]],[`integer`,0,4294967295],[`enum`,`Private`,`Public`],[`object`,[[63,77,!1],[104,77,!1],[64,116,!1],[125,266,!1],[169,79,!1],[51,77,!1],[43,0,!0],[170,77,!1],[84,195,!1],[68,126,!1],[171,267,!1]]],[`object`,[[2,3,!0],[172,79,!0],[3,5,!1]]],[`object`,[[95,174,!1],[173,0,!0],[96,176,!1],[97,176,!1],[98,176,!1]]],[`object`,[[82,1,!0]]],[`ref`,60],[`array`,272],[`union`,273,8],[`ref`,260],[`array`,275],[`ref`,79],[`array`,277],[`ref`,149],[`array`,279],[`ref`,212],[`array`,281],[`object`,[[102,187,!1],[5,11,!1],[174,274,!1],[175,276,!1],[63,77,!1],[104,77,!1],[9,19,!1],[176,278,!1],[11,23,!1],[177,79,!0],[43,0,!0],[19,280,!1],[178,282,!1],[26,54,!1],[165,254,!1]]],[`ref`,80,258,259],[`array`,284],[`object`,[[179,285,!1],[63,77,!1],[64,115,!0],[180,79,!0],[143,77,!1],[43,0,!0],[181,142,!1]]],[`object`,[[133,0,!0]]],[`object`,[[149,77,!1],[0,0,!0]]],[`ref`,85],[`array`,289],[`object`,[[182,0,!0],[84,290,!1]]],[`object`,[[183,0,!0],[184,142,!1],[185,79,!0],[149,77,!1],[186,142,!1],[145,0,!0],[187,77,!1],[188,79,!0]]],[`ref`,87],[`array`,293],[`object`,[[174,294,!1],[189,0,!0]]],[`ref`,88],[`array`,296],[`object`,[[183,0,!0],[56,297,!1],[145,0,!0],[1,159,!1]]],[`ref`,89],[`array`,299],[`object`,[[51,0,!0],[127,300,!1]]],[`object`,[[190,0,!0],[1,1,!0]]],[`object`,[[146,0,!0],[101,182,!1],[65,72,!1]]],[`object`,[[101,182,!1],[52,0,!0]]],[`ref`,95],[`union`,305,8],[`ref`,93],[`array`,307],[`ref`,94],[`array`,309],[`object`,[[191,306,!1],[33,308,!1],[192,310,!1],[193,306,!1]]],[`object`,[[194,71,!0],[195,306,!1],[196,306,!1],[41,306,!1]]],[`object`,[[197,71,!0],[198,72,!1],[190,0,!0],[199,71,!0],[200,72,!1],[41,306,!1]]],[`enum`,`Fraction`,`Pixels`,`Percent`,`Auto`],[`object`,[[201,314,!0],[1,74,!1]]],[`object`,[[202,77,!1],[80,77,!1],[149,77,!1],[0,0,!0]]],[`object`,[[93,77,!1],[94,0,!0]]],[`enum`,`Unspecified`,`Auto`,`Manual`],[`ref`,83],[`array`,319],[`ref`,96],[`array`,321],[`ref`,92],[`union`,323,8],[`ref`,97,98],[`union`,325,8],[`object`,[[5,11,!1],[203,318,!0],[33,320,!1],[63,77,!1],[204,322,!1],[205,0,!0],[206,318,!0],[207,324,!1],[43,0,!0],[208,233,!1],[209,326,!1],[165,254,!1]]],[`ref`,74],[`array`,328],[`ref`,52,78],[`union`,330,8],[`object`,[[210,329,!1],[78,331,!1],[3,5,!1],[211,159,!1]]],[`ref`,102],[`union`,333,8],[`object`,[[91,225,!1],[64,116,!1],[212,334,!1]]],[`ref`,103],[`array`,336],[`object`,[[213,337,!1]]],[`object`,[[214,0,!0]]],[`object`,[[63,77,!1],[43,0,!0]]],[`ref`,106],[`union`,341,8],[`object`,[[215,342,!1],[63,77,!1],[216,342,!1],[217,195,!1],[43,0,!0],[218,0,!0]]],[`object`,[[91,225,!1],[63,77,!1],[64,116,!1],[212,334,!1]]],[`ref`,235],[`union`,345,8],[`ref`,234],[`union`,347,8],[`object`,[[63,77,!1],[205,159,!1],[219,123,!1],[43,0,!0],[220,346,!1],[109,348,!1],[61,0,!0],[127,123,!1]]],[`object`,[[43,0,!0],[127,123,!1]]],[`object`,[[221,0,!0]]],[`object`,[[221,0,!0],[127,123,!1]]],[`object`,[[170,77,!1],[222,0,!0],[171,267,!1]]],[`ref`,51,129],[`object`,[[223,176,!1],[224,354,!0]]],[`object`,[[223,176,!1]]],[`object`,[[100,0,!0],[43,0,!0]]],[`ref`,115],[`array`,358],[`ref`,116],[`union`,360,8],[`ref`,3,19,69,119],[`object`,[[223,176,!1],[225,359,!1],[224,77,!1],[226,361,!1],[227,362,!0]]],[`enum`,`Seconds`,`Minutes`,`Hours`,`Days`],[`object`,[[228,71,!0],[201,364,!0]]],[`ref`,122],[`array`,366],[`object`,[[173,0,!0],[3,123,!1],[229,367,!1]]],[`object`,[[230,79,!0],[231,77,!1],[106,193,!1],[232,0,!0]]],[`object`,[[2,3,!0],[67,0,!0],[3,5,!1]]],[`ref`,123],[`array`,371],[`object`,[[210,372,!1],[233,0,!0],[0,0,!0]]],[`object`,[[82,1,!0],[0,0,!0]]],[`ref`,14],[`array`,375],[`object`,[[154,244,!1],[5,11,!1],[155,77,!1],[158,248,!1],[43,0,!0],[234,376,!1],[159,250,!1],[160,79,!1],[161,142,!1],[162,142,!1],[163,252,!1],[164,77,!1],[165,254,!1]]],[`array`,1],[`object`,[[56,378,!1]]],[`union`,0,79,8],[`number`,-17976931348623157e292,17976931348623157e292],[`enum`,`Int32`,`Int64`,`Decimal`,`Single`],[`string`,`^-?[0-9]+(\\.[0-9]+)?([Ee][+-]?[0-9]+)?$`],[`object`,[[235,382,!0],[1,383,!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`,[[235,385,!0],[1,386,!0]]],[`union`,380,381,384,387],[`object`,[[1,388,!1]]],[`enum`,`And`,`Or`],[`object`,[[116,354,!0],[117,390,!0],[118,354,!0]]],[`ref`,8,33,130,137,180],[`object`,[[116,392,!0],[117,390,!0],[118,392,!0]]],[`object`,[[116,95,!0],[117,390,!0],[118,95,!0]]],[`ref`,65],[`array`,395],[`union`,396,8],[`ref`,99],[`array`,398],[`union`,399,8],[`ref`,200],[`array`,401],[`object`,[[102,187,!1],[5,11,!1],[174,274,!1],[175,276,!1],[63,77,!1],[236,397,!1],[104,77,!1],[9,19,!1],[176,278,!1],[11,23,!1],[237,400,!1],[177,79,!0],[43,0,!0],[234,376,!1],[19,280,!1],[238,402,!1],[26,54,!1],[165,254,!1]]],[`object`,[[95,174,!1],[96,176,!1],[97,176,!1],[98,176,!1],[239,0,!0]]],[`object`,[[2,3,!0],[87,157,!1],[0,0,!0]]],[`object`,[[240,392,!0]]],[`enum`,`Info`,`Warning`,`Error`,`Unknown`],[`object`,[[95,174,!1],[241,407,!0],[143,0,!0],[144,79,!0],[96,176,!1],[97,176,!1],[98,176,!1]]],[`object`,[[95,174,!1],[242,0,!0],[96,176,!1],[97,176,!1],[98,176,!1]]],[`ref`,141],[`array`,410],[`object`,[[243,411,!1]]],[`object`,[[43,0,!0],[1,1,!0]]],[`object`,[[91,225,!1],[64,116,!1]]],[`object`,[[63,77,!1],[43,0,!0],[18,142,!1]]],[`object`,[[244,79,!1],[245,77,!1],[246,77,!1],[247,0,!0],[248,72,!1],[249,72,!1]]],[`union`,392,8],[`object`,[[91,225,!1],[224,417,!1],[63,77,!1],[64,116,!1],[43,0,!0]]],[`ref`,150],[`array`,419],[`object`,[[250,77,!1],[251,77,!1],[252,77,!1],[224,77,!1],[253,77,!1],[63,77,!1],[254,77,!1],[255,77,!1],[43,0,!0],[256,142,!1],[257,77,!1],[258,142,!1],[259,420,!1]]],[`object`,[[147,0,!0],[260,0,!0]]],[`ref`,75],[`union`,423,8],[`ref`,105],[`union`,425,8],[`union`,354,8],[`object`,[[67,0,!0],[205,159,!1],[261,424,!1],[262,426,!1],[3,123,!1],[109,202,!1],[68,126,!1],[69,427,!1]]],[`object`,[[2,3,!0],[87,157,!1],[63,77,!1],[64,116,!1],[78,331,!1],[43,0,!0],[263,77,!1],[264,77,!1],[23,50,!1]]],[`ref`,152],[`array`,430],[`object`,[[87,157,!1],[265,431,!1],[43,0,!0]]],[`object`,[[0,0,!0],[73,1,!0]]],[`object`,[[266,79,!1],[267,79,!1],[268,79,!1],[269,79,!1],[43,0,!0],[61,110,!0]]],[`ref`,158],[`object`,[[43,0,!0],[73,435,!0],[61,111,!1]]],[`object`,[[73,435,!0]]],[`ref`,159],[`array`,438],[`object`,[[204,439,!1]]],[`object`,[[1,1,!0]]],[`object`,[[204,123,!1]]],[`object`,[[43,0,!0],[73,159,!1],[61,110,!0]]],[`ref`,164],[`union`,444,8],[`array`,444],[`ref`,143],[`union`,447,8],[`object`,[[102,187,!1],[93,445,!1],[270,446,!1],[63,77,!1],[271,446,!1],[272,79,!1],[43,0,!0],[273,448,!1],[274,110,!0],[122,77,!1]]],[`object`,[[95,174,!1],[96,176,!1],[97,176,!1],[98,176,!1],[227,0,!0]]],[`object`,[[275,142,!1],[38,0,!0]]],[`ref`,50],[`union`,452,8],[`ref`,168],[`union`,454,8],[`ref`,170],[`array`,456],[`object`,[[63,77,!1],[104,77,!1],[80,453,!1],[43,0,!0],[276,455,!1],[28,457,!1],[277,427,!1]]],[`ref`,252],[`array`,459],[`ref`,121],[`array`,461],[`union`,462,8],[`union`,193,8],[`ref`,120,133,181],[`object`,[[91,225,!1],[278,460,!1],[63,77,!1],[64,116,!1],[279,463,!1],[106,464,!1],[107,198,!1],[73,465,!0]]],[`object`,[[280,0,!0]]],[`object`,[[63,77,!1],[104,77,!1],[64,116,!1],[43,0,!0],[84,195,!1]]],[`object`,[[47,77,!1],[93,77,!1],[270,123,!1],[263,0,!0]]],[`object`,[[91,225,!1],[63,77,!1],[67,0,!0],[64,116,!1]]],[`ref`,174],[`array`,471],[`object`,[[63,77,!1],[80,453,!1],[43,0,!0],[263,0,!0],[153,472,!1]]],[`object`,[[95,174,!1],[96,176,!1],[97,176,!1],[98,176,!1],[94,0,!0]]],[`object`,[[67,0,!0],[78,159,!1],[211,159,!1]]],[`enum`,`Error`,`Information`,`Warning`],[`object`,[[224,354,!0],[143,77,!1],[281,476,!0]]],[`object`,[[282,0,!0]]],[`enum`,`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],[`union`,479,8],[`string`,`^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]{1,7})?$`],[`object`,[[283,72,!1],[284,480,!1],[285,481,!0]]],[`object`,[[173,0,!0],[149,77,!1],[150,233,!1]]],[`ref`,185],[`array`,484],[`ref`,186],[`union`,486,8],[`object`,[[225,485,!1],[149,0,!0],[150,233,!1],[226,487,!1]]],[`object`,[[95,174,!1],[173,0,!0],[224,354,!0]]],[`enum`,`Hidden`,`Execute`,`Unknown`],[`object`,[[95,174,!1],[173,77,!1],[286,490,!0]]],[`object`,[[287,10,!0]]],[`ref`,44],[`array`,493],[`ref`,45],[`array`,495],[`ref`,155],[`array`,497],[`ref`,46],[`array`,499],[`object`,[[5,11,!1],[183,0,!0],[288,184,!1],[158,494,!1],[50,77,!1],[43,0,!0],[159,496,!1],[151,498,!1],[84,500,!1],[289,77,!1],[165,254,!1]]],[`object`,[[93,77,!1],[94,0,!0],[61,110,!0]]],[`object`,[[149,0,!0],[0,0,!0]]],[`ref`,183],[`array`,504],[`object`,[[93,77,!1],[290,77,!1],[66,505,!1],[291,77,!1],[239,0,!0]]],[`ref`,192],[`array`,507],[`object`,[[204,508,!1],[53,0,!0]]],[`ref`,90],[`array`,510],[`object`,[[174,511,!1],[63,77,!1],[101,182,!1],[64,116,!1],[43,0,!0]]],[`ref`,190],[`array`,513],[`object`,[[5,11,!1],[33,514,!1],[292,233,!1],[53,0,!0],[165,254,!1]]],[`ref`,195],[`array`,516],[`object`,[[293,77,!1],[43,0,!0],[163,517,!1],[294,77,!1]]],[`object`,[[154,244,!1],[5,11,!1],[155,77,!1],[156,246,!1],[63,77,!1],[157,77,!1],[158,248,!1],[295,77,!1],[43,0,!0],[159,250,!1],[160,79,!1],[161,142,!1],[162,142,!1],[163,252,!1],[164,77,!1],[165,254,!1]]],[`ref`,246],[`array`,520],[`ref`,247],[`array`,522],[`object`,[[296,521,!1],[56,523,!1],[43,0,!0]]],[`object`,[[218,253,!0]]],[`object`,[[67,0,!0],[84,123,!1]]],[`ref`,204],[`array`,527],[`object`,[[297,0,!0],[210,528,!1]]],[`ref`,205],[`array`,530],[`object`,[[298,531,!1]]],[`object`,[[293,77,!1],[43,0,!0],[294,77,!1]]],[`object`,[[95,174,!1],[96,176,!1],[97,176,!1],[98,176,!1],[53,0,!0],[1,0,!0]]],[`ref`,27],[`array`,535],[`ref`,48],[`array`,537],[`enum`,`Inbound`,`Outbound`],[`union`,539,8],[`array`,423],[`array`,425],[`ref`,153],[`array`,543],[`ref`,165],[`array`,545],[`ref`,169],[`array`,547],[`ref`,172],[`array`,549],[`union`,550,8],[`ref`,175],[`array`,552],[`union`,553,8],[`ref`,197],[`array`,555],[`ref`,240],[`array`,557],[`enum`,`StateChange`,`StateView`,`Automation`,`Translate`],[`object`,[[299,536,!1],[300,538,!1],[301,285,!1],[63,77,!1],[302,540,!1],[104,77,!1],[210,541,!1],[9,19,!1],[64,116,!1],[43,0,!0],[186,542,!1],[303,544,!1],[19,280,!1],[304,546,!1],[305,548,!1],[306,551,!1],[307,554,!1],[308,556,!1],[309,558,!1],[26,54,!1],[61,559,!0]]],[`object`,[[310,77,!1],[43,0,!0]]],[`object`,[[78,1,!0],[43,0,!0]]],[`object`,[[61,0,!0],[1,0,!0]]],[`ref`,216],[`array`,564],[`object`,[[311,79,!0],[312,565,!1],[275,142,!1]]],[`object`,[[313,0,!0],[314,123,!1]]],[`object`,[[315,0,!0]]],[`object`,[[316,0,!0],[205,159,!1],[219,123,!1],[317,77,!1],[127,123,!1]]],[`ref`,31],[`union`,570,8],[`object`,[[318,571,!1],[43,77,!1]]],[`object`,[[319,0,!0],[205,159,!1],[317,77,!1],[220,346,!1],[109,348,!1],[127,123,!1]]],[`ref`,228],[`object`,[[320,574,!0],[263,0,!0]]],[`enum`,`Text`,`Number`,`Flag`,`Null`],[`object`,[[43,0,!0],[38,576,!0],[1,77,!1]]],[`object`,[[263,0,!0],[321,0,!0]]],[`object`,[[322,79,!0],[43,0,!0]]],[`ref`,232],[`array`,580],[`object`,[[323,77,!1],[43,0,!0],[324,581,!1],[54,77,!1]]],[`ref`,226],[`array`,583],[`object`,[[204,584,!1]]],[`union`,574,8],[`ref`,225],[`array`,587],[`ref`,227],[`array`,589],[`object`,[[325,586,!1],[62,588,!1],[3,590,!1]]],[`ref`,230],[`array`,592],[`object`,[[36,593,!1],[321,0,!0]]],[`object`,[[112,0,!0],[109,0,!0],[114,208,!1],[115,123,!1]]],[`object`,[[326,79,!0],[84,123,!1]]],[`ref`,236],[`array`,597],[`object`,[[95,123,!1],[326,79,!0],[94,0,!0],[327,598,!1]]],[`object`,[[326,79,!0],[317,77,!1],[43,0,!0],[84,123,!1]]],[`object`,[[319,0,!0],[205,159,!1],[220,346,!1],[328,0,!0],[109,348,!1],[127,123,!1]]],[`ref`,109],[`array`,602],[`ref`,224],[`array`,604],[`ref`,218],[`union`,606,8],[`ref`,217],[`union`,608,8],[`ref`,219],[`array`,610],[`ref`,220],[`union`,612,8],[`ref`,110],[`array`,614],[`ref`,238],[`array`,616],[`union`,617,8],[`ref`,108],[`array`,619],[`ref`,215],[`array`,621],[`ref`,112],[`array`,623],[`ref`,222],[`union`,625,8],[`ref`,223],[`array`,627],[`ref`,233],[`union`,629,8],[`ref`,111],[`array`,631],[`ref`,237],[`array`,633],[`ref`,162,163],[`union`,635,8],[`ref`,221],[`union`,637,8],[`union`,604,8],[`union`,610,8],[`ref`,242],[`union`,641,8],[`ref`,239],[`union`,643,8],[`ref`,241],[`union`,645,8],[`object`,[[329,603,!1],[63,77,!1],[9,19,!1],[64,116,!1],[330,605,!1],[331,607,!1],[332,609,!1],[333,611,!1],[334,613,!1],[335,615,!1],[336,618,!1],[43,0,!0],[66,620,!1],[23,50,!1],[337,622,!1],[338,624,!1],[339,626,!1],[340,628,!1],[341,605,!1],[342,79,!0],[343,79,!1],[344,630,!1],[345,632,!1],[346,634,!1],[347,618,!1],[348,598,!1],[349,636,!1],[69,638,!1],[350,639,!1],[351,640,!1],[352,613,!1],[353,642,!1],[354,644,!1],[355,646,!1]]],[`object`,[[227,0,!0],[127,123,!1]]],[`object`,[[95,123,!1],[94,0,!0]]],[`object`,[[78,0,!0]]],[`enum`,`Primary`,`Secondary`,`Quiet`],[`union`,651,8],[`object`,[[356,652,!1],[50,77,!1],[51,0,!0],[357,77,!1],[54,0,!0]]],[`enum`,`Unknown`,`Action`,`Navigate`,`Dialog`],[`object`,[[50,77,!1],[149,77,!1],[43,0,!0],[66,505,!1],[151,498,!1],[38,654,!0],[53,0,!0]]],[`ref`,249,250],[`array`,656],[`object`,[[119,657,!1]]],[`object`,[[358,142,!1],[43,0,!0]]],[`object`,[[278,460,!1],[63,77,!1],[64,116,!1],[43,0,!0]]],[`object`,[[185,79,!0],[359,79,!0],[43,0,!0]]],[`object`,[[63,77,!1],[64,116,!1],[43,0,!0],[84,195,!1]]],[`enum`,`Invalid`,`DataContext`,`QueryResult`,`ComponentProperty`,`Literal`],[`enum`,`OneWay`,`TwoWay`],[`union`,664,8],[`enum`,`Propagate`,`Clear`,`Preserve`],[`union`,666,8],[`object`,[[360,663,!0],[361,77,!1],[362,77,!1],[363,77,!1],[364,159,!1],[44,665,!1],[365,667,!1],[145,0,!0],[94,77,!1],[366,77,!1]]],[`ref`,231],[`union`,669,8],[`object`,[[367,77,!1],[368,142,!1],[207,77,!1],[43,0,!0],[369,142,!1],[370,142,!1],[371,670,!1],[372,77,!1]]],[`object`,[[179,285,!1],[63,77,!1],[67,0,!0],[180,79,!0],[143,77,!1],[43,0,!0],[181,142,!1]]],[`object`,[[373,142,!1],[179,285,!1],[63,77,!1],[67,0,!0],[180,79,!0],[143,77,!1],[43,0,!0],[0,0,!0],[181,142,!1]]],[`object`,[[53,0,!0]]],[`ref`,16],[`array`,675],[`object`,[[95,676,!1],[287,0,!0]]],[`enum`,`NotEmpty`,`Max`,`Min`,`GreaterThan`,`GreaterThanOrEqual`,`LessThan`,`LessThanOrEqual`,`Equal`,`Length`,`Matches`,`AllGreaterThan`,`AllGreaterThanOrEqual`,`Rule`,`NotEqual`,`Checksum`,`Contains`,`NotContains`,`StartsWith`,`EndsWith`],[`object`,[[91,225,!1],[64,116,!1],[212,334,!1],[143,77,!1],[0,0,!0],[136,678,!0],[281,476,!0],[1,159,!1]]],[`ref`,145],[`array`,680],[`object`,[[39,0,!0],[374,681,!1],[41,0,!0]]]],contracts:[2,6,67,68,76,78,80,89,90,91,94,96,101,102,107,108,109,112,119,121,129,134,137,138,109,141,143,150,151,153,154,155,158,160,161,163,164,167,169,170,171,172,177,178,180,183,185,163,206,209,210,212,215,216,224,226,227,228,229,229,234,236,171,242,171,255,256,256,229,257,90,260,261,264,265,268,269,270,271,283,286,287,229,288,291,292,295,298,301,302,303,304,311,312,313,315,316,90,317,327,332,335,338,339,340,343,344,349,261,350,351,352,351,353,171,355,356,357,363,365,365,368,369,370,373,374,377,379,389,391,393,394,403,256,404,177,405,406,408,409,412,413,229,414,415,416,256,418,421,256,422,428,265,429,432,109,433,434,171,436,437,440,441,442,443,449,450,339,451,458,466,467,468,469,470,473,474,265,475,477,478,482,483,180,488,489,491,492,163,501,288,502,503,506,183,183,509,512,515,518,519,339,524,525,526,529,532,433,533,112,256,534,560,561,229,562,563,256,566,567,568,569,90,572,573,575,577,578,579,582,585,591,594,90,595,90,596,599,600,601,647,648,649,650,2,441,653,655,658,271,339,659,112,660,661,662,668,671,672,673,674,677,679,682]};export{e as syntaxCollections};
2
2
  //# sourceMappingURL=SyntaxCollections.js.map