Releases: aichaos/rivescript-js
Releases · aichaos/rivescript-js
1.15.0 - August 7 2016
Changes
- 1.15.0 2016-08-07
- Add a new contructor option,
forceCase
, which will force-lowercase your
triggers during parse time, enabling authors to use uppercase letters in
triggers without it being a syntax error. Do note however that Unicode
case folding can become an issue with certain symbols. (Bugs #143 and #69). - Fix a bug where inline redirects, like
{@ hello}
would fail to match their
trigger due to the presence of a space between the@
and text (bug #145). - Add a non-fatal warning at parse time if it's detected that you used an
@Redirect
command in conjunction with a-Reply
or*Condition
. In such
cases, the redirect "wins" and preempts the others, which may be surprising
behavior, and RiveScript will warn you about this now (bug #58). - Prevent errors from arising when the user's history object is invalid, for
example if somebody manually overrode the__history__
user
variable (PR #151). - Fix a bug in the
write()
function where-Replies
were being written when
a trigger actually had no reply (resulting in a single-character-
command which raises an error when re-parsed) (PR #141). - Add more documentation to the
rs.Promise
function, including a full
example of how to use thereplyAsync()
method (bug #144).
- Add a new contructor option,
1.14.0 - July 9 2016
Changes
- 1.14.0 2016-07-09
- Add a new API function:
getUserTopicTriggers
returns a list of triggers
available from a user's current topic, including triggers that came from
topics inherited/included by their topic (PR #138). - Change how the parser handles inline comments (
//
appearing on the same
line as RiveScript code). Previously, it required at least one space to
be present on either side of the//
characters. Now, it only requires a
space before the//
. - Add new examples: using RiveScript as a router, and a link to a plugin for
using RiveScript with Hubot. - Add a new ASCII logo to the header output of
shell.js
andshell.coffee
- Add a new API function:
. .
.:...:: RiveScript Interpreter (JavaScript)
.:: ::. Library Version: v1.14.0
..:;;. ' .;;:..
. ''' . Type '/quit' to quit.
:;,:,;: Type '/help' for more options.
: :
1.13.0 - June 14 2016
Changes
- 1.13.0 2016-06-14
- Fix the
<call>
tags not being executed on the left side of conditionals,
so that<call>test</call> == true => Success
types of conditions should
work (bug #107). - Fix trigger regexp processing so that if a
{weight}
tag contains a space
before or after it (or: a space between{weight}
and the rest of the
trigger text), the spaces are also stripped so that matching isn't broken
for that trigger (bug #102). - Rename the old
async-object
example tosecond-reply
to lessen confusion
between it andasync-reply
(bug #123). - Fix the
_
wildcard not being able to match Unicode letters (bug #118). - Add
initialMatch()
to the API, which is likelastMatch()
but it returns
the original trigger that the user matched instead of a redirected trigger
(PR #127).
- Fix the
1.12.2 - May 16 2016
Changes
- 1.12.2 2016-05-16
- Call the error handler on
loadDirectory()
when the directory doesn't exist
or isn't a directory (bug #117). - Include the
dist/
directory on npm for easy web browser embedding using
npmcdn.
- Call the error handler on
1.12.1 - May 5 2016
Changes
- 1.12.1 2016-05-05
- Fix the
<call>...</call>
regular expression to match line break characters
and preserve them in the argument list sent to an object macro (bug #108).
- Fix the
1.12.0 - April 17 2016
Changes
- 1.12.0 2016-04-17
- Fix the
stringify()
function to also escape newlines on conditionals. - Various fixes to "pipe syntax" for arrays, optionals and alternations;
having a "blank" entry separated by pipes (e.g. a trailing or leading pipe)
would cause matching issues. These have been fixed and a syntax error is
given if this is detected at parsing time. - Added additional documentation for the usage of
deparse()
and related
functions to theeg/deparse
directory.
- Fix the
1.10.0 - March 30 2016
Changes
- 1.10.0 2016-03-30
- Fix a bug where
! local concat
settings wouldn't apply to the first
continuation of a conditional (bug #88) - Add the ability to override certain common error messages with custom text,
for the cases where a trigger wasn't matched, when a trigger was matched
but no reply was given, when an object macro wasn't found, and when deep
recursion errors arise (bug #90) - Fix a bug where the
<@>
syntax for a redirect fails when<star1>
is
undefined (bug #92) - Fix the
stringify()
function to escape newline characters so that the
resulting code doesn't have syntax errors when reloading it (bug #95) - Fix some triggers in the default example brain to account for substitution
on the bot's previous reply (bug #87) - Add command line arguments to
shell.js
andshell.coffee
: use--debug
to enable verbose debug logging and--utf8
to enable UTF-8 mode.
- Fix a bug where
Release 1.8.0 - March 18 2016
Changes
- 1.8.0 2016-03-18
- Update the way the
args
array works in JavaScript object macros: it now
uses a shell-style array where quoted strings come in as one array element,
even if it contains spaces. - Update all internal user variable getting/setting to use the public
setUservar()
andgetUservar()
methods, enabling developers to override
the implementation of these functions. - Fix a bug when looking for
%Previous
tags, so that if the current topic
has no%Previous
trigger RiveScript won't bother looking for them.
- Update the way the
Release 1.6.0 - March 8 2016
Changes
- 1.6.0 2016-03-08
- Update the
deparse()
andstringify()
functions to include the source
code of JavaScript object macros in the output. - Update the
loadDirectory()
function to load RiveScript files recursively.
- Update the
Release 1.4.0 - Feb 11 2016
Changes
- 1.4.0 2016-02-11
- Add support for asynchronous object macros (using promises via RSVP.js),
and the accompanyingreplyAsync()
function and example code. - Add ability to use an array in a reply element as a shortcut for random
text:- (@myArray)
translates to- {random}my|array|content{/random}
.
- Add support for asynchronous object macros (using promises via RSVP.js),