diff --git a/README.md b/README.md index 45fa3be..27e51a7 100644 --- a/README.md +++ b/README.md @@ -16,10 +16,10 @@ annyang has no dependencies, weighs just 2 KB, and is free to use and modify und ## Hello World -It's as easy as adding [one javascript file](//cdnjs.cloudflare.com/ajax/libs/annyang/2.6.0/annyang.min.js) to your document, and defining the commands you want. +It's as easy as adding [one javascript file](//cdnjs.cloudflare.com/ajax/libs/annyang/2.6.1/annyang.min.js) to your document, and defining the commands you want. ````html - + + \n * ````\n *\n * ### Using Regular Expressions in commands\n * For advanced commands, you can pass a regular expression object, instead of\n * a simple string command.\n *\n * This is done by passing an object containing two properties: `regexp`, and\n * `callback` instead of the function.\n *\n * #### Examples:\n * ````javascript\n * var calculateFunction = function(month) { console.log(month); }\n * var commands = {\n * // This example will accept any word as the \"month\"\n * 'calculate :month stats': calculateFunction,\n * // This example will only accept months which are at the start of a quarter\n * 'calculate :quarter stats': {'regexp': /^calculate (January|April|July|October) stats$/, 'callback': calculateFunction}\n * }\n ````\n *\n */\n"]} \ No newline at end of file +{"version":3,"sources":["../src/annyang.js"],"names":["root","factory","define","amd","annyang","module","exports","window","undefined","SpeechRecognition","webkitSpeechRecognition","mozSpeechRecognition","msSpeechRecognition","oSpeechRecognition","commandsList","recognition","callbacks","start","error","end","soundstart","result","resultMatch","resultNoMatch","errorNetwork","errorPermissionBlocked","errorPermissionDenied","autoRestart","lastStartedAt","autoRestartCount","debugState","debugStyle","pauseListening","isListening","optionalParam","optionalRegex","namedParam","splatParam","escapeRegExp","commandToRegExp","command","replace","match","optional","RegExp","invokeCallbacks","args","forEach","callback","apply","context","isInitialized","logMessage","text","extraParameters","indexOf","console","log","initIfNeeded","init","registerCommand","originalPhrase","push","parseResults","results","commandText","i","length","trim","j","l","currentCommand","exec","parameters","slice","commands","resetCommands","abort","maxAlternatives","continuous","location","protocol","lang","onstart","onsoundstart","onerror","event","Date","getTime","onend","timeSinceLastStart","setTimeout","paused","onresult","SpeechRecognitionResult","resultIndex","k","transcript","addCommands","options","e","message","pause","resume","debug","newState","setLanguage","language","cb","phrase","hasOwnProperty","regexp","source","removeCommands","commandsToRemove","Array","isArray","filter","addCallback","type","removeCallback","compareWithCallbackParameter","callbackType","getSpeechRecognizer","trigger","sentences"],"mappings":"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","file":"annyang.js","sourcesContent":["//! annyang\n//! version : 2.6.1\n//! author : Tal Ater @TalAter\n//! license : MIT\n//! https://www.TalAter.com/annyang/\n(function (root, factory) {\n 'use strict';\n if (typeof define === 'function' && define.amd) { // AMD + global\n define([], function () {\n return (root.annyang = factory(root));\n });\n } else if (typeof module === 'object' && module.exports) { // CommonJS\n module.exports = factory(root);\n } else { // Browser globals\n root.annyang = factory(root);\n }\n}(typeof window !== 'undefined' ? window : this, function (root, undefined) {\n 'use strict';\n\n /**\n * # Quick Tutorial, Intro and Demos\n *\n * The quickest way to get started is to visit the [annyang homepage](https://www.talater.com/annyang/).\n *\n * For a more in-depth look at annyang, read on.\n *\n * # API Reference\n */\n\n var annyang;\n\n // Get the SpeechRecognition object, while handling browser prefixes\n var SpeechRecognition = root.SpeechRecognition ||\n root.webkitSpeechRecognition ||\n root.mozSpeechRecognition ||\n root.msSpeechRecognition ||\n root.oSpeechRecognition;\n\n // Check browser support\n // This is done as early as possible, to make it as fast as possible for unsupported browsers\n if (!SpeechRecognition) {\n return null;\n }\n\n var commandsList = [];\n var recognition;\n var callbacks = { start: [], error: [], end: [], soundstart: [], result: [], resultMatch: [], resultNoMatch: [], errorNetwork: [], errorPermissionBlocked: [], errorPermissionDenied: [] };\n var autoRestart;\n var lastStartedAt = 0;\n var autoRestartCount = 0;\n var debugState = false;\n var debugStyle = 'font-weight: bold; color: #00f;';\n var pauseListening = false;\n var isListening = false;\n\n // The command matching code is a modified version of Backbone.Router by Jeremy Ashkenas, under the MIT license.\n var optionalParam = /\\s*\\((.*?)\\)\\s*/g;\n var optionalRegex = /(\\(\\?:[^)]+\\))\\?/g;\n var namedParam = /(\\(\\?)?:\\w+/g;\n var splatParam = /\\*\\w+/g;\n var escapeRegExp = /[\\-{}\\[\\]+?.,\\\\\\^$|#]/g;\n var commandToRegExp = function(command) {\n command = command.replace(escapeRegExp, '\\\\$&')\n .replace(optionalParam, '(?:$1)?')\n .replace(namedParam, function(match, optional) {\n return optional ? match : '([^\\\\s]+)';\n })\n .replace(splatParam, '(.*?)')\n .replace(optionalRegex, '\\\\s*$1?\\\\s*');\n return new RegExp('^' + command + '$', 'i');\n };\n\n // This method receives an array of callbacks to iterate over, and invokes each of them\n var invokeCallbacks = function(callbacks, ...args) {\n callbacks.forEach(function(callback) {\n callback.callback.apply(callback.context, args);\n });\n };\n\n var isInitialized = function() {\n return recognition !== undefined;\n };\n\n // method for logging in developer console when debug mode is on\n var logMessage = function(text, extraParameters) {\n if (text.indexOf('%c') === -1 && !extraParameters) {\n console.log(text);\n } else {\n console.log(text, extraParameters || debugStyle);\n }\n };\n\n var initIfNeeded = function() {\n if (!isInitialized()) {\n annyang.init({}, false);\n }\n };\n\n var registerCommand = function(command, callback, originalPhrase) {\n commandsList.push({ command, callback, originalPhrase });\n if (debugState) {\n logMessage('Command successfully loaded: %c'+originalPhrase, debugStyle);\n }\n };\n\n var parseResults = function(results) {\n invokeCallbacks(callbacks.result, results);\n var commandText;\n // go over each of the 5 results and alternative results received (we've set maxAlternatives to 5 above)\n for (let i = 0; i {\n for (let i = 0; i\n * var commands = {\n * // annyang will capture anything after a splat (*) and pass it to the function.\n * // e.g. saying \"Show me Batman and Robin\" will call showFlickr('Batman and Robin');\n * 'show me *tag': showFlickr,\n *\n * // A named variable is a one word variable, that can fit anywhere in your command.\n * // e.g. saying \"calculate October stats\" will call calculateStats('October');\n * 'calculate :month stats': calculateStats,\n *\n * // By defining a part of the following command as optional, annyang will respond\n * // to both: \"say hello to my little friend\" as well as \"say hello friend\"\n * 'say hello (to my little) friend': greeting\n * };\n *\n * var showFlickr = function(tag) {\n * var url = 'http://api.flickr.com/services/rest/?tags='+tag;\n * $.getJSON(url);\n * }\n *\n * var calculateStats = function(month) {\n * $('#stats').text('Statistics for '+month);\n * }\n *\n * var greeting = function() {\n * $('#greeting').text('Hello!');\n * }\n * \n * ````\n *\n * ### Using Regular Expressions in commands\n * For advanced commands, you can pass a regular expression object, instead of\n * a simple string command.\n *\n * This is done by passing an object containing two properties: `regexp`, and\n * `callback` instead of the function.\n *\n * #### Examples:\n * ````javascript\n * var calculateFunction = function(month) { console.log(month); }\n * var commands = {\n * // This example will accept any word as the \"month\"\n * 'calculate :month stats': calculateFunction,\n * // This example will only accept months which are at the start of a quarter\n * 'calculate :quarter stats': {'regexp': /^calculate (January|April|July|October) stats$/, 'callback': calculateFunction}\n * }\n ````\n *\n */\n"]} \ No newline at end of file diff --git a/dist/annyang.min.js b/dist/annyang.min.js index 6ea9cd4..9e0b8e7 100644 --- a/dist/annyang.min.js +++ b/dist/annyang.min.js @@ -1,11 +1,11 @@ "use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e}; //! annyang -//! version : 2.6.0 +//! version : 2.6.1 //! author : Tal Ater @TalAter //! license : MIT //! https://www.TalAter.com/annyang/ //! annyang -//! version : 2.6.0 +//! version : 2.6.1 //! author : Tal Ater @TalAter //! license : MIT //! https://www.TalAter.com/annyang/ diff --git a/package-lock.json b/package-lock.json index 6ab2e6d..b197340 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "annyang", - "version": "2.6.0", + "version": "2.6.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index bd6078d..2cd0a25 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "annyang", - "version": "2.6.0", + "version": "2.6.1", "description": "A javascript library for adding voice commands to your site, using speech recognition", "keywords": [ "annyang", diff --git a/sites/facebook.min.js b/sites/facebook.min.js index b4d914c..f6d895e 100644 --- a/sites/facebook.min.js +++ b/sites/facebook.min.js @@ -1,11 +1,11 @@ "use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e}; //! annyang -//! version : 2.6.0 +//! version : 2.6.1 //! author : Tal Ater @TalAter //! license : MIT //! https://www.TalAter.com/annyang/ //! annyang -//! version : 2.6.0 +//! version : 2.6.1 //! author : Tal Ater @TalAter //! license : MIT //! https://www.TalAter.com/annyang/ diff --git a/sites/geektime.min.js b/sites/geektime.min.js index 0d66fd4..af8cb8d 100644 --- a/sites/geektime.min.js +++ b/sites/geektime.min.js @@ -1,11 +1,11 @@ "use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e}; //! annyang -//! version : 2.6.0 +//! version : 2.6.1 //! author : Tal Ater @TalAter //! license : MIT //! https://www.TalAter.com/annyang/ //! annyang -//! version : 2.6.0 +//! version : 2.6.1 //! author : Tal Ater @TalAter //! license : MIT //! https://www.TalAter.com/annyang/ diff --git a/src/annyang.js b/src/annyang.js index 22e678a..3c5cd9b 100644 --- a/src/annyang.js +++ b/src/annyang.js @@ -1,5 +1,5 @@ //! annyang -//! version : 2.6.0 +//! version : 2.6.1 //! author : Tal Ater @TalAter //! license : MIT //! https://www.TalAter.com/annyang/