Socket
Socket
Sign inDemoInstall

@salutejs/scenario

Package Overview
Dependencies
Maintainers
3
Versions
244
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@salutejs/scenario - npm Package Compare versions

Comparing version 0.12.0 to 0.13.0-canary.204.aa3658cca12d56aaed31f5227bc270f7ed72a1f4.0

8

dist/lib/matchers.d.ts

@@ -9,3 +9,5 @@ import { IntentsDict, SaluteRequest } from './types/salute';

}) => (req: R) => boolean;
text: (expected: string | RegExp) => (req: R) => boolean;
text: (expected: string, { normalized }?: {
normalized: boolean;
}) => (req: R) => boolean;
state: (expected: Partial<R['state']>) => (req: R) => any;

@@ -31,4 +33,6 @@ selectItem: (expected: AppState) => (req: R) => {

action: (expected: string) => (req: R) => boolean;
regexp: (re: RegExp) => (req: R) => boolean;
regexp: (re: RegExp, { normalized }?: {
normalized: boolean;
}) => (req: R) => boolean;
};
//# sourceMappingURL=matchers.d.ts.map

@@ -41,10 +41,10 @@ "use strict";

};
var text = function (expected) { return function (req) {
var actual = req.message.original_text;
if (expected instanceof RegExp) {
if (typeof actual === 'string')
return expected.test(actual);
}
return expected === actual;
}; };
var text = function (expected, _a) {
var _b = _a === void 0 ? { normalized: false } : _a, _c = _b.normalized, normalized = _c === void 0 ? false : _c;
return function (req) {
var _a, _b;
var testText = normalized ? (_a = req.message) === null || _a === void 0 ? void 0 : _a.human_normalized_text : (_b = req.message) === null || _b === void 0 ? void 0 : _b.original_text;
return expected === testText;
};
};
var state = function (expected) { return function (req) { return exports.compare(expected, req.state); }; };

@@ -58,13 +58,17 @@ var action = function (expected) { return function (req) { var _a; return ((_a = req.serverAction) === null || _a === void 0 ? void 0 : _a.type) === expected; }; };

}; };
var regexp = function (re) { return function (req) {
var _a;
var result = re.exec((_a = req.message) === null || _a === void 0 ? void 0 : _a.human_normalized_text);
if (result === null) {
return false;
}
if (result.groups) {
Object.assign(req.variables, result.groups);
}
return true;
}; };
var regexp = function (re, _a) {
var _b = _a === void 0 ? { normalized: true } : _a, _c = _b.normalized, normalized = _c === void 0 ? true : _c;
return function (req) {
var _a, _b;
var testText = normalized ? (_a = req.message) === null || _a === void 0 ? void 0 : _a.human_normalized_text : (_b = req.message) === null || _b === void 0 ? void 0 : _b.original_text;
var result = re.exec(testText);
if (result === null) {
return false;
}
if (result.groups) {
Object.assign(req.variables, result.groups);
}
return true;
};
};
var match = function () {

@@ -71,0 +75,0 @@ var matchers = [];

{
"name": "@salutejs/scenario",
"version": "0.12.0",
"version": "0.13.0-canary.204.aa3658cca12d56aaed31f5227bc270f7ed72a1f4.0",
"description": "Tiny helpers to make scenario for Salute family",

@@ -39,3 +39,3 @@ "author": "SberDevices Frontend Team <sberdevices.frontend@gmail.com>",

},
"gitHead": "783af7a3c2a8a5af1d9acd5f0c9203a1bfca18c6"
"gitHead": "aa3658cca12d56aaed31f5227bc270f7ed72a1f4"
}

@@ -64,3 +64,27 @@ # @salutejs/scenario

// NB: Указание типа запроса и словаря интентов добавляет интерактивный автокомплишен
const { match, intent, text, action, state, selectItem } = createMatchers<SaluteRequest, typeof intents>();
const {
// Аналог функции pipe, позволяет последовательно применить несколько matcher'ов
match,
// Матчит на intent. Вторым аргументом принимает параметры.
// Пример: intent('Название интента', { confidence: 0.7 });
// Параметр confidence – пороговое значение вероятности, ниже которой интент не будет сматчен
intent,
// Матчит на распознанный текст. Вторым аргументом принимает параметры.
// Пример: text('Название интента', { normalized: true });
// Параметр normalized – указывает на то, с каким текстом нужно сравнивать, если параметр выставлен true,
// сравнение будет происходить с human_normalized_text. Defaults to false.
text,
// Матчит на название сервер экшена.
action,
// Производит глубое частичное сравнение на переданный state .
// Пример state({ screen: 'Screen1' }) сматчится со state'ом { screen: 'Screen1', otherParams: 123 }
state,
// Матчит на распознанный текст c помощью RegExp. Вторым аргументом принимает параметры.
// Пример: regexp(/^(записать|напомнить|добавить запись) (?<note>.+)$/i, { normalized: false });
// Параметр normalized – указывает на то, с каким текстом нужно сравнивать, если параметр выставлен true,
// сравнение будет происходить с human_normalized_text. Defaults to true;
// Если в регулярном выражении есть Named Capture Groups, значения этих групп подставится в req.variables.
// В примере выше если регулярное выражение сматчилось, то в req.variables.note попадет значение.
regexp
} = createMatchers<SaluteRequest, typeof intents>();
// Матчеры собираются в композицию функцией match

@@ -67,0 +91,0 @@

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc