UNPKG

botbuilder-dialogs-adaptive

Version:

Rule system for the Microsoft BotBuilder dialog system.

162 lines • 13.5 kB
"use strict"; // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. Object.defineProperty(exports, "__esModule", { value: true }); exports.AdaptiveBotComponent = void 0; const adaptiveDialog_1 = require("./adaptiveDialog"); const botbuilder_1 = require("botbuilder"); const selectors_1 = require("./selectors"); const dynamicBeginDialogDeserializer_1 = require("./dynamicBeginDialogDeserializer"); const adaptive_expressions_1 = require("adaptive-expressions"); const functions_1 = require("./functions"); const generators_1 = require("./generators"); const actions_1 = require("./actions"); const conditions_1 = require("./conditions"); const input_1 = require("./input"); const recognizers_1 = require("./recognizers"); /** * [BotComponent](xref:botbuilder-core.BotComponent) for adaptive components. */ class AdaptiveBotComponent extends botbuilder_1.BotComponent { /** * @param services Services Collection to register. * @param _configuration Configuration for the bot component. */ configureServices(services, _configuration) { adaptive_expressions_1.Expression.functions.add(functions_1.IsDialogActiveFunction.functionName, new functions_1.IsDialogActiveFunction()); adaptive_expressions_1.Expression.functions.add(functions_1.IsDialogActiveFunction.functionAlias, new functions_1.IsDialogActiveFunction()); adaptive_expressions_1.Expression.functions.add(functions_1.HasPendingActionsFunction.functionName, new functions_1.HasPendingActionsFunction()); services.composeFactory('declarativeTypes', (declarativeTypes) => declarativeTypes.concat({ getDeclarativeTypes() { return [ // Adaptive Dialog { kind: adaptiveDialog_1.AdaptiveDialog.$kind, type: adaptiveDialog_1.AdaptiveDialog }, // Actions { kind: actions_1.BeginDialog.$kind, type: actions_1.BeginDialog }, { kind: actions_1.BeginSkill.$kind, type: actions_1.BeginSkill }, { kind: actions_1.BreakLoop.$kind, type: actions_1.BreakLoop }, { kind: actions_1.CancelAllDialogs.$kind, type: actions_1.CancelAllDialogs }, { kind: actions_1.CancelDialog.$kind, type: actions_1.CancelDialog }, { kind: actions_1.ContinueConversation.$kind, type: actions_1.ContinueConversation }, { kind: actions_1.ContinueConversationLater.$kind, type: actions_1.ContinueConversation }, { kind: actions_1.ContinueLoop.$kind, type: actions_1.ContinueLoop }, { kind: actions_1.DeleteActivity.$kind, type: actions_1.DeleteActivity }, { kind: actions_1.DeleteProperties.$kind, type: actions_1.DeleteProperties }, { kind: actions_1.DeleteProperty.$kind, type: actions_1.DeleteProperty }, { kind: actions_1.EditActions.$kind, type: actions_1.EditActions }, { kind: actions_1.EditArray.$kind, type: actions_1.EditArray }, { kind: actions_1.EmitEvent.$kind, type: actions_1.EmitEvent }, { kind: actions_1.EndDialog.$kind, type: actions_1.EndDialog }, { kind: actions_1.EndTurn.$kind, type: actions_1.EndTurn }, { kind: actions_1.ForEach.$kind, type: actions_1.ForEach }, { kind: actions_1.ForEachPage.$kind, type: actions_1.ForEachPage }, { kind: actions_1.GetActivityMembers.$kind, type: actions_1.GetActivityMembers }, { kind: actions_1.GetConversationMembers.$kind, type: actions_1.GetConversationMembers }, { kind: actions_1.GetConversationReference.$kind, type: actions_1.GetConversationReference }, { kind: actions_1.GotoAction.$kind, type: actions_1.GotoAction }, { kind: actions_1.HttpRequest.$kind, type: actions_1.HttpRequest }, { kind: actions_1.IfCondition.$kind, type: actions_1.IfCondition }, { kind: actions_1.LogAction.$kind, type: actions_1.LogAction }, { kind: actions_1.RepeatDialog.$kind, type: actions_1.RepeatDialog }, { kind: actions_1.ReplaceDialog.$kind, type: actions_1.ReplaceDialog }, { kind: actions_1.SendActivity.$kind, type: actions_1.SendActivity }, { kind: actions_1.SendHandoffActivity.$kind, type: actions_1.SendHandoffActivity }, { kind: actions_1.SetProperties.$kind, type: actions_1.SetProperties }, { kind: actions_1.SetProperty.$kind, type: actions_1.SetProperty }, { kind: actions_1.SignOutUser.$kind, type: actions_1.SignOutUser }, { kind: actions_1.SwitchCondition.$kind, type: actions_1.SwitchCondition }, { kind: actions_1.TelemetryTrackEventAction.$kind, type: actions_1.TelemetryTrackEventAction }, { kind: actions_1.ThrowException.$kind, type: actions_1.ThrowException }, { kind: actions_1.TraceActivity.$kind, type: actions_1.TraceActivity }, { kind: actions_1.UpdateActivity.$kind, type: actions_1.UpdateActivity }, // Trigger conditions { kind: conditions_1.OnActivity.$kind, type: conditions_1.OnActivity }, { kind: conditions_1.OnAssignEntity.$kind, type: conditions_1.OnAssignEntity }, { kind: conditions_1.OnBeginDialog.$kind, type: conditions_1.OnBeginDialog }, { kind: conditions_1.OnCancelDialog.$kind, type: conditions_1.OnCancelDialog }, { kind: conditions_1.OnChooseEntity.$kind, type: conditions_1.OnChooseEntity }, { kind: conditions_1.OnChooseIntent.$kind, type: conditions_1.OnChooseIntent }, { kind: conditions_1.OnChooseProperty.$kind, type: conditions_1.OnChooseProperty }, { kind: conditions_1.OnCommandActivity.$kind, type: conditions_1.OnCommandActivity }, { kind: conditions_1.OnCommandResultActivity.$kind, type: conditions_1.OnCommandResultActivity }, { kind: conditions_1.OnCondition.$kind, type: conditions_1.OnCondition }, { kind: conditions_1.OnContinueConversation.$kind, type: conditions_1.OnContinueConversation }, { kind: conditions_1.OnConversationUpdateActivity.$kind, type: conditions_1.OnConversationUpdateActivity }, { kind: conditions_1.OnDialogEvent.$kind, type: conditions_1.OnDialogEvent }, { kind: conditions_1.OnEndOfActions.$kind, type: conditions_1.OnEndOfActions }, { kind: conditions_1.OnEndOfConversationActivity.$kind, type: conditions_1.OnEndOfConversationActivity }, { kind: conditions_1.OnError.$kind, type: conditions_1.OnError }, { kind: conditions_1.OnEventActivity.$kind, type: conditions_1.OnEventActivity }, { kind: conditions_1.OnHandoffActivity.$kind, type: conditions_1.OnHandoffActivity }, { kind: conditions_1.OnInstallationUpdateActivity.$kind, type: conditions_1.OnInstallationUpdateActivity }, { kind: conditions_1.OnIntent.$kind, type: conditions_1.OnIntent }, { kind: conditions_1.OnInvokeActivity.$kind, type: conditions_1.OnInvokeActivity }, { kind: conditions_1.OnMessageActivity.$kind, type: conditions_1.OnMessageActivity }, { kind: conditions_1.OnMessageDeleteActivity.$kind, type: conditions_1.OnMessageDeleteActivity }, { kind: conditions_1.OnMessageReactionActivity.$kind, type: conditions_1.OnMessageReactionActivity }, { kind: conditions_1.OnMessageUpdateActivity.$kind, type: conditions_1.OnMessageUpdateActivity }, { kind: conditions_1.OnQnAMatch.$kind, type: conditions_1.OnQnAMatch }, { kind: conditions_1.OnRepromptDialog.$kind, type: conditions_1.OnRepromptDialog }, { kind: conditions_1.OnTypingActivity.$kind, type: conditions_1.OnTypingActivity }, { kind: conditions_1.OnUnknownIntent.$kind, type: conditions_1.OnUnknownIntent }, // Inputs { kind: input_1.Ask.$kind, type: input_1.Ask }, { kind: input_1.AttachmentInput.$kind, type: input_1.AttachmentInput }, { kind: input_1.ChoiceInput.$kind, type: input_1.ChoiceInput }, { kind: input_1.ConfirmInput.$kind, type: input_1.ConfirmInput }, { kind: input_1.DateTimeInput.$kind, type: input_1.DateTimeInput }, { kind: input_1.NumberInput.$kind, type: input_1.NumberInput }, { kind: input_1.OAuthInput.$kind, type: input_1.OAuthInput }, { kind: input_1.TextInput.$kind, type: input_1.TextInput }, // Recognizers { kind: recognizers_1.CrossTrainedRecognizerSet.$kind, type: recognizers_1.CrossTrainedRecognizerSet }, { kind: recognizers_1.MultiLanguageRecognizer.$kind, type: recognizers_1.MultiLanguageRecognizer }, { kind: recognizers_1.RecognizerSet.$kind, type: recognizers_1.RecognizerSet }, { kind: recognizers_1.RegexRecognizer.$kind, type: recognizers_1.RegexRecognizer }, { kind: recognizers_1.AgeEntityRecognizer.$kind, type: recognizers_1.AgeEntityRecognizer }, { kind: recognizers_1.ChannelMentionEntityRecognizer.$kind, type: recognizers_1.ChannelMentionEntityRecognizer }, { kind: recognizers_1.ConfirmationEntityRecognizer.$kind, type: recognizers_1.ConfirmationEntityRecognizer }, { kind: recognizers_1.CurrencyEntityRecognizer.$kind, type: recognizers_1.CurrencyEntityRecognizer }, { kind: recognizers_1.DateTimeEntityRecognizer.$kind, type: recognizers_1.DateTimeEntityRecognizer }, { kind: recognizers_1.DimensionEntityRecognizer.$kind, type: recognizers_1.DimensionEntityRecognizer }, { kind: recognizers_1.EmailEntityRecognizer.$kind, type: recognizers_1.EmailEntityRecognizer }, { kind: recognizers_1.EntityRecognizerSet.$kind, type: recognizers_1.EntityRecognizerSet }, { kind: recognizers_1.GuidEntityRecognizer.$kind, type: recognizers_1.GuidEntityRecognizer }, { kind: recognizers_1.HashtagEntityRecognizer.$kind, type: recognizers_1.HashtagEntityRecognizer }, { kind: recognizers_1.IpEntityRecognizer.$kind, type: recognizers_1.IpEntityRecognizer }, { kind: recognizers_1.MentionEntityRecognizer.$kind, type: recognizers_1.MentionEntityRecognizer }, { kind: recognizers_1.NumberEntityRecognizer.$kind, type: recognizers_1.NumberEntityRecognizer }, { kind: recognizers_1.OrdinalEntityRecognizer.$kind, type: recognizers_1.OrdinalEntityRecognizer }, { kind: recognizers_1.PercentageEntityRecognizer.$kind, type: recognizers_1.PercentageEntityRecognizer }, { kind: recognizers_1.PhoneNumberEntityRecognizer.$kind, type: recognizers_1.PhoneNumberEntityRecognizer }, { kind: recognizers_1.RegexEntityRecognizer.$kind, type: recognizers_1.RegexEntityRecognizer }, { kind: recognizers_1.TemperatureEntityRecognizer.$kind, type: recognizers_1.TemperatureEntityRecognizer }, { kind: recognizers_1.UrlEntityRecognizer.$kind, type: recognizers_1.UrlEntityRecognizer }, // Generators { kind: generators_1.TemplateEngineLanguageGenerator.$kind, type: generators_1.TemplateEngineLanguageGenerator }, { kind: generators_1.ResourceMultiLanguageGenerator.$kind, type: generators_1.ResourceMultiLanguageGenerator }, // Selectors { kind: selectors_1.ConditionalSelector.$kind, type: selectors_1.ConditionalSelector }, { kind: selectors_1.FirstSelector.$kind, type: selectors_1.FirstSelector }, { kind: selectors_1.RandomSelector.$kind, type: selectors_1.RandomSelector }, { kind: selectors_1.TrueSelector.$kind, type: selectors_1.TrueSelector }, { kind: selectors_1.MostSpecificSelector.$kind, type: selectors_1.MostSpecificSelector }, ]; }, }, { getDeclarativeTypes(resourceExplorer) { return resourceExplorer .getResources('.schema') .map((schema) => schema.id.replace(/.schema$/, '')) .filter((resourceId) => resourceId.endsWith('.dialog')) .map((resourceId) => ({ kind: resourceId, type: actions_1.DynamicBeginDialog, loader: new dynamicBeginDialogDeserializer_1.DynamicBeginDialogDeserializer(resourceExplorer, resourceId), })); }, })); } } exports.AdaptiveBotComponent = AdaptiveBotComponent; //# sourceMappingURL=adaptiveBotComponent.js.map