@cratis/screenplay-language 4.214.0 → 4.214.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles/compiler/Diagnostics/DiagnosticCodes.js +1 -1
- package/dist/bundles/compiler/Diagnostics/DiagnosticCodes.js.map +1 -1
- package/dist/bundles/compiler/Parsing/EventSourceValidator.js +1 -1
- package/dist/bundles/compiler/Parsing/EventSourceValidator.js.map +1 -1
- package/dist/bundles/diagnostic-codes.js +1 -1
- package/dist/bundles/diagnostic-codes.js.map +1 -1
- package/dist/bundles/validation.js +1 -1
- package/dist/bundles/validation.js.map +1 -1
- package/dist/diagnostic-codes.d.ts +1 -0
- package/dist/diagnostic-codes.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e={UnknownMatchPattern:`PLAY0366`,InvalidMatchPattern:`PLAY0367`,PatternOutsidePortableMatchDialect:`PLAY0699`,DeprecatedStudioTextRulePattern:`PLAY0787`,InvalidIdentityDeclaration:`PLAY0633`,DuplicateIdentity:`PLAY0634`,InvalidIdentityDetail:`PLAY0635`,UnknownIdentitySource:`PLAY0636`,IdentityDetailWithoutSource:`PLAY0637`,IdentitySourceWithBody:`PLAY0638`,DuplicateIdentityDetail:`PLAY0639`,BuiltInIdentityDetail:`PLAY0640`,UnknownIdentityQuery:`PLAY0641`,InvalidIdentityQuery:`PLAY0642`,IdentityQueryWithoutKey:`PLAY0643`,InvalidIdentityQueryKey:`PLAY0644`,IdentityQueryAuthorizationDependency:`PLAY0645`,IdentityQueryTypeMismatch:`PLAY0646`,InvalidReactionIdentity:`PLAY0647`,GatedInvocationWithoutIdentity:`PLAY0648`,UnusedReactionIdentity:`PLAY0649`,UnusedReactionRole:`PLAY0650`,UnsatisfiedReactionIdentity:`PLAY0651`,ReactionPrivilegeEscalation:`PLAY0652`,CommandProducesPublicEvent:`PLAY0607`,PublicEventRequiresOutboundTranslation:`PLAY0608`,OutboundPublicEventCount:`PLAY0609`,ForeignPublicEventConsumer:`PLAY0610`,OutboundTranslationInput:`PLAY0611`,InboundTranslationOutput:`PLAY0612`,ForeignPublicEventProduced:`PLAY0613`,PublicTranslationRequiresDirection:`PLAY0614`,TranslationConstructDirection:`PLAY0615`,InboundTranslationInput:`PLAY0616`,OutboundTranslationOutput:`PLAY0617`,EventTargetOutsideOutboundTranslation:`PLAY0618`,EventsSourceOutsideInboundTranslation:`PLAY0619`,InvalidCaptureEventsSource:`PLAY0620`,CaptureEventsFromSeveralOrigins:`PLAY0687`,DirectionlessTranslationReactsToOwnCapture:`PLAY0694`,PendingIntentWithOtherHandler:`PLAY0698`,CommandHandlerRequiresAttachment:`PLAY0800`,DescribedCommandNotImplemented:`PLAY0695`,DescribedCommandWithoutProductions:`PLAY0696`,DescribedCommandCardinalityNotAdmitted:`PLAY0697`,CaptureEventsKeyNotRequired:`PLAY0700`,CaptureEventsRecordFixture:`PLAY0701`,RefutedGeneratedConceptRule:`PLAY0688`,UnprovenGeneratedConceptRule:`PLAY0689`,InvalidExposureDeclaration:`PLAY0621`,UnknownExposureOwner:`PLAY0622`,ReExposureCycle:`PLAY0623`,ReExposureBroken:`PLAY0624`,InvalidInstanceContribution:`PLAY0625`,UnknownContributionInstance:`PLAY0626`,ContributionNotExposed:`PLAY0627`,ContributionTypeMismatch:`PLAY0628`,UnknownTemplateContentSlot:`PLAY0629`,UnknownNavigationOutlet:`PLAY0630`,TemplateScopeMismatch:`PLAY0631`,IncompatibleComponentPackage:`PLAY0632`,UnknownNavigationDestination:`PLAY0654`,UnknownScreenContributionPoint:`PLAY0655`,TemplateNestingCycle:`PLAY0656`,TemplateCategoryMissing:`PLAY0720`,InvalidTemplateVersionRange:`PLAY0721`,LegacyProfileLayout:`PLAY0791`,UnknownTemplateBlueprint:`PLAY0722`,DuplicateComplianceMarker:`PLAY0653`,LegacyComplianceMarker:`PLAY0565`,UnknownComplianceMarker:`PLAY0566`,InvalidSecretScope:`PLAY0567`,DuplicateSecretScope:`PLAY0568`,SecretScopeIgnoredForPii:`PLAY0569`,InvalidPersonalDataQualifier:`PLAY0570`,DuplicateSpecialCategory:`PLAY0571`,InvalidPurposeDeclaration:`PLAY0596`,InvalidPurposeVocabulary:`PLAY0597`,DuplicatePurposeField:`PLAY0598`,DuplicatePurposeDeclaration:`PLAY0599`,UnknownPurpose:`PLAY0600`,PurposeInterestMismatch:`PLAY0601`,PersonalDataWithoutPurpose:`PLAY0602`,SpecialDataWithoutCondition:`PLAY0603`,CriminalDataWithoutAuthorization:`PLAY0604`,PurposeWithoutBasis:`PLAY0605`,UnusedPurpose:`PLAY0606`,ConflictingScreenDataBinding:`PLAY0530`,ScreenDataQueryMismatch:`PLAY0531`,ActionWithoutInputSurface:`PLAY0532`,CommandWithoutInputSurface:`PLAY0533`,ReadModelFieldWithoutOrigin:`PLAY0534`,QueryParameterNotHeldByView:`PLAY0535`,UnconsumedEvent:`PLAY0536`,UnreachableScreen:`PLAY0537`,UnknownActionSubjectField:`PLAY0345`,UnresolvedActionSubject:`PLAY0346`,UnreachableActionAlternative:`PLAY0347`,UnknownActionArgumentProperty:`PLAY0348`,UnreachableRefusalBranch:`PLAY0540`,InvalidRefusalValue:`PLAY0541`,UnknownRefusalConstraint:`PLAY0542`,UnknownRedeliveryReaction:`PLAY0544`,IndeterminateNegatedClaimTarget:`PLAY0546`,InvalidRefusalBranch:`PLAY0538`,InvalidRefusalBranchBody:`PLAY0539`,UnmatchedRedeliveredOccurrence:`PLAY0543`,InvalidNoEventsExpectation:`PLAY0545`,InvalidProducesDeclaration:`PLAY0042`,ProducesWhenWithoutEvent:`PLAY0043`,InvalidPropertyMapping:`PLAY0044`,DuplicateProducesTarget:`PLAY0193`,EventSourceIdInPayload:`PLAY0469`,ExplicitProducesTargetsRequired:`PLAY0470`,RedundantEventId:`PLAY0471`,InvalidEventId:`PLAY0472`,InlineEventCollision:`PLAY0473`,InlineEventOutsideCommand:`PLAY0474`,InlineEventGeneration:`PLAY0475`,ReservedProductionMetadata:`PLAY0476`,InvalidEventDocumentation:`PLAY0477`,OmittedProductionDestination:`PLAY0478`,UnknownConstraintProperty:`PLAY0391`,UnknownTopLevelConstruct:`PLAY0001`,InvalidDomainDeclaration:`PLAY0002`,DuplicateDomain:`PLAY0003`,DomainNotFirst:`PLAY0004`,InvalidImportDeclaration:`PLAY0005`,TabIndentation:`PLAY0006`,InvalidConceptDeclaration:`PLAY0007`,UnknownPrimitiveType:`PLAY0008`,InvalidEnumerationValue:`PLAY0009`,UnknownConceptDirective:`PLAY0010`,ValidateReadAsEnumerationBlock:`PLAY0011`,AttributeReasonWithoutAttribute:`PLAY0012`,DuplicateAttributeReason:`PLAY0013`,InvalidTypeDeclaration:`PLAY0014`,TypeWithoutProperties:`PLAY0015`,InvalidPropertyDeclaration:`PLAY0016`,IdentifierOutsideCommand:`PLAY0017`,InvalidEventDeclaration:`PLAY0018`,IdentifierOnEventProperty:`PLAY0019`,TagPropertyReadAsTag:`PLAY0020`,InvalidModuleDeclaration:`PLAY0021`,UnknownModuleDirective:`PLAY0022`,InvalidFeatureDeclaration:`PLAY0023`,UnknownFeatureDirective:`PLAY0024`,InvalidSliceDeclaration:`PLAY0027`,UnknownSliceType:`PLAY0028`,UnknownSliceDirective:`PLAY0029`,InvalidPersonaDeclaration:`PLAY0030`,InvalidPersonaPolicyReference:`PLAY0031`,UnknownPersonaDirective:`PLAY0032`,InvalidCommandDeclaration:`PLAY0033`,UnknownCommandDirective:`PLAY0034`,DuplicateCommandIdentifier:`PLAY0036`,InvalidQueryDeclaration:`PLAY0047`,UnknownQueryDirective:`PLAY0048`,InvalidQueryParameter:`PLAY0049`,InvalidProjectionDeclaration:`PLAY0056`,EmptyProjection:`PLAY0057`,UnknownProjectionDirective:`PLAY0058`,FromWithoutEvent:`PLAY0061`,InvalidEventReference:`PLAY0062`,InvalidJoinDeclaration:`PLAY0063`,JoinWithoutEvent:`PLAY0064`,InvalidChildrenDeclaration:`PLAY0065`,InvalidNestedDeclaration:`PLAY0066`,NestedBlockWithoutFrom:`PLAY0067`,InvalidRemoveDeclaration:`PLAY0068`,UnknownRemoveDirective:`PLAY0069`,InvalidClearDeclaration:`PLAY0070`,ClearWithOutsideNestedBlock:`PLAY0071`,InvalidSpecificationDeclaration:`PLAY0094`,UnknownSpecificationDirective:`PLAY0095`,InvalidSpecificationWhen:`PLAY0096`,DuplicateSpecificationWhen:`PLAY0097`,InvalidThenError:`PLAY0098`,InvalidReadModelStep:`PLAY0099`,InvalidEventStep:`PLAY0100`,InvalidSpecificationValue:`PLAY0101`,InvalidScreenDeclaration:`PLAY0102`,UnknownScreenDirective:`PLAY0103`,InvalidDataDirective:`PLAY0104`,InvalidActionDirective:`PLAY0105`,UnknownActionDirective:`PLAY0106`,InvalidNavigation:`PLAY0107`,InvalidScreenLayoutSlot:`PLAY0108`,UnknownLayoutDirective:`PLAY0026`,InvalidTitleDirective:`PLAY0109`,UnknownTableDirective:`PLAY0110`,UnknownSummaryDirective:`PLAY0111`,AuthorizeWithoutPolicy:`PLAY0122`,InvalidPolicyReference:`PLAY0123`,InvalidConstraintDeclaration:`PLAY0132`,ConstraintWithoutRule:`PLAY0133`,InvalidConstraintBody:`PLAY0134`,DuplicateConstraintBody:`PLAY0135`,InvalidReactionDeclaration:`PLAY0136`,InvalidReactionTrigger:`PLAY0137`,ReactionWithoutTrigger:`PLAY0138`,InvalidValidateDeclaration:`PLAY0140`,InvalidValidationRule:`PLAY0141`,InvalidRuleName:`PLAY0143`,UnknownRuleImplementationDirective:`PLAY0144`,InvalidDescription:`PLAY0145`,EmptyDescription:`PLAY0146`,DuplicateDescription:`PLAY0147`,TagWithoutValue:`PLAY0148`,InvalidTagValue:`PLAY0149`,UnknownContextPath:`PLAY0153`,UnknownContextCausedByProperty:`PLAY0154`,UnknownContextIdentityProperty:`PLAY0155`,ExpectedCodeFence:`PLAY0163`,UnclosedCodeBlock:`PLAY0164`,DuplicateDeclaration:`PLAY0168`,RepeatedSingularDeclarationAcrossFiles:`PLAY0172`,RepeatedDeclarationAcrossFiles:`PLAY0173`,ConflictingDescriptionAcrossFiles:`PLAY0174`,UnexpectedTokenInAuthorize:`PLAY0184`,UnclosedAuthorizeGroup:`PLAY0185`,InvalidReadModelDeclaration:`PLAY0186`,InvalidInvokesDeclaration:`PLAY0194`,InvalidScopeDeclaration:`PLAY0199`,DuplicateScope:`PLAY0200`,InvalidIntervalTrigger:`PLAY0249`,InvalidScheduleTrigger:`PLAY0250`,DuplicateReactionTrigger:`PLAY0253`,InvalidSpecificationEventSource:`PLAY0275`,DuplicateSpecificationEventSource:`PLAY0276`,InvalidProjectionVariantDeclaration:`PLAY0277`,InvalidEntersOnDeclaration:`PLAY0279`,NestedProjectionVariantNotAllowed:`PLAY0280`,InvalidStructuredValue:`PLAY0291`,DuplicateStructuredValueMember:`PLAY0294`,ConflictingSpecificationActions:`PLAY0358`,InvalidSpecificationEventOrder:`PLAY0359`,InvalidValidationSeverity:`PLAY0368`,VariantRequiresEnteringEvent:`PLAY0382`,DuplicateEventInProjectionScope:`PLAY0801`,DuplicateProjectionVariant:`PLAY0384`,DuplicateVariantEnteringEvent:`PLAY0385`,InvalidSpecificationDenied:`PLAY0388`,DuplicateAuthorizationAcrossFiles:`PLAY0394`,FileConstraintOnlySupportsUniqueness:`PLAY0396`,LegacyInlineCodeFence:`PLAY0397`,InvalidEventGeneration:`PLAY0446`,InvalidFileImport:`PLAY0454`,FileImportMatchesNothing:`PLAY0455`,ImportedFileNotFound:`PLAY0456`,ConflictingImportPlacement:`PLAY0457`,ImportCycle:`PLAY0458`,ModuleInPlacedFile:`PLAY0459`,UnexpectedInPlacedFile:`PLAY0460`,InvalidSpecificationClock:`PLAY0461`,InvalidSpecificationTrigger:`PLAY0462`,InvalidSpecificationCapture:`PLAY0463`,InvalidSpecificationQueryAction:`PLAY0464`,MismatchedSpecificationQueryResult:`PLAY0465`,UnknownSpecificationQueryArgument:`PLAY0468`,InvalidSpecificationQuery:`PLAY0265`,UnknownSpecificationQueryDirective:`PLAY0266`,DuplicateSpecificationQueryArguments:`PLAY0267`,InvalidAbsentReadModelStep:`PLAY0453`,LegacyOptionalSuffix:`PLAY0479`,InvalidOptionalModifierOrder:`PLAY0480`,OptionalReadsNotSupported:`PLAY0481`,InvalidSpecificationCaller:`PLAY0386`,DuplicateSpecificationCallerOrDenied:`PLAY0387`,GeneratedPropertyOutsideCommand:`PLAY0482`,InvalidGeneratedType:`PLAY0483`,InvalidGeneratedModifierOrder:`PLAY0484`,DuplicateEventSubject:`PLAY0590`,InvalidSubjectType:`PLAY0591`,ProtectedSubjectType:`PLAY0592`,InvalidSubjectOwner:`PLAY0593`,ReadModelSubjectNotSupported:`PLAY0594`,InvalidSubjectModifierOrder:`PLAY0595`,GeneratedPropertySuppliedAsInput:`PLAY0485`,InvalidCommandResponse:`PLAY0486`,InvalidResponseSource:`PLAY0487`,DuplicateResponseField:`PLAY0488`,InvalidResponseShape:`PLAY0489`,InvalidGeneratedFixture:`PLAY0490`,InvalidReturnExpectation:`PLAY0491`,InvalidImplementationBlock:`PLAY0492`,InvalidImplementationHint:`PLAY0493`,ConflictingImplementationSources:`PLAY0494`,UnknownType:`PLAY0165`,InvalidSystemDeclaration:`PLAY0495`,InvalidOperationDeclaration:`PLAY0496`,InvalidProductionReference:`PLAY0497`,ProductionDeclarationCollision:`PLAY0498`,OperationOutsideCommand:`PLAY0499`,InvalidSystemReference:`PLAY0500`,InvalidOperationMapping:`PLAY0501`,InvalidOperationSpecification:`PLAY0502`,InvalidCaptureDeclaration:`PLAY0078`,UnknownCaptureDirective:`PLAY0079`,InvalidMapEntry:`PLAY0080`,InvalidTranslation:`PLAY0081`,InvalidSplitDeclaration:`PLAY0082`,InvalidSplitTarget:`PLAY0083`,InvalidAppendDeclaration:`PLAY0084`,UnknownAppendDirective:`PLAY0085`,WhenWithoutTrigger:`PLAY0086`,InvalidWhenClause:`PLAY0087`,InvalidWhenTransitionClause:`PLAY0088`,MixedWhenCombinators:`PLAY0089`,WhenCombinatorWithoutProperty:`PLAY0090`,UnknownCaptureBlockDirective:`PLAY0091`,InvalidCompositeKeyPart:`PLAY0072`,TemplateInCompositeKey:`PLAY0073`,EmptyCompositeKey:`PLAY0074`,InvalidProjectionMapping:`PLAY0075`,ExpectedLiteralValue:`PLAY0150`,InvalidExpression:`PLAY0152`,UnterminatedInterpolation:`PLAY0157`,UnterminatedTemplateExpression:`PLAY0156`,ProjectionDocumentWithoutProjection:`PLAY0055`,CaptureDocumentWithoutCapture:`PLAY0077`,SpecificationDocumentWithoutSpecification:`PLAY0093`,InvalidSeedDeclaration:`PLAY0128`,InvalidSeedGroup:`PLAY0129`,InvalidSeedEvent:`PLAY0130`,InvalidSeedPropertyAssignment:`PLAY0131`,InvalidPolicyDeclaration:`PLAY0112`,UnknownPolicyDirective:`PLAY0113`,PolicyWithoutRequirement:`PLAY0114`,ExpectedRoleName:`PLAY0118`,ExpectedClaimName:`PLAY0119`,ExpectedClaimMatches:`PLAY0120`,ExpectedClaimMatchTarget:`PLAY0121`,MixedPolicyImplementation:`PLAY0440`,RepeatedPolicyRequirement:`PLAY0441`,UnexpectedTokenInPolicyCondition:`PLAY0115`,ExpectedPolicyCondition:`PLAY0116`,UnclosedPolicyConditionGroup:`PLAY0117`,UnexpectedTokenInCondition:`PLAY0158`,ExpectedCondition:`PLAY0159`,ExpectedComparisonOperator:`PLAY0161`,ExpectedComparisonValue:`PLAY0162`,InvalidActionAlternative:`PLAY0341`,GuardedActionWithoutAlternatives:`PLAY0342`,MisplacedActionOtherwise:`PLAY0343`,UnsupportedActionConditionOperand:`PLAY0344`,InvalidInteractionArgument:`PLAY0319`,UnclosedConditionGroup:`PLAY0160`,InvalidNumericDirective:`PLAY0508`,DuplicateNumericDirective:`PLAY0509`,LateNumericDirective:`PLAY0510`,InexactNumericLiteral:`PLAY0511`,MixedNumericModes:`PLAY0512`,IncompatibleNumericSource:`PLAY0513`,EventFromLaterSlice:`PLAY0516`,TimelineCycleGroup:`PLAY0517`,InvalidSpecificationExample:`PLAY0518`,DuplicateSpecificationAssignment:`PLAY0519`,UnresolvedSpecificationExampleType:`PLAY0520`,SpecificationExampleNameCollision:`PLAY0521`,SpecificationExampleKindMismatch:`PLAY0522`,InvalidSpecificationExampleValue:`PLAY0523`,MissingSpecificationProperty:`PLAY0524`,UnadmittedSpecificationExampleValue:`PLAY0525`,InvalidSpecificationExampleBody:`PLAY0526`,AmbiguousReference:`PLAY0198`,InvalidSpecificationStream:`PLAY0547`,SpecificationStreamOnCommand:`PLAY0548`,InvalidSpecificationStreamRoute:`PLAY0549`,InvalidSpecificationStreamEventSource:`PLAY0550`,SpecificationStreamContradictsCommand:`PLAY0551`,InvalidDependencyTarget:`PLAY0554`,RepeatedDependencyDeclaration:`PLAY0555`,UndeclaredDependency:`PLAY0552`,UnusedDependencyDeclaration:`PLAY0553`,MutualDependencyDeclarations:`PLAY0556`,AuthorizationRefusalWithoutIdentity:`PLAY0557`,InvalidDocumentation:`PLAY0558`,ConflictingDocumentationAcrossFiles:`PLAY0559`,InvalidSpecificationCallerPersona:`PLAY0572`,UnsynthesizablePersonaCaller:`PLAY0573`,PersonaWithoutGate:`PLAY0574`,GateWithoutPersona:`PLAY0575`,AmbiguousPersonaCaller:`PLAY0576`,InvalidSpecificationParameter:`PLAY0577`,InvalidSpecificationCase:`PLAY0578`,DuplicateSpecificationParameter:`PLAY0579`,DuplicateSpecificationCase:`PLAY0580`,IncompleteSpecificationTable:`PLAY0581`,InvalidSpecificationCaseAssignment:`PLAY0582`,InvalidSpecificationCaseValue:`PLAY0583`,InvalidSpecificationCaseReference:`PLAY0584`,OptionalSpecificationParameterTarget:`PLAY0585`,SpecificationCaseNameCollision:`PLAY0586`,IncompatibleSpecificationParameterType:`PLAY0587`,UnusedSpecificationParameter:`PLAY0588`,SingularSpecificationTableExpansion:`PLAY0589`,UnsupportedInteractionAlternatives:`PLAY0560`,MixedInteractionAlternatives:`PLAY0561`,InteractionAlternativeWithoutActions:`PLAY0562`,InlineInteractionAlternative:`PLAY0563`,LegacyInteractionWhere:`PLAY0564`,InvalidEventSourceDeclaration:`PLAY0503`,InvalidCommandStream:`PLAY0504`,AmbiguousCommandStream:`PLAY0505`,UnsupportedStreamIdType:`PLAY0506`,RedundantSourceStreamId:`PLAY0507`,UnknownEvent:`PLAY0166`,UnknownReadModelProperty:`PLAY0514`,PiiNotSupportedOnIdentifier:`PLAY0515`,HandlerWithoutImplementation:`PLAY0045`,UnknownHandlerDirective:`PLAY0046`,CommandWithProducesAndHandler:`PLAY0035`,AbsoluteFileReference:`PLAY0264`,InvalidTriggerData:`PLAY0246`,InvalidReadModelKey:`PLAY0660`,IncompleteReadModelKey:`PLAY0661`,InvalidReadModelKeyLookup:`PLAY0662`,ProductionRouteOutsideCommand:`PLAY0663`,RedundantProductionRoute:`PLAY0664`,InvalidObserverFilter:`PLAY0665`,ObserverFilterExcludesEveryProducer:`PLAY0666`,ReducerIdentityMismatch:`PLAY0690`,InvalidReactionBatchesDeclaration:`PLAY0693`,InvalidCommandReadsDeclaration:`PLAY0780`,GenerationSupportBudgetExceeded:`PLAY0691`,EmptyGenerationSupport:`PLAY0692`,MixedEnumerationNumbering:`PLAY0667`,DuplicateEnumerationNumber:`PLAY0668`,EnumerationNumberOutsideInt32:`PLAY0669`,MalformedEnumerationNumber:`PLAY0670`,UnpinnedStoredEnumeration:`PLAY0671`,ReadsWithChildren:`PLAY0451`,UnknownGenerationStrategy:`PLAY0672`,InvalidGenerationArgument:`PLAY0673`,InvalidGenerationModifier:`PLAY0674`,DuplicateGenerationModifier:`PLAY0675`,DuplicateGeneration:`PLAY0676`,InvalidGenerationPrimitive:`PLAY0677`,InvalidGenerationPrefix:`PLAY0678`,InvalidGenerationAlphabet:`PLAY0679`,InvalidTypeIdPrefix:`PLAY0680`,GenerationSizeOutsideRange:`PLAY0681`,ReservedSequenceGeneration:`PLAY0682`,LowGenerationEntropy:`PLAY0683`,LowGeneratedIdentifierEntropy:`PLAY0684`,ResponseNameUsedOnFailure:`PLAY0685`,EventIdPinNotCarriedToRenderers:`PLAY0686`,InvalidToolbarButton:`PLAY0760`};export{e as DiagnosticCodes};
|
|
1
|
+
const e={UnknownMatchPattern:`PLAY0366`,InvalidMatchPattern:`PLAY0367`,PatternOutsidePortableMatchDialect:`PLAY0699`,DeprecatedStudioTextRulePattern:`PLAY0787`,InvalidIdentityDeclaration:`PLAY0633`,DuplicateIdentity:`PLAY0634`,InvalidIdentityDetail:`PLAY0635`,UnknownIdentitySource:`PLAY0636`,IdentityDetailWithoutSource:`PLAY0637`,IdentitySourceWithBody:`PLAY0638`,DuplicateIdentityDetail:`PLAY0639`,BuiltInIdentityDetail:`PLAY0640`,UnknownIdentityQuery:`PLAY0641`,InvalidIdentityQuery:`PLAY0642`,IdentityQueryWithoutKey:`PLAY0643`,InvalidIdentityQueryKey:`PLAY0644`,IdentityQueryAuthorizationDependency:`PLAY0645`,IdentityQueryTypeMismatch:`PLAY0646`,InvalidReactionIdentity:`PLAY0647`,GatedInvocationWithoutIdentity:`PLAY0648`,UnusedReactionIdentity:`PLAY0649`,UnusedReactionRole:`PLAY0650`,UnsatisfiedReactionIdentity:`PLAY0651`,ReactionPrivilegeEscalation:`PLAY0652`,CommandProducesPublicEvent:`PLAY0607`,PublicEventRequiresOutboundTranslation:`PLAY0608`,OutboundPublicEventCount:`PLAY0609`,ForeignPublicEventConsumer:`PLAY0610`,OutboundTranslationInput:`PLAY0611`,InboundTranslationOutput:`PLAY0612`,ForeignPublicEventProduced:`PLAY0613`,PublicTranslationRequiresDirection:`PLAY0614`,TranslationConstructDirection:`PLAY0615`,InboundTranslationInput:`PLAY0616`,OutboundTranslationOutput:`PLAY0617`,EventTargetOutsideOutboundTranslation:`PLAY0618`,EventsSourceOutsideInboundTranslation:`PLAY0619`,InvalidCaptureEventsSource:`PLAY0620`,CaptureEventsFromSeveralOrigins:`PLAY0687`,DirectionlessTranslationReactsToOwnCapture:`PLAY0694`,PendingIntentWithOtherHandler:`PLAY0698`,CommandHandlerRequiresAttachment:`PLAY0800`,DescribedCommandNotImplemented:`PLAY0695`,DescribedCommandWithoutProductions:`PLAY0696`,DescribedCommandCardinalityNotAdmitted:`PLAY0697`,CaptureEventsKeyNotRequired:`PLAY0700`,CaptureEventsRecordFixture:`PLAY0701`,RefutedGeneratedConceptRule:`PLAY0688`,UnprovenGeneratedConceptRule:`PLAY0689`,InvalidExposureDeclaration:`PLAY0621`,UnknownExposureOwner:`PLAY0622`,ReExposureCycle:`PLAY0623`,ReExposureBroken:`PLAY0624`,InvalidInstanceContribution:`PLAY0625`,UnknownContributionInstance:`PLAY0626`,ContributionNotExposed:`PLAY0627`,ContributionTypeMismatch:`PLAY0628`,UnknownTemplateContentSlot:`PLAY0629`,UnknownNavigationOutlet:`PLAY0630`,TemplateScopeMismatch:`PLAY0631`,IncompatibleComponentPackage:`PLAY0632`,UnknownNavigationDestination:`PLAY0654`,UnknownScreenContributionPoint:`PLAY0655`,TemplateNestingCycle:`PLAY0656`,TemplateCategoryMissing:`PLAY0720`,InvalidTemplateVersionRange:`PLAY0721`,LegacyProfileLayout:`PLAY0791`,UnknownTemplateBlueprint:`PLAY0722`,DuplicateComplianceMarker:`PLAY0653`,LegacyComplianceMarker:`PLAY0565`,UnknownComplianceMarker:`PLAY0566`,InvalidSecretScope:`PLAY0567`,DuplicateSecretScope:`PLAY0568`,SecretScopeIgnoredForPii:`PLAY0569`,InvalidPersonalDataQualifier:`PLAY0570`,DuplicateSpecialCategory:`PLAY0571`,InvalidPurposeDeclaration:`PLAY0596`,InvalidPurposeVocabulary:`PLAY0597`,DuplicatePurposeField:`PLAY0598`,DuplicatePurposeDeclaration:`PLAY0599`,UnknownPurpose:`PLAY0600`,PurposeInterestMismatch:`PLAY0601`,PersonalDataWithoutPurpose:`PLAY0602`,SpecialDataWithoutCondition:`PLAY0603`,CriminalDataWithoutAuthorization:`PLAY0604`,PurposeWithoutBasis:`PLAY0605`,UnusedPurpose:`PLAY0606`,ConflictingScreenDataBinding:`PLAY0530`,ScreenDataQueryMismatch:`PLAY0531`,ActionWithoutInputSurface:`PLAY0532`,CommandWithoutInputSurface:`PLAY0533`,ReadModelFieldWithoutOrigin:`PLAY0534`,QueryParameterNotHeldByView:`PLAY0535`,UnconsumedEvent:`PLAY0536`,UnreachableScreen:`PLAY0537`,UnknownActionSubjectField:`PLAY0345`,UnresolvedActionSubject:`PLAY0346`,UnreachableActionAlternative:`PLAY0347`,UnknownActionArgumentProperty:`PLAY0348`,UnreachableRefusalBranch:`PLAY0540`,InvalidRefusalValue:`PLAY0541`,UnknownRefusalConstraint:`PLAY0542`,UnknownRedeliveryReaction:`PLAY0544`,IndeterminateNegatedClaimTarget:`PLAY0546`,InvalidRefusalBranch:`PLAY0538`,InvalidRefusalBranchBody:`PLAY0539`,UnmatchedRedeliveredOccurrence:`PLAY0543`,InvalidNoEventsExpectation:`PLAY0545`,InvalidProducesDeclaration:`PLAY0042`,ProducesWhenWithoutEvent:`PLAY0043`,InvalidPropertyMapping:`PLAY0044`,DuplicateProducesTarget:`PLAY0193`,EventSourceIdInPayload:`PLAY0469`,ExplicitProducesTargetsRequired:`PLAY0470`,RedundantEventId:`PLAY0471`,InvalidEventId:`PLAY0472`,InlineEventCollision:`PLAY0473`,InlineEventOutsideCommand:`PLAY0474`,InlineEventGeneration:`PLAY0475`,ReservedProductionMetadata:`PLAY0476`,InvalidEventDocumentation:`PLAY0477`,OmittedProductionDestination:`PLAY0478`,UnknownConstraintProperty:`PLAY0391`,UnknownTopLevelConstruct:`PLAY0001`,InvalidDomainDeclaration:`PLAY0002`,DuplicateDomain:`PLAY0003`,DomainNotFirst:`PLAY0004`,InvalidImportDeclaration:`PLAY0005`,TabIndentation:`PLAY0006`,InvalidConceptDeclaration:`PLAY0007`,UnknownPrimitiveType:`PLAY0008`,InvalidEnumerationValue:`PLAY0009`,UnknownConceptDirective:`PLAY0010`,ValidateReadAsEnumerationBlock:`PLAY0011`,AttributeReasonWithoutAttribute:`PLAY0012`,DuplicateAttributeReason:`PLAY0013`,InvalidTypeDeclaration:`PLAY0014`,TypeWithoutProperties:`PLAY0015`,InvalidPropertyDeclaration:`PLAY0016`,IdentifierOutsideCommand:`PLAY0017`,InvalidEventDeclaration:`PLAY0018`,IdentifierOnEventProperty:`PLAY0019`,TagPropertyReadAsTag:`PLAY0020`,InvalidModuleDeclaration:`PLAY0021`,UnknownModuleDirective:`PLAY0022`,InvalidFeatureDeclaration:`PLAY0023`,UnknownFeatureDirective:`PLAY0024`,InvalidSliceDeclaration:`PLAY0027`,UnknownSliceType:`PLAY0028`,UnknownSliceDirective:`PLAY0029`,InvalidPersonaDeclaration:`PLAY0030`,InvalidPersonaPolicyReference:`PLAY0031`,UnknownPersonaDirective:`PLAY0032`,InvalidCommandDeclaration:`PLAY0033`,UnknownCommandDirective:`PLAY0034`,DuplicateCommandIdentifier:`PLAY0036`,InvalidQueryDeclaration:`PLAY0047`,UnknownQueryDirective:`PLAY0048`,InvalidQueryParameter:`PLAY0049`,InvalidProjectionDeclaration:`PLAY0056`,EmptyProjection:`PLAY0057`,UnknownProjectionDirective:`PLAY0058`,FromWithoutEvent:`PLAY0061`,InvalidEventReference:`PLAY0062`,InvalidJoinDeclaration:`PLAY0063`,JoinWithoutEvent:`PLAY0064`,InvalidChildrenDeclaration:`PLAY0065`,InvalidNestedDeclaration:`PLAY0066`,NestedBlockWithoutFrom:`PLAY0067`,InvalidRemoveDeclaration:`PLAY0068`,UnknownRemoveDirective:`PLAY0069`,InvalidClearDeclaration:`PLAY0070`,ClearWithOutsideNestedBlock:`PLAY0071`,InvalidSpecificationDeclaration:`PLAY0094`,UnknownSpecificationDirective:`PLAY0095`,InvalidSpecificationWhen:`PLAY0096`,DuplicateSpecificationWhen:`PLAY0097`,InvalidThenError:`PLAY0098`,InvalidReadModelStep:`PLAY0099`,InvalidEventStep:`PLAY0100`,InvalidSpecificationValue:`PLAY0101`,InvalidScreenDeclaration:`PLAY0102`,UnknownScreenDirective:`PLAY0103`,InvalidDataDirective:`PLAY0104`,InvalidActionDirective:`PLAY0105`,UnknownActionDirective:`PLAY0106`,InvalidNavigation:`PLAY0107`,InvalidScreenLayoutSlot:`PLAY0108`,UnknownLayoutDirective:`PLAY0026`,InvalidTitleDirective:`PLAY0109`,UnknownTableDirective:`PLAY0110`,UnknownSummaryDirective:`PLAY0111`,AuthorizeWithoutPolicy:`PLAY0122`,InvalidPolicyReference:`PLAY0123`,InvalidConstraintDeclaration:`PLAY0132`,ConstraintWithoutRule:`PLAY0133`,InvalidConstraintBody:`PLAY0134`,DuplicateConstraintBody:`PLAY0135`,InvalidReactionDeclaration:`PLAY0136`,InvalidReactionTrigger:`PLAY0137`,ReactionWithoutTrigger:`PLAY0138`,InvalidValidateDeclaration:`PLAY0140`,InvalidValidationRule:`PLAY0141`,InvalidRuleName:`PLAY0143`,UnknownRuleImplementationDirective:`PLAY0144`,InvalidDescription:`PLAY0145`,EmptyDescription:`PLAY0146`,DuplicateDescription:`PLAY0147`,TagWithoutValue:`PLAY0148`,InvalidTagValue:`PLAY0149`,UnknownContextPath:`PLAY0153`,UnknownContextCausedByProperty:`PLAY0154`,UnknownContextIdentityProperty:`PLAY0155`,ExpectedCodeFence:`PLAY0163`,UnclosedCodeBlock:`PLAY0164`,DuplicateDeclaration:`PLAY0168`,RepeatedSingularDeclarationAcrossFiles:`PLAY0172`,RepeatedDeclarationAcrossFiles:`PLAY0173`,ConflictingDescriptionAcrossFiles:`PLAY0174`,UnexpectedTokenInAuthorize:`PLAY0184`,UnclosedAuthorizeGroup:`PLAY0185`,InvalidReadModelDeclaration:`PLAY0186`,InvalidInvokesDeclaration:`PLAY0194`,InvalidScopeDeclaration:`PLAY0199`,DuplicateScope:`PLAY0200`,InvalidIntervalTrigger:`PLAY0249`,InvalidScheduleTrigger:`PLAY0250`,DuplicateReactionTrigger:`PLAY0253`,InvalidSpecificationEventSource:`PLAY0275`,DuplicateSpecificationEventSource:`PLAY0276`,InvalidProjectionVariantDeclaration:`PLAY0277`,InvalidEntersOnDeclaration:`PLAY0279`,NestedProjectionVariantNotAllowed:`PLAY0280`,InvalidStructuredValue:`PLAY0291`,DuplicateStructuredValueMember:`PLAY0294`,ConflictingSpecificationActions:`PLAY0358`,InvalidSpecificationEventOrder:`PLAY0359`,InvalidValidationSeverity:`PLAY0368`,VariantRequiresEnteringEvent:`PLAY0382`,DuplicateEventInProjectionScope:`PLAY0801`,ReservedStoredName:`PLAY0802`,DuplicateProjectionVariant:`PLAY0384`,DuplicateVariantEnteringEvent:`PLAY0385`,InvalidSpecificationDenied:`PLAY0388`,DuplicateAuthorizationAcrossFiles:`PLAY0394`,FileConstraintOnlySupportsUniqueness:`PLAY0396`,LegacyInlineCodeFence:`PLAY0397`,InvalidEventGeneration:`PLAY0446`,InvalidFileImport:`PLAY0454`,FileImportMatchesNothing:`PLAY0455`,ImportedFileNotFound:`PLAY0456`,ConflictingImportPlacement:`PLAY0457`,ImportCycle:`PLAY0458`,ModuleInPlacedFile:`PLAY0459`,UnexpectedInPlacedFile:`PLAY0460`,InvalidSpecificationClock:`PLAY0461`,InvalidSpecificationTrigger:`PLAY0462`,InvalidSpecificationCapture:`PLAY0463`,InvalidSpecificationQueryAction:`PLAY0464`,MismatchedSpecificationQueryResult:`PLAY0465`,UnknownSpecificationQueryArgument:`PLAY0468`,InvalidSpecificationQuery:`PLAY0265`,UnknownSpecificationQueryDirective:`PLAY0266`,DuplicateSpecificationQueryArguments:`PLAY0267`,InvalidAbsentReadModelStep:`PLAY0453`,LegacyOptionalSuffix:`PLAY0479`,InvalidOptionalModifierOrder:`PLAY0480`,OptionalReadsNotSupported:`PLAY0481`,InvalidSpecificationCaller:`PLAY0386`,DuplicateSpecificationCallerOrDenied:`PLAY0387`,GeneratedPropertyOutsideCommand:`PLAY0482`,InvalidGeneratedType:`PLAY0483`,InvalidGeneratedModifierOrder:`PLAY0484`,DuplicateEventSubject:`PLAY0590`,InvalidSubjectType:`PLAY0591`,ProtectedSubjectType:`PLAY0592`,InvalidSubjectOwner:`PLAY0593`,ReadModelSubjectNotSupported:`PLAY0594`,InvalidSubjectModifierOrder:`PLAY0595`,GeneratedPropertySuppliedAsInput:`PLAY0485`,InvalidCommandResponse:`PLAY0486`,InvalidResponseSource:`PLAY0487`,DuplicateResponseField:`PLAY0488`,InvalidResponseShape:`PLAY0489`,InvalidGeneratedFixture:`PLAY0490`,InvalidReturnExpectation:`PLAY0491`,InvalidImplementationBlock:`PLAY0492`,InvalidImplementationHint:`PLAY0493`,ConflictingImplementationSources:`PLAY0494`,UnknownType:`PLAY0165`,InvalidSystemDeclaration:`PLAY0495`,InvalidOperationDeclaration:`PLAY0496`,InvalidProductionReference:`PLAY0497`,ProductionDeclarationCollision:`PLAY0498`,OperationOutsideCommand:`PLAY0499`,InvalidSystemReference:`PLAY0500`,InvalidOperationMapping:`PLAY0501`,InvalidOperationSpecification:`PLAY0502`,InvalidCaptureDeclaration:`PLAY0078`,UnknownCaptureDirective:`PLAY0079`,InvalidMapEntry:`PLAY0080`,InvalidTranslation:`PLAY0081`,InvalidSplitDeclaration:`PLAY0082`,InvalidSplitTarget:`PLAY0083`,InvalidAppendDeclaration:`PLAY0084`,UnknownAppendDirective:`PLAY0085`,WhenWithoutTrigger:`PLAY0086`,InvalidWhenClause:`PLAY0087`,InvalidWhenTransitionClause:`PLAY0088`,MixedWhenCombinators:`PLAY0089`,WhenCombinatorWithoutProperty:`PLAY0090`,UnknownCaptureBlockDirective:`PLAY0091`,InvalidCompositeKeyPart:`PLAY0072`,TemplateInCompositeKey:`PLAY0073`,EmptyCompositeKey:`PLAY0074`,InvalidProjectionMapping:`PLAY0075`,ExpectedLiteralValue:`PLAY0150`,InvalidExpression:`PLAY0152`,UnterminatedInterpolation:`PLAY0157`,UnterminatedTemplateExpression:`PLAY0156`,ProjectionDocumentWithoutProjection:`PLAY0055`,CaptureDocumentWithoutCapture:`PLAY0077`,SpecificationDocumentWithoutSpecification:`PLAY0093`,InvalidSeedDeclaration:`PLAY0128`,InvalidSeedGroup:`PLAY0129`,InvalidSeedEvent:`PLAY0130`,InvalidSeedPropertyAssignment:`PLAY0131`,InvalidPolicyDeclaration:`PLAY0112`,UnknownPolicyDirective:`PLAY0113`,PolicyWithoutRequirement:`PLAY0114`,ExpectedRoleName:`PLAY0118`,ExpectedClaimName:`PLAY0119`,ExpectedClaimMatches:`PLAY0120`,ExpectedClaimMatchTarget:`PLAY0121`,MixedPolicyImplementation:`PLAY0440`,RepeatedPolicyRequirement:`PLAY0441`,UnexpectedTokenInPolicyCondition:`PLAY0115`,ExpectedPolicyCondition:`PLAY0116`,UnclosedPolicyConditionGroup:`PLAY0117`,UnexpectedTokenInCondition:`PLAY0158`,ExpectedCondition:`PLAY0159`,ExpectedComparisonOperator:`PLAY0161`,ExpectedComparisonValue:`PLAY0162`,InvalidActionAlternative:`PLAY0341`,GuardedActionWithoutAlternatives:`PLAY0342`,MisplacedActionOtherwise:`PLAY0343`,UnsupportedActionConditionOperand:`PLAY0344`,InvalidInteractionArgument:`PLAY0319`,UnclosedConditionGroup:`PLAY0160`,InvalidNumericDirective:`PLAY0508`,DuplicateNumericDirective:`PLAY0509`,LateNumericDirective:`PLAY0510`,InexactNumericLiteral:`PLAY0511`,MixedNumericModes:`PLAY0512`,IncompatibleNumericSource:`PLAY0513`,EventFromLaterSlice:`PLAY0516`,TimelineCycleGroup:`PLAY0517`,InvalidSpecificationExample:`PLAY0518`,DuplicateSpecificationAssignment:`PLAY0519`,UnresolvedSpecificationExampleType:`PLAY0520`,SpecificationExampleNameCollision:`PLAY0521`,SpecificationExampleKindMismatch:`PLAY0522`,InvalidSpecificationExampleValue:`PLAY0523`,MissingSpecificationProperty:`PLAY0524`,UnadmittedSpecificationExampleValue:`PLAY0525`,InvalidSpecificationExampleBody:`PLAY0526`,AmbiguousReference:`PLAY0198`,InvalidSpecificationStream:`PLAY0547`,SpecificationStreamOnCommand:`PLAY0548`,InvalidSpecificationStreamRoute:`PLAY0549`,InvalidSpecificationStreamEventSource:`PLAY0550`,SpecificationStreamContradictsCommand:`PLAY0551`,InvalidDependencyTarget:`PLAY0554`,RepeatedDependencyDeclaration:`PLAY0555`,UndeclaredDependency:`PLAY0552`,UnusedDependencyDeclaration:`PLAY0553`,MutualDependencyDeclarations:`PLAY0556`,AuthorizationRefusalWithoutIdentity:`PLAY0557`,InvalidDocumentation:`PLAY0558`,ConflictingDocumentationAcrossFiles:`PLAY0559`,InvalidSpecificationCallerPersona:`PLAY0572`,UnsynthesizablePersonaCaller:`PLAY0573`,PersonaWithoutGate:`PLAY0574`,GateWithoutPersona:`PLAY0575`,AmbiguousPersonaCaller:`PLAY0576`,InvalidSpecificationParameter:`PLAY0577`,InvalidSpecificationCase:`PLAY0578`,DuplicateSpecificationParameter:`PLAY0579`,DuplicateSpecificationCase:`PLAY0580`,IncompleteSpecificationTable:`PLAY0581`,InvalidSpecificationCaseAssignment:`PLAY0582`,InvalidSpecificationCaseValue:`PLAY0583`,InvalidSpecificationCaseReference:`PLAY0584`,OptionalSpecificationParameterTarget:`PLAY0585`,SpecificationCaseNameCollision:`PLAY0586`,IncompatibleSpecificationParameterType:`PLAY0587`,UnusedSpecificationParameter:`PLAY0588`,SingularSpecificationTableExpansion:`PLAY0589`,UnsupportedInteractionAlternatives:`PLAY0560`,MixedInteractionAlternatives:`PLAY0561`,InteractionAlternativeWithoutActions:`PLAY0562`,InlineInteractionAlternative:`PLAY0563`,LegacyInteractionWhere:`PLAY0564`,InvalidEventSourceDeclaration:`PLAY0503`,InvalidCommandStream:`PLAY0504`,AmbiguousCommandStream:`PLAY0505`,UnsupportedStreamIdType:`PLAY0506`,RedundantSourceStreamId:`PLAY0507`,UnknownEvent:`PLAY0166`,UnknownReadModelProperty:`PLAY0514`,PiiNotSupportedOnIdentifier:`PLAY0515`,HandlerWithoutImplementation:`PLAY0045`,UnknownHandlerDirective:`PLAY0046`,CommandWithProducesAndHandler:`PLAY0035`,AbsoluteFileReference:`PLAY0264`,InvalidTriggerData:`PLAY0246`,InvalidReadModelKey:`PLAY0660`,IncompleteReadModelKey:`PLAY0661`,InvalidReadModelKeyLookup:`PLAY0662`,ProductionRouteOutsideCommand:`PLAY0663`,RedundantProductionRoute:`PLAY0664`,InvalidObserverFilter:`PLAY0665`,ObserverFilterExcludesEveryProducer:`PLAY0666`,ReducerIdentityMismatch:`PLAY0690`,InvalidReactionBatchesDeclaration:`PLAY0693`,InvalidCommandReadsDeclaration:`PLAY0780`,GenerationSupportBudgetExceeded:`PLAY0691`,EmptyGenerationSupport:`PLAY0692`,MixedEnumerationNumbering:`PLAY0667`,DuplicateEnumerationNumber:`PLAY0668`,EnumerationNumberOutsideInt32:`PLAY0669`,MalformedEnumerationNumber:`PLAY0670`,UnpinnedStoredEnumeration:`PLAY0671`,ReadsWithChildren:`PLAY0451`,UnknownGenerationStrategy:`PLAY0672`,InvalidGenerationArgument:`PLAY0673`,InvalidGenerationModifier:`PLAY0674`,DuplicateGenerationModifier:`PLAY0675`,DuplicateGeneration:`PLAY0676`,InvalidGenerationPrimitive:`PLAY0677`,InvalidGenerationPrefix:`PLAY0678`,InvalidGenerationAlphabet:`PLAY0679`,InvalidTypeIdPrefix:`PLAY0680`,GenerationSizeOutsideRange:`PLAY0681`,ReservedSequenceGeneration:`PLAY0682`,LowGenerationEntropy:`PLAY0683`,LowGeneratedIdentifierEntropy:`PLAY0684`,ResponseNameUsedOnFailure:`PLAY0685`,EventIdPinNotCarriedToRenderers:`PLAY0686`,InvalidToolbarButton:`PLAY0760`};export{e as DiagnosticCodes};
|
|
2
2
|
//# sourceMappingURL=DiagnosticCodes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiagnosticCodes.js","names":["DiagnosticCodes"],"sources":["../../../../../../Compiler/Diagnostics/DiagnosticCodes.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// Shared diagnostic names, including the explicitly C#-only checks below. Catalogue membership does\n// not imply TypeScript validation support; see Documentation/screenplay/editor-diagnostics.md.\nexport const DiagnosticCodes = {\n UnknownMatchPattern: 'PLAY0366',\n InvalidMatchPattern: 'PLAY0367',\n PatternOutsidePortableMatchDialect: 'PLAY0699',\n DeprecatedStudioTextRulePattern: 'PLAY0787',\n InvalidIdentityDeclaration: 'PLAY0633',\n DuplicateIdentity: 'PLAY0634',\n InvalidIdentityDetail: 'PLAY0635',\n UnknownIdentitySource: 'PLAY0636',\n IdentityDetailWithoutSource: 'PLAY0637',\n IdentitySourceWithBody: 'PLAY0638',\n DuplicateIdentityDetail: 'PLAY0639',\n BuiltInIdentityDetail: 'PLAY0640',\n UnknownIdentityQuery: 'PLAY0641',\n InvalidIdentityQuery: 'PLAY0642',\n IdentityQueryWithoutKey: 'PLAY0643',\n InvalidIdentityQueryKey: 'PLAY0644',\n IdentityQueryAuthorizationDependency: 'PLAY0645',\n IdentityQueryTypeMismatch: 'PLAY0646',\n InvalidReactionIdentity: 'PLAY0647',\n GatedInvocationWithoutIdentity: 'PLAY0648',\n UnusedReactionIdentity: 'PLAY0649',\n UnusedReactionRole: 'PLAY0650',\n UnsatisfiedReactionIdentity: 'PLAY0651',\n ReactionPrivilegeEscalation: 'PLAY0652',\n // C#-only whole-model public event boundaries; membership is not TypeScript validation support.\n CommandProducesPublicEvent: 'PLAY0607',\n PublicEventRequiresOutboundTranslation: 'PLAY0608',\n OutboundPublicEventCount: 'PLAY0609',\n ForeignPublicEventConsumer: 'PLAY0610',\n OutboundTranslationInput: 'PLAY0611',\n InboundTranslationOutput: 'PLAY0612',\n ForeignPublicEventProduced: 'PLAY0613',\n PublicTranslationRequiresDirection: 'PLAY0614',\n TranslationConstructDirection: 'PLAY0615',\n InboundTranslationInput: 'PLAY0616',\n OutboundTranslationOutput: 'PLAY0617',\n EventTargetOutsideOutboundTranslation: 'PLAY0618',\n EventsSourceOutsideInboundTranslation: 'PLAY0619',\n InvalidCaptureEventsSource: 'PLAY0620',\n CaptureEventsFromSeveralOrigins: 'PLAY0687',\n DirectionlessTranslationReactsToOwnCapture: 'PLAY0694',\n PendingIntentWithOtherHandler: 'PLAY0698',\n CommandHandlerRequiresAttachment: 'PLAY0800', // C# only\n DescribedCommandNotImplemented: 'PLAY0695', // C# only\n DescribedCommandWithoutProductions: 'PLAY0696', // C# only\n DescribedCommandCardinalityNotAdmitted: 'PLAY0697', // C# only\n CaptureEventsKeyNotRequired: 'PLAY0700',\n CaptureEventsRecordFixture: 'PLAY0701',\n RefutedGeneratedConceptRule: 'PLAY0688',\n UnprovenGeneratedConceptRule: 'PLAY0689',\n // Syntax shared with C#; the reference checks (owners, instances, cycles, outlets, scopes, packages) are C#-only.\n InvalidExposureDeclaration: 'PLAY0621',\n UnknownExposureOwner: 'PLAY0622',\n ReExposureCycle: 'PLAY0623',\n ReExposureBroken: 'PLAY0624',\n InvalidInstanceContribution: 'PLAY0625',\n UnknownContributionInstance: 'PLAY0626',\n ContributionNotExposed: 'PLAY0627',\n ContributionTypeMismatch: 'PLAY0628',\n UnknownTemplateContentSlot: 'PLAY0629',\n UnknownNavigationOutlet: 'PLAY0630',\n TemplateScopeMismatch: 'PLAY0631',\n IncompatibleComponentPackage: 'PLAY0632',\n UnknownNavigationDestination: 'PLAY0654',\n UnknownScreenContributionPoint: 'PLAY0655',\n TemplateNestingCycle: 'PLAY0656',\n TemplateCategoryMissing: 'PLAY0720', // C# only: template declarations are not modeled by this compiler.\n InvalidTemplateVersionRange: 'PLAY0721',\n LegacyProfileLayout: 'PLAY0791', // The other ui profile root template rules (PLAY0790, PLAY0792-PLAY0799) are C# only: this compiler does not model a ui profile.\n UnknownTemplateBlueprint: 'PLAY0722', // C# only: ui profile packages are not modeled by this compiler.\n DuplicateComplianceMarker: 'PLAY0653',\n LegacyComplianceMarker: 'PLAY0565',\n UnknownComplianceMarker: 'PLAY0566',\n InvalidSecretScope: 'PLAY0567',\n DuplicateSecretScope: 'PLAY0568',\n SecretScopeIgnoredForPii: 'PLAY0569',\n InvalidPersonalDataQualifier: 'PLAY0570',\n DuplicateSpecialCategory: 'PLAY0571',\n InvalidPurposeDeclaration: 'PLAY0596',\n InvalidPurposeVocabulary: 'PLAY0597',\n DuplicatePurposeField: 'PLAY0598',\n DuplicatePurposeDeclaration: 'PLAY0599',\n UnknownPurpose: 'PLAY0600',\n PurposeInterestMismatch: 'PLAY0601',\n PersonalDataWithoutPurpose: 'PLAY0602',\n SpecialDataWithoutCondition: 'PLAY0603',\n CriminalDataWithoutAuthorization: 'PLAY0604',\n PurposeWithoutBasis: 'PLAY0605',\n UnusedPurpose: 'PLAY0606',\n // C#-only: opt-in completeness, scoped action/refusal reference validation, and semantic binding.\n ConflictingScreenDataBinding: 'PLAY0530',\n ScreenDataQueryMismatch: 'PLAY0531',\n ActionWithoutInputSurface: 'PLAY0532',\n CommandWithoutInputSurface: 'PLAY0533',\n ReadModelFieldWithoutOrigin: 'PLAY0534',\n QueryParameterNotHeldByView: 'PLAY0535',\n UnconsumedEvent: 'PLAY0536',\n UnreachableScreen: 'PLAY0537',\n UnknownActionSubjectField: 'PLAY0345',\n UnresolvedActionSubject: 'PLAY0346',\n UnreachableActionAlternative: 'PLAY0347',\n UnknownActionArgumentProperty: 'PLAY0348',\n UnreachableRefusalBranch: 'PLAY0540',\n InvalidRefusalValue: 'PLAY0541',\n UnknownRefusalConstraint: 'PLAY0542',\n UnknownRedeliveryReaction: 'PLAY0544',\n IndeterminateNegatedClaimTarget: 'PLAY0546',\n InvalidRefusalBranch: 'PLAY0538',\n InvalidRefusalBranchBody: 'PLAY0539',\n UnmatchedRedeliveredOccurrence: 'PLAY0543',\n InvalidNoEventsExpectation: 'PLAY0545',\n InvalidProducesDeclaration: 'PLAY0042',\n ProducesWhenWithoutEvent: 'PLAY0043',\n InvalidPropertyMapping: 'PLAY0044',\n DuplicateProducesTarget: 'PLAY0193',\n EventSourceIdInPayload: 'PLAY0469',\n ExplicitProducesTargetsRequired: 'PLAY0470',\n RedundantEventId: 'PLAY0471',\n InvalidEventId: 'PLAY0472',\n InlineEventCollision: 'PLAY0473',\n InlineEventOutsideCommand: 'PLAY0474',\n InlineEventGeneration: 'PLAY0475',\n ReservedProductionMetadata: 'PLAY0476',\n InvalidEventDocumentation: 'PLAY0477',\n OmittedProductionDestination: 'PLAY0478',\n UnknownConstraintProperty: 'PLAY0391',\n UnknownTopLevelConstruct: 'PLAY0001',\n InvalidDomainDeclaration: 'PLAY0002',\n DuplicateDomain: 'PLAY0003',\n DomainNotFirst: 'PLAY0004',\n InvalidImportDeclaration: 'PLAY0005',\n TabIndentation: 'PLAY0006',\n InvalidConceptDeclaration: 'PLAY0007',\n UnknownPrimitiveType: 'PLAY0008',\n InvalidEnumerationValue: 'PLAY0009',\n UnknownConceptDirective: 'PLAY0010',\n ValidateReadAsEnumerationBlock: 'PLAY0011',\n AttributeReasonWithoutAttribute: 'PLAY0012',\n DuplicateAttributeReason: 'PLAY0013',\n InvalidTypeDeclaration: 'PLAY0014',\n TypeWithoutProperties: 'PLAY0015',\n InvalidPropertyDeclaration: 'PLAY0016',\n IdentifierOutsideCommand: 'PLAY0017',\n InvalidEventDeclaration: 'PLAY0018',\n IdentifierOnEventProperty: 'PLAY0019',\n TagPropertyReadAsTag: 'PLAY0020',\n InvalidModuleDeclaration: 'PLAY0021',\n UnknownModuleDirective: 'PLAY0022',\n InvalidFeatureDeclaration: 'PLAY0023',\n UnknownFeatureDirective: 'PLAY0024',\n InvalidSliceDeclaration: 'PLAY0027',\n UnknownSliceType: 'PLAY0028',\n UnknownSliceDirective: 'PLAY0029',\n InvalidPersonaDeclaration: 'PLAY0030',\n InvalidPersonaPolicyReference: 'PLAY0031',\n UnknownPersonaDirective: 'PLAY0032',\n InvalidCommandDeclaration: 'PLAY0033',\n UnknownCommandDirective: 'PLAY0034',\n DuplicateCommandIdentifier: 'PLAY0036',\n InvalidQueryDeclaration: 'PLAY0047',\n UnknownQueryDirective: 'PLAY0048',\n InvalidQueryParameter: 'PLAY0049',\n InvalidProjectionDeclaration: 'PLAY0056',\n EmptyProjection: 'PLAY0057',\n UnknownProjectionDirective: 'PLAY0058',\n FromWithoutEvent: 'PLAY0061',\n InvalidEventReference: 'PLAY0062',\n InvalidJoinDeclaration: 'PLAY0063',\n JoinWithoutEvent: 'PLAY0064',\n InvalidChildrenDeclaration: 'PLAY0065',\n InvalidNestedDeclaration: 'PLAY0066',\n NestedBlockWithoutFrom: 'PLAY0067',\n InvalidRemoveDeclaration: 'PLAY0068',\n UnknownRemoveDirective: 'PLAY0069',\n InvalidClearDeclaration: 'PLAY0070',\n ClearWithOutsideNestedBlock: 'PLAY0071',\n InvalidSpecificationDeclaration: 'PLAY0094',\n UnknownSpecificationDirective: 'PLAY0095',\n InvalidSpecificationWhen: 'PLAY0096',\n DuplicateSpecificationWhen: 'PLAY0097',\n InvalidThenError: 'PLAY0098',\n InvalidReadModelStep: 'PLAY0099',\n InvalidEventStep: 'PLAY0100',\n InvalidSpecificationValue: 'PLAY0101',\n InvalidScreenDeclaration: 'PLAY0102',\n UnknownScreenDirective: 'PLAY0103',\n InvalidDataDirective: 'PLAY0104',\n InvalidActionDirective: 'PLAY0105',\n UnknownActionDirective: 'PLAY0106',\n InvalidNavigation: 'PLAY0107',\n InvalidScreenLayoutSlot: 'PLAY0108',\n UnknownLayoutDirective: 'PLAY0026',\n InvalidTitleDirective: 'PLAY0109',\n UnknownTableDirective: 'PLAY0110',\n UnknownSummaryDirective: 'PLAY0111',\n AuthorizeWithoutPolicy: 'PLAY0122',\n InvalidPolicyReference: 'PLAY0123',\n InvalidConstraintDeclaration: 'PLAY0132',\n ConstraintWithoutRule: 'PLAY0133',\n InvalidConstraintBody: 'PLAY0134',\n DuplicateConstraintBody: 'PLAY0135',\n InvalidReactionDeclaration: 'PLAY0136',\n InvalidReactionTrigger: 'PLAY0137',\n ReactionWithoutTrigger: 'PLAY0138',\n InvalidValidateDeclaration: 'PLAY0140',\n InvalidValidationRule: 'PLAY0141',\n InvalidRuleName: 'PLAY0143',\n UnknownRuleImplementationDirective: 'PLAY0144',\n InvalidDescription: 'PLAY0145',\n EmptyDescription: 'PLAY0146',\n DuplicateDescription: 'PLAY0147',\n TagWithoutValue: 'PLAY0148',\n InvalidTagValue: 'PLAY0149',\n UnknownContextPath: 'PLAY0153',\n UnknownContextCausedByProperty: 'PLAY0154',\n UnknownContextIdentityProperty: 'PLAY0155',\n ExpectedCodeFence: 'PLAY0163',\n UnclosedCodeBlock: 'PLAY0164',\n DuplicateDeclaration: 'PLAY0168',\n RepeatedSingularDeclarationAcrossFiles: 'PLAY0172',\n RepeatedDeclarationAcrossFiles: 'PLAY0173',\n ConflictingDescriptionAcrossFiles: 'PLAY0174',\n UnexpectedTokenInAuthorize: 'PLAY0184',\n UnclosedAuthorizeGroup: 'PLAY0185',\n InvalidReadModelDeclaration: 'PLAY0186',\n InvalidInvokesDeclaration: 'PLAY0194',\n InvalidScopeDeclaration: 'PLAY0199',\n DuplicateScope: 'PLAY0200',\n InvalidIntervalTrigger: 'PLAY0249',\n InvalidScheduleTrigger: 'PLAY0250',\n DuplicateReactionTrigger: 'PLAY0253',\n InvalidSpecificationEventSource: 'PLAY0275',\n DuplicateSpecificationEventSource: 'PLAY0276',\n InvalidProjectionVariantDeclaration: 'PLAY0277',\n InvalidEntersOnDeclaration: 'PLAY0279',\n NestedProjectionVariantNotAllowed: 'PLAY0280',\n InvalidStructuredValue: 'PLAY0291',\n DuplicateStructuredValueMember: 'PLAY0294',\n ConflictingSpecificationActions: 'PLAY0358',\n InvalidSpecificationEventOrder: 'PLAY0359',\n InvalidValidationSeverity: 'PLAY0368',\n VariantRequiresEnteringEvent: 'PLAY0382',\n /** An event is used more than once in one projection level's event or join set. */\n DuplicateEventInProjectionScope: 'PLAY0801',\n DuplicateProjectionVariant: 'PLAY0384',\n DuplicateVariantEnteringEvent: 'PLAY0385',\n InvalidSpecificationDenied: 'PLAY0388',\n DuplicateAuthorizationAcrossFiles: 'PLAY0394',\n FileConstraintOnlySupportsUniqueness: 'PLAY0396',\n LegacyInlineCodeFence: 'PLAY0397',\n InvalidEventGeneration: 'PLAY0446',\n InvalidFileImport: 'PLAY0454',\n FileImportMatchesNothing: 'PLAY0455',\n ImportedFileNotFound: 'PLAY0456',\n ConflictingImportPlacement: 'PLAY0457',\n ImportCycle: 'PLAY0458',\n ModuleInPlacedFile: 'PLAY0459',\n UnexpectedInPlacedFile: 'PLAY0460',\n InvalidSpecificationClock: 'PLAY0461',\n InvalidSpecificationTrigger: 'PLAY0462',\n InvalidSpecificationCapture: 'PLAY0463',\n InvalidSpecificationQueryAction: 'PLAY0464',\n MismatchedSpecificationQueryResult: 'PLAY0465',\n UnknownSpecificationQueryArgument: 'PLAY0468',\n InvalidSpecificationQuery: 'PLAY0265',\n UnknownSpecificationQueryDirective: 'PLAY0266',\n DuplicateSpecificationQueryArguments: 'PLAY0267',\n InvalidAbsentReadModelStep: 'PLAY0453',\n LegacyOptionalSuffix: 'PLAY0479',\n InvalidOptionalModifierOrder: 'PLAY0480',\n OptionalReadsNotSupported: 'PLAY0481',\n InvalidSpecificationCaller: 'PLAY0386',\n DuplicateSpecificationCallerOrDenied: 'PLAY0387',\n GeneratedPropertyOutsideCommand: 'PLAY0482',\n InvalidGeneratedType: 'PLAY0483',\n InvalidGeneratedModifierOrder: 'PLAY0484',\n DuplicateEventSubject: 'PLAY0590',\n InvalidSubjectType: 'PLAY0591',\n ProtectedSubjectType: 'PLAY0592',\n InvalidSubjectOwner: 'PLAY0593',\n ReadModelSubjectNotSupported: 'PLAY0594',\n InvalidSubjectModifierOrder: 'PLAY0595',\n GeneratedPropertySuppliedAsInput: 'PLAY0485',\n InvalidCommandResponse: 'PLAY0486',\n InvalidResponseSource: 'PLAY0487',\n DuplicateResponseField: 'PLAY0488',\n InvalidResponseShape: 'PLAY0489',\n InvalidGeneratedFixture: 'PLAY0490',\n InvalidReturnExpectation: 'PLAY0491',\n InvalidImplementationBlock: 'PLAY0492',\n InvalidImplementationHint: 'PLAY0493',\n ConflictingImplementationSources: 'PLAY0494',\n UnknownType: 'PLAY0165',\n InvalidSystemDeclaration: 'PLAY0495',\n InvalidOperationDeclaration: 'PLAY0496',\n InvalidProductionReference: 'PLAY0497',\n ProductionDeclarationCollision: 'PLAY0498',\n OperationOutsideCommand: 'PLAY0499',\n InvalidSystemReference: 'PLAY0500',\n InvalidOperationMapping: 'PLAY0501',\n InvalidOperationSpecification: 'PLAY0502',\n InvalidCaptureDeclaration: 'PLAY0078',\n UnknownCaptureDirective: 'PLAY0079',\n InvalidMapEntry: 'PLAY0080',\n InvalidTranslation: 'PLAY0081',\n InvalidSplitDeclaration: 'PLAY0082',\n InvalidSplitTarget: 'PLAY0083',\n InvalidAppendDeclaration: 'PLAY0084',\n UnknownAppendDirective: 'PLAY0085',\n WhenWithoutTrigger: 'PLAY0086',\n InvalidWhenClause: 'PLAY0087',\n InvalidWhenTransitionClause: 'PLAY0088',\n MixedWhenCombinators: 'PLAY0089',\n WhenCombinatorWithoutProperty: 'PLAY0090',\n UnknownCaptureBlockDirective: 'PLAY0091',\n InvalidCompositeKeyPart: 'PLAY0072',\n TemplateInCompositeKey: 'PLAY0073',\n EmptyCompositeKey: 'PLAY0074',\n InvalidProjectionMapping: 'PLAY0075',\n ExpectedLiteralValue: 'PLAY0150',\n InvalidExpression: 'PLAY0152',\n UnterminatedInterpolation: 'PLAY0157',\n UnterminatedTemplateExpression: 'PLAY0156',\n ProjectionDocumentWithoutProjection: 'PLAY0055',\n CaptureDocumentWithoutCapture: 'PLAY0077',\n SpecificationDocumentWithoutSpecification: 'PLAY0093',\n InvalidSeedDeclaration: 'PLAY0128',\n InvalidSeedGroup: 'PLAY0129',\n InvalidSeedEvent: 'PLAY0130',\n InvalidSeedPropertyAssignment: 'PLAY0131',\n InvalidPolicyDeclaration: 'PLAY0112',\n UnknownPolicyDirective: 'PLAY0113',\n PolicyWithoutRequirement: 'PLAY0114',\n ExpectedRoleName: 'PLAY0118',\n ExpectedClaimName: 'PLAY0119',\n ExpectedClaimMatches: 'PLAY0120',\n ExpectedClaimMatchTarget: 'PLAY0121',\n MixedPolicyImplementation: 'PLAY0440',\n RepeatedPolicyRequirement: 'PLAY0441',\n UnexpectedTokenInPolicyCondition: 'PLAY0115',\n ExpectedPolicyCondition: 'PLAY0116',\n UnclosedPolicyConditionGroup: 'PLAY0117',\n UnexpectedTokenInCondition: 'PLAY0158',\n ExpectedCondition: 'PLAY0159',\n ExpectedComparisonOperator: 'PLAY0161',\n ExpectedComparisonValue: 'PLAY0162',\n InvalidActionAlternative: 'PLAY0341',\n GuardedActionWithoutAlternatives: 'PLAY0342',\n MisplacedActionOtherwise: 'PLAY0343',\n UnsupportedActionConditionOperand: 'PLAY0344',\n InvalidInteractionArgument: 'PLAY0319',\n UnclosedConditionGroup: 'PLAY0160',\n InvalidNumericDirective: 'PLAY0508',\n DuplicateNumericDirective: 'PLAY0509',\n LateNumericDirective: 'PLAY0510',\n InexactNumericLiteral: 'PLAY0511',\n MixedNumericModes: 'PLAY0512',\n IncompatibleNumericSource: 'PLAY0513',\n EventFromLaterSlice: 'PLAY0516',\n TimelineCycleGroup: 'PLAY0517',\n InvalidSpecificationExample: 'PLAY0518',\n DuplicateSpecificationAssignment: 'PLAY0519',\n UnresolvedSpecificationExampleType: 'PLAY0520',\n SpecificationExampleNameCollision: 'PLAY0521',\n SpecificationExampleKindMismatch: 'PLAY0522',\n InvalidSpecificationExampleValue: 'PLAY0523',\n MissingSpecificationProperty: 'PLAY0524',\n UnadmittedSpecificationExampleValue: 'PLAY0525',\n InvalidSpecificationExampleBody: 'PLAY0526',\n AmbiguousReference: 'PLAY0198',\n InvalidSpecificationStream: 'PLAY0547',\n SpecificationStreamOnCommand: 'PLAY0548',\n InvalidSpecificationStreamRoute: 'PLAY0549',\n InvalidSpecificationStreamEventSource: 'PLAY0550',\n SpecificationStreamContradictsCommand: 'PLAY0551',\n InvalidDependencyTarget: 'PLAY0554',\n RepeatedDependencyDeclaration: 'PLAY0555',\n UndeclaredDependency: 'PLAY0552',\n UnusedDependencyDeclaration: 'PLAY0553',\n MutualDependencyDeclarations: 'PLAY0556',\n AuthorizationRefusalWithoutIdentity: 'PLAY0557',\n InvalidDocumentation: 'PLAY0558',\n ConflictingDocumentationAcrossFiles: 'PLAY0559',\n InvalidSpecificationCallerPersona: 'PLAY0572',\n UnsynthesizablePersonaCaller: 'PLAY0573',\n PersonaWithoutGate: 'PLAY0574',\n GateWithoutPersona: 'PLAY0575',\n AmbiguousPersonaCaller: 'PLAY0576',\n InvalidSpecificationParameter: 'PLAY0577',\n InvalidSpecificationCase: 'PLAY0578',\n DuplicateSpecificationParameter: 'PLAY0579',\n DuplicateSpecificationCase: 'PLAY0580',\n IncompleteSpecificationTable: 'PLAY0581',\n InvalidSpecificationCaseAssignment: 'PLAY0582',\n InvalidSpecificationCaseValue: 'PLAY0583',\n InvalidSpecificationCaseReference: 'PLAY0584',\n OptionalSpecificationParameterTarget: 'PLAY0585',\n SpecificationCaseNameCollision: 'PLAY0586',\n IncompatibleSpecificationParameterType: 'PLAY0587',\n UnusedSpecificationParameter: 'PLAY0588',\n SingularSpecificationTableExpansion: 'PLAY0589',\n UnsupportedInteractionAlternatives: 'PLAY0560',\n MixedInteractionAlternatives: 'PLAY0561',\n InteractionAlternativeWithoutActions: 'PLAY0562',\n InlineInteractionAlternative: 'PLAY0563',\n LegacyInteractionWhere: 'PLAY0564',\n InvalidEventSourceDeclaration: 'PLAY0503',\n InvalidCommandStream: 'PLAY0504',\n AmbiguousCommandStream: 'PLAY0505',\n UnsupportedStreamIdType: 'PLAY0506',\n RedundantSourceStreamId: 'PLAY0507',\n UnknownEvent: 'PLAY0166',\n UnknownReadModelProperty: 'PLAY0514',\n PiiNotSupportedOnIdentifier: 'PLAY0515',\n HandlerWithoutImplementation: 'PLAY0045',\n UnknownHandlerDirective: 'PLAY0046',\n CommandWithProducesAndHandler: 'PLAY0035',\n AbsoluteFileReference: 'PLAY0264',\n InvalidTriggerData: 'PLAY0246',\n InvalidReadModelKey: 'PLAY0660',\n IncompleteReadModelKey: 'PLAY0661', // C# only: scoped read-model key resolution.\n InvalidReadModelKeyLookup: 'PLAY0662', // Shape checks shared; scoped lookup checks are C# only.\n ProductionRouteOutsideCommand: 'PLAY0663',\n RedundantProductionRoute: 'PLAY0664',\n InvalidObserverFilter: 'PLAY0665',\n ObserverFilterExcludesEveryProducer: 'PLAY0666', // C# only: statically known producer routes.\n ReducerIdentityMismatch: 'PLAY0690',\n InvalidReactionBatchesDeclaration: 'PLAY0693',\n InvalidCommandReadsDeclaration: 'PLAY0780',\n GenerationSupportBudgetExceeded: 'PLAY0691',\n EmptyGenerationSupport: 'PLAY0692', // C# only: conservative nominal producer identity comparison.\n MixedEnumerationNumbering: 'PLAY0667',\n DuplicateEnumerationNumber: 'PLAY0668',\n EnumerationNumberOutsideInt32: 'PLAY0669',\n MalformedEnumerationNumber: 'PLAY0670',\n UnpinnedStoredEnumeration: 'PLAY0671',\n ReadsWithChildren: 'PLAY0451',\n UnknownGenerationStrategy: 'PLAY0672',\n InvalidGenerationArgument: 'PLAY0673',\n InvalidGenerationModifier: 'PLAY0674',\n DuplicateGenerationModifier: 'PLAY0675',\n DuplicateGeneration: 'PLAY0676',\n InvalidGenerationPrimitive: 'PLAY0677',\n InvalidGenerationPrefix: 'PLAY0678',\n InvalidGenerationAlphabet: 'PLAY0679',\n InvalidTypeIdPrefix: 'PLAY0680',\n GenerationSizeOutsideRange: 'PLAY0681',\n ReservedSequenceGeneration: 'PLAY0682',\n LowGenerationEntropy: 'PLAY0683',\n LowGeneratedIdentifierEntropy: 'PLAY0684',\n ResponseNameUsedOnFailure: 'PLAY0685',\n // Retired by ESM v16; preserved for compatibility with earlier native compiler diagnostics.\n EventIdPinNotCarriedToRenderers: 'PLAY0686',\n InvalidToolbarButton: 'PLAY0760',\n} as const;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DiagnosticCodes.js","names":["DiagnosticCodes"],"sources":["../../../../../../Compiler/Diagnostics/DiagnosticCodes.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// Shared diagnostic names, including the explicitly C#-only checks below. Catalogue membership does\n// not imply TypeScript validation support; see Documentation/screenplay/editor-diagnostics.md.\nexport const DiagnosticCodes = {\n UnknownMatchPattern: 'PLAY0366',\n InvalidMatchPattern: 'PLAY0367',\n PatternOutsidePortableMatchDialect: 'PLAY0699',\n DeprecatedStudioTextRulePattern: 'PLAY0787',\n InvalidIdentityDeclaration: 'PLAY0633',\n DuplicateIdentity: 'PLAY0634',\n InvalidIdentityDetail: 'PLAY0635',\n UnknownIdentitySource: 'PLAY0636',\n IdentityDetailWithoutSource: 'PLAY0637',\n IdentitySourceWithBody: 'PLAY0638',\n DuplicateIdentityDetail: 'PLAY0639',\n BuiltInIdentityDetail: 'PLAY0640',\n UnknownIdentityQuery: 'PLAY0641',\n InvalidIdentityQuery: 'PLAY0642',\n IdentityQueryWithoutKey: 'PLAY0643',\n InvalidIdentityQueryKey: 'PLAY0644',\n IdentityQueryAuthorizationDependency: 'PLAY0645',\n IdentityQueryTypeMismatch: 'PLAY0646',\n InvalidReactionIdentity: 'PLAY0647',\n GatedInvocationWithoutIdentity: 'PLAY0648',\n UnusedReactionIdentity: 'PLAY0649',\n UnusedReactionRole: 'PLAY0650',\n UnsatisfiedReactionIdentity: 'PLAY0651',\n ReactionPrivilegeEscalation: 'PLAY0652',\n // C#-only whole-model public event boundaries; membership is not TypeScript validation support.\n CommandProducesPublicEvent: 'PLAY0607',\n PublicEventRequiresOutboundTranslation: 'PLAY0608',\n OutboundPublicEventCount: 'PLAY0609',\n ForeignPublicEventConsumer: 'PLAY0610',\n OutboundTranslationInput: 'PLAY0611',\n InboundTranslationOutput: 'PLAY0612',\n ForeignPublicEventProduced: 'PLAY0613',\n PublicTranslationRequiresDirection: 'PLAY0614',\n TranslationConstructDirection: 'PLAY0615',\n InboundTranslationInput: 'PLAY0616',\n OutboundTranslationOutput: 'PLAY0617',\n EventTargetOutsideOutboundTranslation: 'PLAY0618',\n EventsSourceOutsideInboundTranslation: 'PLAY0619',\n InvalidCaptureEventsSource: 'PLAY0620',\n CaptureEventsFromSeveralOrigins: 'PLAY0687',\n DirectionlessTranslationReactsToOwnCapture: 'PLAY0694',\n PendingIntentWithOtherHandler: 'PLAY0698',\n CommandHandlerRequiresAttachment: 'PLAY0800', // C# only\n DescribedCommandNotImplemented: 'PLAY0695', // C# only\n DescribedCommandWithoutProductions: 'PLAY0696', // C# only\n DescribedCommandCardinalityNotAdmitted: 'PLAY0697', // C# only\n CaptureEventsKeyNotRequired: 'PLAY0700',\n CaptureEventsRecordFixture: 'PLAY0701',\n RefutedGeneratedConceptRule: 'PLAY0688',\n UnprovenGeneratedConceptRule: 'PLAY0689',\n // Syntax shared with C#; the reference checks (owners, instances, cycles, outlets, scopes, packages) are C#-only.\n InvalidExposureDeclaration: 'PLAY0621',\n UnknownExposureOwner: 'PLAY0622',\n ReExposureCycle: 'PLAY0623',\n ReExposureBroken: 'PLAY0624',\n InvalidInstanceContribution: 'PLAY0625',\n UnknownContributionInstance: 'PLAY0626',\n ContributionNotExposed: 'PLAY0627',\n ContributionTypeMismatch: 'PLAY0628',\n UnknownTemplateContentSlot: 'PLAY0629',\n UnknownNavigationOutlet: 'PLAY0630',\n TemplateScopeMismatch: 'PLAY0631',\n IncompatibleComponentPackage: 'PLAY0632',\n UnknownNavigationDestination: 'PLAY0654',\n UnknownScreenContributionPoint: 'PLAY0655',\n TemplateNestingCycle: 'PLAY0656',\n TemplateCategoryMissing: 'PLAY0720', // C# only: template declarations are not modeled by this compiler.\n InvalidTemplateVersionRange: 'PLAY0721',\n LegacyProfileLayout: 'PLAY0791', // The other ui profile root template rules (PLAY0790, PLAY0792-PLAY0799) are C# only: this compiler does not model a ui profile.\n UnknownTemplateBlueprint: 'PLAY0722', // C# only: ui profile packages are not modeled by this compiler.\n DuplicateComplianceMarker: 'PLAY0653',\n LegacyComplianceMarker: 'PLAY0565',\n UnknownComplianceMarker: 'PLAY0566',\n InvalidSecretScope: 'PLAY0567',\n DuplicateSecretScope: 'PLAY0568',\n SecretScopeIgnoredForPii: 'PLAY0569',\n InvalidPersonalDataQualifier: 'PLAY0570',\n DuplicateSpecialCategory: 'PLAY0571',\n InvalidPurposeDeclaration: 'PLAY0596',\n InvalidPurposeVocabulary: 'PLAY0597',\n DuplicatePurposeField: 'PLAY0598',\n DuplicatePurposeDeclaration: 'PLAY0599',\n UnknownPurpose: 'PLAY0600',\n PurposeInterestMismatch: 'PLAY0601',\n PersonalDataWithoutPurpose: 'PLAY0602',\n SpecialDataWithoutCondition: 'PLAY0603',\n CriminalDataWithoutAuthorization: 'PLAY0604',\n PurposeWithoutBasis: 'PLAY0605',\n UnusedPurpose: 'PLAY0606',\n // C#-only: opt-in completeness, scoped action/refusal reference validation, and semantic binding.\n ConflictingScreenDataBinding: 'PLAY0530',\n ScreenDataQueryMismatch: 'PLAY0531',\n ActionWithoutInputSurface: 'PLAY0532',\n CommandWithoutInputSurface: 'PLAY0533',\n ReadModelFieldWithoutOrigin: 'PLAY0534',\n QueryParameterNotHeldByView: 'PLAY0535',\n UnconsumedEvent: 'PLAY0536',\n UnreachableScreen: 'PLAY0537',\n UnknownActionSubjectField: 'PLAY0345',\n UnresolvedActionSubject: 'PLAY0346',\n UnreachableActionAlternative: 'PLAY0347',\n UnknownActionArgumentProperty: 'PLAY0348',\n UnreachableRefusalBranch: 'PLAY0540',\n InvalidRefusalValue: 'PLAY0541',\n UnknownRefusalConstraint: 'PLAY0542',\n UnknownRedeliveryReaction: 'PLAY0544',\n IndeterminateNegatedClaimTarget: 'PLAY0546',\n InvalidRefusalBranch: 'PLAY0538',\n InvalidRefusalBranchBody: 'PLAY0539',\n UnmatchedRedeliveredOccurrence: 'PLAY0543',\n InvalidNoEventsExpectation: 'PLAY0545',\n InvalidProducesDeclaration: 'PLAY0042',\n ProducesWhenWithoutEvent: 'PLAY0043',\n InvalidPropertyMapping: 'PLAY0044',\n DuplicateProducesTarget: 'PLAY0193',\n EventSourceIdInPayload: 'PLAY0469',\n ExplicitProducesTargetsRequired: 'PLAY0470',\n RedundantEventId: 'PLAY0471',\n InvalidEventId: 'PLAY0472',\n InlineEventCollision: 'PLAY0473',\n InlineEventOutsideCommand: 'PLAY0474',\n InlineEventGeneration: 'PLAY0475',\n ReservedProductionMetadata: 'PLAY0476',\n InvalidEventDocumentation: 'PLAY0477',\n OmittedProductionDestination: 'PLAY0478',\n UnknownConstraintProperty: 'PLAY0391',\n UnknownTopLevelConstruct: 'PLAY0001',\n InvalidDomainDeclaration: 'PLAY0002',\n DuplicateDomain: 'PLAY0003',\n DomainNotFirst: 'PLAY0004',\n InvalidImportDeclaration: 'PLAY0005',\n TabIndentation: 'PLAY0006',\n InvalidConceptDeclaration: 'PLAY0007',\n UnknownPrimitiveType: 'PLAY0008',\n InvalidEnumerationValue: 'PLAY0009',\n UnknownConceptDirective: 'PLAY0010',\n ValidateReadAsEnumerationBlock: 'PLAY0011',\n AttributeReasonWithoutAttribute: 'PLAY0012',\n DuplicateAttributeReason: 'PLAY0013',\n InvalidTypeDeclaration: 'PLAY0014',\n TypeWithoutProperties: 'PLAY0015',\n InvalidPropertyDeclaration: 'PLAY0016',\n IdentifierOutsideCommand: 'PLAY0017',\n InvalidEventDeclaration: 'PLAY0018',\n IdentifierOnEventProperty: 'PLAY0019',\n TagPropertyReadAsTag: 'PLAY0020',\n InvalidModuleDeclaration: 'PLAY0021',\n UnknownModuleDirective: 'PLAY0022',\n InvalidFeatureDeclaration: 'PLAY0023',\n UnknownFeatureDirective: 'PLAY0024',\n InvalidSliceDeclaration: 'PLAY0027',\n UnknownSliceType: 'PLAY0028',\n UnknownSliceDirective: 'PLAY0029',\n InvalidPersonaDeclaration: 'PLAY0030',\n InvalidPersonaPolicyReference: 'PLAY0031',\n UnknownPersonaDirective: 'PLAY0032',\n InvalidCommandDeclaration: 'PLAY0033',\n UnknownCommandDirective: 'PLAY0034',\n DuplicateCommandIdentifier: 'PLAY0036',\n InvalidQueryDeclaration: 'PLAY0047',\n UnknownQueryDirective: 'PLAY0048',\n InvalidQueryParameter: 'PLAY0049',\n InvalidProjectionDeclaration: 'PLAY0056',\n EmptyProjection: 'PLAY0057',\n UnknownProjectionDirective: 'PLAY0058',\n FromWithoutEvent: 'PLAY0061',\n InvalidEventReference: 'PLAY0062',\n InvalidJoinDeclaration: 'PLAY0063',\n JoinWithoutEvent: 'PLAY0064',\n InvalidChildrenDeclaration: 'PLAY0065',\n InvalidNestedDeclaration: 'PLAY0066',\n NestedBlockWithoutFrom: 'PLAY0067',\n InvalidRemoveDeclaration: 'PLAY0068',\n UnknownRemoveDirective: 'PLAY0069',\n InvalidClearDeclaration: 'PLAY0070',\n ClearWithOutsideNestedBlock: 'PLAY0071',\n InvalidSpecificationDeclaration: 'PLAY0094',\n UnknownSpecificationDirective: 'PLAY0095',\n InvalidSpecificationWhen: 'PLAY0096',\n DuplicateSpecificationWhen: 'PLAY0097',\n InvalidThenError: 'PLAY0098',\n InvalidReadModelStep: 'PLAY0099',\n InvalidEventStep: 'PLAY0100',\n InvalidSpecificationValue: 'PLAY0101',\n InvalidScreenDeclaration: 'PLAY0102',\n UnknownScreenDirective: 'PLAY0103',\n InvalidDataDirective: 'PLAY0104',\n InvalidActionDirective: 'PLAY0105',\n UnknownActionDirective: 'PLAY0106',\n InvalidNavigation: 'PLAY0107',\n InvalidScreenLayoutSlot: 'PLAY0108',\n UnknownLayoutDirective: 'PLAY0026',\n InvalidTitleDirective: 'PLAY0109',\n UnknownTableDirective: 'PLAY0110',\n UnknownSummaryDirective: 'PLAY0111',\n AuthorizeWithoutPolicy: 'PLAY0122',\n InvalidPolicyReference: 'PLAY0123',\n InvalidConstraintDeclaration: 'PLAY0132',\n ConstraintWithoutRule: 'PLAY0133',\n InvalidConstraintBody: 'PLAY0134',\n DuplicateConstraintBody: 'PLAY0135',\n InvalidReactionDeclaration: 'PLAY0136',\n InvalidReactionTrigger: 'PLAY0137',\n ReactionWithoutTrigger: 'PLAY0138',\n InvalidValidateDeclaration: 'PLAY0140',\n InvalidValidationRule: 'PLAY0141',\n InvalidRuleName: 'PLAY0143',\n UnknownRuleImplementationDirective: 'PLAY0144',\n InvalidDescription: 'PLAY0145',\n EmptyDescription: 'PLAY0146',\n DuplicateDescription: 'PLAY0147',\n TagWithoutValue: 'PLAY0148',\n InvalidTagValue: 'PLAY0149',\n UnknownContextPath: 'PLAY0153',\n UnknownContextCausedByProperty: 'PLAY0154',\n UnknownContextIdentityProperty: 'PLAY0155',\n ExpectedCodeFence: 'PLAY0163',\n UnclosedCodeBlock: 'PLAY0164',\n DuplicateDeclaration: 'PLAY0168',\n RepeatedSingularDeclarationAcrossFiles: 'PLAY0172',\n RepeatedDeclarationAcrossFiles: 'PLAY0173',\n ConflictingDescriptionAcrossFiles: 'PLAY0174',\n UnexpectedTokenInAuthorize: 'PLAY0184',\n UnclosedAuthorizeGroup: 'PLAY0185',\n InvalidReadModelDeclaration: 'PLAY0186',\n InvalidInvokesDeclaration: 'PLAY0194',\n InvalidScopeDeclaration: 'PLAY0199',\n DuplicateScope: 'PLAY0200',\n InvalidIntervalTrigger: 'PLAY0249',\n InvalidScheduleTrigger: 'PLAY0250',\n DuplicateReactionTrigger: 'PLAY0253',\n InvalidSpecificationEventSource: 'PLAY0275',\n DuplicateSpecificationEventSource: 'PLAY0276',\n InvalidProjectionVariantDeclaration: 'PLAY0277',\n InvalidEntersOnDeclaration: 'PLAY0279',\n NestedProjectionVariantNotAllowed: 'PLAY0280',\n InvalidStructuredValue: 'PLAY0291',\n DuplicateStructuredValueMember: 'PLAY0294',\n ConflictingSpecificationActions: 'PLAY0358',\n InvalidSpecificationEventOrder: 'PLAY0359',\n InvalidValidationSeverity: 'PLAY0368',\n VariantRequiresEnteringEvent: 'PLAY0382',\n /** An event is used more than once in one projection level's event or join set. */\n DuplicateEventInProjectionScope: 'PLAY0801',\n /** An event source has the reserved stored name Default, or an event stream has the reserved stored name All, including through an id pin. */\n ReservedStoredName: 'PLAY0802',\n DuplicateProjectionVariant: 'PLAY0384',\n DuplicateVariantEnteringEvent: 'PLAY0385',\n InvalidSpecificationDenied: 'PLAY0388',\n DuplicateAuthorizationAcrossFiles: 'PLAY0394',\n FileConstraintOnlySupportsUniqueness: 'PLAY0396',\n LegacyInlineCodeFence: 'PLAY0397',\n InvalidEventGeneration: 'PLAY0446',\n InvalidFileImport: 'PLAY0454',\n FileImportMatchesNothing: 'PLAY0455',\n ImportedFileNotFound: 'PLAY0456',\n ConflictingImportPlacement: 'PLAY0457',\n ImportCycle: 'PLAY0458',\n ModuleInPlacedFile: 'PLAY0459',\n UnexpectedInPlacedFile: 'PLAY0460',\n InvalidSpecificationClock: 'PLAY0461',\n InvalidSpecificationTrigger: 'PLAY0462',\n InvalidSpecificationCapture: 'PLAY0463',\n InvalidSpecificationQueryAction: 'PLAY0464',\n MismatchedSpecificationQueryResult: 'PLAY0465',\n UnknownSpecificationQueryArgument: 'PLAY0468',\n InvalidSpecificationQuery: 'PLAY0265',\n UnknownSpecificationQueryDirective: 'PLAY0266',\n DuplicateSpecificationQueryArguments: 'PLAY0267',\n InvalidAbsentReadModelStep: 'PLAY0453',\n LegacyOptionalSuffix: 'PLAY0479',\n InvalidOptionalModifierOrder: 'PLAY0480',\n OptionalReadsNotSupported: 'PLAY0481',\n InvalidSpecificationCaller: 'PLAY0386',\n DuplicateSpecificationCallerOrDenied: 'PLAY0387',\n GeneratedPropertyOutsideCommand: 'PLAY0482',\n InvalidGeneratedType: 'PLAY0483',\n InvalidGeneratedModifierOrder: 'PLAY0484',\n DuplicateEventSubject: 'PLAY0590',\n InvalidSubjectType: 'PLAY0591',\n ProtectedSubjectType: 'PLAY0592',\n InvalidSubjectOwner: 'PLAY0593',\n ReadModelSubjectNotSupported: 'PLAY0594',\n InvalidSubjectModifierOrder: 'PLAY0595',\n GeneratedPropertySuppliedAsInput: 'PLAY0485',\n InvalidCommandResponse: 'PLAY0486',\n InvalidResponseSource: 'PLAY0487',\n DuplicateResponseField: 'PLAY0488',\n InvalidResponseShape: 'PLAY0489',\n InvalidGeneratedFixture: 'PLAY0490',\n InvalidReturnExpectation: 'PLAY0491',\n InvalidImplementationBlock: 'PLAY0492',\n InvalidImplementationHint: 'PLAY0493',\n ConflictingImplementationSources: 'PLAY0494',\n UnknownType: 'PLAY0165',\n InvalidSystemDeclaration: 'PLAY0495',\n InvalidOperationDeclaration: 'PLAY0496',\n InvalidProductionReference: 'PLAY0497',\n ProductionDeclarationCollision: 'PLAY0498',\n OperationOutsideCommand: 'PLAY0499',\n InvalidSystemReference: 'PLAY0500',\n InvalidOperationMapping: 'PLAY0501',\n InvalidOperationSpecification: 'PLAY0502',\n InvalidCaptureDeclaration: 'PLAY0078',\n UnknownCaptureDirective: 'PLAY0079',\n InvalidMapEntry: 'PLAY0080',\n InvalidTranslation: 'PLAY0081',\n InvalidSplitDeclaration: 'PLAY0082',\n InvalidSplitTarget: 'PLAY0083',\n InvalidAppendDeclaration: 'PLAY0084',\n UnknownAppendDirective: 'PLAY0085',\n WhenWithoutTrigger: 'PLAY0086',\n InvalidWhenClause: 'PLAY0087',\n InvalidWhenTransitionClause: 'PLAY0088',\n MixedWhenCombinators: 'PLAY0089',\n WhenCombinatorWithoutProperty: 'PLAY0090',\n UnknownCaptureBlockDirective: 'PLAY0091',\n InvalidCompositeKeyPart: 'PLAY0072',\n TemplateInCompositeKey: 'PLAY0073',\n EmptyCompositeKey: 'PLAY0074',\n InvalidProjectionMapping: 'PLAY0075',\n ExpectedLiteralValue: 'PLAY0150',\n InvalidExpression: 'PLAY0152',\n UnterminatedInterpolation: 'PLAY0157',\n UnterminatedTemplateExpression: 'PLAY0156',\n ProjectionDocumentWithoutProjection: 'PLAY0055',\n CaptureDocumentWithoutCapture: 'PLAY0077',\n SpecificationDocumentWithoutSpecification: 'PLAY0093',\n InvalidSeedDeclaration: 'PLAY0128',\n InvalidSeedGroup: 'PLAY0129',\n InvalidSeedEvent: 'PLAY0130',\n InvalidSeedPropertyAssignment: 'PLAY0131',\n InvalidPolicyDeclaration: 'PLAY0112',\n UnknownPolicyDirective: 'PLAY0113',\n PolicyWithoutRequirement: 'PLAY0114',\n ExpectedRoleName: 'PLAY0118',\n ExpectedClaimName: 'PLAY0119',\n ExpectedClaimMatches: 'PLAY0120',\n ExpectedClaimMatchTarget: 'PLAY0121',\n MixedPolicyImplementation: 'PLAY0440',\n RepeatedPolicyRequirement: 'PLAY0441',\n UnexpectedTokenInPolicyCondition: 'PLAY0115',\n ExpectedPolicyCondition: 'PLAY0116',\n UnclosedPolicyConditionGroup: 'PLAY0117',\n UnexpectedTokenInCondition: 'PLAY0158',\n ExpectedCondition: 'PLAY0159',\n ExpectedComparisonOperator: 'PLAY0161',\n ExpectedComparisonValue: 'PLAY0162',\n InvalidActionAlternative: 'PLAY0341',\n GuardedActionWithoutAlternatives: 'PLAY0342',\n MisplacedActionOtherwise: 'PLAY0343',\n UnsupportedActionConditionOperand: 'PLAY0344',\n InvalidInteractionArgument: 'PLAY0319',\n UnclosedConditionGroup: 'PLAY0160',\n InvalidNumericDirective: 'PLAY0508',\n DuplicateNumericDirective: 'PLAY0509',\n LateNumericDirective: 'PLAY0510',\n InexactNumericLiteral: 'PLAY0511',\n MixedNumericModes: 'PLAY0512',\n IncompatibleNumericSource: 'PLAY0513',\n EventFromLaterSlice: 'PLAY0516',\n TimelineCycleGroup: 'PLAY0517',\n InvalidSpecificationExample: 'PLAY0518',\n DuplicateSpecificationAssignment: 'PLAY0519',\n UnresolvedSpecificationExampleType: 'PLAY0520',\n SpecificationExampleNameCollision: 'PLAY0521',\n SpecificationExampleKindMismatch: 'PLAY0522',\n InvalidSpecificationExampleValue: 'PLAY0523',\n MissingSpecificationProperty: 'PLAY0524',\n UnadmittedSpecificationExampleValue: 'PLAY0525',\n InvalidSpecificationExampleBody: 'PLAY0526',\n AmbiguousReference: 'PLAY0198',\n InvalidSpecificationStream: 'PLAY0547',\n SpecificationStreamOnCommand: 'PLAY0548',\n InvalidSpecificationStreamRoute: 'PLAY0549',\n InvalidSpecificationStreamEventSource: 'PLAY0550',\n SpecificationStreamContradictsCommand: 'PLAY0551',\n InvalidDependencyTarget: 'PLAY0554',\n RepeatedDependencyDeclaration: 'PLAY0555',\n UndeclaredDependency: 'PLAY0552',\n UnusedDependencyDeclaration: 'PLAY0553',\n MutualDependencyDeclarations: 'PLAY0556',\n AuthorizationRefusalWithoutIdentity: 'PLAY0557',\n InvalidDocumentation: 'PLAY0558',\n ConflictingDocumentationAcrossFiles: 'PLAY0559',\n InvalidSpecificationCallerPersona: 'PLAY0572',\n UnsynthesizablePersonaCaller: 'PLAY0573',\n PersonaWithoutGate: 'PLAY0574',\n GateWithoutPersona: 'PLAY0575',\n AmbiguousPersonaCaller: 'PLAY0576',\n InvalidSpecificationParameter: 'PLAY0577',\n InvalidSpecificationCase: 'PLAY0578',\n DuplicateSpecificationParameter: 'PLAY0579',\n DuplicateSpecificationCase: 'PLAY0580',\n IncompleteSpecificationTable: 'PLAY0581',\n InvalidSpecificationCaseAssignment: 'PLAY0582',\n InvalidSpecificationCaseValue: 'PLAY0583',\n InvalidSpecificationCaseReference: 'PLAY0584',\n OptionalSpecificationParameterTarget: 'PLAY0585',\n SpecificationCaseNameCollision: 'PLAY0586',\n IncompatibleSpecificationParameterType: 'PLAY0587',\n UnusedSpecificationParameter: 'PLAY0588',\n SingularSpecificationTableExpansion: 'PLAY0589',\n UnsupportedInteractionAlternatives: 'PLAY0560',\n MixedInteractionAlternatives: 'PLAY0561',\n InteractionAlternativeWithoutActions: 'PLAY0562',\n InlineInteractionAlternative: 'PLAY0563',\n LegacyInteractionWhere: 'PLAY0564',\n InvalidEventSourceDeclaration: 'PLAY0503',\n InvalidCommandStream: 'PLAY0504',\n AmbiguousCommandStream: 'PLAY0505',\n UnsupportedStreamIdType: 'PLAY0506',\n RedundantSourceStreamId: 'PLAY0507',\n UnknownEvent: 'PLAY0166',\n UnknownReadModelProperty: 'PLAY0514',\n PiiNotSupportedOnIdentifier: 'PLAY0515',\n HandlerWithoutImplementation: 'PLAY0045',\n UnknownHandlerDirective: 'PLAY0046',\n CommandWithProducesAndHandler: 'PLAY0035',\n AbsoluteFileReference: 'PLAY0264',\n InvalidTriggerData: 'PLAY0246',\n InvalidReadModelKey: 'PLAY0660',\n IncompleteReadModelKey: 'PLAY0661', // C# only: scoped read-model key resolution.\n InvalidReadModelKeyLookup: 'PLAY0662', // Shape checks shared; scoped lookup checks are C# only.\n ProductionRouteOutsideCommand: 'PLAY0663',\n RedundantProductionRoute: 'PLAY0664',\n InvalidObserverFilter: 'PLAY0665',\n ObserverFilterExcludesEveryProducer: 'PLAY0666', // C# only: statically known producer routes.\n ReducerIdentityMismatch: 'PLAY0690',\n InvalidReactionBatchesDeclaration: 'PLAY0693',\n InvalidCommandReadsDeclaration: 'PLAY0780',\n GenerationSupportBudgetExceeded: 'PLAY0691',\n EmptyGenerationSupport: 'PLAY0692', // C# only: conservative nominal producer identity comparison.\n MixedEnumerationNumbering: 'PLAY0667',\n DuplicateEnumerationNumber: 'PLAY0668',\n EnumerationNumberOutsideInt32: 'PLAY0669',\n MalformedEnumerationNumber: 'PLAY0670',\n UnpinnedStoredEnumeration: 'PLAY0671',\n ReadsWithChildren: 'PLAY0451',\n UnknownGenerationStrategy: 'PLAY0672',\n InvalidGenerationArgument: 'PLAY0673',\n InvalidGenerationModifier: 'PLAY0674',\n DuplicateGenerationModifier: 'PLAY0675',\n DuplicateGeneration: 'PLAY0676',\n InvalidGenerationPrimitive: 'PLAY0677',\n InvalidGenerationPrefix: 'PLAY0678',\n InvalidGenerationAlphabet: 'PLAY0679',\n InvalidTypeIdPrefix: 'PLAY0680',\n GenerationSizeOutsideRange: 'PLAY0681',\n ReservedSequenceGeneration: 'PLAY0682',\n LowGenerationEntropy: 'PLAY0683',\n LowGeneratedIdentifierEntropy: 'PLAY0684',\n ResponseNameUsedOnFailure: 'PLAY0685',\n // Retired by ESM v16; preserved for compatibility with earlier native compiler diagnostics.\n EventIdPinNotCarriedToRenderers: 'PLAY0686',\n InvalidToolbarButton: 'PLAY0760',\n} as const;\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../../_virtual/_virtual/_rolldown/runtime.js";import{DiagnosticCodes as e}from"../Diagnostics/DiagnosticCodes.js";import{AuthoringProductionResolver as t}from"../Syntax/AuthoringProductionResolver.js";import{EventSourceCatalog as n}from"../Syntax/EventSourceCatalog.js";import{compatibleValue as r,uniqueByName as i}from"./ResponseValidator.js";import{commandDestinationType as a}from"./CommandDestinationTypes.js";import{validateObserverFilters as o}from"./ObserverFilterValidator.js";import{streamIdFailureMessage as s,tryFormatInteger as c,tryFormatText as l,tryFormatUuidText as u}from"../Syntax/StreamIdFormatter.js";import{validateStreamIdParts as d}from"./CompositeStreamIdValidator.js";import{validateSpecificationStreams as f}from"./SpecificationStreamValidator.js";const sameExpression=(e,t)=>e==null&&t==null||e?.kind===`PathExpressionSyntax`&&t?.kind===`PathExpressionSyntax`&&e.path===t.path||e?.kind===`LiteralExpressionSyntax`&&t?.kind===`LiteralExpressionSyntax`&&JSON.stringify(e.value)===JSON.stringify(t.value),sameRoute=(e,t)=>e.eventSource===t.eventSource&&e.stream===t.stream&&sameExpression(e.streamId?.source,t.streamId?.source)&&e.streamIdParts.length===t.streamIdParts.length&&e.streamIdParts.every(e=>t.streamIdParts.some(t=>e.property===t.property&&sameExpression(e.source,t.source))),p=/* @__PURE__ */ new Set([`String`,`Uuid`,`Int`,`Decimal`,`Bool`,`Date`,`DateTime`]);function supportsStreamIdentity(e,t){let n=t.concepts.filter(t=>t.name===e.name),r=n.length===1?n[0].type:n.length===0&&p.has(e.name)?e.name:null;return r===`String`||r===`Uuid`||r===`Int`&&n.length===1&&n[0].values.length===0}function formatStreamIdLiteral(e,t,n){if(e?.kind!==`LiteralExpressionSyntax`)return null;let r=e.value,a=t===null?null:i(n.concepts).get(t.name)?.type??t.name;return typeof r==`string`?a===`Uuid`?u(r):l(r):typeof r==`number`?c(r):typeof r==`object`&&r&&r.literalType===`ExactNumber`?r.value.includes(`.`)?c(NaN):c(BigInt(r.value),!1):null}function validateEventSources(c,l){let u=i(c.concepts),m=i(c.types),h=/* @__PURE__ */ new Set([...p,...u.keys(),...m.keys()]),g=new Map([...m].map(([e,t])=>[e,i(t.properties)])),compatible=(e,t)=>h.has(e.name)&&h.has(t.name)?e.name===t.name&&e.isCollection===t.isCollection&&(!e.isOptional||t.isOptional):null,validateType=(t,n)=>{if(t===null)return;if(t.isOptional||t.isCollection||c.types.some(e=>e.name===t.name)){l.error(e.InvalidEventSourceDeclaration,`Identifier and streamId declarations require a nonoptional scalar value type.`,t.location);return}let r=c.concepts.filter(e=>e.name===t.name),i=r.length===1?r[0].type:r.length===0&&p.has(t.name)?t.name:null;n&&i!==null&&!supportsStreamIdentity(t,c)&&l.error(e.UnsupportedStreamIdType,`Stream ids support text and UUID values and their nominal concepts, plus integer-backed concepts; other types need a future portable formatter.`,t.location),i===null&&!c.imports.some(e=>e.qualifiedName===t.name||e.qualifiedName.split(`.`).at(-1)===t.name)&&l.warning(e.UnknownType,`Unknown type '${t.name}' in event source declaration.`,t.location)},_=/* @__PURE__ */ new Set;for(let t of c.eventSources??[]){_.has(t.name)&&l.error(e.InvalidEventSourceDeclaration,`Event source '${t.name}' has multiple physical declarations.`,t.location),_.add(t.name),validateType(t.identifier,!1);let n=/* @__PURE__ */ new Set;for(let r of t.streams){n.has(r.name)&&l.error(e.InvalidEventSourceDeclaration,`Stream '${t.name}.${r.name}' has multiple declarations under this source.`,r.location),n.add(r.name),validateType(r.streamId,!0);let i=r.streamIdParts;if(i.length>0){i.length<2&&l.error(e.InvalidEventSourceDeclaration,`A composite stream id requires at least two named parts.`,r.directiveLocations?.streamId??r.location);for(let t of new Set(i.map(e=>e.name)))for(let n of i.filter(e=>e.name===t).slice(1))l.error(e.InvalidEventSourceDeclaration,`Stream id part '${n.name}' is declared more than once.`,n.location);for(let e of i)validateType(e.type,!0)}}}let pathProperty=(e,t)=>{let[n,...r]=t.split(`.`);if(e===null)return{property:null,missing:!1};let i=e.filter(e=>e.name===n);if(i.length!==1)return{property:null,missing:i.length===0};let a=i[0];if(r.length===0)return{property:a,missing:!1};if(p.has(a.type.name)||u.has(a.type.name)&&!m.has(a.type.name))return{property:null,missing:!0};let o=pathProperty(m.get(a.type.name)?.properties??null,r.join(`.`));return o.property===null?o:{property:{...o.property,type:{...o.property.type,isCollection:a.type.isCollection||o.property.type.isCollection,isOptional:a.type.isOptional||o.property.type.isOptional}},missing:!1}},v=new n(c),y=new t(c);o(c,l,y);for(let{slice:t}of y.slices)for(let n of t.commands)for(let{route:i,production:o}of[...n.stream==null?[]:[{route:n.stream,production:null}],...n.produces.filter(e=>e.stream!=null).map(e=>({route:e.stream,production:e}))]){if(i.propertyCandidate!==null)continue;o!==null&&n.stream!=null&&sameRoute(i,n.stream)&&l.warning(e.RedundantProductionRoute,`The production route repeats its command route; omit the override.`,i.location);let f=v.resolve(i.eventSource,i.stream);if(f.kind!==`unique`){let t={ambiguous:`Ambiguous`,notFound:`NotFound`,wrongKind:`WrongKind`}[f.kind];l.error(e.InvalidCommandStream,`Stream '${i.eventSource}.${i.stream}' is ${t}; routing requires one physical source and stream.`,i.location);continue}let m=f.sources[0],h=f.streams[0],_=n.properties.filter(e=>e.isIdentifier);o===null&&m.identifier!==null&&_.length===1&&compatible(_[0].type,m.identifier)===!1&&l.error(e.InvalidCommandStream,`Command identifier '${_[0].name}' does not have the source's nominal identifier type '${m.identifier.name}'. The stream does not supply a destination.`,_[0].location);for(let r of n.produces.filter(e=>y.isEventProduction(e,t)&&(o===null?e.stream==null:e===o))){if(m.identifier===null)continue;let i=a(n,r,c,{resolver:y,slice:t});if(i===null||o===null&&r.for===null&&r.inlineEvent!==null&&_.length===1&&compatible(_[0].type,m.identifier)===!1)continue;let s=r.for===null&&r.inlineEvent===null&&!n.properties.some(e=>e.isGenerated&&e.isIdentifier),d=u.get(m.identifier.name)?.type??(p.has(m.identifier.name)?m.identifier.name:null);(s?d===null?null:d===`Uuid`:compatible(i,m.identifier))===!1&&l.error(e.InvalidCommandStream,`Command production destination does not have the source's nominal identifier type '${m.identifier.name}'. The stream does not supply a destination.`,o?.stream?.location??r.for?.location??r.location)}let validateMapping=(t,i)=>{let a=t.source;if(a.kind===`PathExpressionSyntax`){let t=pathProperty(n.properties,a.path);(t.missing||t.property!==null&&compatible(t.property.type,i)===!1)&&l.error(e.InvalidCommandStream,`Stream id source '${a.path}' is absent or incompatible with nominal type '${i.name}'.`,a.location)}else if(a.kind===`LiteralExpressionSyntax`&&a.value!==null){let t=formatStreamIdLiteral(a,i,c);t?.failure==null?r(a,i,u,g)||l.error(e.InvalidCommandStream,`Stream id value is incompatible with nominal type '${i.name}'.`,a.location):l.error(e.InvalidCommandStream,s(t.failure),a.location)}else([`RawExpressionSyntax`,`ObjectExpressionSyntax`,`ListExpressionSyntax`].includes(a.kind)||a.kind===`LiteralExpressionSyntax`&&a.value===null)&&l.error(e.InvalidCommandStream,`A stream id needs a scalar value source, not a raw expression, collection or absence.`,a.location)};h.streamIdParts.length>0?d(h,i.streamIdParts,i.streamId!==null,i.location,e.InvalidCommandStream,l,validateMapping):i.streamIdParts.length>0?l.error(e.InvalidCommandStream,`A streamId part block requires a composite stream.`,i.location):((h.streamId===null&&i.streamId!==null||h.streamId!==null&&i.streamId===null)&&l.error(e.InvalidCommandStream,h.streamId===null?`An unkeyed stream cannot take a streamId mapping.`:`This keyed stream requires a streamId mapping.`,i.location),h.streamId!==null&&i.streamId!==null&&validateMapping(i.streamId,h.streamId))}f(c,l)}export{formatStreamIdLiteral,supportsStreamIdentity,validateEventSources};
|
|
1
|
+
import"../../_virtual/_virtual/_rolldown/runtime.js";import{DiagnosticCodes as e}from"../Diagnostics/DiagnosticCodes.js";import{AuthoringProductionResolver as t}from"../Syntax/AuthoringProductionResolver.js";import{EventSourceCatalog as n}from"../Syntax/EventSourceCatalog.js";import{compatibleValue as r,uniqueByName as i}from"./ResponseValidator.js";import{commandDestinationType as a}from"./CommandDestinationTypes.js";import{validateObserverFilters as o}from"./ObserverFilterValidator.js";import{streamIdFailureMessage as s,tryFormatInteger as c,tryFormatText as l,tryFormatUuidText as u}from"../Syntax/StreamIdFormatter.js";import{validateStreamIdParts as d}from"./CompositeStreamIdValidator.js";import{validateSpecificationStreams as f}from"./SpecificationStreamValidator.js";const sameExpression=(e,t)=>e==null&&t==null||e?.kind===`PathExpressionSyntax`&&t?.kind===`PathExpressionSyntax`&&e.path===t.path||e?.kind===`LiteralExpressionSyntax`&&t?.kind===`LiteralExpressionSyntax`&&JSON.stringify(e.value)===JSON.stringify(t.value),sameRoute=(e,t)=>e.eventSource===t.eventSource&&e.stream===t.stream&&sameExpression(e.streamId?.source,t.streamId?.source)&&e.streamIdParts.length===t.streamIdParts.length&&e.streamIdParts.every(e=>t.streamIdParts.some(t=>e.property===t.property&&sameExpression(e.source,t.source))),p=/* @__PURE__ */ new Set([`String`,`Uuid`,`Int`,`Decimal`,`Bool`,`Date`,`DateTime`]);function supportsStreamIdentity(e,t){let n=t.concepts.filter(t=>t.name===e.name),r=n.length===1?n[0].type:n.length===0&&p.has(e.name)?e.name:null;return r===`String`||r===`Uuid`||r===`Int`&&n.length===1&&n[0].values.length===0}function formatStreamIdLiteral(e,t,n){if(e?.kind!==`LiteralExpressionSyntax`)return null;let r=e.value,a=t===null?null:i(n.concepts).get(t.name)?.type??t.name;return typeof r==`string`?a===`Uuid`?u(r):l(r):typeof r==`number`?c(r):typeof r==`object`&&r&&r.literalType===`ExactNumber`?r.value.includes(`.`)?c(NaN):c(BigInt(r.value),!1):null}function validateEventSources(c,l){let u=i(c.concepts),m=i(c.types),h=/* @__PURE__ */ new Set([...p,...u.keys(),...m.keys()]),g=new Map([...m].map(([e,t])=>[e,i(t.properties)])),compatible=(e,t)=>h.has(e.name)&&h.has(t.name)?e.name===t.name&&e.isCollection===t.isCollection&&(!e.isOptional||t.isOptional):null,validateType=(t,n)=>{if(t===null)return;if(t.isOptional||t.isCollection||c.types.some(e=>e.name===t.name)){l.error(e.InvalidEventSourceDeclaration,`Identifier and streamId declarations require a nonoptional scalar value type.`,t.location);return}let r=c.concepts.filter(e=>e.name===t.name),i=r.length===1?r[0].type:r.length===0&&p.has(t.name)?t.name:null;n&&i!==null&&!supportsStreamIdentity(t,c)&&l.error(e.UnsupportedStreamIdType,`Stream ids support text and UUID values and their nominal concepts, plus integer-backed concepts; other types need a future portable formatter.`,t.location),i===null&&!c.imports.some(e=>e.qualifiedName===t.name||e.qualifiedName.split(`.`).at(-1)===t.name)&&l.warning(e.UnknownType,`Unknown type '${t.name}' in event source declaration.`,t.location)},_=/* @__PURE__ */ new Set;for(let t of c.eventSources??[]){_.has(t.name)&&l.error(e.InvalidEventSourceDeclaration,`Event source '${t.name}' has multiple physical declarations.`,t.location),_.add(t.name),(t.id??t.name)===`Default`&&l.error(e.ReservedStoredName,`Event source '${t.name}' has the reserved stored name 'Default'; choose a stored name other than 'Default'.`,t.location),validateType(t.identifier,!1);let n=/* @__PURE__ */ new Set;for(let r of t.streams){n.has(r.name)&&l.error(e.InvalidEventSourceDeclaration,`Stream '${t.name}.${r.name}' has multiple declarations under this source.`,r.location),n.add(r.name),(r.id??r.name)===`All`&&l.error(e.ReservedStoredName,`Stream '${t.name}.${r.name}' has the reserved stored name 'All'; choose a stored name other than 'All'.`,r.location),validateType(r.streamId,!0);let i=r.streamIdParts;if(i.length>0){i.length<2&&l.error(e.InvalidEventSourceDeclaration,`A composite stream id requires at least two named parts.`,r.directiveLocations?.streamId??r.location);for(let t of new Set(i.map(e=>e.name)))for(let n of i.filter(e=>e.name===t).slice(1))l.error(e.InvalidEventSourceDeclaration,`Stream id part '${n.name}' is declared more than once.`,n.location);for(let e of i)validateType(e.type,!0)}}}let pathProperty=(e,t)=>{let[n,...r]=t.split(`.`);if(e===null)return{property:null,missing:!1};let i=e.filter(e=>e.name===n);if(i.length!==1)return{property:null,missing:i.length===0};let a=i[0];if(r.length===0)return{property:a,missing:!1};if(p.has(a.type.name)||u.has(a.type.name)&&!m.has(a.type.name))return{property:null,missing:!0};let o=pathProperty(m.get(a.type.name)?.properties??null,r.join(`.`));return o.property===null?o:{property:{...o.property,type:{...o.property.type,isCollection:a.type.isCollection||o.property.type.isCollection,isOptional:a.type.isOptional||o.property.type.isOptional}},missing:!1}},v=new n(c),y=new t(c);o(c,l,y);for(let{slice:t}of y.slices)for(let n of t.commands)for(let{route:i,production:o}of[...n.stream==null?[]:[{route:n.stream,production:null}],...n.produces.filter(e=>e.stream!=null).map(e=>({route:e.stream,production:e}))]){if(i.propertyCandidate!==null)continue;o!==null&&n.stream!=null&&sameRoute(i,n.stream)&&l.warning(e.RedundantProductionRoute,`The production route repeats its command route; omit the override.`,i.location);let f=v.resolve(i.eventSource,i.stream);if(f.kind!==`unique`){let t={ambiguous:`Ambiguous`,notFound:`NotFound`,wrongKind:`WrongKind`}[f.kind];l.error(e.InvalidCommandStream,`Stream '${i.eventSource}.${i.stream}' is ${t}; routing requires one physical source and stream.`,i.location);continue}let m=f.sources[0],h=f.streams[0],_=n.properties.filter(e=>e.isIdentifier);o===null&&m.identifier!==null&&_.length===1&&compatible(_[0].type,m.identifier)===!1&&l.error(e.InvalidCommandStream,`Command identifier '${_[0].name}' does not have the source's nominal identifier type '${m.identifier.name}'. The stream does not supply a destination.`,_[0].location);for(let r of n.produces.filter(e=>y.isEventProduction(e,t)&&(o===null?e.stream==null:e===o))){if(m.identifier===null)continue;let i=a(n,r,c,{resolver:y,slice:t});if(i===null||o===null&&r.for===null&&r.inlineEvent!==null&&_.length===1&&compatible(_[0].type,m.identifier)===!1)continue;let s=r.for===null&&r.inlineEvent===null&&!n.properties.some(e=>e.isGenerated&&e.isIdentifier),d=u.get(m.identifier.name)?.type??(p.has(m.identifier.name)?m.identifier.name:null);(s?d===null?null:d===`Uuid`:compatible(i,m.identifier))===!1&&l.error(e.InvalidCommandStream,`Command production destination does not have the source's nominal identifier type '${m.identifier.name}'. The stream does not supply a destination.`,o?.stream?.location??r.for?.location??r.location)}let validateMapping=(t,i)=>{let a=t.source;if(a.kind===`PathExpressionSyntax`){let t=pathProperty(n.properties,a.path);(t.missing||t.property!==null&&compatible(t.property.type,i)===!1)&&l.error(e.InvalidCommandStream,`Stream id source '${a.path}' is absent or incompatible with nominal type '${i.name}'.`,a.location)}else if(a.kind===`LiteralExpressionSyntax`&&a.value!==null){let t=formatStreamIdLiteral(a,i,c);t?.failure==null?r(a,i,u,g)||l.error(e.InvalidCommandStream,`Stream id value is incompatible with nominal type '${i.name}'.`,a.location):l.error(e.InvalidCommandStream,s(t.failure),a.location)}else([`RawExpressionSyntax`,`ObjectExpressionSyntax`,`ListExpressionSyntax`].includes(a.kind)||a.kind===`LiteralExpressionSyntax`&&a.value===null)&&l.error(e.InvalidCommandStream,`A stream id needs a scalar value source, not a raw expression, collection or absence.`,a.location)};h.streamIdParts.length>0?d(h,i.streamIdParts,i.streamId!==null,i.location,e.InvalidCommandStream,l,validateMapping):i.streamIdParts.length>0?l.error(e.InvalidCommandStream,`A streamId part block requires a composite stream.`,i.location):((h.streamId===null&&i.streamId!==null||h.streamId!==null&&i.streamId===null)&&l.error(e.InvalidCommandStream,h.streamId===null?`An unkeyed stream cannot take a streamId mapping.`:`This keyed stream requires a streamId mapping.`,i.location),h.streamId!==null&&i.streamId!==null&&validateMapping(i.streamId,h.streamId))}f(c,l)}export{formatStreamIdLiteral,supportsStreamIdentity,validateEventSources};
|
|
2
2
|
//# sourceMappingURL=EventSourceValidator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventSourceValidator.js","names":["left","right","part","other","primitives","concepts","application","concept","type","primitive","expression","value","uniqueByName","tryFormatUuidText","tryFormatText","tryFormatInteger","composites","known","compositeProperties","name","source","target","composite","context","DiagnosticCodes","named","streamId","imported","names","streams","stream","parts","duplicate","remaining","path","properties","matches","property","resolved","catalog","EventSourceCatalog","resolver","AuthoringProductionResolver","validateObserverFilters","command","slice","produced","route","production","resolution","state","identifiers","destination","commandDestinationType","allocated","mapping","formatted","compatibleValue","streamIdFailureMessage","validateStreamIdParts","validateSpecificationStreams"],"sources":["../../../../../../Compiler/Parsing/EventSourceValidator.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 { AuthoringProductionResolver } from '../Syntax/AuthoringProductionResolver';\nimport { PropertySyntax, TypeRefSyntax } from '../Syntax/Declarations';\nimport { EventSourceCatalog } from '../Syntax/EventSourceCatalog';\nimport { CommandStreamSyntax, EventSourceResolutionKind } from '../Syntax/EventSources';\nimport { validateObserverFilters } from './ObserverFilterValidator';\nimport { ApplicationSyntax } from '../Syntax/Structure';\nimport { ExpressionSyntax, PropertyMappingSyntax } from '../Syntax/Expressions';\nimport { StreamIdFormatResult, streamIdFailureMessage, tryFormatInteger, tryFormatText, tryFormatUuidText } from '../Syntax/StreamIdFormatter';\nimport { commandDestinationType } from './CommandDestinationTypes';\nimport { validateStreamIdParts } from './CompositeStreamIdValidator';\nimport { ParserContext } from './ParserContext';\nimport { compatibleValue, uniqueByName } from './ResponseValidator';\nimport { validateSpecificationStreams } from './SpecificationStreamValidator';\n\nconst sameExpression = (left: ExpressionSyntax | null | undefined, right: ExpressionSyntax | null | undefined): boolean =>\n left == null && right == null || left?.kind === 'PathExpressionSyntax' && right?.kind === 'PathExpressionSyntax' && left.path === right.path ||\n left?.kind === 'LiteralExpressionSyntax' && right?.kind === 'LiteralExpressionSyntax' && JSON.stringify(left.value) === JSON.stringify(right.value);\nconst sameRoute = (left: CommandStreamSyntax, right: CommandStreamSyntax): boolean => left.eventSource === right.eventSource && left.stream === right.stream &&\n sameExpression(left.streamId?.source, right.streamId?.source) && left.streamIdParts.length === right.streamIdParts.length &&\n left.streamIdParts.every(part => right.streamIdParts.some(other => part.property === other.property && sameExpression(part.source, other.source)));\n\nconst primitives = new Set(['String', 'Uuid', 'Int', 'Decimal', 'Bool', 'Date', 'DateTime']);\n\nexport function supportsStreamIdentity(type: TypeRefSyntax, application: ApplicationSyntax): boolean {\n const concepts = application.concepts.filter(concept => concept.name === type.name);\n const primitive = concepts.length === 1 ? concepts[0].type : concepts.length === 0 && primitives.has(type.name) ? type.name : null;\n return primitive === 'String' || primitive === 'Uuid' || primitive === 'Int' && concepts.length === 1 && concepts[0].values.length === 0;\n}\n\nexport function formatStreamIdLiteral(expression: ExpressionSyntax | null | undefined, type: TypeRefSyntax | null, application: ApplicationSyntax): StreamIdFormatResult | null {\n if (expression?.kind !== 'LiteralExpressionSyntax') return null;\n const value = expression.value;\n const primitive = type === null ? null : uniqueByName(application.concepts).get(type.name)?.type ?? type.name;\n if (typeof value === 'string') return primitive === 'Uuid' ? tryFormatUuidText(value) : tryFormatText(value);\n if (typeof value === 'number') return tryFormatInteger(value);\n if (typeof value === 'object' && value !== null && value.literalType === 'ExactNumber') {\n if (value.value.includes('.')) return tryFormatInteger(NaN);\n return tryFormatInteger(BigInt(value.value), false);\n }\n return null;\n}\n\nexport function validateEventSources(application: ApplicationSyntax, context: ParserContext): void {\n const concepts = uniqueByName(application.concepts);\n const composites = uniqueByName(application.types);\n const known = new Set([...primitives, ...concepts.keys(), ...composites.keys()]);\n const compositeProperties = new Map([...composites].map(([name, type]) => [name, uniqueByName(type.properties)]));\n const compatible = (source: TypeRefSyntax, target: TypeRefSyntax): boolean | null => known.has(source.name) && known.has(target.name)\n ? source.name === target.name && source.isCollection === target.isCollection && (!source.isOptional || target.isOptional) : null;\n const validateType = (type: TypeRefSyntax | null, streamId: boolean): void => {\n if (type === null) return;\n if (type.isOptional || type.isCollection || application.types.some(composite => composite.name === type.name)) {\n context.error(DiagnosticCodes.InvalidEventSourceDeclaration, 'Identifier and streamId declarations require a nonoptional scalar value type.', type.location);\n return;\n }\n const named = application.concepts.filter(concept => concept.name === type.name);\n const primitive = named.length === 1 ? named[0].type : named.length === 0 && primitives.has(type.name) ? type.name : null;\n if (streamId && primitive !== null && !supportsStreamIdentity(type, application))\n context.error(DiagnosticCodes.UnsupportedStreamIdType, 'Stream ids support text and UUID values and their nominal concepts, plus integer-backed concepts; other types need a future portable formatter.', type.location);\n if (primitive === null && !application.imports.some(imported => imported.qualifiedName === type.name || imported.qualifiedName.split('.').at(-1) === type.name))\n context.warning(DiagnosticCodes.UnknownType, `Unknown type '${type.name}' in event source declaration.`, type.location);\n };\n const names = new Set<string>();\n for (const source of application.eventSources ?? []) {\n if (names.has(source.name)) context.error(DiagnosticCodes.InvalidEventSourceDeclaration, `Event source '${source.name}' has multiple physical declarations.`, source.location);\n names.add(source.name);\n validateType(source.identifier, false);\n const streams = new Set<string>();\n for (const stream of source.streams) {\n if (streams.has(stream.name)) context.error(DiagnosticCodes.InvalidEventSourceDeclaration, `Stream '${source.name}.${stream.name}' has multiple declarations under this source.`, stream.location);\n streams.add(stream.name);\n validateType(stream.streamId, true);\n const parts = stream.streamIdParts;\n if (parts.length > 0) {\n if (parts.length < 2) context.error(DiagnosticCodes.InvalidEventSourceDeclaration, 'A composite stream id requires at least two named parts.', stream.directiveLocations?.streamId ?? stream.location);\n for (const name of new Set(parts.map(part => part.name))) {\n for (const duplicate of parts.filter(part => part.name === name).slice(1))\n context.error(DiagnosticCodes.InvalidEventSourceDeclaration, `Stream id part '${duplicate.name}' is declared more than once.`, duplicate.location);\n }\n for (const part of parts) validateType(part.type, true);\n }\n }\n }\n const pathProperty = (properties: readonly PropertySyntax[] | null, path: string): { property: PropertySyntax | null; missing: boolean } => {\n const [name, ...remaining] = path.split('.');\n if (properties === null) return { property: null, missing: false };\n const matches = properties.filter(property => property.name === name);\n if (matches.length !== 1) return { property: null, missing: matches.length === 0 };\n const property = matches[0];\n if (remaining.length === 0) return { property, missing: false };\n if (primitives.has(property.type.name) || concepts.has(property.type.name) && !composites.has(property.type.name)) return { property: null, missing: true };\n const resolved = pathProperty(composites.get(property.type.name)?.properties ?? null, remaining.join('.'));\n return resolved.property === null ? resolved : { property: { ...resolved.property, type: { ...resolved.property.type, isCollection: property.type.isCollection || resolved.property.type.isCollection, isOptional: property.type.isOptional || resolved.property.type.isOptional } }, missing: false };\n };\n const catalog = new EventSourceCatalog(application);\n const resolver = new AuthoringProductionResolver(application);\n validateObserverFilters(application, context, resolver);\n for (const { slice } of resolver.slices) for (const command of slice.commands) for (const { route, production } of [\n ...(command.stream == null ? [] : [{ route: command.stream, production: null }]),\n ...command.produces.filter(produced => produced.stream != null).map(produced => ({ route: produced.stream!, production: produced }))\n ]) {\n if (route.propertyCandidate !== null) continue;\n if (production !== null && command.stream != null && sameRoute(route, command.stream))\n context.warning(DiagnosticCodes.RedundantProductionRoute, 'The production route repeats its command route; omit the override.', route.location);\n const resolution = catalog.resolve(route.eventSource, route.stream);\n if (resolution.kind !== EventSourceResolutionKind.Unique) {\n const state = { ambiguous: 'Ambiguous', notFound: 'NotFound', wrongKind: 'WrongKind' }[resolution.kind];\n context.error(DiagnosticCodes.InvalidCommandStream, `Stream '${route.eventSource}.${route.stream}' is ${state}; routing requires one physical source and stream.`, route.location);\n continue;\n }\n const source = resolution.sources[0];\n const stream = resolution.streams[0];\n const identifiers = command.properties.filter(property => property.isIdentifier);\n if (production === null && source.identifier !== null && identifiers.length === 1 && compatible(identifiers[0].type, source.identifier) === false)\n context.error(DiagnosticCodes.InvalidCommandStream, `Command identifier '${identifiers[0].name}' does not have the source's nominal identifier type '${source.identifier.name}'. The stream does not supply a destination.`, identifiers[0].location);\n for (const produced of command.produces.filter(produced => resolver.isEventProduction(produced, slice) && (production === null ? produced.stream == null : produced === production))) {\n if (source.identifier === null) continue;\n const destination = commandDestinationType(command, produced, application, { resolver, slice });\n if (destination === null) continue;\n if (production === null && produced.for === null && produced.inlineEvent !== null && identifiers.length === 1 && compatible(identifiers[0].type, source.identifier) === false) continue;\n const allocated = produced.for === null && produced.inlineEvent === null && !command.properties.some(property => property.isGenerated && property.isIdentifier);\n const primitive = concepts.get(source.identifier.name)?.type ?? (primitives.has(source.identifier.name) ? source.identifier.name : null);\n const matches = allocated ? primitive === null ? null : primitive === 'Uuid' : compatible(destination, source.identifier);\n if (matches === false) context.error(DiagnosticCodes.InvalidCommandStream, `Command production destination does not have the source's nominal identifier type '${source.identifier.name}'. The stream does not supply a destination.`, production?.stream?.location ?? produced.for?.location ?? produced.location);\n }\n const validateMapping = (mapping: PropertyMappingSyntax, target: TypeRefSyntax): void => {\n const expression = mapping.source;\n if (expression.kind === 'PathExpressionSyntax') {\n const resolved = pathProperty(command.properties, expression.path);\n if (resolved.missing || resolved.property !== null && compatible(resolved.property.type, target) === false)\n context.error(DiagnosticCodes.InvalidCommandStream, `Stream id source '${expression.path}' is absent or incompatible with nominal type '${target.name}'.`, expression.location);\n } else if (expression.kind === 'LiteralExpressionSyntax' && expression.value !== null) {\n const formatted = formatStreamIdLiteral(expression, target, application);\n if (formatted?.failure != null) context.error(DiagnosticCodes.InvalidCommandStream, streamIdFailureMessage(formatted.failure), expression.location);\n else if (!compatibleValue(expression, target, concepts, compositeProperties)) context.error(DiagnosticCodes.InvalidCommandStream, `Stream id value is incompatible with nominal type '${target.name}'.`, expression.location);\n } else if (['RawExpressionSyntax', 'ObjectExpressionSyntax', 'ListExpressionSyntax'].includes(expression.kind) || expression.kind === 'LiteralExpressionSyntax' && expression.value === null)\n context.error(DiagnosticCodes.InvalidCommandStream, 'A stream id needs a scalar value source, not a raw expression, collection or absence.', expression.location);\n };\n if (stream.streamIdParts.length > 0) {\n validateStreamIdParts(stream, route.streamIdParts, route.streamId !== null, route.location, DiagnosticCodes.InvalidCommandStream, context, validateMapping);\n continue;\n }\n if (route.streamIdParts.length > 0) {\n context.error(DiagnosticCodes.InvalidCommandStream, 'A streamId part block requires a composite stream.', route.location);\n continue;\n }\n if (stream.streamId === null && route.streamId !== null || stream.streamId !== null && route.streamId === null)\n context.error(DiagnosticCodes.InvalidCommandStream, stream.streamId === null ? 'An unkeyed stream cannot take a streamId mapping.' : 'This keyed stream requires a streamId mapping.', route.location);\n if (stream.streamId === null || route.streamId === null) continue;\n validateMapping(route.streamId, stream.streamId);\n }\n validateSpecificationStreams(application, context);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EventSourceValidator.js","names":["left","right","part","other","primitives","concepts","application","concept","type","primitive","expression","value","uniqueByName","tryFormatUuidText","tryFormatText","tryFormatInteger","composites","known","compositeProperties","name","source","target","composite","context","DiagnosticCodes","named","streamId","imported","names","streams","stream","parts","duplicate","remaining","path","properties","matches","property","resolved","catalog","EventSourceCatalog","resolver","AuthoringProductionResolver","validateObserverFilters","command","slice","produced","route","production","resolution","state","identifiers","destination","commandDestinationType","allocated","mapping","formatted","compatibleValue","streamIdFailureMessage","validateStreamIdParts","validateSpecificationStreams"],"sources":["../../../../../../Compiler/Parsing/EventSourceValidator.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 { AuthoringProductionResolver } from '../Syntax/AuthoringProductionResolver';\nimport { PropertySyntax, TypeRefSyntax } from '../Syntax/Declarations';\nimport { EventSourceCatalog } from '../Syntax/EventSourceCatalog';\nimport { CommandStreamSyntax, EventSourceResolutionKind } from '../Syntax/EventSources';\nimport { validateObserverFilters } from './ObserverFilterValidator';\nimport { ApplicationSyntax } from '../Syntax/Structure';\nimport { ExpressionSyntax, PropertyMappingSyntax } from '../Syntax/Expressions';\nimport { StreamIdFormatResult, streamIdFailureMessage, tryFormatInteger, tryFormatText, tryFormatUuidText } from '../Syntax/StreamIdFormatter';\nimport { commandDestinationType } from './CommandDestinationTypes';\nimport { validateStreamIdParts } from './CompositeStreamIdValidator';\nimport { ParserContext } from './ParserContext';\nimport { compatibleValue, uniqueByName } from './ResponseValidator';\nimport { validateSpecificationStreams } from './SpecificationStreamValidator';\n\nconst sameExpression = (left: ExpressionSyntax | null | undefined, right: ExpressionSyntax | null | undefined): boolean =>\n left == null && right == null || left?.kind === 'PathExpressionSyntax' && right?.kind === 'PathExpressionSyntax' && left.path === right.path ||\n left?.kind === 'LiteralExpressionSyntax' && right?.kind === 'LiteralExpressionSyntax' && JSON.stringify(left.value) === JSON.stringify(right.value);\nconst sameRoute = (left: CommandStreamSyntax, right: CommandStreamSyntax): boolean => left.eventSource === right.eventSource && left.stream === right.stream &&\n sameExpression(left.streamId?.source, right.streamId?.source) && left.streamIdParts.length === right.streamIdParts.length &&\n left.streamIdParts.every(part => right.streamIdParts.some(other => part.property === other.property && sameExpression(part.source, other.source)));\n\nconst primitives = new Set(['String', 'Uuid', 'Int', 'Decimal', 'Bool', 'Date', 'DateTime']);\n\nexport function supportsStreamIdentity(type: TypeRefSyntax, application: ApplicationSyntax): boolean {\n const concepts = application.concepts.filter(concept => concept.name === type.name);\n const primitive = concepts.length === 1 ? concepts[0].type : concepts.length === 0 && primitives.has(type.name) ? type.name : null;\n return primitive === 'String' || primitive === 'Uuid' || primitive === 'Int' && concepts.length === 1 && concepts[0].values.length === 0;\n}\n\nexport function formatStreamIdLiteral(expression: ExpressionSyntax | null | undefined, type: TypeRefSyntax | null, application: ApplicationSyntax): StreamIdFormatResult | null {\n if (expression?.kind !== 'LiteralExpressionSyntax') return null;\n const value = expression.value;\n const primitive = type === null ? null : uniqueByName(application.concepts).get(type.name)?.type ?? type.name;\n if (typeof value === 'string') return primitive === 'Uuid' ? tryFormatUuidText(value) : tryFormatText(value);\n if (typeof value === 'number') return tryFormatInteger(value);\n if (typeof value === 'object' && value !== null && value.literalType === 'ExactNumber') {\n if (value.value.includes('.')) return tryFormatInteger(NaN);\n return tryFormatInteger(BigInt(value.value), false);\n }\n return null;\n}\n\nexport function validateEventSources(application: ApplicationSyntax, context: ParserContext): void {\n const concepts = uniqueByName(application.concepts);\n const composites = uniqueByName(application.types);\n const known = new Set([...primitives, ...concepts.keys(), ...composites.keys()]);\n const compositeProperties = new Map([...composites].map(([name, type]) => [name, uniqueByName(type.properties)]));\n const compatible = (source: TypeRefSyntax, target: TypeRefSyntax): boolean | null => known.has(source.name) && known.has(target.name)\n ? source.name === target.name && source.isCollection === target.isCollection && (!source.isOptional || target.isOptional) : null;\n const validateType = (type: TypeRefSyntax | null, streamId: boolean): void => {\n if (type === null) return;\n if (type.isOptional || type.isCollection || application.types.some(composite => composite.name === type.name)) {\n context.error(DiagnosticCodes.InvalidEventSourceDeclaration, 'Identifier and streamId declarations require a nonoptional scalar value type.', type.location);\n return;\n }\n const named = application.concepts.filter(concept => concept.name === type.name);\n const primitive = named.length === 1 ? named[0].type : named.length === 0 && primitives.has(type.name) ? type.name : null;\n if (streamId && primitive !== null && !supportsStreamIdentity(type, application))\n context.error(DiagnosticCodes.UnsupportedStreamIdType, 'Stream ids support text and UUID values and their nominal concepts, plus integer-backed concepts; other types need a future portable formatter.', type.location);\n if (primitive === null && !application.imports.some(imported => imported.qualifiedName === type.name || imported.qualifiedName.split('.').at(-1) === type.name))\n context.warning(DiagnosticCodes.UnknownType, `Unknown type '${type.name}' in event source declaration.`, type.location);\n };\n const names = new Set<string>();\n for (const source of application.eventSources ?? []) {\n if (names.has(source.name)) context.error(DiagnosticCodes.InvalidEventSourceDeclaration, `Event source '${source.name}' has multiple physical declarations.`, source.location);\n names.add(source.name);\n if ((source.id ?? source.name) === 'Default')\n context.error(DiagnosticCodes.ReservedStoredName, `Event source '${source.name}' has the reserved stored name 'Default'; choose a stored name other than 'Default'.`, source.location);\n validateType(source.identifier, false);\n const streams = new Set<string>();\n for (const stream of source.streams) {\n if (streams.has(stream.name)) context.error(DiagnosticCodes.InvalidEventSourceDeclaration, `Stream '${source.name}.${stream.name}' has multiple declarations under this source.`, stream.location);\n streams.add(stream.name);\n if ((stream.id ?? stream.name) === 'All')\n context.error(DiagnosticCodes.ReservedStoredName, `Stream '${source.name}.${stream.name}' has the reserved stored name 'All'; choose a stored name other than 'All'.`, stream.location);\n validateType(stream.streamId, true);\n const parts = stream.streamIdParts;\n if (parts.length > 0) {\n if (parts.length < 2) context.error(DiagnosticCodes.InvalidEventSourceDeclaration, 'A composite stream id requires at least two named parts.', stream.directiveLocations?.streamId ?? stream.location);\n for (const name of new Set(parts.map(part => part.name))) {\n for (const duplicate of parts.filter(part => part.name === name).slice(1))\n context.error(DiagnosticCodes.InvalidEventSourceDeclaration, `Stream id part '${duplicate.name}' is declared more than once.`, duplicate.location);\n }\n for (const part of parts) validateType(part.type, true);\n }\n }\n }\n const pathProperty = (properties: readonly PropertySyntax[] | null, path: string): { property: PropertySyntax | null; missing: boolean } => {\n const [name, ...remaining] = path.split('.');\n if (properties === null) return { property: null, missing: false };\n const matches = properties.filter(property => property.name === name);\n if (matches.length !== 1) return { property: null, missing: matches.length === 0 };\n const property = matches[0];\n if (remaining.length === 0) return { property, missing: false };\n if (primitives.has(property.type.name) || concepts.has(property.type.name) && !composites.has(property.type.name)) return { property: null, missing: true };\n const resolved = pathProperty(composites.get(property.type.name)?.properties ?? null, remaining.join('.'));\n return resolved.property === null ? resolved : { property: { ...resolved.property, type: { ...resolved.property.type, isCollection: property.type.isCollection || resolved.property.type.isCollection, isOptional: property.type.isOptional || resolved.property.type.isOptional } }, missing: false };\n };\n const catalog = new EventSourceCatalog(application);\n const resolver = new AuthoringProductionResolver(application);\n validateObserverFilters(application, context, resolver);\n for (const { slice } of resolver.slices) for (const command of slice.commands) for (const { route, production } of [\n ...(command.stream == null ? [] : [{ route: command.stream, production: null }]),\n ...command.produces.filter(produced => produced.stream != null).map(produced => ({ route: produced.stream!, production: produced }))\n ]) {\n if (route.propertyCandidate !== null) continue;\n if (production !== null && command.stream != null && sameRoute(route, command.stream))\n context.warning(DiagnosticCodes.RedundantProductionRoute, 'The production route repeats its command route; omit the override.', route.location);\n const resolution = catalog.resolve(route.eventSource, route.stream);\n if (resolution.kind !== EventSourceResolutionKind.Unique) {\n const state = { ambiguous: 'Ambiguous', notFound: 'NotFound', wrongKind: 'WrongKind' }[resolution.kind];\n context.error(DiagnosticCodes.InvalidCommandStream, `Stream '${route.eventSource}.${route.stream}' is ${state}; routing requires one physical source and stream.`, route.location);\n continue;\n }\n const source = resolution.sources[0];\n const stream = resolution.streams[0];\n const identifiers = command.properties.filter(property => property.isIdentifier);\n if (production === null && source.identifier !== null && identifiers.length === 1 && compatible(identifiers[0].type, source.identifier) === false)\n context.error(DiagnosticCodes.InvalidCommandStream, `Command identifier '${identifiers[0].name}' does not have the source's nominal identifier type '${source.identifier.name}'. The stream does not supply a destination.`, identifiers[0].location);\n for (const produced of command.produces.filter(produced => resolver.isEventProduction(produced, slice) && (production === null ? produced.stream == null : produced === production))) {\n if (source.identifier === null) continue;\n const destination = commandDestinationType(command, produced, application, { resolver, slice });\n if (destination === null) continue;\n if (production === null && produced.for === null && produced.inlineEvent !== null && identifiers.length === 1 && compatible(identifiers[0].type, source.identifier) === false) continue;\n const allocated = produced.for === null && produced.inlineEvent === null && !command.properties.some(property => property.isGenerated && property.isIdentifier);\n const primitive = concepts.get(source.identifier.name)?.type ?? (primitives.has(source.identifier.name) ? source.identifier.name : null);\n const matches = allocated ? primitive === null ? null : primitive === 'Uuid' : compatible(destination, source.identifier);\n if (matches === false) context.error(DiagnosticCodes.InvalidCommandStream, `Command production destination does not have the source's nominal identifier type '${source.identifier.name}'. The stream does not supply a destination.`, production?.stream?.location ?? produced.for?.location ?? produced.location);\n }\n const validateMapping = (mapping: PropertyMappingSyntax, target: TypeRefSyntax): void => {\n const expression = mapping.source;\n if (expression.kind === 'PathExpressionSyntax') {\n const resolved = pathProperty(command.properties, expression.path);\n if (resolved.missing || resolved.property !== null && compatible(resolved.property.type, target) === false)\n context.error(DiagnosticCodes.InvalidCommandStream, `Stream id source '${expression.path}' is absent or incompatible with nominal type '${target.name}'.`, expression.location);\n } else if (expression.kind === 'LiteralExpressionSyntax' && expression.value !== null) {\n const formatted = formatStreamIdLiteral(expression, target, application);\n if (formatted?.failure != null) context.error(DiagnosticCodes.InvalidCommandStream, streamIdFailureMessage(formatted.failure), expression.location);\n else if (!compatibleValue(expression, target, concepts, compositeProperties)) context.error(DiagnosticCodes.InvalidCommandStream, `Stream id value is incompatible with nominal type '${target.name}'.`, expression.location);\n } else if (['RawExpressionSyntax', 'ObjectExpressionSyntax', 'ListExpressionSyntax'].includes(expression.kind) || expression.kind === 'LiteralExpressionSyntax' && expression.value === null)\n context.error(DiagnosticCodes.InvalidCommandStream, 'A stream id needs a scalar value source, not a raw expression, collection or absence.', expression.location);\n };\n if (stream.streamIdParts.length > 0) {\n validateStreamIdParts(stream, route.streamIdParts, route.streamId !== null, route.location, DiagnosticCodes.InvalidCommandStream, context, validateMapping);\n continue;\n }\n if (route.streamIdParts.length > 0) {\n context.error(DiagnosticCodes.InvalidCommandStream, 'A streamId part block requires a composite stream.', route.location);\n continue;\n }\n if (stream.streamId === null && route.streamId !== null || stream.streamId !== null && route.streamId === null)\n context.error(DiagnosticCodes.InvalidCommandStream, stream.streamId === null ? 'An unkeyed stream cannot take a streamId mapping.' : 'This keyed stream requires a streamId mapping.', route.location);\n if (stream.streamId === null || route.streamId === null) continue;\n validateMapping(route.streamId, stream.streamId);\n }\n validateSpecificationStreams(application, context);\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e={unknownMatchPattern:`PLAY0366`,invalidMatchPattern:`PLAY0367`,patternOutsidePortableMatchDialect:`PLAY0699`,deprecatedStudioTextRulePattern:`PLAY0787`,repeatedSingularDeclarationAcrossFiles:`PLAY0172`,directionlessTranslationReactsToOwnCapture:`PLAY0694`,pendingIntentWithOtherHandler:`PLAY0698`,commandHandlerRequiresAttachment:`PLAY0800`,duplicateEventInProjectionScope:`PLAY0801`,describedCommandNotImplemented:`PLAY0695`,describedCommandWithoutProductions:`PLAY0696`,describedCommandCardinalityNotAdmitted:`PLAY0697`,invalidExposureDeclaration:`PLAY0621`,unknownExposureOwner:`PLAY0622`,reExposureCycle:`PLAY0623`,reExposureBroken:`PLAY0624`,invalidInstanceContribution:`PLAY0625`,unknownContributionInstance:`PLAY0626`,contributionNotExposed:`PLAY0627`,contributionTypeMismatch:`PLAY0628`,unknownTemplateContentSlot:`PLAY0629`,unknownNavigationOutlet:`PLAY0630`,templateScopeMismatch:`PLAY0631`,incompatibleComponentPackage:`PLAY0632`,unknownNavigationDestination:`PLAY0654`,unknownScreenContributionPoint:`PLAY0655`,templateNestingCycle:`PLAY0656`,templateCategoryMissing:`PLAY0720`,invalidTemplateVersionRange:`PLAY0721`,unknownTemplateBlueprint:`PLAY0722`,mixedEnumerationNumbering:`PLAY0667`,duplicateEnumerationNumber:`PLAY0668`,enumerationNumberOutsideInt32:`PLAY0669`,malformedEnumerationNumber:`PLAY0670`,unpinnedStoredEnumeration:`PLAY0671`,invalidIdentityDeclaration:`PLAY0633`,duplicateIdentity:`PLAY0634`,invalidIdentityDetail:`PLAY0635`,unknownIdentitySource:`PLAY0636`,identityDetailWithoutSource:`PLAY0637`,identitySourceWithBody:`PLAY0638`,duplicateIdentityDetail:`PLAY0639`,builtInIdentityDetail:`PLAY0640`,unknownIdentityQuery:`PLAY0641`,invalidIdentityQuery:`PLAY0642`,identityQueryWithoutKey:`PLAY0643`,invalidIdentityQueryKey:`PLAY0644`,identityQueryAuthorizationDependency:`PLAY0645`,identityQueryTypeMismatch:`PLAY0646`,invalidReactionIdentity:`PLAY0647`,gatedInvocationWithoutIdentity:`PLAY0648`,unusedReactionIdentity:`PLAY0649`,unusedReactionRole:`PLAY0650`,unsatisfiedReactionIdentity:`PLAY0651`,reactionPrivilegeEscalation:`PLAY0652`,commandProducesPublicEvent:`PLAY0607`,publicEventRequiresOutboundTranslation:`PLAY0608`,outboundPublicEventCount:`PLAY0609`,foreignPublicEventConsumer:`PLAY0610`,outboundTranslationInput:`PLAY0611`,inboundTranslationOutput:`PLAY0612`,foreignPublicEventProduced:`PLAY0613`,publicTranslationRequiresDirection:`PLAY0614`,translationConstructDirection:`PLAY0615`,inboundTranslationInput:`PLAY0616`,outboundTranslationOutput:`PLAY0617`,eventTargetOutsideOutboundTranslation:`PLAY0618`,eventsSourceOutsideInboundTranslation:`PLAY0619`,invalidCaptureEventsSource:`PLAY0620`,captureEventsFromSeveralOrigins:`PLAY0687`,captureEventsKeyNotRequired:`PLAY0700`,captureEventsRecordFixture:`PLAY0701`,refutedGeneratedConceptRule:`PLAY0688`,unprovenGeneratedConceptRule:`PLAY0689`,invalidReadModelKey:`PLAY0660`,incompleteReadModelKey:`PLAY0661`,invalidReadModelKeyLookup:`PLAY0662`,productionRouteOutsideCommand:`PLAY0663`,redundantProductionRoute:`PLAY0664`,invalidObserverFilter:`PLAY0665`,observerFilterExcludesEveryProducer:`PLAY0666`,reducerIdentityMismatch:`PLAY0690`,generationSupportBudgetExceeded:`PLAY0691`,emptyGenerationSupport:`PLAY0692`,invalidReactionBatchesDeclaration:`PLAY0693`,invalidCommandReadsDeclaration:`PLAY0780`,invalidDescription:`PLAY0145`,emptyDescription:`PLAY0146`,duplicateDescription:`PLAY0147`,unknownConceptDirective:`PLAY0010`,attributeReasonWithoutAttribute:`PLAY0012`,duplicateAttributeReason:`PLAY0013`,duplicateComplianceMarker:`PLAY0653`,legacyComplianceMarker:`PLAY0565`,unknownComplianceMarker:`PLAY0566`,invalidSecretScope:`PLAY0567`,duplicateSecretScope:`PLAY0568`,secretScopeIgnoredForPii:`PLAY0569`,invalidPersonalDataQualifier:`PLAY0570`,duplicateSpecialCategory:`PLAY0571`,invalidPurposeDeclaration:`PLAY0596`,invalidPurposeVocabulary:`PLAY0597`,duplicatePurposeField:`PLAY0598`,duplicatePurposeDeclaration:`PLAY0599`,unknownPurpose:`PLAY0600`,purposeInterestMismatch:`PLAY0601`,personalDataWithoutPurpose:`PLAY0602`,specialDataWithoutCondition:`PLAY0603`,criminalDataWithoutAuthorization:`PLAY0604`,purposeWithoutBasis:`PLAY0605`,unusedPurpose:`PLAY0606`,duplicateEventSubject:`PLAY0590`,invalidSubjectType:`PLAY0591`,protectedSubjectType:`PLAY0592`,invalidSubjectOwner:`PLAY0593`,readModelSubjectNotSupported:`PLAY0594`,invalidSubjectModifierOrder:`PLAY0595`,conflictingScreenDataBinding:`PLAY0530`,screenDataQueryMismatch:`PLAY0531`,actionWithoutInputSurface:`PLAY0532`,commandWithoutInputSurface:`PLAY0533`,readModelFieldWithoutOrigin:`PLAY0534`,queryParameterNotHeldByView:`PLAY0535`,unconsumedEvent:`PLAY0536`,unreachableScreen:`PLAY0537`,invalidSpecificationCallerPersona:`PLAY0572`,unsynthesizablePersonaCaller:`PLAY0573`,personaWithoutGate:`PLAY0574`,gateWithoutPersona:`PLAY0575`,ambiguousPersonaCaller:`PLAY0576`,invalidSpecificationParameter:`PLAY0577`,invalidSpecificationCase:`PLAY0578`,duplicateSpecificationParameter:`PLAY0579`,duplicateSpecificationCase:`PLAY0580`,incompleteSpecificationTable:`PLAY0581`,invalidSpecificationCaseAssignment:`PLAY0582`,invalidSpecificationCaseValue:`PLAY0583`,invalidSpecificationCaseReference:`PLAY0584`,optionalSpecificationParameterTarget:`PLAY0585`,specificationCaseNameCollision:`PLAY0586`,incompatibleSpecificationParameterType:`PLAY0587`,unusedSpecificationParameter:`PLAY0588`,singularSpecificationTableExpansion:`PLAY0589`,invalidActionAlternative:`PLAY0341`,guardedActionWithoutAlternatives:`PLAY0342`,misplacedActionOtherwise:`PLAY0343`,unsupportedActionConditionOperand:`PLAY0344`,unknownActionSubjectField:`PLAY0345`,unresolvedActionSubject:`PLAY0346`,unreachableActionAlternative:`PLAY0347`,unknownActionArgumentProperty:`PLAY0348`,invalidRefusalBranch:`PLAY0538`,invalidRefusalBranchBody:`PLAY0539`,unreachableRefusalBranch:`PLAY0540`,invalidRefusalValue:`PLAY0541`,unknownRefusalConstraint:`PLAY0542`,unmatchedRedeliveredOccurrence:`PLAY0543`,unknownRedeliveryReaction:`PLAY0544`,invalidNoEventsExpectation:`PLAY0545`,indeterminateNegatedClaimTarget:`PLAY0546`,invalidAbsentReadModelStep:`PLAY0453`,unknownConstraintProperty:`PLAY0391`,invalidSpecificationExample:`PLAY0518`,duplicateSpecificationAssignment:`PLAY0519`,unknownReadModelProperty:`PLAY0514`,piiNotSupportedOnIdentifier:`PLAY0515`,invalidEventSourceDeclaration:`PLAY0503`,invalidCommandStream:`PLAY0504`,invalidSpecificationStream:`PLAY0547`,specificationStreamOnCommand:`PLAY0548`,invalidSpecificationStreamRoute:`PLAY0549`,invalidSpecificationStreamEventSource:`PLAY0550`,specificationStreamContradictsCommand:`PLAY0551`,ambiguousCommandStream:`PLAY0505`,unsupportedStreamIdType:`PLAY0506`,redundantSourceStreamId:`PLAY0507`,eventFromLaterSlice:`PLAY0516`,timelineCycleGroup:`PLAY0517`,invalidSpecificationExampleBody:`PLAY0526`,undeclaredDependency:`PLAY0552`,unusedDependencyDeclaration:`PLAY0553`,invalidDependencyTarget:`PLAY0554`,repeatedDependencyDeclaration:`PLAY0555`,mutualDependencyDeclarations:`PLAY0556`,authorizationRefusalWithoutIdentity:`PLAY0557`,invalidDocumentation:`PLAY0558`,conflictingDocumentationAcrossFiles:`PLAY0559`,unsupportedInteractionAlternatives:`PLAY0560`,mixedInteractionAlternatives:`PLAY0561`,interactionAlternativeWithoutActions:`PLAY0562`,inlineInteractionAlternative:`PLAY0563`,legacyInteractionWhere:`PLAY0564`,ambiguousReference:`PLAY0198`,invalidImplementationBlock:`PLAY0492`,invalidImplementationHint:`PLAY0493`,conflictingImplementationSources:`PLAY0494`,eventSourceIdInPayload:`PLAY0469`,explicitProducesTargetsRequired:`PLAY0470`,redundantEventId:`PLAY0471`,invalidEventId:`PLAY0472`,inlineEventCollision:`PLAY0473`,inlineEventOutsideCommand:`PLAY0474`,inlineEventGeneration:`PLAY0475`,reservedProductionMetadata:`PLAY0476`,invalidEventDocumentation:`PLAY0477`,tabIndentation:`PLAY0006`,unknownPrimitiveType:`PLAY0008`,mismatchedSpecificationQueryResult:`PLAY0465`,unknownSliceType:`PLAY0028`,duplicateCommandIdentifier:`PLAY0036`,unknownContextPath:`PLAY0153`,unknownContextCausedByProperty:`PLAY0154`,unknownContextIdentityProperty:`PLAY0155`,unclosedCodeBlock:`PLAY0164`,unknownType:`PLAY0165`,unknownEvent:`PLAY0166`,unknownPolicy:`PLAY0167`,duplicateDeclaration:`PLAY0168`,unknownEventContextMember:`PLAY0295`,unknownEventContextPath:`PLAY0296`,eventContextPathBelowCollection:`PLAY0297`,missingEventContextPath:`PLAY0298`,unresolvedDynamicKeySource:`PLAY0299`,invalidFileImport:`PLAY0454`,omittedProductionDestination:`PLAY0478`,legacyOptionalSuffix:`PLAY0479`,invalidOptionalModifierOrder:`PLAY0480`,optionalReadsNotSupported:`PLAY0481`,unavailableResponseExecution:`PLAY0268`,generatedPropertyOutsideCommand:`PLAY0482`,invalidGeneratedType:`PLAY0483`,invalidGeneratedModifierOrder:`PLAY0484`,generatedPropertyInput:`PLAY0485`,invalidCommandResponse:`PLAY0486`,invalidResponseSource:`PLAY0487`,duplicateResponseField:`PLAY0488`,invalidResponseShape:`PLAY0489`,invalidGeneratedFixture:`PLAY0490`,invalidReturnExpectation:`PLAY0491`,unknownGenerationStrategy:`PLAY0672`,invalidGenerationArgument:`PLAY0673`,invalidGenerationModifier:`PLAY0674`,duplicateGenerationModifier:`PLAY0675`,duplicateGeneration:`PLAY0676`,invalidGenerationPrimitive:`PLAY0677`,invalidGenerationPrefix:`PLAY0678`,invalidGenerationAlphabet:`PLAY0679`,invalidTypeIdPrefix:`PLAY0680`,generationSizeOutsideRange:`PLAY0681`,reservedSequenceGeneration:`PLAY0682`,lowGenerationEntropy:`PLAY0683`,lowGeneratedIdentifierEntropy:`PLAY0684`,responseNameUsedOnFailure:`PLAY0685`,eventIdPinNotCarriedToRenderers:`PLAY0686`};export{e as diagnosticCodes};
|
|
1
|
+
const e={unknownMatchPattern:`PLAY0366`,invalidMatchPattern:`PLAY0367`,patternOutsidePortableMatchDialect:`PLAY0699`,deprecatedStudioTextRulePattern:`PLAY0787`,repeatedSingularDeclarationAcrossFiles:`PLAY0172`,directionlessTranslationReactsToOwnCapture:`PLAY0694`,pendingIntentWithOtherHandler:`PLAY0698`,commandHandlerRequiresAttachment:`PLAY0800`,duplicateEventInProjectionScope:`PLAY0801`,reservedStoredName:`PLAY0802`,describedCommandNotImplemented:`PLAY0695`,describedCommandWithoutProductions:`PLAY0696`,describedCommandCardinalityNotAdmitted:`PLAY0697`,invalidExposureDeclaration:`PLAY0621`,unknownExposureOwner:`PLAY0622`,reExposureCycle:`PLAY0623`,reExposureBroken:`PLAY0624`,invalidInstanceContribution:`PLAY0625`,unknownContributionInstance:`PLAY0626`,contributionNotExposed:`PLAY0627`,contributionTypeMismatch:`PLAY0628`,unknownTemplateContentSlot:`PLAY0629`,unknownNavigationOutlet:`PLAY0630`,templateScopeMismatch:`PLAY0631`,incompatibleComponentPackage:`PLAY0632`,unknownNavigationDestination:`PLAY0654`,unknownScreenContributionPoint:`PLAY0655`,templateNestingCycle:`PLAY0656`,templateCategoryMissing:`PLAY0720`,invalidTemplateVersionRange:`PLAY0721`,unknownTemplateBlueprint:`PLAY0722`,mixedEnumerationNumbering:`PLAY0667`,duplicateEnumerationNumber:`PLAY0668`,enumerationNumberOutsideInt32:`PLAY0669`,malformedEnumerationNumber:`PLAY0670`,unpinnedStoredEnumeration:`PLAY0671`,invalidIdentityDeclaration:`PLAY0633`,duplicateIdentity:`PLAY0634`,invalidIdentityDetail:`PLAY0635`,unknownIdentitySource:`PLAY0636`,identityDetailWithoutSource:`PLAY0637`,identitySourceWithBody:`PLAY0638`,duplicateIdentityDetail:`PLAY0639`,builtInIdentityDetail:`PLAY0640`,unknownIdentityQuery:`PLAY0641`,invalidIdentityQuery:`PLAY0642`,identityQueryWithoutKey:`PLAY0643`,invalidIdentityQueryKey:`PLAY0644`,identityQueryAuthorizationDependency:`PLAY0645`,identityQueryTypeMismatch:`PLAY0646`,invalidReactionIdentity:`PLAY0647`,gatedInvocationWithoutIdentity:`PLAY0648`,unusedReactionIdentity:`PLAY0649`,unusedReactionRole:`PLAY0650`,unsatisfiedReactionIdentity:`PLAY0651`,reactionPrivilegeEscalation:`PLAY0652`,commandProducesPublicEvent:`PLAY0607`,publicEventRequiresOutboundTranslation:`PLAY0608`,outboundPublicEventCount:`PLAY0609`,foreignPublicEventConsumer:`PLAY0610`,outboundTranslationInput:`PLAY0611`,inboundTranslationOutput:`PLAY0612`,foreignPublicEventProduced:`PLAY0613`,publicTranslationRequiresDirection:`PLAY0614`,translationConstructDirection:`PLAY0615`,inboundTranslationInput:`PLAY0616`,outboundTranslationOutput:`PLAY0617`,eventTargetOutsideOutboundTranslation:`PLAY0618`,eventsSourceOutsideInboundTranslation:`PLAY0619`,invalidCaptureEventsSource:`PLAY0620`,captureEventsFromSeveralOrigins:`PLAY0687`,captureEventsKeyNotRequired:`PLAY0700`,captureEventsRecordFixture:`PLAY0701`,refutedGeneratedConceptRule:`PLAY0688`,unprovenGeneratedConceptRule:`PLAY0689`,invalidReadModelKey:`PLAY0660`,incompleteReadModelKey:`PLAY0661`,invalidReadModelKeyLookup:`PLAY0662`,productionRouteOutsideCommand:`PLAY0663`,redundantProductionRoute:`PLAY0664`,invalidObserverFilter:`PLAY0665`,observerFilterExcludesEveryProducer:`PLAY0666`,reducerIdentityMismatch:`PLAY0690`,generationSupportBudgetExceeded:`PLAY0691`,emptyGenerationSupport:`PLAY0692`,invalidReactionBatchesDeclaration:`PLAY0693`,invalidCommandReadsDeclaration:`PLAY0780`,invalidDescription:`PLAY0145`,emptyDescription:`PLAY0146`,duplicateDescription:`PLAY0147`,unknownConceptDirective:`PLAY0010`,attributeReasonWithoutAttribute:`PLAY0012`,duplicateAttributeReason:`PLAY0013`,duplicateComplianceMarker:`PLAY0653`,legacyComplianceMarker:`PLAY0565`,unknownComplianceMarker:`PLAY0566`,invalidSecretScope:`PLAY0567`,duplicateSecretScope:`PLAY0568`,secretScopeIgnoredForPii:`PLAY0569`,invalidPersonalDataQualifier:`PLAY0570`,duplicateSpecialCategory:`PLAY0571`,invalidPurposeDeclaration:`PLAY0596`,invalidPurposeVocabulary:`PLAY0597`,duplicatePurposeField:`PLAY0598`,duplicatePurposeDeclaration:`PLAY0599`,unknownPurpose:`PLAY0600`,purposeInterestMismatch:`PLAY0601`,personalDataWithoutPurpose:`PLAY0602`,specialDataWithoutCondition:`PLAY0603`,criminalDataWithoutAuthorization:`PLAY0604`,purposeWithoutBasis:`PLAY0605`,unusedPurpose:`PLAY0606`,duplicateEventSubject:`PLAY0590`,invalidSubjectType:`PLAY0591`,protectedSubjectType:`PLAY0592`,invalidSubjectOwner:`PLAY0593`,readModelSubjectNotSupported:`PLAY0594`,invalidSubjectModifierOrder:`PLAY0595`,conflictingScreenDataBinding:`PLAY0530`,screenDataQueryMismatch:`PLAY0531`,actionWithoutInputSurface:`PLAY0532`,commandWithoutInputSurface:`PLAY0533`,readModelFieldWithoutOrigin:`PLAY0534`,queryParameterNotHeldByView:`PLAY0535`,unconsumedEvent:`PLAY0536`,unreachableScreen:`PLAY0537`,invalidSpecificationCallerPersona:`PLAY0572`,unsynthesizablePersonaCaller:`PLAY0573`,personaWithoutGate:`PLAY0574`,gateWithoutPersona:`PLAY0575`,ambiguousPersonaCaller:`PLAY0576`,invalidSpecificationParameter:`PLAY0577`,invalidSpecificationCase:`PLAY0578`,duplicateSpecificationParameter:`PLAY0579`,duplicateSpecificationCase:`PLAY0580`,incompleteSpecificationTable:`PLAY0581`,invalidSpecificationCaseAssignment:`PLAY0582`,invalidSpecificationCaseValue:`PLAY0583`,invalidSpecificationCaseReference:`PLAY0584`,optionalSpecificationParameterTarget:`PLAY0585`,specificationCaseNameCollision:`PLAY0586`,incompatibleSpecificationParameterType:`PLAY0587`,unusedSpecificationParameter:`PLAY0588`,singularSpecificationTableExpansion:`PLAY0589`,invalidActionAlternative:`PLAY0341`,guardedActionWithoutAlternatives:`PLAY0342`,misplacedActionOtherwise:`PLAY0343`,unsupportedActionConditionOperand:`PLAY0344`,unknownActionSubjectField:`PLAY0345`,unresolvedActionSubject:`PLAY0346`,unreachableActionAlternative:`PLAY0347`,unknownActionArgumentProperty:`PLAY0348`,invalidRefusalBranch:`PLAY0538`,invalidRefusalBranchBody:`PLAY0539`,unreachableRefusalBranch:`PLAY0540`,invalidRefusalValue:`PLAY0541`,unknownRefusalConstraint:`PLAY0542`,unmatchedRedeliveredOccurrence:`PLAY0543`,unknownRedeliveryReaction:`PLAY0544`,invalidNoEventsExpectation:`PLAY0545`,indeterminateNegatedClaimTarget:`PLAY0546`,invalidAbsentReadModelStep:`PLAY0453`,unknownConstraintProperty:`PLAY0391`,invalidSpecificationExample:`PLAY0518`,duplicateSpecificationAssignment:`PLAY0519`,unknownReadModelProperty:`PLAY0514`,piiNotSupportedOnIdentifier:`PLAY0515`,invalidEventSourceDeclaration:`PLAY0503`,invalidCommandStream:`PLAY0504`,invalidSpecificationStream:`PLAY0547`,specificationStreamOnCommand:`PLAY0548`,invalidSpecificationStreamRoute:`PLAY0549`,invalidSpecificationStreamEventSource:`PLAY0550`,specificationStreamContradictsCommand:`PLAY0551`,ambiguousCommandStream:`PLAY0505`,unsupportedStreamIdType:`PLAY0506`,redundantSourceStreamId:`PLAY0507`,eventFromLaterSlice:`PLAY0516`,timelineCycleGroup:`PLAY0517`,invalidSpecificationExampleBody:`PLAY0526`,undeclaredDependency:`PLAY0552`,unusedDependencyDeclaration:`PLAY0553`,invalidDependencyTarget:`PLAY0554`,repeatedDependencyDeclaration:`PLAY0555`,mutualDependencyDeclarations:`PLAY0556`,authorizationRefusalWithoutIdentity:`PLAY0557`,invalidDocumentation:`PLAY0558`,conflictingDocumentationAcrossFiles:`PLAY0559`,unsupportedInteractionAlternatives:`PLAY0560`,mixedInteractionAlternatives:`PLAY0561`,interactionAlternativeWithoutActions:`PLAY0562`,inlineInteractionAlternative:`PLAY0563`,legacyInteractionWhere:`PLAY0564`,ambiguousReference:`PLAY0198`,invalidImplementationBlock:`PLAY0492`,invalidImplementationHint:`PLAY0493`,conflictingImplementationSources:`PLAY0494`,eventSourceIdInPayload:`PLAY0469`,explicitProducesTargetsRequired:`PLAY0470`,redundantEventId:`PLAY0471`,invalidEventId:`PLAY0472`,inlineEventCollision:`PLAY0473`,inlineEventOutsideCommand:`PLAY0474`,inlineEventGeneration:`PLAY0475`,reservedProductionMetadata:`PLAY0476`,invalidEventDocumentation:`PLAY0477`,tabIndentation:`PLAY0006`,unknownPrimitiveType:`PLAY0008`,mismatchedSpecificationQueryResult:`PLAY0465`,unknownSliceType:`PLAY0028`,duplicateCommandIdentifier:`PLAY0036`,unknownContextPath:`PLAY0153`,unknownContextCausedByProperty:`PLAY0154`,unknownContextIdentityProperty:`PLAY0155`,unclosedCodeBlock:`PLAY0164`,unknownType:`PLAY0165`,unknownEvent:`PLAY0166`,unknownPolicy:`PLAY0167`,duplicateDeclaration:`PLAY0168`,unknownEventContextMember:`PLAY0295`,unknownEventContextPath:`PLAY0296`,eventContextPathBelowCollection:`PLAY0297`,missingEventContextPath:`PLAY0298`,unresolvedDynamicKeySource:`PLAY0299`,invalidFileImport:`PLAY0454`,omittedProductionDestination:`PLAY0478`,legacyOptionalSuffix:`PLAY0479`,invalidOptionalModifierOrder:`PLAY0480`,optionalReadsNotSupported:`PLAY0481`,unavailableResponseExecution:`PLAY0268`,generatedPropertyOutsideCommand:`PLAY0482`,invalidGeneratedType:`PLAY0483`,invalidGeneratedModifierOrder:`PLAY0484`,generatedPropertyInput:`PLAY0485`,invalidCommandResponse:`PLAY0486`,invalidResponseSource:`PLAY0487`,duplicateResponseField:`PLAY0488`,invalidResponseShape:`PLAY0489`,invalidGeneratedFixture:`PLAY0490`,invalidReturnExpectation:`PLAY0491`,unknownGenerationStrategy:`PLAY0672`,invalidGenerationArgument:`PLAY0673`,invalidGenerationModifier:`PLAY0674`,duplicateGenerationModifier:`PLAY0675`,duplicateGeneration:`PLAY0676`,invalidGenerationPrimitive:`PLAY0677`,invalidGenerationPrefix:`PLAY0678`,invalidGenerationAlphabet:`PLAY0679`,invalidTypeIdPrefix:`PLAY0680`,generationSizeOutsideRange:`PLAY0681`,reservedSequenceGeneration:`PLAY0682`,lowGenerationEntropy:`PLAY0683`,lowGeneratedIdentifierEntropy:`PLAY0684`,responseNameUsedOnFailure:`PLAY0685`,eventIdPinNotCarriedToRenderers:`PLAY0686`};export{e as diagnosticCodes};
|
|
2
2
|
//# sourceMappingURL=diagnostic-codes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic-codes.js","names":["diagnosticCodes"],"sources":["../../diagnostic-codes.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// The PLAY codes the editor reports. Every one of them mirrors a condition the compiler checks and\n// carries the compiler's own code for it, so the same problem is called the same thing whether it was\n// found by the CLI or by a squiggle - see Documentation/screenplay/diagnostics.md for the catalogue.\n//\n// A code is only ever added here for a condition the compiler can also report. The editor makes a few\n// structural checks the compiler does not - the capture and projection validators are where they live -\n// and those stay codeless deliberately: minting a PLAY number for something no compiler run can emit\n// would make the catalogue describe two different tools.\nexport const diagnosticCodes = {\n unknownMatchPattern: 'PLAY0366',\n invalidMatchPattern: 'PLAY0367',\n patternOutsidePortableMatchDialect: 'PLAY0699',\n deprecatedStudioTextRulePattern: 'PLAY0787',\n repeatedSingularDeclarationAcrossFiles: 'PLAY0172',\n directionlessTranslationReactsToOwnCapture: 'PLAY0694',\n pendingIntentWithOtherHandler: 'PLAY0698',\n commandHandlerRequiresAttachment: 'PLAY0800', // C# only\n duplicateEventInProjectionScope: 'PLAY0801',\n describedCommandNotImplemented: 'PLAY0695', // C# only\n describedCommandWithoutProductions: 'PLAY0696', // C# only\n describedCommandCardinalityNotAdmitted: 'PLAY0697', // C# only\n invalidExposureDeclaration: 'PLAY0621',\n unknownExposureOwner: 'PLAY0622',\n reExposureCycle: 'PLAY0623',\n reExposureBroken: 'PLAY0624',\n invalidInstanceContribution: 'PLAY0625',\n unknownContributionInstance: 'PLAY0626',\n contributionNotExposed: 'PLAY0627',\n contributionTypeMismatch: 'PLAY0628',\n unknownTemplateContentSlot: 'PLAY0629',\n unknownNavigationOutlet: 'PLAY0630',\n templateScopeMismatch: 'PLAY0631',\n incompatibleComponentPackage: 'PLAY0632',\n unknownNavigationDestination: 'PLAY0654',\n unknownScreenContributionPoint: 'PLAY0655',\n templateNestingCycle: 'PLAY0656',\n templateCategoryMissing: 'PLAY0720',\n invalidTemplateVersionRange: 'PLAY0721',\n unknownTemplateBlueprint: 'PLAY0722',\n mixedEnumerationNumbering: 'PLAY0667',\n duplicateEnumerationNumber: 'PLAY0668',\n enumerationNumberOutsideInt32: 'PLAY0669',\n malformedEnumerationNumber: 'PLAY0670',\n unpinnedStoredEnumeration: 'PLAY0671',\n invalidIdentityDeclaration: 'PLAY0633',\n duplicateIdentity: 'PLAY0634',\n invalidIdentityDetail: 'PLAY0635',\n unknownIdentitySource: 'PLAY0636',\n identityDetailWithoutSource: 'PLAY0637',\n identitySourceWithBody: 'PLAY0638',\n duplicateIdentityDetail: 'PLAY0639',\n builtInIdentityDetail: 'PLAY0640',\n unknownIdentityQuery: 'PLAY0641',\n invalidIdentityQuery: 'PLAY0642',\n identityQueryWithoutKey: 'PLAY0643',\n invalidIdentityQueryKey: 'PLAY0644',\n identityQueryAuthorizationDependency: 'PLAY0645',\n identityQueryTypeMismatch: 'PLAY0646',\n invalidReactionIdentity: 'PLAY0647',\n gatedInvocationWithoutIdentity: 'PLAY0648',\n unusedReactionIdentity: 'PLAY0649',\n unusedReactionRole: 'PLAY0650',\n unsatisfiedReactionIdentity: 'PLAY0651',\n reactionPrivilegeEscalation: 'PLAY0652',\n // Preserve supplied C# whole-model diagnostics; these checks are not yet run by the editor.\n commandProducesPublicEvent: 'PLAY0607',\n publicEventRequiresOutboundTranslation: 'PLAY0608',\n outboundPublicEventCount: 'PLAY0609',\n foreignPublicEventConsumer: 'PLAY0610',\n outboundTranslationInput: 'PLAY0611',\n inboundTranslationOutput: 'PLAY0612',\n foreignPublicEventProduced: 'PLAY0613',\n publicTranslationRequiresDirection: 'PLAY0614',\n translationConstructDirection: 'PLAY0615',\n inboundTranslationInput: 'PLAY0616',\n outboundTranslationOutput: 'PLAY0617',\n eventTargetOutsideOutboundTranslation: 'PLAY0618',\n eventsSourceOutsideInboundTranslation: 'PLAY0619',\n invalidCaptureEventsSource: 'PLAY0620',\n captureEventsFromSeveralOrigins: 'PLAY0687',\n captureEventsKeyNotRequired: 'PLAY0700',\n captureEventsRecordFixture: 'PLAY0701',\n refutedGeneratedConceptRule: 'PLAY0688',\n unprovenGeneratedConceptRule: 'PLAY0689',\n invalidReadModelKey: 'PLAY0660',\n incompleteReadModelKey: 'PLAY0661',\n invalidReadModelKeyLookup: 'PLAY0662',\n productionRouteOutsideCommand: 'PLAY0663',\n redundantProductionRoute: 'PLAY0664',\n invalidObserverFilter: 'PLAY0665',\n observerFilterExcludesEveryProducer: 'PLAY0666',\n reducerIdentityMismatch: 'PLAY0690',\n generationSupportBudgetExceeded: 'PLAY0691',\n emptyGenerationSupport: 'PLAY0692',\n invalidReactionBatchesDeclaration: 'PLAY0693',\n invalidCommandReadsDeclaration: 'PLAY0780',\n invalidDescription: 'PLAY0145',\n emptyDescription: 'PLAY0146',\n duplicateDescription: 'PLAY0147',\n unknownConceptDirective: 'PLAY0010',\n attributeReasonWithoutAttribute: 'PLAY0012',\n duplicateAttributeReason: 'PLAY0013',\n duplicateComplianceMarker: 'PLAY0653',\n legacyComplianceMarker: 'PLAY0565',\n unknownComplianceMarker: 'PLAY0566',\n invalidSecretScope: 'PLAY0567',\n duplicateSecretScope: 'PLAY0568',\n secretScopeIgnoredForPii: 'PLAY0569',\n invalidPersonalDataQualifier: 'PLAY0570',\n duplicateSpecialCategory: 'PLAY0571',\n invalidPurposeDeclaration: 'PLAY0596',\n invalidPurposeVocabulary: 'PLAY0597',\n duplicatePurposeField: 'PLAY0598',\n duplicatePurposeDeclaration: 'PLAY0599',\n unknownPurpose: 'PLAY0600',\n purposeInterestMismatch: 'PLAY0601',\n personalDataWithoutPurpose: 'PLAY0602',\n specialDataWithoutCondition: 'PLAY0603',\n criminalDataWithoutAuthorization: 'PLAY0604',\n purposeWithoutBasis: 'PLAY0605',\n unusedPurpose: 'PLAY0606',\n duplicateEventSubject: 'PLAY0590',\n invalidSubjectType: 'PLAY0591',\n protectedSubjectType: 'PLAY0592',\n invalidSubjectOwner: 'PLAY0593',\n readModelSubjectNotSupported: 'PLAY0594',\n invalidSubjectModifierOrder: 'PLAY0595',\n // Supplied compiler diagnostics are preserved, even for checks only the C# tool can run.\n // See Documentation/screenplay/editor-diagnostics.md for the validation boundary.\n conflictingScreenDataBinding: 'PLAY0530',\n screenDataQueryMismatch: 'PLAY0531',\n actionWithoutInputSurface: 'PLAY0532',\n commandWithoutInputSurface: 'PLAY0533',\n readModelFieldWithoutOrigin: 'PLAY0534',\n queryParameterNotHeldByView: 'PLAY0535',\n unconsumedEvent: 'PLAY0536',\n unreachableScreen: 'PLAY0537',\n invalidSpecificationCallerPersona: 'PLAY0572',\n unsynthesizablePersonaCaller: 'PLAY0573',\n personaWithoutGate: 'PLAY0574',\n gateWithoutPersona: 'PLAY0575',\n ambiguousPersonaCaller: 'PLAY0576',\n invalidSpecificationParameter: 'PLAY0577',\n invalidSpecificationCase: 'PLAY0578',\n duplicateSpecificationParameter: 'PLAY0579',\n duplicateSpecificationCase: 'PLAY0580',\n incompleteSpecificationTable: 'PLAY0581',\n invalidSpecificationCaseAssignment: 'PLAY0582',\n invalidSpecificationCaseValue: 'PLAY0583',\n invalidSpecificationCaseReference: 'PLAY0584',\n optionalSpecificationParameterTarget: 'PLAY0585',\n specificationCaseNameCollision: 'PLAY0586',\n incompatibleSpecificationParameterType: 'PLAY0587',\n unusedSpecificationParameter: 'PLAY0588',\n singularSpecificationTableExpansion: 'PLAY0589',\n invalidActionAlternative: 'PLAY0341',\n guardedActionWithoutAlternatives: 'PLAY0342',\n misplacedActionOtherwise: 'PLAY0343',\n unsupportedActionConditionOperand: 'PLAY0344',\n unknownActionSubjectField: 'PLAY0345',\n unresolvedActionSubject: 'PLAY0346',\n unreachableActionAlternative: 'PLAY0347',\n unknownActionArgumentProperty: 'PLAY0348',\n invalidRefusalBranch: 'PLAY0538',\n invalidRefusalBranchBody: 'PLAY0539',\n unreachableRefusalBranch: 'PLAY0540',\n invalidRefusalValue: 'PLAY0541',\n unknownRefusalConstraint: 'PLAY0542',\n unmatchedRedeliveredOccurrence: 'PLAY0543',\n unknownRedeliveryReaction: 'PLAY0544',\n invalidNoEventsExpectation: 'PLAY0545',\n indeterminateNegatedClaimTarget: 'PLAY0546',\n invalidAbsentReadModelStep: 'PLAY0453',\n unknownConstraintProperty: 'PLAY0391',\n invalidSpecificationExample: 'PLAY0518',\n duplicateSpecificationAssignment: 'PLAY0519',\n unknownReadModelProperty: 'PLAY0514',\n piiNotSupportedOnIdentifier: 'PLAY0515',\n invalidEventSourceDeclaration: 'PLAY0503',\n invalidCommandStream: 'PLAY0504',\n invalidSpecificationStream: 'PLAY0547',\n specificationStreamOnCommand: 'PLAY0548',\n invalidSpecificationStreamRoute: 'PLAY0549',\n invalidSpecificationStreamEventSource: 'PLAY0550',\n specificationStreamContradictsCommand: 'PLAY0551',\n ambiguousCommandStream: 'PLAY0505',\n unsupportedStreamIdType: 'PLAY0506',\n redundantSourceStreamId: 'PLAY0507',\n eventFromLaterSlice: 'PLAY0516',\n timelineCycleGroup: 'PLAY0517',\n invalidSpecificationExampleBody: 'PLAY0526',\n undeclaredDependency: 'PLAY0552',\n unusedDependencyDeclaration: 'PLAY0553',\n invalidDependencyTarget: 'PLAY0554',\n repeatedDependencyDeclaration: 'PLAY0555',\n mutualDependencyDeclarations: 'PLAY0556',\n authorizationRefusalWithoutIdentity: 'PLAY0557',\n invalidDocumentation: 'PLAY0558',\n conflictingDocumentationAcrossFiles: 'PLAY0559',\n unsupportedInteractionAlternatives: 'PLAY0560',\n mixedInteractionAlternatives: 'PLAY0561',\n interactionAlternativeWithoutActions: 'PLAY0562',\n inlineInteractionAlternative: 'PLAY0563',\n legacyInteractionWhere: 'PLAY0564',\n ambiguousReference: 'PLAY0198',\n invalidImplementationBlock: 'PLAY0492',\n invalidImplementationHint: 'PLAY0493',\n conflictingImplementationSources: 'PLAY0494',\n eventSourceIdInPayload: 'PLAY0469',\n explicitProducesTargetsRequired: 'PLAY0470',\n redundantEventId: 'PLAY0471',\n invalidEventId: 'PLAY0472',\n inlineEventCollision: 'PLAY0473',\n inlineEventOutsideCommand: 'PLAY0474',\n inlineEventGeneration: 'PLAY0475',\n reservedProductionMetadata: 'PLAY0476',\n invalidEventDocumentation: 'PLAY0477',\n tabIndentation: 'PLAY0006',\n unknownPrimitiveType: 'PLAY0008',\n mismatchedSpecificationQueryResult: 'PLAY0465',\n unknownSliceType: 'PLAY0028',\n duplicateCommandIdentifier: 'PLAY0036',\n unknownContextPath: 'PLAY0153',\n unknownContextCausedByProperty: 'PLAY0154',\n unknownContextIdentityProperty: 'PLAY0155',\n unclosedCodeBlock: 'PLAY0164',\n unknownType: 'PLAY0165',\n unknownEvent: 'PLAY0166',\n unknownPolicy: 'PLAY0167',\n duplicateDeclaration: 'PLAY0168',\n unknownEventContextMember: 'PLAY0295',\n unknownEventContextPath: 'PLAY0296',\n eventContextPathBelowCollection: 'PLAY0297',\n missingEventContextPath: 'PLAY0298',\n unresolvedDynamicKeySource: 'PLAY0299',\n invalidFileImport: 'PLAY0454',\n omittedProductionDestination: 'PLAY0478',\n legacyOptionalSuffix: 'PLAY0479',\n invalidOptionalModifierOrder: 'PLAY0480',\n optionalReadsNotSupported: 'PLAY0481',\n unavailableResponseExecution: 'PLAY0268',\n generatedPropertyOutsideCommand: 'PLAY0482',\n invalidGeneratedType: 'PLAY0483',\n invalidGeneratedModifierOrder: 'PLAY0484',\n generatedPropertyInput: 'PLAY0485',\n invalidCommandResponse: 'PLAY0486',\n invalidResponseSource: 'PLAY0487',\n duplicateResponseField: 'PLAY0488',\n invalidResponseShape: 'PLAY0489',\n invalidGeneratedFixture: 'PLAY0490',\n invalidReturnExpectation: 'PLAY0491',\n unknownGenerationStrategy: 'PLAY0672',\n invalidGenerationArgument: 'PLAY0673',\n invalidGenerationModifier: 'PLAY0674',\n duplicateGenerationModifier: 'PLAY0675',\n duplicateGeneration: 'PLAY0676',\n invalidGenerationPrimitive: 'PLAY0677',\n invalidGenerationPrefix: 'PLAY0678',\n invalidGenerationAlphabet: 'PLAY0679',\n invalidTypeIdPrefix: 'PLAY0680',\n generationSizeOutsideRange: 'PLAY0681',\n reservedSequenceGeneration: 'PLAY0682',\n lowGenerationEntropy: 'PLAY0683',\n lowGeneratedIdentifierEntropy: 'PLAY0684',\n responseNameUsedOnFailure: 'PLAY0685',\n // Retired by ESM v16; preserve supplied warnings from earlier native compilers.\n eventIdPinNotCarriedToRenderers: 'PLAY0686',\n} as const;\n\nexport type DiagnosticCode = (typeof diagnosticCodes)[keyof typeof diagnosticCodes];\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diagnostic-codes.js","names":["diagnosticCodes"],"sources":["../../diagnostic-codes.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// The PLAY codes the editor reports. Every one of them mirrors a condition the compiler checks and\n// carries the compiler's own code for it, so the same problem is called the same thing whether it was\n// found by the CLI or by a squiggle - see Documentation/screenplay/diagnostics.md for the catalogue.\n//\n// A code is only ever added here for a condition the compiler can also report. The editor makes a few\n// structural checks the compiler does not - the capture and projection validators are where they live -\n// and those stay codeless deliberately: minting a PLAY number for something no compiler run can emit\n// would make the catalogue describe two different tools.\nexport const diagnosticCodes = {\n unknownMatchPattern: 'PLAY0366',\n invalidMatchPattern: 'PLAY0367',\n patternOutsidePortableMatchDialect: 'PLAY0699',\n deprecatedStudioTextRulePattern: 'PLAY0787',\n repeatedSingularDeclarationAcrossFiles: 'PLAY0172',\n directionlessTranslationReactsToOwnCapture: 'PLAY0694',\n pendingIntentWithOtherHandler: 'PLAY0698',\n commandHandlerRequiresAttachment: 'PLAY0800', // C# only\n duplicateEventInProjectionScope: 'PLAY0801',\n reservedStoredName: 'PLAY0802',\n describedCommandNotImplemented: 'PLAY0695', // C# only\n describedCommandWithoutProductions: 'PLAY0696', // C# only\n describedCommandCardinalityNotAdmitted: 'PLAY0697', // C# only\n invalidExposureDeclaration: 'PLAY0621',\n unknownExposureOwner: 'PLAY0622',\n reExposureCycle: 'PLAY0623',\n reExposureBroken: 'PLAY0624',\n invalidInstanceContribution: 'PLAY0625',\n unknownContributionInstance: 'PLAY0626',\n contributionNotExposed: 'PLAY0627',\n contributionTypeMismatch: 'PLAY0628',\n unknownTemplateContentSlot: 'PLAY0629',\n unknownNavigationOutlet: 'PLAY0630',\n templateScopeMismatch: 'PLAY0631',\n incompatibleComponentPackage: 'PLAY0632',\n unknownNavigationDestination: 'PLAY0654',\n unknownScreenContributionPoint: 'PLAY0655',\n templateNestingCycle: 'PLAY0656',\n templateCategoryMissing: 'PLAY0720',\n invalidTemplateVersionRange: 'PLAY0721',\n unknownTemplateBlueprint: 'PLAY0722',\n mixedEnumerationNumbering: 'PLAY0667',\n duplicateEnumerationNumber: 'PLAY0668',\n enumerationNumberOutsideInt32: 'PLAY0669',\n malformedEnumerationNumber: 'PLAY0670',\n unpinnedStoredEnumeration: 'PLAY0671',\n invalidIdentityDeclaration: 'PLAY0633',\n duplicateIdentity: 'PLAY0634',\n invalidIdentityDetail: 'PLAY0635',\n unknownIdentitySource: 'PLAY0636',\n identityDetailWithoutSource: 'PLAY0637',\n identitySourceWithBody: 'PLAY0638',\n duplicateIdentityDetail: 'PLAY0639',\n builtInIdentityDetail: 'PLAY0640',\n unknownIdentityQuery: 'PLAY0641',\n invalidIdentityQuery: 'PLAY0642',\n identityQueryWithoutKey: 'PLAY0643',\n invalidIdentityQueryKey: 'PLAY0644',\n identityQueryAuthorizationDependency: 'PLAY0645',\n identityQueryTypeMismatch: 'PLAY0646',\n invalidReactionIdentity: 'PLAY0647',\n gatedInvocationWithoutIdentity: 'PLAY0648',\n unusedReactionIdentity: 'PLAY0649',\n unusedReactionRole: 'PLAY0650',\n unsatisfiedReactionIdentity: 'PLAY0651',\n reactionPrivilegeEscalation: 'PLAY0652',\n // Preserve supplied C# whole-model diagnostics; these checks are not yet run by the editor.\n commandProducesPublicEvent: 'PLAY0607',\n publicEventRequiresOutboundTranslation: 'PLAY0608',\n outboundPublicEventCount: 'PLAY0609',\n foreignPublicEventConsumer: 'PLAY0610',\n outboundTranslationInput: 'PLAY0611',\n inboundTranslationOutput: 'PLAY0612',\n foreignPublicEventProduced: 'PLAY0613',\n publicTranslationRequiresDirection: 'PLAY0614',\n translationConstructDirection: 'PLAY0615',\n inboundTranslationInput: 'PLAY0616',\n outboundTranslationOutput: 'PLAY0617',\n eventTargetOutsideOutboundTranslation: 'PLAY0618',\n eventsSourceOutsideInboundTranslation: 'PLAY0619',\n invalidCaptureEventsSource: 'PLAY0620',\n captureEventsFromSeveralOrigins: 'PLAY0687',\n captureEventsKeyNotRequired: 'PLAY0700',\n captureEventsRecordFixture: 'PLAY0701',\n refutedGeneratedConceptRule: 'PLAY0688',\n unprovenGeneratedConceptRule: 'PLAY0689',\n invalidReadModelKey: 'PLAY0660',\n incompleteReadModelKey: 'PLAY0661',\n invalidReadModelKeyLookup: 'PLAY0662',\n productionRouteOutsideCommand: 'PLAY0663',\n redundantProductionRoute: 'PLAY0664',\n invalidObserverFilter: 'PLAY0665',\n observerFilterExcludesEveryProducer: 'PLAY0666',\n reducerIdentityMismatch: 'PLAY0690',\n generationSupportBudgetExceeded: 'PLAY0691',\n emptyGenerationSupport: 'PLAY0692',\n invalidReactionBatchesDeclaration: 'PLAY0693',\n invalidCommandReadsDeclaration: 'PLAY0780',\n invalidDescription: 'PLAY0145',\n emptyDescription: 'PLAY0146',\n duplicateDescription: 'PLAY0147',\n unknownConceptDirective: 'PLAY0010',\n attributeReasonWithoutAttribute: 'PLAY0012',\n duplicateAttributeReason: 'PLAY0013',\n duplicateComplianceMarker: 'PLAY0653',\n legacyComplianceMarker: 'PLAY0565',\n unknownComplianceMarker: 'PLAY0566',\n invalidSecretScope: 'PLAY0567',\n duplicateSecretScope: 'PLAY0568',\n secretScopeIgnoredForPii: 'PLAY0569',\n invalidPersonalDataQualifier: 'PLAY0570',\n duplicateSpecialCategory: 'PLAY0571',\n invalidPurposeDeclaration: 'PLAY0596',\n invalidPurposeVocabulary: 'PLAY0597',\n duplicatePurposeField: 'PLAY0598',\n duplicatePurposeDeclaration: 'PLAY0599',\n unknownPurpose: 'PLAY0600',\n purposeInterestMismatch: 'PLAY0601',\n personalDataWithoutPurpose: 'PLAY0602',\n specialDataWithoutCondition: 'PLAY0603',\n criminalDataWithoutAuthorization: 'PLAY0604',\n purposeWithoutBasis: 'PLAY0605',\n unusedPurpose: 'PLAY0606',\n duplicateEventSubject: 'PLAY0590',\n invalidSubjectType: 'PLAY0591',\n protectedSubjectType: 'PLAY0592',\n invalidSubjectOwner: 'PLAY0593',\n readModelSubjectNotSupported: 'PLAY0594',\n invalidSubjectModifierOrder: 'PLAY0595',\n // Supplied compiler diagnostics are preserved, even for checks only the C# tool can run.\n // See Documentation/screenplay/editor-diagnostics.md for the validation boundary.\n conflictingScreenDataBinding: 'PLAY0530',\n screenDataQueryMismatch: 'PLAY0531',\n actionWithoutInputSurface: 'PLAY0532',\n commandWithoutInputSurface: 'PLAY0533',\n readModelFieldWithoutOrigin: 'PLAY0534',\n queryParameterNotHeldByView: 'PLAY0535',\n unconsumedEvent: 'PLAY0536',\n unreachableScreen: 'PLAY0537',\n invalidSpecificationCallerPersona: 'PLAY0572',\n unsynthesizablePersonaCaller: 'PLAY0573',\n personaWithoutGate: 'PLAY0574',\n gateWithoutPersona: 'PLAY0575',\n ambiguousPersonaCaller: 'PLAY0576',\n invalidSpecificationParameter: 'PLAY0577',\n invalidSpecificationCase: 'PLAY0578',\n duplicateSpecificationParameter: 'PLAY0579',\n duplicateSpecificationCase: 'PLAY0580',\n incompleteSpecificationTable: 'PLAY0581',\n invalidSpecificationCaseAssignment: 'PLAY0582',\n invalidSpecificationCaseValue: 'PLAY0583',\n invalidSpecificationCaseReference: 'PLAY0584',\n optionalSpecificationParameterTarget: 'PLAY0585',\n specificationCaseNameCollision: 'PLAY0586',\n incompatibleSpecificationParameterType: 'PLAY0587',\n unusedSpecificationParameter: 'PLAY0588',\n singularSpecificationTableExpansion: 'PLAY0589',\n invalidActionAlternative: 'PLAY0341',\n guardedActionWithoutAlternatives: 'PLAY0342',\n misplacedActionOtherwise: 'PLAY0343',\n unsupportedActionConditionOperand: 'PLAY0344',\n unknownActionSubjectField: 'PLAY0345',\n unresolvedActionSubject: 'PLAY0346',\n unreachableActionAlternative: 'PLAY0347',\n unknownActionArgumentProperty: 'PLAY0348',\n invalidRefusalBranch: 'PLAY0538',\n invalidRefusalBranchBody: 'PLAY0539',\n unreachableRefusalBranch: 'PLAY0540',\n invalidRefusalValue: 'PLAY0541',\n unknownRefusalConstraint: 'PLAY0542',\n unmatchedRedeliveredOccurrence: 'PLAY0543',\n unknownRedeliveryReaction: 'PLAY0544',\n invalidNoEventsExpectation: 'PLAY0545',\n indeterminateNegatedClaimTarget: 'PLAY0546',\n invalidAbsentReadModelStep: 'PLAY0453',\n unknownConstraintProperty: 'PLAY0391',\n invalidSpecificationExample: 'PLAY0518',\n duplicateSpecificationAssignment: 'PLAY0519',\n unknownReadModelProperty: 'PLAY0514',\n piiNotSupportedOnIdentifier: 'PLAY0515',\n invalidEventSourceDeclaration: 'PLAY0503',\n invalidCommandStream: 'PLAY0504',\n invalidSpecificationStream: 'PLAY0547',\n specificationStreamOnCommand: 'PLAY0548',\n invalidSpecificationStreamRoute: 'PLAY0549',\n invalidSpecificationStreamEventSource: 'PLAY0550',\n specificationStreamContradictsCommand: 'PLAY0551',\n ambiguousCommandStream: 'PLAY0505',\n unsupportedStreamIdType: 'PLAY0506',\n redundantSourceStreamId: 'PLAY0507',\n eventFromLaterSlice: 'PLAY0516',\n timelineCycleGroup: 'PLAY0517',\n invalidSpecificationExampleBody: 'PLAY0526',\n undeclaredDependency: 'PLAY0552',\n unusedDependencyDeclaration: 'PLAY0553',\n invalidDependencyTarget: 'PLAY0554',\n repeatedDependencyDeclaration: 'PLAY0555',\n mutualDependencyDeclarations: 'PLAY0556',\n authorizationRefusalWithoutIdentity: 'PLAY0557',\n invalidDocumentation: 'PLAY0558',\n conflictingDocumentationAcrossFiles: 'PLAY0559',\n unsupportedInteractionAlternatives: 'PLAY0560',\n mixedInteractionAlternatives: 'PLAY0561',\n interactionAlternativeWithoutActions: 'PLAY0562',\n inlineInteractionAlternative: 'PLAY0563',\n legacyInteractionWhere: 'PLAY0564',\n ambiguousReference: 'PLAY0198',\n invalidImplementationBlock: 'PLAY0492',\n invalidImplementationHint: 'PLAY0493',\n conflictingImplementationSources: 'PLAY0494',\n eventSourceIdInPayload: 'PLAY0469',\n explicitProducesTargetsRequired: 'PLAY0470',\n redundantEventId: 'PLAY0471',\n invalidEventId: 'PLAY0472',\n inlineEventCollision: 'PLAY0473',\n inlineEventOutsideCommand: 'PLAY0474',\n inlineEventGeneration: 'PLAY0475',\n reservedProductionMetadata: 'PLAY0476',\n invalidEventDocumentation: 'PLAY0477',\n tabIndentation: 'PLAY0006',\n unknownPrimitiveType: 'PLAY0008',\n mismatchedSpecificationQueryResult: 'PLAY0465',\n unknownSliceType: 'PLAY0028',\n duplicateCommandIdentifier: 'PLAY0036',\n unknownContextPath: 'PLAY0153',\n unknownContextCausedByProperty: 'PLAY0154',\n unknownContextIdentityProperty: 'PLAY0155',\n unclosedCodeBlock: 'PLAY0164',\n unknownType: 'PLAY0165',\n unknownEvent: 'PLAY0166',\n unknownPolicy: 'PLAY0167',\n duplicateDeclaration: 'PLAY0168',\n unknownEventContextMember: 'PLAY0295',\n unknownEventContextPath: 'PLAY0296',\n eventContextPathBelowCollection: 'PLAY0297',\n missingEventContextPath: 'PLAY0298',\n unresolvedDynamicKeySource: 'PLAY0299',\n invalidFileImport: 'PLAY0454',\n omittedProductionDestination: 'PLAY0478',\n legacyOptionalSuffix: 'PLAY0479',\n invalidOptionalModifierOrder: 'PLAY0480',\n optionalReadsNotSupported: 'PLAY0481',\n unavailableResponseExecution: 'PLAY0268',\n generatedPropertyOutsideCommand: 'PLAY0482',\n invalidGeneratedType: 'PLAY0483',\n invalidGeneratedModifierOrder: 'PLAY0484',\n generatedPropertyInput: 'PLAY0485',\n invalidCommandResponse: 'PLAY0486',\n invalidResponseSource: 'PLAY0487',\n duplicateResponseField: 'PLAY0488',\n invalidResponseShape: 'PLAY0489',\n invalidGeneratedFixture: 'PLAY0490',\n invalidReturnExpectation: 'PLAY0491',\n unknownGenerationStrategy: 'PLAY0672',\n invalidGenerationArgument: 'PLAY0673',\n invalidGenerationModifier: 'PLAY0674',\n duplicateGenerationModifier: 'PLAY0675',\n duplicateGeneration: 'PLAY0676',\n invalidGenerationPrimitive: 'PLAY0677',\n invalidGenerationPrefix: 'PLAY0678',\n invalidGenerationAlphabet: 'PLAY0679',\n invalidTypeIdPrefix: 'PLAY0680',\n generationSizeOutsideRange: 'PLAY0681',\n reservedSequenceGeneration: 'PLAY0682',\n lowGenerationEntropy: 'PLAY0683',\n lowGeneratedIdentifierEntropy: 'PLAY0684',\n responseNameUsedOnFailure: 'PLAY0685',\n // Retired by ESM v16; preserve supplied warnings from earlier native compilers.\n eventIdPinNotCarriedToRenderers: 'PLAY0686',\n} as const;\n\nexport type DiagnosticCode = (typeof diagnosticCodes)[keyof typeof diagnosticCodes];\n"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import"./_virtual/_virtual/_rolldown/runtime.js";import{causedByProperties as e,contextRoots as t,identityProperties as n,primitiveTypes as r,sliceTypes as i}from"./language.js";import{DiagnosticCodes as a}from"./compiler/Diagnostics/DiagnosticCodes.js";import{legacyOptionalTypeLength as o}from"./compiler/Authoring/QuickFixes.js";import"./compiler/index.js";import{enclosingChain as s,fenceMap as c,indentOf as l}from"./document-context.js";import{eventAnalysisSource as u}from"./event-analysis-source.js";import{resolveEventContextPath as d}from"./event-context.js";import{responseAnalysis as f}from"./response-analysis.js";import{knownEventNames as p,knownTypeNames as m,mergeSymbols as h,propertyTypeReference as g,scanDocument as _,symbolsForBuffer as v}from"./symbols.js";import{diagnosticCodes as y}from"./diagnostic-codes.js";import{validateInlineEvents as b}from"./inline-event-validation.js";import{fileImportOn as x,isFileImportLine as S}from"./file-imports.js";function issue(e,t,n,r,i,a){return{severity:e,message:i,line:t,startColumn:n,endColumn:n+r,code:a}}function tokenIssue(e,t,n,r,i,a){return issue(e,t,n.indexOf(r)+1,r.length,i,a)}function validateDeclarations(e,t,n){let i=[],a=/* @__PURE__ */ new Set([...m(t,r),...m(n,[])]),checkProperties=(e,t)=>{for(let n of e.filter(e=>!a.has(g(e).name))){let e=g(n).name;i.push(issue(`warning`,n.line,n.sourceType.startColumn,n.sourceType.text.length,e===`optional`?`Unknown type 'optional' on '${n.name}' of ${t} — did you forget the type before 'optional'?`:`Unknown type '${e}' on '${n.name}' of ${t} — declare it with 'concept ${e} : <Primitive>' or 'type ${e}'.`,y.unknownType))}};for(let e of t.types)checkProperties(e.properties,`type '${e.name}'`);for(let e of t.events)checkProperties(e.properties,`event '${e.name}'`);for(let e of t.queries)checkProperties(e.parameters,`query '${e.name}'`);for(let n of t.commands){checkProperties(n.properties,`command '${n.name}'`);let t=n.properties.filter(e=>e.isIdentifier);for(let r of t.slice(1))i.push(tokenIssue(`error`,r.line,e[r.line],`identifier`,`Command '${n.name}' already marks '${t[0].name}' as identifier — only one property can be the identifier.`,y.duplicateCommandIdentifier))}let o=/* @__PURE__ */ new Map;for(let n of[...t.concepts,...t.types])o.get(n.name)===void 0?o.set(n.name,n.line):i.push(tokenIssue(`error`,n.line,e[n.line],n.name,`Duplicate declaration of '${n.name}' — concept and type names must be unique.`,y.duplicateDeclaration));return i}function validateLines(s,u={}){let d=c(s),m=_(s),g=u.application??h(),x=v(s,{...g,authoringPath:u.path??g.authoringPath,authoringPlacement:u.placement??g.authoringPlacement}),S=f(s,x.authoringDocuments??x.authoringSources?.filter(e=>e!==s.join(`
|
|
2
|
-
`)),x.authoringPlacement,x.authoringPath,x.authoringPlacementResolved),C=new Set(S.eventSources.routes.map(e=>e.location.line-1)),w={...m,commands:m.commands.map(e=>({...e,properties:e.properties.filter(e=>!C.has(e.line)),produces:e.produces?.filter(e=>!S.operationProductionLines?.has(e.line)),productionHeaders:e.productionHeaders?.filter(e=>!S.operationProductionLines?.has(e))}))},T=/* @__PURE__ */ new Set([...p(w),...p(g)]),E=new Set([...w.policies,...g.policies].map(e=>e.name)),D=validateDeclarations(s,w,g);D.push(...validateProductionDestinations(s,w));let O=/* @__PURE__ */ new Set([a.UnknownGenerationStrategy,a.InvalidGenerationArgument,a.InvalidGenerationModifier,a.DuplicateGenerationModifier,a.DuplicateGeneration,a.InvalidGenerationPrimitive,a.InvalidGenerationPrefix,a.InvalidGenerationAlphabet,a.InvalidTypeIdPrefix,a.GenerationSizeOutsideRange,a.ReservedSequenceGeneration,a.LowGenerationEntropy,a.LowGeneratedIdentifierEntropy,a.RefutedGeneratedConceptRule,a.UnprovenGeneratedConceptRule,a.GenerationSupportBudgetExceeded,a.EmptyGenerationSupport]),k=/* @__PURE__ */ new Set([a.MixedEnumerationNumbering,a.DuplicateEnumerationNumber,a.EnumerationNumberOutsideInt32,a.MalformedEnumerationNumber,a.UnpinnedStoredEnumeration]),A=/* @__PURE__ */ new Set([a.LegacyOptionalSuffix,a.InvalidOptionalModifierOrder,a.OptionalReadsNotSupported]),j=/* @__PURE__ */ new Set([a.UnexpectedTokenInPolicyCondition,a.ExpectedPolicyCondition,a.UnclosedPolicyConditionGroup,a.ExpectedRoleName,a.ExpectedClaimName,a.ExpectedClaimMatches,a.ExpectedClaimMatchTarget]),M=/* @__PURE__ */ new Set([a.UnknownEvent,a.UnknownReadModelProperty,a.PiiNotSupportedOnIdentifier]),N=/* @__PURE__ */ new Set([a.EventFromLaterSlice,a.TimelineCycleGroup]),P=/* @__PURE__ */ new Set([a.UndeclaredDependency,a.UnusedDependencyDeclaration,a.InvalidDependencyTarget,a.RepeatedDependencyDeclaration,a.MutualDependencyDeclarations,a.AmbiguousReference]),F=/* @__PURE__ */ new Set([a.InvalidCommandReadsDeclaration,a.UnknownMatchPattern,a.InvalidMatchPattern,a.PatternOutsidePortableMatchDialect,a.DeprecatedStudioTextRulePattern,a.MismatchedSpecificationQueryResult,a.DirectionlessTranslationReactsToOwnCapture,a.CaptureEventsFromSeveralOrigins,a.CaptureEventsKeyNotRequired,a.CaptureEventsRecordFixture,a.EventIdPinNotCarriedToRenderers,a.ResponseNameUsedOnFailure,a.InvalidEventDeclaration,a.InvalidImportDeclaration,a.InvalidSliceDeclaration,a.InvalidDescription,a.DuplicateDescription,a.EmptyDescription,a.DuplicateEventSubject,a.InvalidSubjectType,a.ProtectedSubjectType,a.InvalidSubjectOwner,a.ReadModelSubjectNotSupported,a.InvalidSubjectModifierOrder,a.UnsupportedInteractionAlternatives,a.MixedInteractionAlternatives,a.InteractionAlternativeWithoutActions,a.InlineInteractionAlternative,a.LegacyInteractionWhere,a.InvalidSpecificationParameter,a.InvalidSpecificationCase,a.DuplicateSpecificationParameter,a.DuplicateSpecificationCase,a.IncompleteSpecificationTable,a.InvalidSpecificationCaseAssignment,a.InvalidSpecificationCaseValue,a.InvalidSpecificationCaseReference,a.OptionalSpecificationParameterTarget,a.SpecificationCaseNameCollision,a.IncompatibleSpecificationParameterType,a.UnusedSpecificationParameter,a.SingularSpecificationTableExpansion,a.InvalidSpecificationCallerPersona,a.UnsynthesizablePersonaCaller,a.PersonaWithoutGate,a.GateWithoutPersona,a.AmbiguousPersonaCaller,a.InvalidDocumentation,a.ConflictingDocumentationAcrossFiles,a.InvalidAbsentReadModelStep,a.UnknownConstraintProperty,a.OmittedProductionDestination,a.InvalidSpecificationExample,a.DuplicateSpecificationAssignment,a.InvalidReactionBatchesDeclaration,a.DescribedCommandNotImplemented,a.DescribedCommandWithoutProductions,a.DescribedCommandCardinalityNotAdmitted,a.CommandHandlerRequiresAttachment,a.PendingIntentWithOtherHandler,a.DuplicateEventInProjectionScope]),I=/* @__PURE__ */ new Set([a.InvalidPurposeDeclaration,a.InvalidPurposeVocabulary,a.DuplicatePurposeField,a.DuplicatePurposeDeclaration,a.UnknownPurpose,a.PurposeInterestMismatch,a.PersonalDataWithoutPurpose,a.SpecialDataWithoutCondition,a.CriminalDataWithoutAuthorization,a.PurposeWithoutBasis,a.UnusedPurpose,a.UnknownConceptDirective,a.AttributeReasonWithoutAttribute,a.DuplicateAttributeReason,a.LegacyComplianceMarker,a.DuplicateComplianceMarker,a.UnknownComplianceMarker,a.InvalidSecretScope,a.DuplicateSecretScope,a.SecretScopeIgnoredForPii,a.InvalidPersonalDataQualifier,a.DuplicateSpecialCategory]),L=/* @__PURE__ */ new Set;for(let e of u.compilerDiagnostics??S.diagnostics){let t=e.code===a.UnknownType&&(S.identityDetails??[]).some(t=>t.line===e.location.line-1),n=e.code===a.RepeatedSingularDeclarationAcrossFiles&&e.message.includes(`identity block`);if(!t&&!n&&!O.has(e.code)&&!k.has(e.code)&&!I.has(e.code)&&!A.has(e.code)&&!j.has(e.code)&&!M.has(e.code)&&!N.has(e.code)&&!P.has(e.code)&&!F.has(e.code)&&e.code!==a.ReducerIdentityMismatch&&e.code!==a.InvalidSpecificationExampleBody&&e.code!==a.UnknownRuleImplementationDirective&&e.code!==a.InvalidValidationRule&&e.code!==a.RepeatedDeclarationAcrossFiles&&!/^PLAY049[0-9]$|^PLAY050[0-7]$|^PLAY054[7-9]$|^PLAY055[01]$|^PLAY048[2-9]$|^PLAY004[56]$|^PLAY053[0-9]$|^PLAY054[0-6]$|^PLAY034[1-8]$|^PLAY0557$|^PLAY060[7-9]$|^PLAY061[0-9]$|^PLAY0620$|^PLAY062[1-9]$|^PLAY063[0-9]$|^PLAY064[0-9]$|^PLAY065[0-2]$|^PLAY065[4-6]$|^PLAY066[0-6]$|^PLAY072[0-2]$/.test(e.code))continue;let r=e.location.line-1;if(e.code===a.OmittedProductionDestination&&D.some(t=>t.code===e.code&&t.line===r))continue;if(e.code===a.UnknownEvent){if(L.has(r))continue;L.add(r)}let i=o(s[r],e)||s[r].length-e.location.column+1;D.push(issue(e.severity,r,e.location.column,i,e.message,e.code))}let checkEvent=(e,t,n)=>{!T.has(n)&&!L.has(e)&&D.push(tokenIssue(`warning`,e,t,n,`Unknown event type '${n}' — declare it in a slice or import it.`,y.unknownEvent))},R=-1;for(let a=0;a<s.length;a++){let o=s[a],c=o.trim();if(d[a]||c.length===0)continue;let u=o.match(/^[ ]*(\t+)/);if(u&&D.push(issue(`warning`,a,u[0].length-u[1].length+1,u[1].length,`Screenplay is indentation-based — use spaces, not tabs.`,y.tabIndentation)),R>=0){if(l(o)>R&&/^(?:or\s+)?[A-Z]\w*(?:\s+or\s+[A-Z]\w*)*$/.test(c)){for(let e of c.split(/\s+/).filter(e=>e!==`or`))E.has(e)||D.push(tokenIssue(`warning`,a,o,e,`Unknown policy '${e}' — declare it with 'policy ${e}'.`,y.unknownPolicy));continue}R=-1}let f=validateImport(s,d,a);f&&D.push(f);let p=c.match(/^slice\s+(\w+)/);p&&!i.includes(p[1])&&D.push(tokenIssue(`error`,a,o,p[1],`Unknown slice type '${p[1]}' — expected ${i.join(`, `)}.`,y.unknownSliceType));let m=c.match(/^concept\s+\w+\s*:\s*(\w+)/);m&&m[1]!==`Enum`&&!r.includes(m[1])&&D.push(tokenIssue(`error`,a,o,m[1],`Unknown primitive type '${m[1]}' — expected ${r.join(`, `)} or Enum.`,y.unknownPrimitiveType));let h=c.match(/^authorize\s+(.*)$/);if(h){R=l(o);for(let e of h[1].split(/\s+/).filter(e=>e!==`or`&&e.length>0))E.has(e)||D.push(tokenIssue(`warning`,a,o,e,`Unknown policy '${e}' — declare it with 'policy ${e}'.`,y.unknownPolicy))}let g=c.match(/^on\s+([A-Z]\w*)\s*$/);g&&checkEvent(a,o,g[1]);let _=c.match(/^produces\s+([A-Z]\w*)\s*$/);if(_&&!S.operationProductionLines?.has(a)&&checkEvent(a,o,_[1]),/^produces\s+when\b/.test(c)&&!S.operationProductionLines?.has(a))for(let e=a+1;e<s.length;e++){let t=s[e];if(!(d[e]||t.trim().length===0)){if(l(t)>l(o)){let n=t.trim().match(/^([A-Z]\w*)\s*$/);n&&checkEvent(e,t,n[1])}break}}let v=c.match(/^unique\s+event\s+([A-Z]\w*)/);v&&checkEvent(a,o,v[1]);let b=c.match(/^unique\s+[a-z_]\w*\s+on\s+([A-Z]\w*)/);b&&checkEvent(a,o,b[1]);for(let e of o.match(/\$identity\.[\w.]+/g)??[]){let t=e.substring(10).split(`.`)[0],r=[...n,...(S.identityDetails??[]).map(e=>e.name)];r.includes(t)||D.push(tokenIssue(`warning`,a,o,e,`Unknown $identity property '${t}' — expected ${r.join(`, `)}.`,y.unknownContextIdentityProperty))}for(let r of o.match(/\$context\.[\w.]+/g)??[]){let i=r.substring(9).split(`.`);t.includes(i[0])?i[0]===`causedBy`&&i.length>1&&!e.includes(i[1])?D.push(tokenIssue(`warning`,a,o,r,`Unknown $context.causedBy property '${i[1]}' — expected ${e.join(`, `)}.`,y.unknownContextCausedByProperty)):i[0]===`identity`&&i.length>1&&!n.includes(i[1])&&D.push(tokenIssue(`warning`,a,o,r,`Unknown $context.identity property '${i[1]}' — expected ${n.join(`, `)}.`,y.unknownContextIdentityProperty)):D.push(tokenIssue(`warning`,a,o,r,`Unknown $context path '${i.join(`.`)}' — expected one of ${t.join(`, `)}.`,y.unknownContextPath))}}D.push(...validateEventContextPaths(s,d)),D.push(...b(s,w,g,S.operationProductionLines));let z=s.map((e,t)=>({line:e,index:t})).filter(({line:e})=>/^\s*```(?:[a-z]+)?\s*$/.test(e));if(z.length%2==1){let e=z[z.length-1];D.push(issue(`error`,e.index,1,e.line.length+1,"Unclosed inline code block — expected a closing ``` line.",y.unclosedCodeBlock))}return D}function validateProductionDestinations(e,t){let n=[];e=u(e);for(let r of t.commands){let t=r.properties.filter(e=>e.isIdentifier&&!g(e).isOptional&&!g(e).isCollection);if(t.length===1)for(let i of r.produces??[]){if(i.inline||i.conditional||i.target!==void 0)continue;let r=i.line;n.push(issue(`information`,r,l(e[r])+1,e[r].trim().length,`Plain 'produces ${i.name}' omits its destination — use 'for ${t[0].name}' to explicitly select the command's identifier.`,y.omittedProductionDestination))}}return n}function validateImport(e,t,n){let r=e[n],i=r.trim().replace(/\s*\/\/.*$/,``);if(!/^import\b/.test(i)||x(r,n))return;let a=l(r);if(a>0&&[`module`,`feature`].includes(s(e,t,n,a)[0])||S(r))return issue(`error`,n,a+1,i.length,`Invalid import '${i}' — inside a module or feature, import names files: 'import "<path or glob>"'.`,y.invalidFileImport)}const C=/^(?:(?:increment|decrement|count|clear|add|subtract|set)\s+)?@?([$\w.]+)(?=\s|=|$)/;function validateEventContextPaths(e,t){let n=[],names=e=>e.map(e=>e.name).join(`, `);for(let r=0;r<e.length;r++){let i=e[r];if(t[r])continue;for(let e of i.matchAll(/(\.)?\$eventContext((?:\.(?:\w+(?:\(\))?)?)*)/g)){let t=e[0].substring(e[1]?.length??0),i=e[2];if(i.length===0){e[1]&&n.push(issue(`error`,r,(e.index??0)+2,t.length,`'$eventContext' names no member - expected one of ${names(d(``).expected)}.`,y.missingEventContextPath));continue}let a=i.substring(1),o=d(a),s=(e.index??0)+(e[1]?.length??0)+1;switch(o.status){case`missing`:n.push(issue(`error`,r,s,t.length,`'$eventContext.${a}' names no member - expected one of ${names(o.expected)}.`,y.missingEventContextPath));break;case`unknownMember`:n.push(issue(`warning`,r,s,t.length,`Unknown event context member '${o.segment}' in '$eventContext.${a}' - expected one of ${names(o.expected)}.`,y.unknownEventContextMember));break;case`unknownSubPath`:{let e=o.expected.length===0?`no members to address`:`members ${names(o.expected)}`;n.push(issue(`warning`,r,s,t.length,`Unknown event context path '$eventContext.${a}' - '${o.member?.name}' (${o.member?.type}) has ${e}.`,y.unknownEventContextPath));break}case`belowCollection`:n.push(issue(`error`,r,s,t.length,`'$eventContext.${a}' cannot resolve - '${o.member?.name}' is a collection (${o.member?.type}) and cannot be addressed below.`,y.eventContextPathBelowCollection))}}let a=i.trim().match(C)?.[1],o=a?.match(/\.\$(\w+)/)?.[1];a&&o&&o!==`eventContext`&&n.push(tokenIssue(`warning`,r,i,a,`Dynamic dictionary key '$${o}' in '${a}' is never resolved - only '$eventContext.<path>' is, so the literal text '$${o}' becomes the key.`,y.unresolvedDynamicKeySource))}return n}export{validateEventContextPaths,validateLines};
|
|
2
|
+
`)),x.authoringPlacement,x.authoringPath,x.authoringPlacementResolved),C=new Set(S.eventSources.routes.map(e=>e.location.line-1)),w={...m,commands:m.commands.map(e=>({...e,properties:e.properties.filter(e=>!C.has(e.line)),produces:e.produces?.filter(e=>!S.operationProductionLines?.has(e.line)),productionHeaders:e.productionHeaders?.filter(e=>!S.operationProductionLines?.has(e))}))},T=/* @__PURE__ */ new Set([...p(w),...p(g)]),E=new Set([...w.policies,...g.policies].map(e=>e.name)),D=validateDeclarations(s,w,g);D.push(...validateProductionDestinations(s,w));let O=/* @__PURE__ */ new Set([a.UnknownGenerationStrategy,a.InvalidGenerationArgument,a.InvalidGenerationModifier,a.DuplicateGenerationModifier,a.DuplicateGeneration,a.InvalidGenerationPrimitive,a.InvalidGenerationPrefix,a.InvalidGenerationAlphabet,a.InvalidTypeIdPrefix,a.GenerationSizeOutsideRange,a.ReservedSequenceGeneration,a.LowGenerationEntropy,a.LowGeneratedIdentifierEntropy,a.RefutedGeneratedConceptRule,a.UnprovenGeneratedConceptRule,a.GenerationSupportBudgetExceeded,a.EmptyGenerationSupport]),k=/* @__PURE__ */ new Set([a.MixedEnumerationNumbering,a.DuplicateEnumerationNumber,a.EnumerationNumberOutsideInt32,a.MalformedEnumerationNumber,a.UnpinnedStoredEnumeration]),A=/* @__PURE__ */ new Set([a.LegacyOptionalSuffix,a.InvalidOptionalModifierOrder,a.OptionalReadsNotSupported]),j=/* @__PURE__ */ new Set([a.UnexpectedTokenInPolicyCondition,a.ExpectedPolicyCondition,a.UnclosedPolicyConditionGroup,a.ExpectedRoleName,a.ExpectedClaimName,a.ExpectedClaimMatches,a.ExpectedClaimMatchTarget]),M=/* @__PURE__ */ new Set([a.UnknownEvent,a.UnknownReadModelProperty,a.PiiNotSupportedOnIdentifier]),N=/* @__PURE__ */ new Set([a.EventFromLaterSlice,a.TimelineCycleGroup]),P=/* @__PURE__ */ new Set([a.UndeclaredDependency,a.UnusedDependencyDeclaration,a.InvalidDependencyTarget,a.RepeatedDependencyDeclaration,a.MutualDependencyDeclarations,a.AmbiguousReference]),F=/* @__PURE__ */ new Set([a.InvalidCommandReadsDeclaration,a.UnknownMatchPattern,a.InvalidMatchPattern,a.PatternOutsidePortableMatchDialect,a.DeprecatedStudioTextRulePattern,a.MismatchedSpecificationQueryResult,a.DirectionlessTranslationReactsToOwnCapture,a.CaptureEventsFromSeveralOrigins,a.CaptureEventsKeyNotRequired,a.CaptureEventsRecordFixture,a.EventIdPinNotCarriedToRenderers,a.ResponseNameUsedOnFailure,a.InvalidEventDeclaration,a.InvalidImportDeclaration,a.InvalidSliceDeclaration,a.InvalidDescription,a.DuplicateDescription,a.EmptyDescription,a.DuplicateEventSubject,a.InvalidSubjectType,a.ProtectedSubjectType,a.InvalidSubjectOwner,a.ReadModelSubjectNotSupported,a.InvalidSubjectModifierOrder,a.UnsupportedInteractionAlternatives,a.MixedInteractionAlternatives,a.InteractionAlternativeWithoutActions,a.InlineInteractionAlternative,a.LegacyInteractionWhere,a.InvalidSpecificationParameter,a.InvalidSpecificationCase,a.DuplicateSpecificationParameter,a.DuplicateSpecificationCase,a.IncompleteSpecificationTable,a.InvalidSpecificationCaseAssignment,a.InvalidSpecificationCaseValue,a.InvalidSpecificationCaseReference,a.OptionalSpecificationParameterTarget,a.SpecificationCaseNameCollision,a.IncompatibleSpecificationParameterType,a.UnusedSpecificationParameter,a.SingularSpecificationTableExpansion,a.InvalidSpecificationCallerPersona,a.UnsynthesizablePersonaCaller,a.PersonaWithoutGate,a.GateWithoutPersona,a.AmbiguousPersonaCaller,a.InvalidDocumentation,a.ConflictingDocumentationAcrossFiles,a.InvalidAbsentReadModelStep,a.UnknownConstraintProperty,a.OmittedProductionDestination,a.InvalidSpecificationExample,a.DuplicateSpecificationAssignment,a.InvalidReactionBatchesDeclaration,a.DescribedCommandNotImplemented,a.DescribedCommandWithoutProductions,a.DescribedCommandCardinalityNotAdmitted,a.CommandHandlerRequiresAttachment,a.PendingIntentWithOtherHandler,a.DuplicateEventInProjectionScope,a.ReservedStoredName]),I=/* @__PURE__ */ new Set([a.InvalidPurposeDeclaration,a.InvalidPurposeVocabulary,a.DuplicatePurposeField,a.DuplicatePurposeDeclaration,a.UnknownPurpose,a.PurposeInterestMismatch,a.PersonalDataWithoutPurpose,a.SpecialDataWithoutCondition,a.CriminalDataWithoutAuthorization,a.PurposeWithoutBasis,a.UnusedPurpose,a.UnknownConceptDirective,a.AttributeReasonWithoutAttribute,a.DuplicateAttributeReason,a.LegacyComplianceMarker,a.DuplicateComplianceMarker,a.UnknownComplianceMarker,a.InvalidSecretScope,a.DuplicateSecretScope,a.SecretScopeIgnoredForPii,a.InvalidPersonalDataQualifier,a.DuplicateSpecialCategory]),L=/* @__PURE__ */ new Set;for(let e of u.compilerDiagnostics??S.diagnostics){let t=e.code===a.UnknownType&&(S.identityDetails??[]).some(t=>t.line===e.location.line-1),n=e.code===a.RepeatedSingularDeclarationAcrossFiles&&e.message.includes(`identity block`);if(!t&&!n&&!O.has(e.code)&&!k.has(e.code)&&!I.has(e.code)&&!A.has(e.code)&&!j.has(e.code)&&!M.has(e.code)&&!N.has(e.code)&&!P.has(e.code)&&!F.has(e.code)&&e.code!==a.ReducerIdentityMismatch&&e.code!==a.InvalidSpecificationExampleBody&&e.code!==a.UnknownRuleImplementationDirective&&e.code!==a.InvalidValidationRule&&e.code!==a.RepeatedDeclarationAcrossFiles&&!/^PLAY049[0-9]$|^PLAY050[0-7]$|^PLAY054[7-9]$|^PLAY055[01]$|^PLAY048[2-9]$|^PLAY004[56]$|^PLAY053[0-9]$|^PLAY054[0-6]$|^PLAY034[1-8]$|^PLAY0557$|^PLAY060[7-9]$|^PLAY061[0-9]$|^PLAY0620$|^PLAY062[1-9]$|^PLAY063[0-9]$|^PLAY064[0-9]$|^PLAY065[0-2]$|^PLAY065[4-6]$|^PLAY066[0-6]$|^PLAY072[0-2]$/.test(e.code))continue;let r=e.location.line-1;if(e.code===a.OmittedProductionDestination&&D.some(t=>t.code===e.code&&t.line===r))continue;if(e.code===a.UnknownEvent){if(L.has(r))continue;L.add(r)}let i=o(s[r],e)||s[r].length-e.location.column+1;D.push(issue(e.severity,r,e.location.column,i,e.message,e.code))}let checkEvent=(e,t,n)=>{!T.has(n)&&!L.has(e)&&D.push(tokenIssue(`warning`,e,t,n,`Unknown event type '${n}' — declare it in a slice or import it.`,y.unknownEvent))},R=-1;for(let a=0;a<s.length;a++){let o=s[a],c=o.trim();if(d[a]||c.length===0)continue;let u=o.match(/^[ ]*(\t+)/);if(u&&D.push(issue(`warning`,a,u[0].length-u[1].length+1,u[1].length,`Screenplay is indentation-based — use spaces, not tabs.`,y.tabIndentation)),R>=0){if(l(o)>R&&/^(?:or\s+)?[A-Z]\w*(?:\s+or\s+[A-Z]\w*)*$/.test(c)){for(let e of c.split(/\s+/).filter(e=>e!==`or`))E.has(e)||D.push(tokenIssue(`warning`,a,o,e,`Unknown policy '${e}' — declare it with 'policy ${e}'.`,y.unknownPolicy));continue}R=-1}let f=validateImport(s,d,a);f&&D.push(f);let p=c.match(/^slice\s+(\w+)/);p&&!i.includes(p[1])&&D.push(tokenIssue(`error`,a,o,p[1],`Unknown slice type '${p[1]}' — expected ${i.join(`, `)}.`,y.unknownSliceType));let m=c.match(/^concept\s+\w+\s*:\s*(\w+)/);m&&m[1]!==`Enum`&&!r.includes(m[1])&&D.push(tokenIssue(`error`,a,o,m[1],`Unknown primitive type '${m[1]}' — expected ${r.join(`, `)} or Enum.`,y.unknownPrimitiveType));let h=c.match(/^authorize\s+(.*)$/);if(h){R=l(o);for(let e of h[1].split(/\s+/).filter(e=>e!==`or`&&e.length>0))E.has(e)||D.push(tokenIssue(`warning`,a,o,e,`Unknown policy '${e}' — declare it with 'policy ${e}'.`,y.unknownPolicy))}let g=c.match(/^on\s+([A-Z]\w*)\s*$/);g&&checkEvent(a,o,g[1]);let _=c.match(/^produces\s+([A-Z]\w*)\s*$/);if(_&&!S.operationProductionLines?.has(a)&&checkEvent(a,o,_[1]),/^produces\s+when\b/.test(c)&&!S.operationProductionLines?.has(a))for(let e=a+1;e<s.length;e++){let t=s[e];if(!(d[e]||t.trim().length===0)){if(l(t)>l(o)){let n=t.trim().match(/^([A-Z]\w*)\s*$/);n&&checkEvent(e,t,n[1])}break}}let v=c.match(/^unique\s+event\s+([A-Z]\w*)/);v&&checkEvent(a,o,v[1]);let b=c.match(/^unique\s+[a-z_]\w*\s+on\s+([A-Z]\w*)/);b&&checkEvent(a,o,b[1]);for(let e of o.match(/\$identity\.[\w.]+/g)??[]){let t=e.substring(10).split(`.`)[0],r=[...n,...(S.identityDetails??[]).map(e=>e.name)];r.includes(t)||D.push(tokenIssue(`warning`,a,o,e,`Unknown $identity property '${t}' — expected ${r.join(`, `)}.`,y.unknownContextIdentityProperty))}for(let r of o.match(/\$context\.[\w.]+/g)??[]){let i=r.substring(9).split(`.`);t.includes(i[0])?i[0]===`causedBy`&&i.length>1&&!e.includes(i[1])?D.push(tokenIssue(`warning`,a,o,r,`Unknown $context.causedBy property '${i[1]}' — expected ${e.join(`, `)}.`,y.unknownContextCausedByProperty)):i[0]===`identity`&&i.length>1&&!n.includes(i[1])&&D.push(tokenIssue(`warning`,a,o,r,`Unknown $context.identity property '${i[1]}' — expected ${n.join(`, `)}.`,y.unknownContextIdentityProperty)):D.push(tokenIssue(`warning`,a,o,r,`Unknown $context path '${i.join(`.`)}' — expected one of ${t.join(`, `)}.`,y.unknownContextPath))}}D.push(...validateEventContextPaths(s,d)),D.push(...b(s,w,g,S.operationProductionLines));let z=s.map((e,t)=>({line:e,index:t})).filter(({line:e})=>/^\s*```(?:[a-z]+)?\s*$/.test(e));if(z.length%2==1){let e=z[z.length-1];D.push(issue(`error`,e.index,1,e.line.length+1,"Unclosed inline code block — expected a closing ``` line.",y.unclosedCodeBlock))}return D}function validateProductionDestinations(e,t){let n=[];e=u(e);for(let r of t.commands){let t=r.properties.filter(e=>e.isIdentifier&&!g(e).isOptional&&!g(e).isCollection);if(t.length===1)for(let i of r.produces??[]){if(i.inline||i.conditional||i.target!==void 0)continue;let r=i.line;n.push(issue(`information`,r,l(e[r])+1,e[r].trim().length,`Plain 'produces ${i.name}' omits its destination — use 'for ${t[0].name}' to explicitly select the command's identifier.`,y.omittedProductionDestination))}}return n}function validateImport(e,t,n){let r=e[n],i=r.trim().replace(/\s*\/\/.*$/,``);if(!/^import\b/.test(i)||x(r,n))return;let a=l(r);if(a>0&&[`module`,`feature`].includes(s(e,t,n,a)[0])||S(r))return issue(`error`,n,a+1,i.length,`Invalid import '${i}' — inside a module or feature, import names files: 'import "<path or glob>"'.`,y.invalidFileImport)}const C=/^(?:(?:increment|decrement|count|clear|add|subtract|set)\s+)?@?([$\w.]+)(?=\s|=|$)/;function validateEventContextPaths(e,t){let n=[],names=e=>e.map(e=>e.name).join(`, `);for(let r=0;r<e.length;r++){let i=e[r];if(t[r])continue;for(let e of i.matchAll(/(\.)?\$eventContext((?:\.(?:\w+(?:\(\))?)?)*)/g)){let t=e[0].substring(e[1]?.length??0),i=e[2];if(i.length===0){e[1]&&n.push(issue(`error`,r,(e.index??0)+2,t.length,`'$eventContext' names no member - expected one of ${names(d(``).expected)}.`,y.missingEventContextPath));continue}let a=i.substring(1),o=d(a),s=(e.index??0)+(e[1]?.length??0)+1;switch(o.status){case`missing`:n.push(issue(`error`,r,s,t.length,`'$eventContext.${a}' names no member - expected one of ${names(o.expected)}.`,y.missingEventContextPath));break;case`unknownMember`:n.push(issue(`warning`,r,s,t.length,`Unknown event context member '${o.segment}' in '$eventContext.${a}' - expected one of ${names(o.expected)}.`,y.unknownEventContextMember));break;case`unknownSubPath`:{let e=o.expected.length===0?`no members to address`:`members ${names(o.expected)}`;n.push(issue(`warning`,r,s,t.length,`Unknown event context path '$eventContext.${a}' - '${o.member?.name}' (${o.member?.type}) has ${e}.`,y.unknownEventContextPath));break}case`belowCollection`:n.push(issue(`error`,r,s,t.length,`'$eventContext.${a}' cannot resolve - '${o.member?.name}' is a collection (${o.member?.type}) and cannot be addressed below.`,y.eventContextPathBelowCollection))}}let a=i.trim().match(C)?.[1],o=a?.match(/\.\$(\w+)/)?.[1];a&&o&&o!==`eventContext`&&n.push(tokenIssue(`warning`,r,i,a,`Dynamic dictionary key '$${o}' in '${a}' is never resolved - only '$eventContext.<path>' is, so the literal text '$${o}' becomes the key.`,y.unresolvedDynamicKeySource))}return n}export{validateEventContextPaths,validateLines};
|
|
3
3
|
//# sourceMappingURL=validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","names":["startColumn","length","severity","line","text","token","message","code","issues","types","knownTypeNames","symbols","primitiveTypes","application","property","properties","propertyTypeReference","candidate","bare","owner","diagnosticCodes","type","event","query","command","identifiers","extra","lines","declared","declaration","fences","fenceMap","scanned","scanDocument","context","mergeSymbols","input","symbolsForBuffer","analysis","responseAnalysis","source","routeLines","route","production","events","knownEventNames","policies","policy","generationCodes","DiagnosticCodes","enumerationCodes","optionalCodes","policyCodes","consistencyCodes","timelineCodes","dependencyCodes","authoringCodes","complianceCodes","compilerUnknownEventLines","diagnostic","identityType","detail","identityDuplicate","existing","legacyOptionalTypeLength","name","authorizeIndent","index","trimmed","leading","indentOf","fileImportIssue","slice","sliceTypes","concept","authorize","reactsOn","produces","next","uniqueEvent","uniqueProperty","path","member","knownIdentity","identityProperties","segments","contextRoots","causedByProperties","validateInlineEvents","fenceLines","last","eventAnalysisSource","fileImportOn","indent","enclosingChain","isFileImportLine","mappingTarget","members","match","written","resolveEventContextPath","resolution","column","has","target"],"sources":["../../validation.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, legacyOptionalTypeLength } from '@cratis/screenplay-compiler';\nimport { AnalysisDiagnostic, responseAnalysis } from './response-analysis';\nimport { validateInlineEvents } from './inline-event-validation';\nimport { causedByProperties, contextRoots, identityProperties, primitiveTypes, sliceTypes } from './language';\nimport { DiagnosticCode, diagnosticCodes } from './diagnostic-codes';\nimport { enclosingChain, fenceMap, indentOf } from './document-context';\nimport { eventAnalysisSource } from './event-analysis-source';\nimport { resolveEventContextPath } from './event-context';\nimport {\n DocumentSymbols,\n PropertySymbol,\n propertyTypeReference,\n knownEventNames,\n knownTypeNames,\n mergeSymbols,\n scanDocument,\n symbolsForBuffer,\n} from './symbols';\nimport { fileImportOn, isFileImportLine } from './file-imports';\n\nexport type ValidationSeverity = 'error' | 'warning' | 'information';\n\nexport interface ValidationIssue {\n line: number;\n startColumn: number;\n endColumn: number;\n message: string;\n severity: ValidationSeverity;\n\n // The compiler code for this condition, absent on the structural checks the editor makes and the\n // compiler does not. See ./diagnostic-codes.ts.\n code?: DiagnosticCode;\n}\n\n// What a document is validated against beyond itself.\nexport interface ValidationContext {\n // What the rest of the application declares - the other .play files of a folder, or the files an import\n // brings in - so a name declared in another file is not reported unknown. Merge the scanned symbols of\n // those files with mergeSymbols. The document's own declarations are always known.\n application?: DocumentSymbols;\n placement?: readonly string[];\n path?: string;\n compilerDiagnostics?: readonly AnalysisDiagnostic[];\n}\n\nfunction issue(\n severity: ValidationSeverity,\n line: number,\n startColumn: number,\n length: number,\n message: string,\n code: DiagnosticCode,\n): ValidationIssue {\n return { severity, message, line, startColumn, endColumn: startColumn + length, code };\n}\n\nfunction tokenIssue(\n severity: ValidationSeverity,\n line: number,\n text: string,\n token: string,\n message: string,\n code: DiagnosticCode,\n): ValidationIssue {\n const column = text.indexOf(token) + 1;\n return issue(severity, line, column, token.length, message, code);\n}\n\n// Reports every property whose type reference names nothing the document declares, and\n// every command that marks more than one property as its identifier.\nfunction validateDeclarations(lines: string[], symbols: DocumentSymbols, application: DocumentSymbols): ValidationIssue[] {\n const issues: ValidationIssue[] = [];\n const types = new Set([...knownTypeNames(symbols, primitiveTypes), ...knownTypeNames(application, [])]);\n\n const checkProperties = (properties: PropertySymbol[], owner: string) => {\n for (const property of properties.filter(\n (candidate) => !types.has(propertyTypeReference(candidate).name),\n )) {\n const bare = propertyTypeReference(property).name;\n issues.push(\n issue(\n 'warning',\n property.line,\n property.sourceType!.startColumn,\n property.sourceType!.text.length,\n bare === 'optional'\n ? `Unknown type 'optional' on '${property.name}' of ${owner} — did you forget the type before 'optional'?`\n : `Unknown type '${bare}' on '${property.name}' of ${owner} — declare it with 'concept ${bare} : <Primitive>' or 'type ${bare}'.`,\n diagnosticCodes.unknownType,\n ),\n );\n }\n };\n\n for (const type of symbols.types) checkProperties(type.properties, `type '${type.name}'`);\n for (const event of symbols.events) checkProperties(event.properties, `event '${event.name}'`);\n for (const query of symbols.queries) checkProperties(query.parameters, `query '${query.name}'`);\n for (const command of symbols.commands) {\n checkProperties(command.properties, `command '${command.name}'`);\n const identifiers = command.properties.filter((property) => property.isIdentifier);\n for (const extra of identifiers.slice(1)) {\n issues.push(\n tokenIssue(\n 'error',\n extra.line,\n lines[extra.line],\n 'identifier',\n `Command '${command.name}' already marks '${identifiers[0].name}' as identifier — only one property can be the identifier.`,\n diagnosticCodes.duplicateCommandIdentifier,\n ),\n );\n }\n }\n\n const declared = new Map<string, number>();\n for (const declaration of [...symbols.concepts, ...symbols.types]) {\n const first = declared.get(declaration.name);\n if (first === undefined) {\n declared.set(declaration.name, declaration.line);\n continue;\n }\n issues.push(\n tokenIssue(\n 'error',\n declaration.line,\n lines[declaration.line],\n declaration.name,\n `Duplicate declaration of '${declaration.name}' — concept and type names must be unique.`,\n diagnosticCodes.duplicateDeclaration,\n ),\n );\n }\n\n return issues;\n}\n\n// Validates a Screenplay document without any editor dependency — both the Monaco\n// service and the VSCode extension adapt these issues to their marker/diagnostic APIs.\n//\n// The checks read the document line by line, never as a whole document's top level, so a file an import\n// places in a module or feature - holding slices or features at its top level - validates as it is written.\n// Where it is placed, and whether its imports resolve, is the compiler's to say.\nexport function validateLines(lines: string[], context: ValidationContext = {}): ValidationIssue[] {\n const fences = fenceMap(lines);\n const scanned = scanDocument(lines);\n const application = context.application ?? mergeSymbols();\n const input = symbolsForBuffer(lines, { ...application, authoringPath: context.path ?? application.authoringPath, authoringPlacement: context.placement ?? application.authoringPlacement });\n const analysis = responseAnalysis(lines, input.authoringDocuments ?? input.authoringSources?.filter(source => source !== lines.join('\\n')), input.authoringPlacement, input.authoringPath, input.authoringPlacementResolved);\n const routeLines = new Set(analysis.eventSources.routes.map(route => route.location.line - 1));\n const symbols = { ...scanned, commands: scanned.commands.map(command => ({ ...command,\n properties: command.properties.filter(property => !routeLines.has(property.line)),\n produces: command.produces?.filter(production => !analysis.operationProductionLines?.has(production.line)),\n productionHeaders: command.productionHeaders?.filter(line => !analysis.operationProductionLines?.has(line)),\n })) };\n const events = new Set([...knownEventNames(symbols), ...knownEventNames(application)]);\n const policies = new Set([...symbols.policies, ...application.policies].map((policy) => policy.name));\n const issues: ValidationIssue[] = validateDeclarations(lines, symbols, application);\n issues.push(...validateProductionDestinations(lines, symbols));\n // One parser pass covers committed types, including query results and trigger data, without\n // speculative property scans mistaking tags, paths, strings or code for optionality.\n const generationCodes = new Set<string>([DiagnosticCodes.UnknownGenerationStrategy, DiagnosticCodes.InvalidGenerationArgument, DiagnosticCodes.InvalidGenerationModifier, DiagnosticCodes.DuplicateGenerationModifier, DiagnosticCodes.DuplicateGeneration, DiagnosticCodes.InvalidGenerationPrimitive, DiagnosticCodes.InvalidGenerationPrefix, DiagnosticCodes.InvalidGenerationAlphabet, DiagnosticCodes.InvalidTypeIdPrefix, DiagnosticCodes.GenerationSizeOutsideRange, DiagnosticCodes.ReservedSequenceGeneration, DiagnosticCodes.LowGenerationEntropy, DiagnosticCodes.LowGeneratedIdentifierEntropy, DiagnosticCodes.RefutedGeneratedConceptRule, DiagnosticCodes.UnprovenGeneratedConceptRule, DiagnosticCodes.GenerationSupportBudgetExceeded, DiagnosticCodes.EmptyGenerationSupport]);\n const enumerationCodes = new Set<string>([DiagnosticCodes.MixedEnumerationNumbering, DiagnosticCodes.DuplicateEnumerationNumber, DiagnosticCodes.EnumerationNumberOutsideInt32, DiagnosticCodes.MalformedEnumerationNumber, DiagnosticCodes.UnpinnedStoredEnumeration]);\n const optionalCodes = new Set<string>([DiagnosticCodes.LegacyOptionalSuffix, DiagnosticCodes.InvalidOptionalModifierOrder, DiagnosticCodes.OptionalReadsNotSupported]);\n const policyCodes = new Set<string>([DiagnosticCodes.UnexpectedTokenInPolicyCondition, DiagnosticCodes.ExpectedPolicyCondition, DiagnosticCodes.UnclosedPolicyConditionGroup, DiagnosticCodes.ExpectedRoleName, DiagnosticCodes.ExpectedClaimName, DiagnosticCodes.ExpectedClaimMatches, DiagnosticCodes.ExpectedClaimMatchTarget]);\n const consistencyCodes = new Set<string>([DiagnosticCodes.UnknownEvent, DiagnosticCodes.UnknownReadModelProperty, DiagnosticCodes.PiiNotSupportedOnIdentifier]);\n const timelineCodes = new Set<string>([DiagnosticCodes.EventFromLaterSlice, DiagnosticCodes.TimelineCycleGroup]);\n const dependencyCodes = new Set<string>([DiagnosticCodes.UndeclaredDependency, DiagnosticCodes.UnusedDependencyDeclaration, DiagnosticCodes.InvalidDependencyTarget, DiagnosticCodes.RepeatedDependencyDeclaration, DiagnosticCodes.MutualDependencyDeclarations, DiagnosticCodes.AmbiguousReference]);\n // These parser diagnostics must reach the marker adapter. C#-only completeness and reference\n // checks are not synthesized here, but are preserved when a caller supplies compiler diagnostics.\n const authoringCodes = new Set<string>([DiagnosticCodes.InvalidCommandReadsDeclaration, DiagnosticCodes.UnknownMatchPattern, DiagnosticCodes.InvalidMatchPattern, DiagnosticCodes.PatternOutsidePortableMatchDialect, DiagnosticCodes.DeprecatedStudioTextRulePattern, DiagnosticCodes.MismatchedSpecificationQueryResult, DiagnosticCodes.DirectionlessTranslationReactsToOwnCapture, DiagnosticCodes.CaptureEventsFromSeveralOrigins, DiagnosticCodes.CaptureEventsKeyNotRequired, DiagnosticCodes.CaptureEventsRecordFixture, DiagnosticCodes.EventIdPinNotCarriedToRenderers, DiagnosticCodes.ResponseNameUsedOnFailure, DiagnosticCodes.InvalidEventDeclaration, DiagnosticCodes.InvalidImportDeclaration, DiagnosticCodes.InvalidSliceDeclaration, DiagnosticCodes.InvalidDescription, DiagnosticCodes.DuplicateDescription, DiagnosticCodes.EmptyDescription, DiagnosticCodes.DuplicateEventSubject, DiagnosticCodes.InvalidSubjectType, DiagnosticCodes.ProtectedSubjectType, DiagnosticCodes.InvalidSubjectOwner, DiagnosticCodes.ReadModelSubjectNotSupported, DiagnosticCodes.InvalidSubjectModifierOrder, DiagnosticCodes.UnsupportedInteractionAlternatives, DiagnosticCodes.MixedInteractionAlternatives, DiagnosticCodes.InteractionAlternativeWithoutActions, DiagnosticCodes.InlineInteractionAlternative, DiagnosticCodes.LegacyInteractionWhere, DiagnosticCodes.InvalidSpecificationParameter, DiagnosticCodes.InvalidSpecificationCase, DiagnosticCodes.DuplicateSpecificationParameter, DiagnosticCodes.DuplicateSpecificationCase, DiagnosticCodes.IncompleteSpecificationTable, DiagnosticCodes.InvalidSpecificationCaseAssignment, DiagnosticCodes.InvalidSpecificationCaseValue, DiagnosticCodes.InvalidSpecificationCaseReference, DiagnosticCodes.OptionalSpecificationParameterTarget, DiagnosticCodes.SpecificationCaseNameCollision, DiagnosticCodes.IncompatibleSpecificationParameterType, DiagnosticCodes.UnusedSpecificationParameter, DiagnosticCodes.SingularSpecificationTableExpansion, DiagnosticCodes.InvalidSpecificationCallerPersona, DiagnosticCodes.UnsynthesizablePersonaCaller, DiagnosticCodes.PersonaWithoutGate, DiagnosticCodes.GateWithoutPersona, DiagnosticCodes.AmbiguousPersonaCaller, DiagnosticCodes.InvalidDocumentation, DiagnosticCodes.ConflictingDocumentationAcrossFiles, DiagnosticCodes.InvalidAbsentReadModelStep, DiagnosticCodes.UnknownConstraintProperty, DiagnosticCodes.OmittedProductionDestination, DiagnosticCodes.InvalidSpecificationExample, DiagnosticCodes.DuplicateSpecificationAssignment, DiagnosticCodes.InvalidReactionBatchesDeclaration, DiagnosticCodes.DescribedCommandNotImplemented, DiagnosticCodes.DescribedCommandWithoutProductions, DiagnosticCodes.DescribedCommandCardinalityNotAdmitted, DiagnosticCodes.CommandHandlerRequiresAttachment, DiagnosticCodes.PendingIntentWithOtherHandler, DiagnosticCodes.DuplicateEventInProjectionScope]);\n const complianceCodes = new Set<string>([DiagnosticCodes.InvalidPurposeDeclaration, DiagnosticCodes.InvalidPurposeVocabulary, DiagnosticCodes.DuplicatePurposeField, DiagnosticCodes.DuplicatePurposeDeclaration, DiagnosticCodes.UnknownPurpose, DiagnosticCodes.PurposeInterestMismatch, DiagnosticCodes.PersonalDataWithoutPurpose, DiagnosticCodes.SpecialDataWithoutCondition, DiagnosticCodes.CriminalDataWithoutAuthorization, DiagnosticCodes.PurposeWithoutBasis, DiagnosticCodes.UnusedPurpose, DiagnosticCodes.UnknownConceptDirective, DiagnosticCodes.AttributeReasonWithoutAttribute, DiagnosticCodes.DuplicateAttributeReason, DiagnosticCodes.LegacyComplianceMarker, DiagnosticCodes.DuplicateComplianceMarker, DiagnosticCodes.UnknownComplianceMarker, DiagnosticCodes.InvalidSecretScope, DiagnosticCodes.DuplicateSecretScope, DiagnosticCodes.SecretScopeIgnoredForPii, DiagnosticCodes.InvalidPersonalDataQualifier, DiagnosticCodes.DuplicateSpecialCategory]);\n const compilerUnknownEventLines = new Set<number>();\n for (const diagnostic of context.compilerDiagnostics ?? analysis.diagnostics) {\n const identityType = diagnostic.code === DiagnosticCodes.UnknownType && (analysis.identityDetails ?? []).some(detail => detail.line === diagnostic.location.line - 1);\n const identityDuplicate = diagnostic.code === DiagnosticCodes.RepeatedSingularDeclarationAcrossFiles && diagnostic.message.includes('identity block');\n if (!identityType && !identityDuplicate && !generationCodes.has(diagnostic.code) && !enumerationCodes.has(diagnostic.code) && !complianceCodes.has(diagnostic.code) && !optionalCodes.has(diagnostic.code) && !policyCodes.has(diagnostic.code) && !consistencyCodes.has(diagnostic.code) && !timelineCodes.has(diagnostic.code) && !dependencyCodes.has(diagnostic.code) && !authoringCodes.has(diagnostic.code) && diagnostic.code !== DiagnosticCodes.ReducerIdentityMismatch && diagnostic.code !== DiagnosticCodes.InvalidSpecificationExampleBody && diagnostic.code !== DiagnosticCodes.UnknownRuleImplementationDirective && diagnostic.code !== DiagnosticCodes.InvalidValidationRule && diagnostic.code !== DiagnosticCodes.RepeatedDeclarationAcrossFiles && !/^PLAY049[0-9]$|^PLAY050[0-7]$|^PLAY054[7-9]$|^PLAY055[01]$|^PLAY048[2-9]$|^PLAY004[56]$|^PLAY053[0-9]$|^PLAY054[0-6]$|^PLAY034[1-8]$|^PLAY0557$|^PLAY060[7-9]$|^PLAY061[0-9]$|^PLAY0620$|^PLAY062[1-9]$|^PLAY063[0-9]$|^PLAY064[0-9]$|^PLAY065[0-2]$|^PLAY065[4-6]$|^PLAY066[0-6]$|^PLAY072[0-2]$/.test(diagnostic.code)) continue;\n const line = diagnostic.location.line - 1;\n if (diagnostic.code === DiagnosticCodes.OmittedProductionDestination && issues.some(existing => existing.code === diagnostic.code && existing.line === line)) continue;\n if (diagnostic.code === DiagnosticCodes.UnknownEvent) {\n if (compilerUnknownEventLines.has(line)) continue;\n compilerUnknownEventLines.add(line);\n }\n const length = legacyOptionalTypeLength(lines[line], diagnostic) || lines[line].length - diagnostic.location.column + 1;\n issues.push(issue(diagnostic.severity, line, diagnostic.location.column, length, diagnostic.message, diagnostic.code as DiagnosticCode));\n }\n\n const checkEvent = (line: number, text: string, name: string) => {\n if (!events.has(name) && !compilerUnknownEventLines.has(line)) {\n issues.push(\n tokenIssue(\n 'warning',\n line,\n text,\n name,\n `Unknown event type '${name}' — declare it in a slice or import it.`,\n diagnosticCodes.unknownEvent,\n ),\n );\n }\n };\n\n let authorizeIndent = -1;\n\n for (let index = 0; index < lines.length; index++) {\n const line = lines[index];\n const trimmed = line.trim();\n\n if (fences[index] || trimmed.length === 0) continue;\n\n const leading = line.match(/^[ ]*(\\t+)/);\n if (leading) {\n issues.push(\n issue(\n 'warning',\n index,\n leading[0].length - leading[1].length + 1,\n leading[1].length,\n 'Screenplay is indentation-based — use spaces, not tabs.',\n diagnosticCodes.tabIndentation,\n ),\n );\n }\n\n // Policy references continue on indented lines below an authorize clause.\n if (authorizeIndent >= 0) {\n if (\n indentOf(line) > authorizeIndent &&\n /^(?:or\\s+)?[A-Z]\\w*(?:\\s+or\\s+[A-Z]\\w*)*$/.test(trimmed)\n ) {\n for (const name of trimmed.split(/\\s+/).filter((token) => token !== 'or')) {\n if (!policies.has(name)) {\n issues.push(\n tokenIssue(\n 'warning',\n index,\n line,\n name,\n `Unknown policy '${name}' — declare it with 'policy ${name}'.`,\n diagnosticCodes.unknownPolicy,\n ),\n );\n }\n }\n continue;\n }\n authorizeIndent = -1;\n }\n\n const fileImportIssue = validateImport(lines, fences, index);\n if (fileImportIssue) issues.push(fileImportIssue);\n\n const slice = trimmed.match(/^slice\\s+(\\w+)/);\n if (slice && !sliceTypes.includes(slice[1])) {\n issues.push(\n tokenIssue(\n 'error',\n index,\n line,\n slice[1],\n `Unknown slice type '${slice[1]}' — expected ${sliceTypes.join(', ')}.`,\n diagnosticCodes.unknownSliceType,\n ),\n );\n }\n\n const concept = trimmed.match(/^concept\\s+\\w+\\s*:\\s*(\\w+)/);\n if (concept && concept[1] !== 'Enum' && !primitiveTypes.includes(concept[1])) {\n issues.push(\n tokenIssue(\n 'error',\n index,\n line,\n concept[1],\n `Unknown primitive type '${concept[1]}' — expected ${primitiveTypes.join(', ')} or Enum.`,\n diagnosticCodes.unknownPrimitiveType,\n ),\n );\n }\n\n const authorize = trimmed.match(/^authorize\\s+(.*)$/);\n if (authorize) {\n authorizeIndent = indentOf(line);\n for (const name of authorize[1].split(/\\s+/).filter((token) => token !== 'or' && token.length > 0)) {\n if (!policies.has(name)) {\n issues.push(\n tokenIssue(\n 'warning',\n index,\n line,\n name,\n `Unknown policy '${name}' — declare it with 'policy ${name}'.`,\n diagnosticCodes.unknownPolicy,\n ),\n );\n }\n }\n }\n\n const reactsOn = trimmed.match(/^on\\s+([A-Z]\\w*)\\s*$/);\n if (reactsOn) checkEvent(index, line, reactsOn[1]);\n\n const produces = trimmed.match(/^produces\\s+([A-Z]\\w*)\\s*$/);\n if (produces && !analysis.operationProductionLines?.has(index)) checkEvent(index, line, produces[1]);\n\n if (/^produces\\s+when\\b/.test(trimmed) && !analysis.operationProductionLines?.has(index)) {\n for (let next = index + 1; next < lines.length; next++) {\n const candidate = lines[next];\n if (fences[next] || candidate.trim().length === 0) continue;\n if (indentOf(candidate) > indentOf(line)) {\n const name = candidate.trim().match(/^([A-Z]\\w*)\\s*$/);\n if (name) checkEvent(next, candidate, name[1]);\n }\n break;\n }\n }\n\n const uniqueEvent = trimmed.match(/^unique\\s+event\\s+([A-Z]\\w*)/);\n if (uniqueEvent) checkEvent(index, line, uniqueEvent[1]);\n\n const uniqueProperty = trimmed.match(/^unique\\s+[a-z_]\\w*\\s+on\\s+([A-Z]\\w*)/);\n if (uniqueProperty) checkEvent(index, line, uniqueProperty[1]);\n\n // Every $identity. path must name a member of the caller; anything after 'claims.' is a claim name.\n // A bare $identity is left to the compilers, which see it only where an expression is expected.\n for (const path of line.match(/\\$identity\\.[\\w.]+/g) ?? []) {\n const member = path.substring('$identity.'.length).split('.')[0];\n const knownIdentity = [...identityProperties, ...(analysis.identityDetails ?? []).map(detail => detail.name)];\n if (!knownIdentity.includes(member)) {\n issues.push(tokenIssue('warning', index, line, path,\n `Unknown $identity property '${member}' — expected ${knownIdentity.join(', ')}.`,\n diagnosticCodes.unknownContextIdentityProperty));\n }\n }\n\n // Every $context. path must name something CommandContext or QueryContext carries.\n for (const path of line.match(/\\$context\\.[\\w.]+/g) ?? []) {\n const segments = path.substring('$context.'.length).split('.');\n if (!contextRoots.includes(segments[0])) {\n issues.push(\n tokenIssue(\n 'warning',\n index,\n line,\n path,\n `Unknown $context path '${segments.join('.')}' — expected one of ${contextRoots.join(', ')}.`,\n diagnosticCodes.unknownContextPath,\n ),\n );\n } else if (\n segments[0] === 'causedBy' &&\n segments.length > 1 &&\n !causedByProperties.includes(segments[1])\n ) {\n issues.push(\n tokenIssue(\n 'warning',\n index,\n line,\n path,\n `Unknown $context.causedBy property '${segments[1]}' — expected ${causedByProperties.join(', ')}.`,\n diagnosticCodes.unknownContextCausedByProperty,\n ),\n );\n } else if (\n segments[0] === 'identity' &&\n segments.length > 1 &&\n !identityProperties.includes(segments[1])\n ) {\n issues.push(\n tokenIssue(\n 'warning',\n index,\n line,\n path,\n `Unknown $context.identity property '${segments[1]}' — expected ${identityProperties.join(', ')}.`,\n diagnosticCodes.unknownContextIdentityProperty,\n ),\n );\n }\n }\n }\n\n issues.push(...validateEventContextPaths(lines, fences));\n issues.push(...validateInlineEvents(lines, symbols, application, analysis.operationProductionLines));\n\n const fenceLines = lines\n .map((line, index) => ({ line, index }))\n .filter(({ line }) => /^\\s*```(?:[a-z]+)?\\s*$/.test(line));\n if (fenceLines.length % 2 === 1) {\n const last = fenceLines[fenceLines.length - 1];\n issues.push(\n issue(\n 'error',\n last.index,\n 1,\n last.line.length + 1,\n 'Unclosed inline code block — expected a closing ``` line.',\n diagnosticCodes.unclosedCodeBlock,\n ),\n );\n }\n\n return issues;\n}\n\n// This is advice, not a semantic default: accepting the typed workspace repair changes routing.\nfunction validateProductionDestinations(lines: string[], symbols: DocumentSymbols): ValidationIssue[] {\n const issues: ValidationIssue[] = [];\n lines = eventAnalysisSource(lines);\n for (const command of symbols.commands) {\n const identifiers = command.properties.filter(property => property.isIdentifier && !propertyTypeReference(property).isOptional && !propertyTypeReference(property).isCollection);\n if (identifiers.length !== 1) continue;\n for (const production of command.produces ?? []) {\n if (production.inline || production.conditional || production.target !== undefined) continue;\n const line = production.line;\n issues.push(issue('information', line, indentOf(lines[line]) + 1, lines[line].trim().length,\n `Plain 'produces ${production.name}' omits its destination — use 'for ${identifiers[0].name}' to explicitly select the command's identifier.`,\n diagnosticCodes.omittedProductionDestination));\n }\n }\n return issues;\n}\n\n// Inside a module or feature an import names files, and a quoted import anywhere has the compiler's shape.\nfunction validateImport(lines: string[], fences: boolean[], index: number): ValidationIssue | undefined {\n const line = lines[index];\n const trimmed = line.trim().replace(/\\s*\\/\\/.*$/, '');\n if (!/^import\\b/.test(trimmed) || fileImportOn(line, index)) return undefined;\n const indent = indentOf(line);\n const inBody = indent > 0 && ['module', 'feature'].includes(enclosingChain(lines, fences, index, indent)[0]);\n if (!inBody && !isFileImportLine(line)) return undefined;\n return issue(\n 'error',\n index,\n indent + 1,\n trimmed.length,\n `Invalid import '${trimmed}' — inside a module or feature, import names files: 'import \"<path or glob>\"'.`,\n diagnosticCodes.invalidFileImport,\n );\n}\n\n// A mapping target: the first word of a mapping line, after the keyword that opens it if there is one.\nconst mappingTarget = /^(?:(?:increment|decrement|count|clear|add|subtract|set)\\s+)?@?([$\\w.]+)(?=\\s|=|$)/;\n\n// Every $eventContext.<path> - in an expression or as the dynamic key of a mapping target - checked against the\n// event-context catalog the way the compiler checks it (Parsing/EventContextPathValidator.cs).\nexport function validateEventContextPaths(lines: string[], fences: boolean[]): ValidationIssue[] {\n const issues: ValidationIssue[] = [];\n const names = (members: readonly { name: string }[]) => members.map((member) => member.name).join(', ');\n\n for (let index = 0; index < lines.length; index++) {\n const line = lines[index];\n if (fences[index]) continue;\n\n for (const match of line.matchAll(/(\\.)?\\$eventContext((?:\\.(?:\\w+(?:\\(\\))?)?)*)/g)) {\n const token = match[0].substring(match[1]?.length ?? 0);\n const written = match[2];\n if (written.length === 0) {\n // A bare $eventContext names nothing only as a dynamic key; in an expression the compiler rejects it as invalid.\n if (match[1]) {\n issues.push(issue('error', index, (match.index ?? 0) + 2, token.length, `'$eventContext' names no member - expected one of ${names(resolveEventContextPath('').expected)}.`, diagnosticCodes.missingEventContextPath));\n }\n continue;\n }\n\n const path = written.substring(1);\n const resolution = resolveEventContextPath(path);\n const column = (match.index ?? 0) + (match[1]?.length ?? 0) + 1;\n switch (resolution.status) {\n case 'missing':\n issues.push(issue('error', index, column, token.length, `'$eventContext.${path}' names no member - expected one of ${names(resolution.expected)}.`, diagnosticCodes.missingEventContextPath));\n break;\n case 'unknownMember':\n issues.push(issue('warning', index, column, token.length, `Unknown event context member '${resolution.segment}' in '$eventContext.${path}' - expected one of ${names(resolution.expected)}.`, diagnosticCodes.unknownEventContextMember));\n break;\n case 'unknownSubPath': {\n const has = resolution.expected.length === 0 ? 'no members to address' : `members ${names(resolution.expected)}`;\n issues.push(issue('warning', index, column, token.length, `Unknown event context path '$eventContext.${path}' - '${resolution.member?.name}' (${resolution.member?.type}) has ${has}.`, diagnosticCodes.unknownEventContextPath));\n break;\n }\n case 'belowCollection':\n issues.push(issue('error', index, column, token.length, `'$eventContext.${path}' cannot resolve - '${resolution.member?.name}' is a collection (${resolution.member?.type}) and cannot be addressed below.`, diagnosticCodes.eventContextPathBelowCollection));\n break;\n }\n }\n\n // Only $eventContext resolves in a dynamic key; any other $ source is kept as the literal key text.\n const target = line.trim().match(mappingTarget)?.[1];\n const source = target?.match(/\\.\\$(\\w+)/)?.[1];\n if (target && source && source !== 'eventContext') {\n issues.push(tokenIssue('warning', index, line, target, `Dynamic dictionary key '$${source}' in '${target}' is never resolved - only '$eventContext.<path>' is, so the literal text '$${source}' becomes the key.`, diagnosticCodes.unresolvedDynamicKeySource));\n }\n }\n\n return issues;\n}\n"],"mappings":"88BAgDA,SAAS,MACL,EACA,EACA,EACA,EACA,EACA,EACe,CACf,MAAO,CAAE,WAAU,UAAS,OAAM,cAAa,UAAWA,EAAcC,EAAQ,MAAK,CACzF,CAEA,SAAS,WACL,EACA,EACA,EACA,EACA,EACA,EACe,CAEf,OAAO,MAAMC,EAAUC,EADRC,EAAK,QAAQC,CAAK,EAAI,EACAA,EAAM,OAAQC,EAASC,CAAI,CACpE,CAIA,SAAS,qBAAqB,EAAiB,EAA0B,EAAiD,CACtH,IAAMC,EAA4B,CAAC,EAC7BC,kBAAQ,IAAI,IAAI,CAAC,GAAGC,EAAeC,EAASC,CAAc,EAAG,GAAGF,EAAeG,EAAa,CAAC,CAAC,CAAC,CAAC,EAEhG,iBAAmB,EAA8B,IAAkB,CACrE,IAAK,IAAMC,KAAYC,EAAW,OAC7B,GAAc,CAACN,EAAM,IAAIO,EAAsBC,CAAS,CAAC,CAAC,IAAI,CACnE,EAAG,CACC,IAAMC,EAAOF,EAAsBF,CAAQ,CAAC,CAAC,KAC7CN,EAAO,KACH,MACI,UACAM,EAAS,KACTA,EAAS,WAAY,YACrBA,EAAS,WAAY,KAAK,OAC1BI,IAAS,WACH,+BAA+BJ,EAAS,KAAK,OAAOK,EAAM,+CAC1D,iBAAiBD,EAAK,QAAQJ,EAAS,KAAK,OAAOK,EAAM,8BAA8BD,EAAK,2BAA2BA,EAAK,IAClIE,EAAgB,WACpB,CACJ,CACJ,CACJ,EAEA,IAAK,IAAMC,KAAQV,EAAQ,MAAO,gBAAgBU,EAAK,WAAY,SAASA,EAAK,KAAK,EAAE,EACxF,IAAK,IAAMC,KAASX,EAAQ,OAAQ,gBAAgBW,EAAM,WAAY,UAAUA,EAAM,KAAK,EAAE,EAC7F,IAAK,IAAMC,KAASZ,EAAQ,QAAS,gBAAgBY,EAAM,WAAY,UAAUA,EAAM,KAAK,EAAE,EAC9F,IAAK,IAAMC,KAAWb,EAAQ,SAAU,CACpC,gBAAgBa,EAAQ,WAAY,YAAYA,EAAQ,KAAK,EAAE,EAC/D,IAAMC,EAAcD,EAAQ,WAAW,OAAQ,GAAaV,EAAS,YAAY,EACjF,IAAK,IAAMY,KAASD,EAAY,MAAM,CAAC,EACnCjB,EAAO,KACH,WACI,QACAkB,EAAM,KACNC,EAAMD,EAAM,MACZ,aACA,YAAYF,EAAQ,KAAK,mBAAmBC,EAAY,EAAE,CAAC,KAAK,4DAChEL,EAAgB,0BACpB,CACJ,CAER,CAEA,IAAMQ,kBAAW,IAAI,IACrB,IAAK,IAAMC,IAAe,CAAC,GAAGlB,EAAQ,SAAU,GAAGA,EAAQ,KAAK,EAC9CiB,EAAS,IAAIC,EAAY,IAC/B,IAAM,IAAA,GACVD,EAAS,IAAIC,EAAY,KAAMA,EAAY,IAAI,EAGnDrB,EAAO,KACH,WACI,QACAqB,EAAY,KACZF,EAAME,EAAY,MAClBA,EAAY,KACZ,6BAA6BA,EAAY,KAAK,4CAC9CT,EAAgB,oBACpB,CACJ,EAGJ,OAAOZ,CACX,CAQA,SAAgB,cAAc,EAAiB,EAA6B,CAAC,EAAsB,CAC/F,IAAMsB,EAASC,EAASJ,CAAK,EACvBK,EAAUC,EAAaN,CAAK,EAC5Bd,EAAcqB,EAAQ,aAAeC,EAAa,EAClDC,EAAQC,EAAiBV,EAAO,CAAE,GAAGd,EAAa,cAAeqB,EAAQ,MAAQrB,EAAY,cAAe,mBAAoBqB,EAAQ,WAAarB,EAAY,kBAAmB,CAAC,EACrLyB,EAAWC,EAAiBZ,EAAOS,EAAM,oBAAsBA,EAAM,kBAAkB,OAAO,GAAUI,IAAWb,EAAM,KAAK;CAAI,CAAC,EAAGS,EAAM,mBAAoBA,EAAM,cAAeA,EAAM,0BAA0B,EACrNK,EAAa,IAAI,IAAIH,EAAS,aAAa,OAAO,IAAI,GAASI,EAAM,SAAS,KAAO,CAAC,CAAC,EACvF/B,EAAU,CAAE,GAAGqB,EAAS,SAAUA,EAAQ,SAAS,IAAI,IAAY,CAAE,GAAGR,EAC1E,WAAYA,EAAQ,WAAW,OAAO,GAAY,CAACiB,EAAW,IAAI3B,EAAS,IAAI,CAAC,EAChF,SAAUU,EAAQ,UAAU,OAAO,GAAc,CAACc,EAAS,0BAA0B,IAAIK,EAAW,IAAI,CAAC,EACzG,kBAAmBnB,EAAQ,mBAAmB,OAAO,GAAQ,CAACc,EAAS,0BAA0B,IAAInC,CAAI,CAAC,CAC9G,EAAE,CAAE,EACEyC,kBAAS,IAAI,IAAI,CAAC,GAAGC,EAAgBlC,CAAO,EAAG,GAAGkC,EAAgBhC,CAAW,CAAC,CAAC,EAC/EiC,EAAW,IAAI,IAAI,CAAC,GAAGnC,EAAQ,SAAU,GAAGE,EAAY,QAAQ,CAAC,CAAC,IAAK,GAAWkC,EAAO,IAAI,CAAC,EAC9FvC,EAA4B,qBAAqBmB,EAAOhB,EAASE,CAAW,EAClFL,EAAO,KAAK,GAAG,+BAA+BmB,EAAOhB,CAAO,CAAC,EAG7D,IAAMqC,kBAAkB,IAAI,IAAY,CAACC,EAAgB,0BAA2BA,EAAgB,0BAA2BA,EAAgB,0BAA2BA,EAAgB,4BAA6BA,EAAgB,oBAAqBA,EAAgB,2BAA4BA,EAAgB,wBAAyBA,EAAgB,0BAA2BA,EAAgB,oBAAqBA,EAAgB,2BAA4BA,EAAgB,2BAA4BA,EAAgB,qBAAsBA,EAAgB,8BAA+BA,EAAgB,4BAA6BA,EAAgB,6BAA8BA,EAAgB,gCAAiCA,EAAgB,sBAAsB,CAAC,EAC3vBC,kBAAmB,IAAI,IAAY,CAACD,EAAgB,0BAA2BA,EAAgB,2BAA4BA,EAAgB,8BAA+BA,EAAgB,2BAA4BA,EAAgB,yBAAyB,CAAC,EAChQE,kBAAgB,IAAI,IAAY,CAACF,EAAgB,qBAAsBA,EAAgB,6BAA8BA,EAAgB,yBAAyB,CAAC,EAC/JG,kBAAc,IAAI,IAAY,CAACH,EAAgB,iCAAkCA,EAAgB,wBAAyBA,EAAgB,6BAA8BA,EAAgB,iBAAkBA,EAAgB,kBAAmBA,EAAgB,qBAAsBA,EAAgB,wBAAwB,CAAC,EAC5TI,kBAAmB,IAAI,IAAY,CAACJ,EAAgB,aAAcA,EAAgB,yBAA0BA,EAAgB,2BAA2B,CAAC,EACxJK,kBAAgB,IAAI,IAAY,CAACL,EAAgB,oBAAqBA,EAAgB,kBAAkB,CAAC,EACzGM,kBAAkB,IAAI,IAAY,CAACN,EAAgB,qBAAsBA,EAAgB,4BAA6BA,EAAgB,wBAAyBA,EAAgB,8BAA+BA,EAAgB,6BAA8BA,EAAgB,kBAAkB,CAAC,EAG/RO,kBAAiB,IAAI,IAAY,CAACP,EAAgB,+BAAgCA,EAAgB,oBAAqBA,EAAgB,oBAAqBA,EAAgB,mCAAoCA,EAAgB,gCAAiCA,EAAgB,mCAAoCA,EAAgB,2CAA4CA,EAAgB,gCAAiCA,EAAgB,4BAA6BA,EAAgB,2BAA4BA,EAAgB,gCAAiCA,EAAgB,0BAA2BA,EAAgB,wBAAyBA,EAAgB,yBAA0BA,EAAgB,wBAAyBA,EAAgB,mBAAoBA,EAAgB,qBAAsBA,EAAgB,iBAAkBA,EAAgB,sBAAuBA,EAAgB,mBAAoBA,EAAgB,qBAAsBA,EAAgB,oBAAqBA,EAAgB,6BAA8BA,EAAgB,4BAA6BA,EAAgB,mCAAoCA,EAAgB,6BAA8BA,EAAgB,qCAAsCA,EAAgB,6BAA8BA,EAAgB,uBAAwBA,EAAgB,8BAA+BA,EAAgB,yBAA0BA,EAAgB,gCAAiCA,EAAgB,2BAA4BA,EAAgB,6BAA8BA,EAAgB,mCAAoCA,EAAgB,8BAA+BA,EAAgB,kCAAmCA,EAAgB,qCAAsCA,EAAgB,+BAAgCA,EAAgB,uCAAwCA,EAAgB,6BAA8BA,EAAgB,oCAAqCA,EAAgB,kCAAmCA,EAAgB,6BAA8BA,EAAgB,mBAAoBA,EAAgB,mBAAoBA,EAAgB,uBAAwBA,EAAgB,qBAAsBA,EAAgB,oCAAqCA,EAAgB,2BAA4BA,EAAgB,0BAA2BA,EAAgB,6BAA8BA,EAAgB,4BAA6BA,EAAgB,iCAAkCA,EAAgB,kCAAmCA,EAAgB,+BAAgCA,EAAgB,mCAAoCA,EAAgB,uCAAwCA,EAAgB,iCAAkCA,EAAgB,8BAA+BA,EAAgB,+BAA+B,CAAC,EACzwFQ,kBAAkB,IAAI,IAAY,CAACR,EAAgB,0BAA2BA,EAAgB,yBAA0BA,EAAgB,sBAAuBA,EAAgB,4BAA6BA,EAAgB,eAAgBA,EAAgB,wBAAyBA,EAAgB,2BAA4BA,EAAgB,4BAA6BA,EAAgB,iCAAkCA,EAAgB,oBAAqBA,EAAgB,cAAeA,EAAgB,wBAAyBA,EAAgB,gCAAiCA,EAAgB,yBAA0BA,EAAgB,uBAAwBA,EAAgB,0BAA2BA,EAAgB,wBAAyBA,EAAgB,mBAAoBA,EAAgB,qBAAsBA,EAAgB,yBAA0BA,EAAgB,6BAA8BA,EAAgB,wBAAwB,CAAC,EAC/6BS,kBAA4B,IAAI,IACtC,IAAK,IAAMC,KAAczB,EAAQ,qBAAuBI,EAAS,YAAa,CAC1E,IAAMsB,EAAeD,EAAW,OAASV,EAAgB,cAAgBX,EAAS,iBAAmB,CAAC,EAAA,CAAG,KAAK,GAAUuB,EAAO,OAASF,EAAW,SAAS,KAAO,CAAC,EAC9JG,EAAoBH,EAAW,OAASV,EAAgB,wCAA0CU,EAAW,QAAQ,SAAS,gBAAgB,EACpJ,GAAI,CAACC,GAAgB,CAACE,GAAqB,CAACd,EAAgB,IAAIW,EAAW,IAAI,GAAK,CAACT,EAAiB,IAAIS,EAAW,IAAI,GAAK,CAACF,EAAgB,IAAIE,EAAW,IAAI,GAAK,CAACR,EAAc,IAAIQ,EAAW,IAAI,GAAK,CAACP,EAAY,IAAIO,EAAW,IAAI,GAAK,CAACN,EAAiB,IAAIM,EAAW,IAAI,GAAK,CAACL,EAAc,IAAIK,EAAW,IAAI,GAAK,CAACJ,EAAgB,IAAII,EAAW,IAAI,GAAK,CAACH,EAAe,IAAIG,EAAW,IAAI,GAAKA,EAAW,OAASV,EAAgB,yBAA2BU,EAAW,OAASV,EAAgB,iCAAmCU,EAAW,OAASV,EAAgB,oCAAsCU,EAAW,OAASV,EAAgB,uBAAyBU,EAAW,OAASV,EAAgB,gCAAkC,CAAC,oSAAoS,KAAKU,EAAW,IAAI,EAAG,SACpiC,IAAMxD,EAAOwD,EAAW,SAAS,KAAO,EACxC,GAAIA,EAAW,OAASV,EAAgB,8BAAgCzC,EAAO,KAAK,GAAYuD,EAAS,OAASJ,EAAW,MAAQI,EAAS,OAAS5D,CAAI,EAAG,SAC9J,GAAIwD,EAAW,OAASV,EAAgB,aAAc,CAClD,GAAIS,EAA0B,IAAIvD,CAAI,EAAG,SACzCuD,EAA0B,IAAIvD,CAAI,CACtC,CACA,IAAMF,EAAS+D,EAAyBrC,EAAMxB,GAAOwD,CAAU,GAAKhC,EAAMxB,EAAK,CAAC,OAASwD,EAAW,SAAS,OAAS,EACtHnD,EAAO,KAAK,MAAMmD,EAAW,SAAUxD,EAAMwD,EAAW,SAAS,OAAQ1D,EAAQ0D,EAAW,QAASA,EAAW,IAAsB,CAAC,CAC3I,CAEA,IAAM,YAAc,EAAc,EAAc,IAAiB,CACzD,CAACf,EAAO,IAAIqB,CAAI,GAAK,CAACP,EAA0B,IAAIvD,CAAI,GACxDK,EAAO,KACH,WACI,UACAL,EACAC,EACA6D,EACA,uBAAuBA,EAAK,yCAC5B7C,EAAgB,YACpB,CACJ,CAER,EAEI8C,EAAkB,GAEtB,IAAK,IAAIC,EAAQ,EAAGA,EAAQxC,EAAM,OAAQ,IAAS,CAC/C,IAAMxB,EAAOwB,EAAMwC,GACbC,EAAUjE,EAAK,KAAK,EAE1B,GAAI2B,EAAOqC,IAAUC,EAAQ,SAAW,EAAG,SAE3C,IAAMC,EAAUlE,EAAK,MAAM,YAAY,EAevC,GAdIkE,GACA7D,EAAO,KACH,MACI,UACA2D,EACAE,EAAQ,EAAE,CAAC,OAASA,EAAQ,EAAE,CAAC,OAAS,EACxCA,EAAQ,EAAE,CAAC,OACX,0DACAjD,EAAgB,cACpB,CACJ,EAIA8C,GAAmB,EAAG,CACtB,GACII,EAASnE,CAAI,EAAI+D,GACjB,4CAA4C,KAAKE,CAAO,EAC1D,CACE,IAAK,IAAMH,KAAQG,EAAQ,MAAM,KAAK,CAAC,CAAC,OAAQ,GAAU/D,IAAU,IAAI,EAC/DyC,EAAS,IAAImB,CAAI,GAClBzD,EAAO,KACH,WACI,UACA2D,EACAhE,EACA8D,EACA,mBAAmBA,EAAK,8BAA8BA,EAAK,IAC3D7C,EAAgB,aACpB,CACJ,EAGR,QACJ,CACA,EAAkB,EACtB,CAEA,IAAMmD,EAAkB,eAAe5C,EAAOG,EAAQqC,CAAK,EACvDI,GAAiB/D,EAAO,KAAK+D,CAAe,EAEhD,IAAMC,EAAQJ,EAAQ,MAAM,gBAAgB,EACxCI,GAAS,CAACC,EAAW,SAASD,EAAM,EAAE,GACtChE,EAAO,KACH,WACI,QACA2D,EACAhE,EACAqE,EAAM,GACN,uBAAuBA,EAAM,GAAG,eAAeC,EAAW,KAAK,IAAI,EAAE,GACrErD,EAAgB,gBACpB,CACJ,EAGJ,IAAMsD,EAAUN,EAAQ,MAAM,4BAA4B,EACtDM,GAAWA,EAAQ,KAAO,QAAU,CAAC9D,EAAe,SAAS8D,EAAQ,EAAE,GACvElE,EAAO,KACH,WACI,QACA2D,EACAhE,EACAuE,EAAQ,GACR,2BAA2BA,EAAQ,GAAG,eAAe9D,EAAe,KAAK,IAAI,EAAE,WAC/EQ,EAAgB,oBACpB,CACJ,EAGJ,IAAMuD,EAAYP,EAAQ,MAAM,oBAAoB,EACpD,GAAIO,EAAW,CACX,EAAkBL,EAASnE,CAAI,EAC/B,IAAK,IAAM8D,KAAQU,EAAU,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,OAAQ,GAAUtE,IAAU,MAAQA,EAAM,OAAS,CAAC,EACxFyC,EAAS,IAAImB,CAAI,GAClBzD,EAAO,KACH,WACI,UACA2D,EACAhE,EACA8D,EACA,mBAAmBA,EAAK,8BAA8BA,EAAK,IAC3D7C,EAAgB,aACpB,CACJ,CAGZ,CAEA,IAAMwD,EAAWR,EAAQ,MAAM,sBAAsB,EACjDQ,GAAU,WAAWT,EAAOhE,EAAMyE,EAAS,EAAE,EAEjD,IAAMC,EAAWT,EAAQ,MAAM,4BAA4B,EAG3D,GAFIS,GAAY,CAACvC,EAAS,0BAA0B,IAAI6B,CAAK,GAAG,WAAWA,EAAOhE,EAAM0E,EAAS,EAAE,EAE/F,qBAAqB,KAAKT,CAAO,GAAK,CAAC9B,EAAS,0BAA0B,IAAI6B,CAAK,EACnF,IAAK,IAAIW,EAAOX,EAAQ,EAAGW,EAAOnD,EAAM,OAAQ,IAAQ,CACpD,IAAMV,EAAYU,EAAMmD,GACxB,GAAI,IAAOA,IAAS7D,EAAU,KAAK,CAAC,CAAC,SAAW,GAChD,IAAIqD,EAASrD,CAAS,EAAIqD,EAASnE,CAAI,EAAG,CACtC,IAAM8D,EAAOhD,EAAU,KAAK,CAAC,CAAC,MAAM,iBAAiB,EACjDgD,GAAM,WAAWa,EAAM7D,EAAWgD,EAAK,EAAE,CACjD,CACA,KADA,CAEJ,CAGJ,IAAMc,EAAcX,EAAQ,MAAM,8BAA8B,EAC5DW,GAAa,WAAWZ,EAAOhE,EAAM4E,EAAY,EAAE,EAEvD,IAAMC,EAAiBZ,EAAQ,MAAM,uCAAuC,EACxEY,GAAgB,WAAWb,EAAOhE,EAAM6E,EAAe,EAAE,EAI7D,IAAK,IAAMC,KAAQ9E,EAAK,MAAM,qBAAqB,GAAK,CAAC,EAAG,CACxD,IAAM+E,EAASD,EAAK,UAAU,EAAmB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GACxDE,EAAgB,CAAC,GAAGC,EAAoB,IAAI9C,EAAS,iBAAmB,CAAC,EAAA,CAAG,IAAI,GAAUuB,EAAO,IAAI,CAAC,EACvGsB,EAAc,SAASD,CAAM,GAC9B1E,EAAO,KAAK,WAAW,UAAW2D,EAAOhE,EAAM8E,EAC3C,+BAA+BC,EAAO,eAAeC,EAAc,KAAK,IAAI,EAAE,GAC9E/D,EAAgB,8BAA8B,CAAC,CAE3D,CAGA,IAAK,IAAM6D,KAAQ9E,EAAK,MAAM,oBAAoB,GAAK,CAAC,EAAG,CACvD,IAAMkF,EAAWJ,EAAK,UAAU,CAAkB,CAAC,CAAC,MAAM,GAAG,EACxDK,EAAa,SAASD,EAAS,EAAE,EAYlCA,EAAS,KAAO,YAChBA,EAAS,OAAS,GAClB,CAACE,EAAmB,SAASF,EAAS,EAAE,EAExC7E,EAAO,KACH,WACI,UACA2D,EACAhE,EACA8E,EACA,uCAAuCI,EAAS,GAAG,eAAeE,EAAmB,KAAK,IAAI,EAAE,GAChGnE,EAAgB,8BACpB,CACJ,EAEAiE,EAAS,KAAO,YAChBA,EAAS,OAAS,GAClB,CAACD,EAAmB,SAASC,EAAS,EAAE,GAExC7E,EAAO,KACH,WACI,UACA2D,EACAhE,EACA8E,EACA,uCAAuCI,EAAS,GAAG,eAAeD,EAAmB,KAAK,IAAI,EAAE,GAChGhE,EAAgB,8BACpB,CACJ,EAvCAZ,EAAO,KACH,WACI,UACA2D,EACAhE,EACA8E,EACA,0BAA0BI,EAAS,KAAK,GAAG,EAAE,sBAAsBC,EAAa,KAAK,IAAI,EAAE,GAC3FlE,EAAgB,kBACpB,CACJ,CAgCR,CACJ,CAEAZ,EAAO,KAAK,GAAG,0BAA0BmB,EAAOG,CAAM,CAAC,EACvDtB,EAAO,KAAK,GAAGgF,EAAqB7D,EAAOhB,EAASE,EAAayB,EAAS,wBAAwB,CAAC,EAEnG,IAAMmD,EAAa9D,EACd,KAAK,EAAM,KAAW,CAAE,OAAM,OAAM,EAAE,CAAC,CACvC,QAAQ,CAAE,UAAW,yBAAyB,KAAKxB,CAAI,CAAC,EAC7D,GAAIsF,EAAW,OAAS,GAAM,EAAG,CAC7B,IAAMC,EAAOD,EAAWA,EAAW,OAAS,GAC5CjF,EAAO,KACH,MACI,QACAkF,EAAK,MACL,EACAA,EAAK,KAAK,OAAS,EACnB,4DACAtE,EAAgB,iBACpB,CACJ,CACJ,CAEA,OAAOZ,CACX,CAGA,SAAS,+BAA+B,EAAiB,EAA6C,CAClG,IAAMA,EAA4B,CAAC,EACnC,EAAQmF,EAAoBhE,CAAK,EACjC,IAAK,IAAMH,KAAWb,EAAQ,SAAU,CACpC,IAAMc,EAAcD,EAAQ,WAAW,OAAO,GAAYV,EAAS,cAAgB,CAACE,EAAsBF,CAAQ,CAAC,CAAC,YAAc,CAACE,EAAsBF,CAAQ,CAAC,CAAC,YAAY,EAC/K,GAAIW,EAAY,SAAW,EAC3B,IAAK,IAAMkB,KAAcnB,EAAQ,UAAY,CAAC,EAAG,CAC7C,GAAImB,EAAW,QAAUA,EAAW,aAAeA,EAAW,SAAW,IAAA,GAAW,SACpF,IAAMxC,EAAOwC,EAAW,KACxBnC,EAAO,KAAK,MAAM,cAAeL,EAAMmE,EAAS3C,EAAMxB,EAAK,EAAI,EAAGwB,EAAMxB,EAAK,CAAC,KAAK,CAAC,CAAC,OACjF,mBAAmBwC,EAAW,KAAK,qCAAqClB,EAAY,EAAE,CAAC,KAAK,kDAC5FL,EAAgB,4BAA4B,CAAC,CACrD,CACJ,CACA,OAAOZ,CACX,CAGA,SAAS,eAAe,EAAiB,EAAmB,EAA4C,CACpG,IAAML,EAAOwB,EAAMwC,GACbC,EAAUjE,EAAK,KAAK,CAAC,CAAC,QAAQ,aAAc,EAAE,EACpD,GAAI,CAAC,YAAY,KAAKiE,CAAO,GAAKwB,EAAazF,EAAMgE,CAAK,EAAG,OAC7D,IAAM0B,EAASvB,EAASnE,CAAI,EAE5B,GADe0F,EAAS,GAAK,CAAC,SAAU,SAAS,CAAC,CAAC,SAASC,EAAenE,EAAOG,EAAQqC,EAAO0B,CAAM,CAAC,CAAC,EAAE,GAC3FE,EAAiB5F,CAAI,EACrC,OAAO,MACH,QACAgE,EACA0B,EAAS,EACTzB,EAAQ,OACR,mBAAmBA,EAAQ,gFAC3BhD,EAAgB,iBACpB,CACJ,CAGA,MAAM4E,EAAgB,qFAItB,SAAgB,0BAA0B,EAAiB,EAAsC,CAC7F,IAAMxF,EAA4B,CAAC,EAC7B,MAAS,GAAyCyF,EAAQ,IAAK,GAAWf,EAAO,IAAI,CAAC,CAAC,KAAK,IAAI,EAEtG,IAAK,IAAIf,EAAQ,EAAGA,EAAQxC,EAAM,OAAQ,IAAS,CAC/C,IAAMxB,EAAOwB,EAAMwC,GACnB,GAAIrC,EAAOqC,GAAQ,SAEnB,IAAK,IAAM+B,KAAS/F,EAAK,SAAS,gDAAgD,EAAG,CACjF,IAAME,EAAQ6F,EAAM,EAAE,CAAC,UAAUA,EAAM,EAAE,EAAE,QAAU,CAAC,EAChDC,EAAUD,EAAM,GACtB,GAAIC,EAAQ,SAAW,EAAG,CAElBD,EAAM,IACN1F,EAAO,KAAK,MAAM,QAAS2D,GAAQ+B,EAAM,OAAS,GAAK,EAAG7F,EAAM,OAAQ,qDAAqD,MAAM+F,EAAwB,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAIhF,EAAgB,uBAAuB,CAAC,EAEzN,QACJ,CAEA,IAAM6D,EAAOkB,EAAQ,UAAU,CAAC,EAC1BE,EAAaD,EAAwBnB,CAAI,EACzCqB,GAAUJ,EAAM,OAAS,IAAMA,EAAM,EAAE,EAAE,QAAU,GAAK,EAC9D,OAAQG,EAAW,OAAnB,CACI,IAAK,UACD7F,EAAO,KAAK,MAAM,QAAS2D,EAAOmC,EAAQjG,EAAM,OAAQ,kBAAkB4E,EAAK,sCAAsC,MAAMoB,EAAW,QAAQ,EAAE,GAAIjF,EAAgB,uBAAuB,CAAC,EAC5L,MACJ,IAAK,gBACDZ,EAAO,KAAK,MAAM,UAAW2D,EAAOmC,EAAQjG,EAAM,OAAQ,iCAAiCgG,EAAW,QAAQ,sBAAsBpB,EAAK,sBAAsB,MAAMoB,EAAW,QAAQ,EAAE,GAAIjF,EAAgB,yBAAyB,CAAC,EACxO,MACJ,IAAK,iBAAkB,CACnB,IAAMmF,EAAMF,EAAW,SAAS,SAAW,EAAI,wBAA0B,WAAW,MAAMA,EAAW,QAAQ,IAC7G7F,EAAO,KAAK,MAAM,UAAW2D,EAAOmC,EAAQjG,EAAM,OAAQ,6CAA6C4E,EAAK,OAAOoB,EAAW,QAAQ,KAAK,KAAKA,EAAW,QAAQ,KAAK,QAAQE,EAAI,GAAInF,EAAgB,uBAAuB,CAAC,EAChO,KACJ,CACA,IAAK,kBACDZ,EAAO,KAAK,MAAM,QAAS2D,EAAOmC,EAAQjG,EAAM,OAAQ,kBAAkB4E,EAAK,sBAAsBoB,EAAW,QAAQ,KAAK,qBAAqBA,EAAW,QAAQ,KAAK,kCAAmCjF,EAAgB,+BAA+B,CAAC,CAErQ,CACJ,CAGA,IAAMoF,EAASrG,EAAK,KAAK,CAAC,CAAC,MAAM6F,CAAa,CAAC,GAAG,GAC5CxD,EAASgE,GAAQ,MAAM,WAAW,CAAC,GAAG,GACxCA,GAAUhE,GAAUA,IAAW,gBAC/BhC,EAAO,KAAK,WAAW,UAAW2D,EAAOhE,EAAMqG,EAAQ,4BAA4BhE,EAAO,QAAQgE,EAAO,8EAA8EhE,EAAO,oBAAqBpB,EAAgB,0BAA0B,CAAC,CAEtQ,CAEA,OAAOZ,CACX"}
|
|
1
|
+
{"version":3,"file":"validation.js","names":["startColumn","length","severity","line","text","token","message","code","issues","types","knownTypeNames","symbols","primitiveTypes","application","property","properties","propertyTypeReference","candidate","bare","owner","diagnosticCodes","type","event","query","command","identifiers","extra","lines","declared","declaration","fences","fenceMap","scanned","scanDocument","context","mergeSymbols","input","symbolsForBuffer","analysis","responseAnalysis","source","routeLines","route","production","events","knownEventNames","policies","policy","generationCodes","DiagnosticCodes","enumerationCodes","optionalCodes","policyCodes","consistencyCodes","timelineCodes","dependencyCodes","authoringCodes","complianceCodes","compilerUnknownEventLines","diagnostic","identityType","detail","identityDuplicate","existing","legacyOptionalTypeLength","name","authorizeIndent","index","trimmed","leading","indentOf","fileImportIssue","slice","sliceTypes","concept","authorize","reactsOn","produces","next","uniqueEvent","uniqueProperty","path","member","knownIdentity","identityProperties","segments","contextRoots","causedByProperties","validateInlineEvents","fenceLines","last","eventAnalysisSource","fileImportOn","indent","enclosingChain","isFileImportLine","mappingTarget","members","match","written","resolveEventContextPath","resolution","column","has","target"],"sources":["../../validation.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, legacyOptionalTypeLength } from '@cratis/screenplay-compiler';\nimport { AnalysisDiagnostic, responseAnalysis } from './response-analysis';\nimport { validateInlineEvents } from './inline-event-validation';\nimport { causedByProperties, contextRoots, identityProperties, primitiveTypes, sliceTypes } from './language';\nimport { DiagnosticCode, diagnosticCodes } from './diagnostic-codes';\nimport { enclosingChain, fenceMap, indentOf } from './document-context';\nimport { eventAnalysisSource } from './event-analysis-source';\nimport { resolveEventContextPath } from './event-context';\nimport {\n DocumentSymbols,\n PropertySymbol,\n propertyTypeReference,\n knownEventNames,\n knownTypeNames,\n mergeSymbols,\n scanDocument,\n symbolsForBuffer,\n} from './symbols';\nimport { fileImportOn, isFileImportLine } from './file-imports';\n\nexport type ValidationSeverity = 'error' | 'warning' | 'information';\n\nexport interface ValidationIssue {\n line: number;\n startColumn: number;\n endColumn: number;\n message: string;\n severity: ValidationSeverity;\n\n // The compiler code for this condition, absent on the structural checks the editor makes and the\n // compiler does not. See ./diagnostic-codes.ts.\n code?: DiagnosticCode;\n}\n\n// What a document is validated against beyond itself.\nexport interface ValidationContext {\n // What the rest of the application declares - the other .play files of a folder, or the files an import\n // brings in - so a name declared in another file is not reported unknown. Merge the scanned symbols of\n // those files with mergeSymbols. The document's own declarations are always known.\n application?: DocumentSymbols;\n placement?: readonly string[];\n path?: string;\n compilerDiagnostics?: readonly AnalysisDiagnostic[];\n}\n\nfunction issue(\n severity: ValidationSeverity,\n line: number,\n startColumn: number,\n length: number,\n message: string,\n code: DiagnosticCode,\n): ValidationIssue {\n return { severity, message, line, startColumn, endColumn: startColumn + length, code };\n}\n\nfunction tokenIssue(\n severity: ValidationSeverity,\n line: number,\n text: string,\n token: string,\n message: string,\n code: DiagnosticCode,\n): ValidationIssue {\n const column = text.indexOf(token) + 1;\n return issue(severity, line, column, token.length, message, code);\n}\n\n// Reports every property whose type reference names nothing the document declares, and\n// every command that marks more than one property as its identifier.\nfunction validateDeclarations(lines: string[], symbols: DocumentSymbols, application: DocumentSymbols): ValidationIssue[] {\n const issues: ValidationIssue[] = [];\n const types = new Set([...knownTypeNames(symbols, primitiveTypes), ...knownTypeNames(application, [])]);\n\n const checkProperties = (properties: PropertySymbol[], owner: string) => {\n for (const property of properties.filter(\n (candidate) => !types.has(propertyTypeReference(candidate).name),\n )) {\n const bare = propertyTypeReference(property).name;\n issues.push(\n issue(\n 'warning',\n property.line,\n property.sourceType!.startColumn,\n property.sourceType!.text.length,\n bare === 'optional'\n ? `Unknown type 'optional' on '${property.name}' of ${owner} — did you forget the type before 'optional'?`\n : `Unknown type '${bare}' on '${property.name}' of ${owner} — declare it with 'concept ${bare} : <Primitive>' or 'type ${bare}'.`,\n diagnosticCodes.unknownType,\n ),\n );\n }\n };\n\n for (const type of symbols.types) checkProperties(type.properties, `type '${type.name}'`);\n for (const event of symbols.events) checkProperties(event.properties, `event '${event.name}'`);\n for (const query of symbols.queries) checkProperties(query.parameters, `query '${query.name}'`);\n for (const command of symbols.commands) {\n checkProperties(command.properties, `command '${command.name}'`);\n const identifiers = command.properties.filter((property) => property.isIdentifier);\n for (const extra of identifiers.slice(1)) {\n issues.push(\n tokenIssue(\n 'error',\n extra.line,\n lines[extra.line],\n 'identifier',\n `Command '${command.name}' already marks '${identifiers[0].name}' as identifier — only one property can be the identifier.`,\n diagnosticCodes.duplicateCommandIdentifier,\n ),\n );\n }\n }\n\n const declared = new Map<string, number>();\n for (const declaration of [...symbols.concepts, ...symbols.types]) {\n const first = declared.get(declaration.name);\n if (first === undefined) {\n declared.set(declaration.name, declaration.line);\n continue;\n }\n issues.push(\n tokenIssue(\n 'error',\n declaration.line,\n lines[declaration.line],\n declaration.name,\n `Duplicate declaration of '${declaration.name}' — concept and type names must be unique.`,\n diagnosticCodes.duplicateDeclaration,\n ),\n );\n }\n\n return issues;\n}\n\n// Validates a Screenplay document without any editor dependency — both the Monaco\n// service and the VSCode extension adapt these issues to their marker/diagnostic APIs.\n//\n// The checks read the document line by line, never as a whole document's top level, so a file an import\n// places in a module or feature - holding slices or features at its top level - validates as it is written.\n// Where it is placed, and whether its imports resolve, is the compiler's to say.\nexport function validateLines(lines: string[], context: ValidationContext = {}): ValidationIssue[] {\n const fences = fenceMap(lines);\n const scanned = scanDocument(lines);\n const application = context.application ?? mergeSymbols();\n const input = symbolsForBuffer(lines, { ...application, authoringPath: context.path ?? application.authoringPath, authoringPlacement: context.placement ?? application.authoringPlacement });\n const analysis = responseAnalysis(lines, input.authoringDocuments ?? input.authoringSources?.filter(source => source !== lines.join('\\n')), input.authoringPlacement, input.authoringPath, input.authoringPlacementResolved);\n const routeLines = new Set(analysis.eventSources.routes.map(route => route.location.line - 1));\n const symbols = { ...scanned, commands: scanned.commands.map(command => ({ ...command,\n properties: command.properties.filter(property => !routeLines.has(property.line)),\n produces: command.produces?.filter(production => !analysis.operationProductionLines?.has(production.line)),\n productionHeaders: command.productionHeaders?.filter(line => !analysis.operationProductionLines?.has(line)),\n })) };\n const events = new Set([...knownEventNames(symbols), ...knownEventNames(application)]);\n const policies = new Set([...symbols.policies, ...application.policies].map((policy) => policy.name));\n const issues: ValidationIssue[] = validateDeclarations(lines, symbols, application);\n issues.push(...validateProductionDestinations(lines, symbols));\n // One parser pass covers committed types, including query results and trigger data, without\n // speculative property scans mistaking tags, paths, strings or code for optionality.\n const generationCodes = new Set<string>([DiagnosticCodes.UnknownGenerationStrategy, DiagnosticCodes.InvalidGenerationArgument, DiagnosticCodes.InvalidGenerationModifier, DiagnosticCodes.DuplicateGenerationModifier, DiagnosticCodes.DuplicateGeneration, DiagnosticCodes.InvalidGenerationPrimitive, DiagnosticCodes.InvalidGenerationPrefix, DiagnosticCodes.InvalidGenerationAlphabet, DiagnosticCodes.InvalidTypeIdPrefix, DiagnosticCodes.GenerationSizeOutsideRange, DiagnosticCodes.ReservedSequenceGeneration, DiagnosticCodes.LowGenerationEntropy, DiagnosticCodes.LowGeneratedIdentifierEntropy, DiagnosticCodes.RefutedGeneratedConceptRule, DiagnosticCodes.UnprovenGeneratedConceptRule, DiagnosticCodes.GenerationSupportBudgetExceeded, DiagnosticCodes.EmptyGenerationSupport]);\n const enumerationCodes = new Set<string>([DiagnosticCodes.MixedEnumerationNumbering, DiagnosticCodes.DuplicateEnumerationNumber, DiagnosticCodes.EnumerationNumberOutsideInt32, DiagnosticCodes.MalformedEnumerationNumber, DiagnosticCodes.UnpinnedStoredEnumeration]);\n const optionalCodes = new Set<string>([DiagnosticCodes.LegacyOptionalSuffix, DiagnosticCodes.InvalidOptionalModifierOrder, DiagnosticCodes.OptionalReadsNotSupported]);\n const policyCodes = new Set<string>([DiagnosticCodes.UnexpectedTokenInPolicyCondition, DiagnosticCodes.ExpectedPolicyCondition, DiagnosticCodes.UnclosedPolicyConditionGroup, DiagnosticCodes.ExpectedRoleName, DiagnosticCodes.ExpectedClaimName, DiagnosticCodes.ExpectedClaimMatches, DiagnosticCodes.ExpectedClaimMatchTarget]);\n const consistencyCodes = new Set<string>([DiagnosticCodes.UnknownEvent, DiagnosticCodes.UnknownReadModelProperty, DiagnosticCodes.PiiNotSupportedOnIdentifier]);\n const timelineCodes = new Set<string>([DiagnosticCodes.EventFromLaterSlice, DiagnosticCodes.TimelineCycleGroup]);\n const dependencyCodes = new Set<string>([DiagnosticCodes.UndeclaredDependency, DiagnosticCodes.UnusedDependencyDeclaration, DiagnosticCodes.InvalidDependencyTarget, DiagnosticCodes.RepeatedDependencyDeclaration, DiagnosticCodes.MutualDependencyDeclarations, DiagnosticCodes.AmbiguousReference]);\n // These parser diagnostics must reach the marker adapter. C#-only completeness and reference\n // checks are not synthesized here, but are preserved when a caller supplies compiler diagnostics.\n const authoringCodes = new Set<string>([DiagnosticCodes.InvalidCommandReadsDeclaration, DiagnosticCodes.UnknownMatchPattern, DiagnosticCodes.InvalidMatchPattern, DiagnosticCodes.PatternOutsidePortableMatchDialect, DiagnosticCodes.DeprecatedStudioTextRulePattern, DiagnosticCodes.MismatchedSpecificationQueryResult, DiagnosticCodes.DirectionlessTranslationReactsToOwnCapture, DiagnosticCodes.CaptureEventsFromSeveralOrigins, DiagnosticCodes.CaptureEventsKeyNotRequired, DiagnosticCodes.CaptureEventsRecordFixture, DiagnosticCodes.EventIdPinNotCarriedToRenderers, DiagnosticCodes.ResponseNameUsedOnFailure, DiagnosticCodes.InvalidEventDeclaration, DiagnosticCodes.InvalidImportDeclaration, DiagnosticCodes.InvalidSliceDeclaration, DiagnosticCodes.InvalidDescription, DiagnosticCodes.DuplicateDescription, DiagnosticCodes.EmptyDescription, DiagnosticCodes.DuplicateEventSubject, DiagnosticCodes.InvalidSubjectType, DiagnosticCodes.ProtectedSubjectType, DiagnosticCodes.InvalidSubjectOwner, DiagnosticCodes.ReadModelSubjectNotSupported, DiagnosticCodes.InvalidSubjectModifierOrder, DiagnosticCodes.UnsupportedInteractionAlternatives, DiagnosticCodes.MixedInteractionAlternatives, DiagnosticCodes.InteractionAlternativeWithoutActions, DiagnosticCodes.InlineInteractionAlternative, DiagnosticCodes.LegacyInteractionWhere, DiagnosticCodes.InvalidSpecificationParameter, DiagnosticCodes.InvalidSpecificationCase, DiagnosticCodes.DuplicateSpecificationParameter, DiagnosticCodes.DuplicateSpecificationCase, DiagnosticCodes.IncompleteSpecificationTable, DiagnosticCodes.InvalidSpecificationCaseAssignment, DiagnosticCodes.InvalidSpecificationCaseValue, DiagnosticCodes.InvalidSpecificationCaseReference, DiagnosticCodes.OptionalSpecificationParameterTarget, DiagnosticCodes.SpecificationCaseNameCollision, DiagnosticCodes.IncompatibleSpecificationParameterType, DiagnosticCodes.UnusedSpecificationParameter, DiagnosticCodes.SingularSpecificationTableExpansion, DiagnosticCodes.InvalidSpecificationCallerPersona, DiagnosticCodes.UnsynthesizablePersonaCaller, DiagnosticCodes.PersonaWithoutGate, DiagnosticCodes.GateWithoutPersona, DiagnosticCodes.AmbiguousPersonaCaller, DiagnosticCodes.InvalidDocumentation, DiagnosticCodes.ConflictingDocumentationAcrossFiles, DiagnosticCodes.InvalidAbsentReadModelStep, DiagnosticCodes.UnknownConstraintProperty, DiagnosticCodes.OmittedProductionDestination, DiagnosticCodes.InvalidSpecificationExample, DiagnosticCodes.DuplicateSpecificationAssignment, DiagnosticCodes.InvalidReactionBatchesDeclaration, DiagnosticCodes.DescribedCommandNotImplemented, DiagnosticCodes.DescribedCommandWithoutProductions, DiagnosticCodes.DescribedCommandCardinalityNotAdmitted, DiagnosticCodes.CommandHandlerRequiresAttachment, DiagnosticCodes.PendingIntentWithOtherHandler, DiagnosticCodes.DuplicateEventInProjectionScope, DiagnosticCodes.ReservedStoredName]);\n const complianceCodes = new Set<string>([DiagnosticCodes.InvalidPurposeDeclaration, DiagnosticCodes.InvalidPurposeVocabulary, DiagnosticCodes.DuplicatePurposeField, DiagnosticCodes.DuplicatePurposeDeclaration, DiagnosticCodes.UnknownPurpose, DiagnosticCodes.PurposeInterestMismatch, DiagnosticCodes.PersonalDataWithoutPurpose, DiagnosticCodes.SpecialDataWithoutCondition, DiagnosticCodes.CriminalDataWithoutAuthorization, DiagnosticCodes.PurposeWithoutBasis, DiagnosticCodes.UnusedPurpose, DiagnosticCodes.UnknownConceptDirective, DiagnosticCodes.AttributeReasonWithoutAttribute, DiagnosticCodes.DuplicateAttributeReason, DiagnosticCodes.LegacyComplianceMarker, DiagnosticCodes.DuplicateComplianceMarker, DiagnosticCodes.UnknownComplianceMarker, DiagnosticCodes.InvalidSecretScope, DiagnosticCodes.DuplicateSecretScope, DiagnosticCodes.SecretScopeIgnoredForPii, DiagnosticCodes.InvalidPersonalDataQualifier, DiagnosticCodes.DuplicateSpecialCategory]);\n const compilerUnknownEventLines = new Set<number>();\n for (const diagnostic of context.compilerDiagnostics ?? analysis.diagnostics) {\n const identityType = diagnostic.code === DiagnosticCodes.UnknownType && (analysis.identityDetails ?? []).some(detail => detail.line === diagnostic.location.line - 1);\n const identityDuplicate = diagnostic.code === DiagnosticCodes.RepeatedSingularDeclarationAcrossFiles && diagnostic.message.includes('identity block');\n if (!identityType && !identityDuplicate && !generationCodes.has(diagnostic.code) && !enumerationCodes.has(diagnostic.code) && !complianceCodes.has(diagnostic.code) && !optionalCodes.has(diagnostic.code) && !policyCodes.has(diagnostic.code) && !consistencyCodes.has(diagnostic.code) && !timelineCodes.has(diagnostic.code) && !dependencyCodes.has(diagnostic.code) && !authoringCodes.has(diagnostic.code) && diagnostic.code !== DiagnosticCodes.ReducerIdentityMismatch && diagnostic.code !== DiagnosticCodes.InvalidSpecificationExampleBody && diagnostic.code !== DiagnosticCodes.UnknownRuleImplementationDirective && diagnostic.code !== DiagnosticCodes.InvalidValidationRule && diagnostic.code !== DiagnosticCodes.RepeatedDeclarationAcrossFiles && !/^PLAY049[0-9]$|^PLAY050[0-7]$|^PLAY054[7-9]$|^PLAY055[01]$|^PLAY048[2-9]$|^PLAY004[56]$|^PLAY053[0-9]$|^PLAY054[0-6]$|^PLAY034[1-8]$|^PLAY0557$|^PLAY060[7-9]$|^PLAY061[0-9]$|^PLAY0620$|^PLAY062[1-9]$|^PLAY063[0-9]$|^PLAY064[0-9]$|^PLAY065[0-2]$|^PLAY065[4-6]$|^PLAY066[0-6]$|^PLAY072[0-2]$/.test(diagnostic.code)) continue;\n const line = diagnostic.location.line - 1;\n if (diagnostic.code === DiagnosticCodes.OmittedProductionDestination && issues.some(existing => existing.code === diagnostic.code && existing.line === line)) continue;\n if (diagnostic.code === DiagnosticCodes.UnknownEvent) {\n if (compilerUnknownEventLines.has(line)) continue;\n compilerUnknownEventLines.add(line);\n }\n const length = legacyOptionalTypeLength(lines[line], diagnostic) || lines[line].length - diagnostic.location.column + 1;\n issues.push(issue(diagnostic.severity, line, diagnostic.location.column, length, diagnostic.message, diagnostic.code as DiagnosticCode));\n }\n\n const checkEvent = (line: number, text: string, name: string) => {\n if (!events.has(name) && !compilerUnknownEventLines.has(line)) {\n issues.push(\n tokenIssue(\n 'warning',\n line,\n text,\n name,\n `Unknown event type '${name}' — declare it in a slice or import it.`,\n diagnosticCodes.unknownEvent,\n ),\n );\n }\n };\n\n let authorizeIndent = -1;\n\n for (let index = 0; index < lines.length; index++) {\n const line = lines[index];\n const trimmed = line.trim();\n\n if (fences[index] || trimmed.length === 0) continue;\n\n const leading = line.match(/^[ ]*(\\t+)/);\n if (leading) {\n issues.push(\n issue(\n 'warning',\n index,\n leading[0].length - leading[1].length + 1,\n leading[1].length,\n 'Screenplay is indentation-based — use spaces, not tabs.',\n diagnosticCodes.tabIndentation,\n ),\n );\n }\n\n // Policy references continue on indented lines below an authorize clause.\n if (authorizeIndent >= 0) {\n if (\n indentOf(line) > authorizeIndent &&\n /^(?:or\\s+)?[A-Z]\\w*(?:\\s+or\\s+[A-Z]\\w*)*$/.test(trimmed)\n ) {\n for (const name of trimmed.split(/\\s+/).filter((token) => token !== 'or')) {\n if (!policies.has(name)) {\n issues.push(\n tokenIssue(\n 'warning',\n index,\n line,\n name,\n `Unknown policy '${name}' — declare it with 'policy ${name}'.`,\n diagnosticCodes.unknownPolicy,\n ),\n );\n }\n }\n continue;\n }\n authorizeIndent = -1;\n }\n\n const fileImportIssue = validateImport(lines, fences, index);\n if (fileImportIssue) issues.push(fileImportIssue);\n\n const slice = trimmed.match(/^slice\\s+(\\w+)/);\n if (slice && !sliceTypes.includes(slice[1])) {\n issues.push(\n tokenIssue(\n 'error',\n index,\n line,\n slice[1],\n `Unknown slice type '${slice[1]}' — expected ${sliceTypes.join(', ')}.`,\n diagnosticCodes.unknownSliceType,\n ),\n );\n }\n\n const concept = trimmed.match(/^concept\\s+\\w+\\s*:\\s*(\\w+)/);\n if (concept && concept[1] !== 'Enum' && !primitiveTypes.includes(concept[1])) {\n issues.push(\n tokenIssue(\n 'error',\n index,\n line,\n concept[1],\n `Unknown primitive type '${concept[1]}' — expected ${primitiveTypes.join(', ')} or Enum.`,\n diagnosticCodes.unknownPrimitiveType,\n ),\n );\n }\n\n const authorize = trimmed.match(/^authorize\\s+(.*)$/);\n if (authorize) {\n authorizeIndent = indentOf(line);\n for (const name of authorize[1].split(/\\s+/).filter((token) => token !== 'or' && token.length > 0)) {\n if (!policies.has(name)) {\n issues.push(\n tokenIssue(\n 'warning',\n index,\n line,\n name,\n `Unknown policy '${name}' — declare it with 'policy ${name}'.`,\n diagnosticCodes.unknownPolicy,\n ),\n );\n }\n }\n }\n\n const reactsOn = trimmed.match(/^on\\s+([A-Z]\\w*)\\s*$/);\n if (reactsOn) checkEvent(index, line, reactsOn[1]);\n\n const produces = trimmed.match(/^produces\\s+([A-Z]\\w*)\\s*$/);\n if (produces && !analysis.operationProductionLines?.has(index)) checkEvent(index, line, produces[1]);\n\n if (/^produces\\s+when\\b/.test(trimmed) && !analysis.operationProductionLines?.has(index)) {\n for (let next = index + 1; next < lines.length; next++) {\n const candidate = lines[next];\n if (fences[next] || candidate.trim().length === 0) continue;\n if (indentOf(candidate) > indentOf(line)) {\n const name = candidate.trim().match(/^([A-Z]\\w*)\\s*$/);\n if (name) checkEvent(next, candidate, name[1]);\n }\n break;\n }\n }\n\n const uniqueEvent = trimmed.match(/^unique\\s+event\\s+([A-Z]\\w*)/);\n if (uniqueEvent) checkEvent(index, line, uniqueEvent[1]);\n\n const uniqueProperty = trimmed.match(/^unique\\s+[a-z_]\\w*\\s+on\\s+([A-Z]\\w*)/);\n if (uniqueProperty) checkEvent(index, line, uniqueProperty[1]);\n\n // Every $identity. path must name a member of the caller; anything after 'claims.' is a claim name.\n // A bare $identity is left to the compilers, which see it only where an expression is expected.\n for (const path of line.match(/\\$identity\\.[\\w.]+/g) ?? []) {\n const member = path.substring('$identity.'.length).split('.')[0];\n const knownIdentity = [...identityProperties, ...(analysis.identityDetails ?? []).map(detail => detail.name)];\n if (!knownIdentity.includes(member)) {\n issues.push(tokenIssue('warning', index, line, path,\n `Unknown $identity property '${member}' — expected ${knownIdentity.join(', ')}.`,\n diagnosticCodes.unknownContextIdentityProperty));\n }\n }\n\n // Every $context. path must name something CommandContext or QueryContext carries.\n for (const path of line.match(/\\$context\\.[\\w.]+/g) ?? []) {\n const segments = path.substring('$context.'.length).split('.');\n if (!contextRoots.includes(segments[0])) {\n issues.push(\n tokenIssue(\n 'warning',\n index,\n line,\n path,\n `Unknown $context path '${segments.join('.')}' — expected one of ${contextRoots.join(', ')}.`,\n diagnosticCodes.unknownContextPath,\n ),\n );\n } else if (\n segments[0] === 'causedBy' &&\n segments.length > 1 &&\n !causedByProperties.includes(segments[1])\n ) {\n issues.push(\n tokenIssue(\n 'warning',\n index,\n line,\n path,\n `Unknown $context.causedBy property '${segments[1]}' — expected ${causedByProperties.join(', ')}.`,\n diagnosticCodes.unknownContextCausedByProperty,\n ),\n );\n } else if (\n segments[0] === 'identity' &&\n segments.length > 1 &&\n !identityProperties.includes(segments[1])\n ) {\n issues.push(\n tokenIssue(\n 'warning',\n index,\n line,\n path,\n `Unknown $context.identity property '${segments[1]}' — expected ${identityProperties.join(', ')}.`,\n diagnosticCodes.unknownContextIdentityProperty,\n ),\n );\n }\n }\n }\n\n issues.push(...validateEventContextPaths(lines, fences));\n issues.push(...validateInlineEvents(lines, symbols, application, analysis.operationProductionLines));\n\n const fenceLines = lines\n .map((line, index) => ({ line, index }))\n .filter(({ line }) => /^\\s*```(?:[a-z]+)?\\s*$/.test(line));\n if (fenceLines.length % 2 === 1) {\n const last = fenceLines[fenceLines.length - 1];\n issues.push(\n issue(\n 'error',\n last.index,\n 1,\n last.line.length + 1,\n 'Unclosed inline code block — expected a closing ``` line.',\n diagnosticCodes.unclosedCodeBlock,\n ),\n );\n }\n\n return issues;\n}\n\n// This is advice, not a semantic default: accepting the typed workspace repair changes routing.\nfunction validateProductionDestinations(lines: string[], symbols: DocumentSymbols): ValidationIssue[] {\n const issues: ValidationIssue[] = [];\n lines = eventAnalysisSource(lines);\n for (const command of symbols.commands) {\n const identifiers = command.properties.filter(property => property.isIdentifier && !propertyTypeReference(property).isOptional && !propertyTypeReference(property).isCollection);\n if (identifiers.length !== 1) continue;\n for (const production of command.produces ?? []) {\n if (production.inline || production.conditional || production.target !== undefined) continue;\n const line = production.line;\n issues.push(issue('information', line, indentOf(lines[line]) + 1, lines[line].trim().length,\n `Plain 'produces ${production.name}' omits its destination — use 'for ${identifiers[0].name}' to explicitly select the command's identifier.`,\n diagnosticCodes.omittedProductionDestination));\n }\n }\n return issues;\n}\n\n// Inside a module or feature an import names files, and a quoted import anywhere has the compiler's shape.\nfunction validateImport(lines: string[], fences: boolean[], index: number): ValidationIssue | undefined {\n const line = lines[index];\n const trimmed = line.trim().replace(/\\s*\\/\\/.*$/, '');\n if (!/^import\\b/.test(trimmed) || fileImportOn(line, index)) return undefined;\n const indent = indentOf(line);\n const inBody = indent > 0 && ['module', 'feature'].includes(enclosingChain(lines, fences, index, indent)[0]);\n if (!inBody && !isFileImportLine(line)) return undefined;\n return issue(\n 'error',\n index,\n indent + 1,\n trimmed.length,\n `Invalid import '${trimmed}' — inside a module or feature, import names files: 'import \"<path or glob>\"'.`,\n diagnosticCodes.invalidFileImport,\n );\n}\n\n// A mapping target: the first word of a mapping line, after the keyword that opens it if there is one.\nconst mappingTarget = /^(?:(?:increment|decrement|count|clear|add|subtract|set)\\s+)?@?([$\\w.]+)(?=\\s|=|$)/;\n\n// Every $eventContext.<path> - in an expression or as the dynamic key of a mapping target - checked against the\n// event-context catalog the way the compiler checks it (Parsing/EventContextPathValidator.cs).\nexport function validateEventContextPaths(lines: string[], fences: boolean[]): ValidationIssue[] {\n const issues: ValidationIssue[] = [];\n const names = (members: readonly { name: string }[]) => members.map((member) => member.name).join(', ');\n\n for (let index = 0; index < lines.length; index++) {\n const line = lines[index];\n if (fences[index]) continue;\n\n for (const match of line.matchAll(/(\\.)?\\$eventContext((?:\\.(?:\\w+(?:\\(\\))?)?)*)/g)) {\n const token = match[0].substring(match[1]?.length ?? 0);\n const written = match[2];\n if (written.length === 0) {\n // A bare $eventContext names nothing only as a dynamic key; in an expression the compiler rejects it as invalid.\n if (match[1]) {\n issues.push(issue('error', index, (match.index ?? 0) + 2, token.length, `'$eventContext' names no member - expected one of ${names(resolveEventContextPath('').expected)}.`, diagnosticCodes.missingEventContextPath));\n }\n continue;\n }\n\n const path = written.substring(1);\n const resolution = resolveEventContextPath(path);\n const column = (match.index ?? 0) + (match[1]?.length ?? 0) + 1;\n switch (resolution.status) {\n case 'missing':\n issues.push(issue('error', index, column, token.length, `'$eventContext.${path}' names no member - expected one of ${names(resolution.expected)}.`, diagnosticCodes.missingEventContextPath));\n break;\n case 'unknownMember':\n issues.push(issue('warning', index, column, token.length, `Unknown event context member '${resolution.segment}' in '$eventContext.${path}' - expected one of ${names(resolution.expected)}.`, diagnosticCodes.unknownEventContextMember));\n break;\n case 'unknownSubPath': {\n const has = resolution.expected.length === 0 ? 'no members to address' : `members ${names(resolution.expected)}`;\n issues.push(issue('warning', index, column, token.length, `Unknown event context path '$eventContext.${path}' - '${resolution.member?.name}' (${resolution.member?.type}) has ${has}.`, diagnosticCodes.unknownEventContextPath));\n break;\n }\n case 'belowCollection':\n issues.push(issue('error', index, column, token.length, `'$eventContext.${path}' cannot resolve - '${resolution.member?.name}' is a collection (${resolution.member?.type}) and cannot be addressed below.`, diagnosticCodes.eventContextPathBelowCollection));\n break;\n }\n }\n\n // Only $eventContext resolves in a dynamic key; any other $ source is kept as the literal key text.\n const target = line.trim().match(mappingTarget)?.[1];\n const source = target?.match(/\\.\\$(\\w+)/)?.[1];\n if (target && source && source !== 'eventContext') {\n issues.push(tokenIssue('warning', index, line, target, `Dynamic dictionary key '$${source}' in '${target}' is never resolved - only '$eventContext.<path>' is, so the literal text '$${source}' becomes the key.`, diagnosticCodes.unresolvedDynamicKeySource));\n }\n }\n\n return issues;\n}\n"],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export declare const diagnosticCodes: {
|
|
|
8
8
|
readonly pendingIntentWithOtherHandler: "PLAY0698";
|
|
9
9
|
readonly commandHandlerRequiresAttachment: "PLAY0800";
|
|
10
10
|
readonly duplicateEventInProjectionScope: "PLAY0801";
|
|
11
|
+
readonly reservedStoredName: "PLAY0802";
|
|
11
12
|
readonly describedCommandNotImplemented: "PLAY0695";
|
|
12
13
|
readonly describedCommandWithoutProductions: "PLAY0696";
|
|
13
14
|
readonly describedCommandCardinalityNotAdmitted: "PLAY0697";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic-codes.d.ts","sourceRoot":"","sources":["../diagnostic-codes.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"diagnostic-codes.d.ts","sourceRoot":"","sources":["../diagnostic-codes.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoQlB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC"}
|
package/package.json
CHANGED