Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

morsify

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

morsify - npm Package Compare versions

Comparing version 1.0.0 to 2.0.0

17

dist/morsify.js

@@ -0,1 +1,9 @@

function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

@@ -498,2 +506,3 @@

};
characters[1][' '] = options.space;
characters[0] = characters[options.priority];

@@ -505,3 +514,3 @@ return options;

var options = getOptions(opts);
return text.replace(/\s+/g, '').toLocaleUpperCase().split('').map(function (character) {
return _toConsumableArray(text.replace(/\s+/g, ' ').trim().toLocaleUpperCase()).map(function (character) {
for (var set in characters) {

@@ -514,3 +523,3 @@ if (typeof characters[set] !== 'undefined' && typeof characters[set][character] !== 'undefined') {

return parseInt(options.priority) === 13 ? unicodeToMorse(character) : options.invalid;
}).join(options.space).replace(/0/g, options.dot).replace(/1/g, options.dash);
}).join(' ').replace(/0/g, options.dot).replace(/1/g, options.dash);
};

@@ -521,3 +530,3 @@

swapped = swapCharacters(options);
return morse.split(options.space).map(function (characters) {
return morse.replace(/\s+/g, ' ').trim().split(' ').map(function (characters) {
if (typeof swapped[characters] !== 'undefined') {

@@ -528,3 +537,3 @@ return swapped[characters];

return parseInt(options.priority) === 13 ? unicodeToHex(characters, options) : options.invalid;
}).join(' ').replace(/\s+/g, ' ');
}).join('');
};

@@ -531,0 +540,0 @@

@@ -1,1 +0,1 @@

function _typeof(a){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}(function(a,b,c){"object"===("undefined"==typeof exports?"undefined":_typeof(exports))?module.exports=c():"function"==typeof define&&define.amd?define(c):b[a]=c()})("morsify",this,function(){"use strict";var a={1:{A:"01",B:"1000",C:"1010",D:"100",E:"0",F:"0010",G:"110",H:"0000",I:"00",J:"0111",K:"101",L:"0100",M:"11",N:"10",O:"111",P:"0110",Q:"1101",R:"010",S:"000",T:"1",U:"001",V:"0001",W:"011",X:"1001",Y:"1011",Z:"1100"},2:{0:"11111",1:"01111",2:"00111",3:"00011",4:"00001",5:"00000",6:"10000",7:"11000",8:"11100",9:"11110"},3:{".":"010101",",":"110011","?":"001100","'":"011110","!":"101011","/":"10010","(":"10110",")":"101101","&":"01000",":":"111000",";":"101010","=":"10001","+":"01010","-":"100001",_:"001101",'"':"010010",$:"0001001","@":"011010","¿":"00101","¡":"110001"},4:{Ã:"01101",Á:"01101",Å:"01101",À:"01101",Â:"01101",Ä:"0101",Ą:"0101",Æ:"0101",Ç:"10100",Ć:"10100",Ĉ:"10100",Č:"110",Đ:"00100",Ð:"00110",È:"01001",Ë:"00100",Ę:"00100",É:"00100",Ê:"10010",Ğ:"11010",Ĝ:"11010",Ĥ:"1111",İ:"01001",Ï:"10011",Ì:"01110",Ĵ:"01110",Ł:"01001",Ń:"11011",Ñ:"11011",Ó:"1110",Ò:"1110",Ö:"1110",Ô:"1110",Ø:"1110",Ś:"0001000",Ş:"01100",Ș:"1111",Š:"1111",Ŝ:"00010",ß:"000000",Þ:"01100",Ü:"0011",Ù:"0011",Ŭ:"0011",Ž:"11001",Ź:"110010",Ż:"11001"},5:{А:"01",Б:"1000",В:"011",Г:"110",Д:"100",Е:"0",Ж:"0001",З:"1100",И:"00",Й:"0111",К:"101",Л:"0100",М:"11",Н:"10",О:"111",П:"0110",Р:"010",С:"000",Т:"1",У:"001",Ф:"0010",Х:"0000",Ц:"1010",Ч:"1110",Ш:"1111",Щ:"1101",Ъ:"11011",Ы:"1011",Ь:"1001",Э:"00100",Ю:"0011",Я:"0101"},6:{Α:"01",Β:"1000",Γ:"110",Δ:"100",Ε:"0",Ζ:"1100",Η:"0000",Θ:"1010",Ι:"00",Κ:"101",Λ:"0100",Μ:"11",Ν:"10",Ξ:"1001",Ο:"111",Π:"0110",Ρ:"010",Σ:"000",Τ:"1",Υ:"1011",Φ:"0010",Χ:"1111",Ψ:"1101",Ω:"011"},7:{א:"01",ב:"1000",ג:"110",ד:"100",ה:"111",ו:"0",ז:"1100",ח:"0000",ט:"001",י:"00",כ:"101",ל:"0100",מ:"11",נ:"10",ס:"1010",ע:"0111",פ:"0110",צ:"011",ק:"1101",ר:"010",ש:"000",ת:"1"},8:{ا:"01",ب:"1000",ت:"1",ث:"1010",ج:"0111",ح:"0000",خ:"111",د:"100",ذ:"1100",ر:"010",ز:"1110",س:"000",ش:"1111",ص:"1001",ض:"0001",ط:"001",ظ:"1011",ع:"0101",غ:"110",ف:"0010",ق:"1101",ك:"101",ل:"0100",م:"11",ن:"10",ه:"00100",و:"011",ي:"00",ﺀ:"0"},9:{ا:"01",ب:"1000",پ:"0110",ت:"1",ث:"1010",ج:"0111",چ:"1110",ح:"0000",خ:"1001",د:"100",ذ:"0001",ر:"010",ز:"1100",ژ:"110",س:"000",ش:"1111",ص:"0101",ض:"00100",ط:"001",ظ:"1011",ع:"111",غ:"0011",ف:"0010",ق:"111000",ک:"101",گ:"1101",ل:"0100",م:"11",ن:"10",و:"011",ه:"0",ی:"00"},10:{ア:"11011",カ:"0100",サ:"10101",タ:"10",ナ:"010",ハ:"1000",マ:"1001",ヤ:"011",ラ:"000",ワ:"101",イ:"01",キ:"10100",シ:"11010",チ:"0010",ニ:"1010",ヒ:"11001",ミ:"00101",リ:"110",ヰ:"01001",ウ:"001",ク:"0001",ス:"11101",ツ:"0110",ヌ:"0000",フ:"1100",ム:"1",ユ:"10011",ル:"10110",ン:"01010",エ:"01000",ケ:"1011",セ:"01110",テ:"01011",ネ:"1101",ヘ:"0",メ:"10001",レ:"111",ヱ:"01100","、":"010101",オ:"10111",コ:"1111",ソ:"1110",ト:"00100",ノ:"0011",ホ:"100",モ:"10010",ヨ:"11",ロ:"0101",ヲ:"0111","。":"010100"},11:{ㄱ:"0100",ㄴ:"0010",ㄷ:"1000",ㄹ:"0001",ㅁ:"11",ㅂ:"011",ㅅ:"110",ㅇ:"101",ㅈ:"0110",ㅊ:"1010",ㅋ:"1001",ㅌ:"1100",ㅍ:"111",ㅎ:"0111",ㅏ:"0",ㅑ:"00",ㅓ:"1",ㅕ:"000",ㅗ:"01",ㅛ:"10",ㅜ:"0000",ㅠ:"010",ㅡ:"100",ㅣ:"001"},12:{ก:"110",ข:"1010",ค:"101",ง:"10110",จ:"10010",ฉ:"1111",ช:"1001",ซ:"1100",ญ:"0111",ด:"100",ต:"1",ถ:"10100",ท:"10011",น:"10",บ:"1000",ป:"0110",ผ:"1101",ฝ:"10101",พ:"01100",ฟ:"0010",ม:"11",ย:"1011",ร:"010",ล:"0100",ว:"011",ส:"000",ห:"0000",อ:"10001",ฮ:"11011",ฤ:"01011",ะ:"01000",า:"01","ิ":"00100","ี":"00","ึ":"00110","ื":"0011","ุ":"00101","ู":"1110",เ:"0",แ:"0101",ไ:"01001",โ:"111",ำ:"00010","่":"001","้":"0001","๊":"11000","๋":"01010","ั":"01101","็":"11100","์":"11001",ๆ:"10111",ฯ:"11010"}},b=function(b,c){var d=f(b),e={};for(var g in a)for(var h in e[g]={},a[g])e[g][h]=a[g][h].replace(/0/g,d.dot).replace(/1/g,d.dash);return!0!==c&&delete e[0],e},c=function(a){var c={},d=b(a,!0);for(var e in d)for(var f in d[e])"undefined"==typeof c[d[e][f]]&&(c[d[e][f]]=f);return c},d=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=("00"+a.charCodeAt(c).toString(16)).slice(-4);return parseInt(b.join(""),16).toString(2)},e=function(a,b){return a=a.replace(new RegExp("\\"+b.dot,"g"),"0").replace(new RegExp("\\"+b.dash,"g"),"1"),a=parseInt(a,2),isNaN(a)?b.invalid:decodeURIComponent(JSON.parse("\"\\u"+a.toString(16)+"\""))},f=function(b){return b=b||{},b.oscillator=b.oscillator||{},b={dash:b.dash||"-",dot:b.dot||".",space:b.space||"/",invalid:b.invalid||"#",priority:b.priority||1,unit:b.unit||.08,oscillator:{type:b.oscillator.type||"sine",frequency:b.oscillator.frequency||500,onended:b.oscillator.onended||null}},a[0]=a[b.priority],b},g=function(b,c){var e=f(c);return b.replace(/\s+/g,"").toLocaleUpperCase().split("").map(function(b){for(var c in a)if("undefined"!=typeof a[c]&&"undefined"!=typeof a[c][b])return a[c][b];return 13===parseInt(e.priority)?d(b):e.invalid}).join(e.space).replace(/0/g,e.dot).replace(/1/g,e.dash)},h="undefined"!=typeof window,i=h?window.AudioContext||window.webkitAudioContext:null,j=h?new i:null;return{characters:b,decode:function(a,b){var d=f(b),g=c(d);return a.split(d.space).map(function(a){return"undefined"==typeof g[a]?13===parseInt(d.priority)?e(a,d):d.invalid:g[a]}).join(" ").replace(/\s+/g," ")},encode:g,audio:function(a,b){var c,d=f(b),e=g(a,b),h=j.createOscillator(),k=j.createGain(),l=j.currentTime;h.type=d.oscillator.type,h.frequency.value=d.oscillator.frequency,h.onended=d.oscillator.onended,k.gain.setValueAtTime(0,l);for(var m=function(a){k.gain.setValueAtTime(1,l),l+=a*d.unit},n=function(a){k.gain.setValueAtTime(0,l),l+=a*d.unit},o=0;o<=e.length;o++)e[o]===d.space?n(7):e[o]===d.dot?(m(1),n(1)):e[o]===d.dash?(m(3),n(1)):n(3);h.connect(k),k.connect(j.destination);var p=function(){h.start(j.currentTime),c=setTimeout(function(){return q()},1e3*(l-j.currentTime))},q=function(){clearTimeout(c),c=0,h.stop(0)};return{play:p,stop:q,context:j,oscillator:h,gainNode:k}}}});
function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function _iterableToArray(a){if(Symbol.iterator in Object(a)||"[object Arguments]"===Object.prototype.toString.call(a))return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b<a.length;b++)c[b]=a[b];return c}}function _typeof(a){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}(function(a,b,c){"object"===("undefined"==typeof exports?"undefined":_typeof(exports))?module.exports=c():"function"==typeof define&&define.amd?define(c):b[a]=c()})("morsify",this,function(){"use strict";var a={1:{A:"01",B:"1000",C:"1010",D:"100",E:"0",F:"0010",G:"110",H:"0000",I:"00",J:"0111",K:"101",L:"0100",M:"11",N:"10",O:"111",P:"0110",Q:"1101",R:"010",S:"000",T:"1",U:"001",V:"0001",W:"011",X:"1001",Y:"1011",Z:"1100"},2:{0:"11111",1:"01111",2:"00111",3:"00011",4:"00001",5:"00000",6:"10000",7:"11000",8:"11100",9:"11110"},3:{".":"010101",",":"110011","?":"001100","'":"011110","!":"101011","/":"10010","(":"10110",")":"101101","&":"01000",":":"111000",";":"101010","=":"10001","+":"01010","-":"100001",_:"001101",'"':"010010",$:"0001001","@":"011010","¿":"00101","¡":"110001"},4:{Ã:"01101",Á:"01101",Å:"01101",À:"01101",Â:"01101",Ä:"0101",Ą:"0101",Æ:"0101",Ç:"10100",Ć:"10100",Ĉ:"10100",Č:"110",Đ:"00100",Ð:"00110",È:"01001",Ë:"00100",Ę:"00100",É:"00100",Ê:"10010",Ğ:"11010",Ĝ:"11010",Ĥ:"1111",İ:"01001",Ï:"10011",Ì:"01110",Ĵ:"01110",Ł:"01001",Ń:"11011",Ñ:"11011",Ó:"1110",Ò:"1110",Ö:"1110",Ô:"1110",Ø:"1110",Ś:"0001000",Ş:"01100",Ș:"1111",Š:"1111",Ŝ:"00010",ß:"000000",Þ:"01100",Ü:"0011",Ù:"0011",Ŭ:"0011",Ž:"11001",Ź:"110010",Ż:"11001"},5:{А:"01",Б:"1000",В:"011",Г:"110",Д:"100",Е:"0",Ж:"0001",З:"1100",И:"00",Й:"0111",К:"101",Л:"0100",М:"11",Н:"10",О:"111",П:"0110",Р:"010",С:"000",Т:"1",У:"001",Ф:"0010",Х:"0000",Ц:"1010",Ч:"1110",Ш:"1111",Щ:"1101",Ъ:"11011",Ы:"1011",Ь:"1001",Э:"00100",Ю:"0011",Я:"0101"},6:{Α:"01",Β:"1000",Γ:"110",Δ:"100",Ε:"0",Ζ:"1100",Η:"0000",Θ:"1010",Ι:"00",Κ:"101",Λ:"0100",Μ:"11",Ν:"10",Ξ:"1001",Ο:"111",Π:"0110",Ρ:"010",Σ:"000",Τ:"1",Υ:"1011",Φ:"0010",Χ:"1111",Ψ:"1101",Ω:"011"},7:{א:"01",ב:"1000",ג:"110",ד:"100",ה:"111",ו:"0",ז:"1100",ח:"0000",ט:"001",י:"00",כ:"101",ל:"0100",מ:"11",נ:"10",ס:"1010",ע:"0111",פ:"0110",צ:"011",ק:"1101",ר:"010",ש:"000",ת:"1"},8:{ا:"01",ب:"1000",ت:"1",ث:"1010",ج:"0111",ح:"0000",خ:"111",د:"100",ذ:"1100",ر:"010",ز:"1110",س:"000",ش:"1111",ص:"1001",ض:"0001",ط:"001",ظ:"1011",ع:"0101",غ:"110",ف:"0010",ق:"1101",ك:"101",ل:"0100",م:"11",ن:"10",ه:"00100",و:"011",ي:"00",ﺀ:"0"},9:{ا:"01",ب:"1000",پ:"0110",ت:"1",ث:"1010",ج:"0111",چ:"1110",ح:"0000",خ:"1001",د:"100",ذ:"0001",ر:"010",ز:"1100",ژ:"110",س:"000",ش:"1111",ص:"0101",ض:"00100",ط:"001",ظ:"1011",ع:"111",غ:"0011",ف:"0010",ق:"111000",ک:"101",گ:"1101",ل:"0100",م:"11",ن:"10",و:"011",ه:"0",ی:"00"},10:{ア:"11011",カ:"0100",サ:"10101",タ:"10",ナ:"010",ハ:"1000",マ:"1001",ヤ:"011",ラ:"000",ワ:"101",イ:"01",キ:"10100",シ:"11010",チ:"0010",ニ:"1010",ヒ:"11001",ミ:"00101",リ:"110",ヰ:"01001",ウ:"001",ク:"0001",ス:"11101",ツ:"0110",ヌ:"0000",フ:"1100",ム:"1",ユ:"10011",ル:"10110",ン:"01010",エ:"01000",ケ:"1011",セ:"01110",テ:"01011",ネ:"1101",ヘ:"0",メ:"10001",レ:"111",ヱ:"01100","、":"010101",オ:"10111",コ:"1111",ソ:"1110",ト:"00100",ノ:"0011",ホ:"100",モ:"10010",ヨ:"11",ロ:"0101",ヲ:"0111","。":"010100"},11:{ㄱ:"0100",ㄴ:"0010",ㄷ:"1000",ㄹ:"0001",ㅁ:"11",ㅂ:"011",ㅅ:"110",ㅇ:"101",ㅈ:"0110",ㅊ:"1010",ㅋ:"1001",ㅌ:"1100",ㅍ:"111",ㅎ:"0111",ㅏ:"0",ㅑ:"00",ㅓ:"1",ㅕ:"000",ㅗ:"01",ㅛ:"10",ㅜ:"0000",ㅠ:"010",ㅡ:"100",ㅣ:"001"},12:{ก:"110",ข:"1010",ค:"101",ง:"10110",จ:"10010",ฉ:"1111",ช:"1001",ซ:"1100",ญ:"0111",ด:"100",ต:"1",ถ:"10100",ท:"10011",น:"10",บ:"1000",ป:"0110",ผ:"1101",ฝ:"10101",พ:"01100",ฟ:"0010",ม:"11",ย:"1011",ร:"010",ล:"0100",ว:"011",ส:"000",ห:"0000",อ:"10001",ฮ:"11011",ฤ:"01011",ะ:"01000",า:"01","ิ":"00100","ี":"00","ึ":"00110","ื":"0011","ุ":"00101","ู":"1110",เ:"0",แ:"0101",ไ:"01001",โ:"111",ำ:"00010","่":"001","้":"0001","๊":"11000","๋":"01010","ั":"01101","็":"11100","์":"11001",ๆ:"10111",ฯ:"11010"}},b=function(b,c){var d=f(b),e={};for(var g in a)for(var h in e[g]={},a[g])e[g][h]=a[g][h].replace(/0/g,d.dot).replace(/1/g,d.dash);return!0!==c&&delete e[0],e},c=function(a){var c={},d=b(a,!0);for(var e in d)for(var f in d[e])"undefined"==typeof c[d[e][f]]&&(c[d[e][f]]=f);return c},d=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=("00"+a.charCodeAt(c).toString(16)).slice(-4);return parseInt(b.join(""),16).toString(2)},e=function(a,b){return a=a.replace(new RegExp("\\"+b.dot,"g"),"0").replace(new RegExp("\\"+b.dash,"g"),"1"),a=parseInt(a,2),isNaN(a)?b.invalid:decodeURIComponent(JSON.parse("\"\\u"+a.toString(16)+"\""))},f=function(b){return b=b||{},b.oscillator=b.oscillator||{},b={dash:b.dash||"-",dot:b.dot||".",space:b.space||"/",invalid:b.invalid||"#",priority:b.priority||1,unit:b.unit||.08,oscillator:{type:b.oscillator.type||"sine",frequency:b.oscillator.frequency||500,onended:b.oscillator.onended||null}},a[1][" "]=b.space,a[0]=a[b.priority],b},g=function(b,c){var e=f(c);return _toConsumableArray(b.replace(/\s+/g," ").trim().toLocaleUpperCase()).map(function(b){for(var c in a)if("undefined"!=typeof a[c]&&"undefined"!=typeof a[c][b])return a[c][b];return 13===parseInt(e.priority)?d(b):e.invalid}).join(" ").replace(/0/g,e.dot).replace(/1/g,e.dash)},h="undefined"!=typeof window,i=h?window.AudioContext||window.webkitAudioContext:null,j=h?new i:null;return{characters:b,decode:function(a,b){var d=f(b),g=c(d);return a.replace(/\s+/g," ").trim().split(" ").map(function(a){return"undefined"==typeof g[a]?13===parseInt(d.priority)?e(a,d):d.invalid:g[a]}).join("")},encode:g,audio:function(a,b){var c,d=f(b),e=g(a,b),h=j.createOscillator(),k=j.createGain(),l=j.currentTime;h.type=d.oscillator.type,h.frequency.value=d.oscillator.frequency,h.onended=d.oscillator.onended,k.gain.setValueAtTime(0,l);for(var m=function(a){k.gain.setValueAtTime(1,l),l+=a*d.unit},n=function(a){k.gain.setValueAtTime(0,l),l+=a*d.unit},o=0;o<=e.length;o++)e[o]===d.space?n(7):e[o]===d.dot?(m(1),n(1)):e[o]===d.dash?(m(3),n(1)):n(3);h.connect(k),k.connect(j.destination);var p=function(){h.start(j.currentTime),c=setTimeout(function(){return q()},1e3*(l-j.currentTime))},q=function(){clearTimeout(c),c=0,h.stop(0)};return{play:p,stop:q,context:j,oscillator:h,gainNode:k}}}});
{
"name": "morsify",
"version": "1.0.0",
"description": "Morse code translator and decoder which also generates audio.",
"version": "2.0.0",
"description": "Morse code translator, morse encoder and decoder, which can also generate audio.",
"keywords": [

@@ -30,4 +30,4 @@ "morse",

"@babel/preset-env": "^7.1.0",
"coveralls": "^2.13.3",
"gulp": "^3.9.1",
"coveralls": "^3.0.3",
"gulp": "^4.0.0",
"gulp-babel": "^8.0.0",

@@ -39,3 +39,3 @@ "gulp-babel-minify": "^0.5.0",

"lodash": "^4.17.11",
"mocha": "^3.5.3"
"mocha": "^6.0.2"
},

@@ -42,0 +42,0 @@ "main": "./src/morsify.js",

@@ -1,2 +0,2 @@

# morsify
# Morsify - Morse Code Translator with Audio

@@ -6,5 +6,6 @@ [![npm-version]][npm] [![npm-downloads]][npm] [![travis-ci]][travis]

Morse code encoder and decoder with no dependencies supports Latin, Cyrillic, Greek, Hebrew,
Arabic, Persian, Japanese, Korean, Thai, and Unicode (Chinese and the others) characters with audio generation functionality using the [Web Audio API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API).
Arabic, Persian, Japanese, Korean, Thai, and Unicode (Chinese and the others) characters with audio generation
functionality using the [Web Audio API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API).
Live demo can be found here: [https://morsify.net](https://morsify.net)
Live Demo: [https://morsify.net](https://morsify.net)

@@ -29,4 +30,4 @@ ## Installation

const morsify = require('morsify');
const encoded = morsify.encode('SOS'); // .../---/...
const decoded = morsify.decode('.../---/...'); // S O S
const encoded = morsify.encode('SOS'); // ... --- ...
const decoded = morsify.decode('... --- ...'); // SOS
const characters = morsify.characters(); // {'1': {'A': '.-', ...}, ..., '11': {'ㄱ': '.-..', ...}}

@@ -43,4 +44,4 @@ const audio = morsify.audio('SOS');

<script>
var encoded = morsify.encode('SOS'); // .../---/...
var decoded = morsify.decode('.../---/...'); // S O S
var encoded = morsify.encode('SOS'); // ... --- ...
var decoded = morsify.decode('... --- ...'); // SOS
var characters = morsify.characters(); // {'1': {'A': '.-', ...}, ..., '11': {'ㄱ': '.-..', ...}}

@@ -80,8 +81,8 @@ var audio = morsify.audio('SOS');

```js
var cyrillic = morsify.encode('Ленинград', { priority: 5 }); // .-.././-./../-./--./.-./.-/-..
var greek = morsify.decode('.../.-/--./.-/.--./.--', { priority: 6 }); // Σ Α Γ Α Π Ω
var hebrew = morsify.decode('––– –... ––– –. ––. .. .–.. –––', { dash: '–', dot: '.', space: ' ', priority: 7 }); // ה ב ה נ ג י ל ה
var chinese = morsify.encode('你好', { priority: 13 }); // -..----.--...../-.--..-.-----.-
var characters = morsify.characters({ dash: '–', dot: '•' }); // {'1': {'A': '•–', ...}, ..., '11': {'ㄱ': '•–••', ...}}
var arabicAudio = morsify.audio('البُراق‎‎', { // generates the morse .-/.-../-.../.-./.-/--.- then generates the audio from it
const cyrillic = morsify.encode('Ленинград', { priority: 5 }); // .-.. . -. .. -. --. .-. .- -..
const greek = morsify.decode('... .- --. .- .--. .--', { priority: 6 }); // ΣΑΓΑΠΩ
const hebrew = morsify.decode('.. ––– . –––', { dash: '–', dot: '.', priority: 7 }); // יהוה
const chinese = morsify.encode('你好', { priority: 13 }); // -..----.--..... -.--..-.-----.-
const characters = morsify.characters({ dash: '–', dot: '•' }); // {'1': {'A': '•–', ...}, ..., '11': {'ㄱ': '•–••', ...}}
const arabicAudio = morsify.audio('البراق', { // generates the morse .- .-.. -... .-. .- --.- then generates the audio from it
unit: 0.1, // period of one unit, in seconds, 1.2 / c where c is speed of transmission, in words per minute

@@ -96,5 +97,5 @@ oscillator: {

});
var oscillator = arabicAudio.oscillator; // OscillatorNode
var context = arabicAudio.context; // AudioContext;
var gainNode = audio.gainNode; // GainNode
const oscillator = arabicAudio.oscillator; // OscillatorNode
const context = arabicAudio.context; // AudioContext;
const gainNode = audio.gainNode; // GainNode
arabicAudio.play(); // will start playing morse audio

@@ -101,0 +102,0 @@ arabicAudio.stop(); // will stop playing morse audio

@@ -11,3 +11,3 @@ ;(((name, root, factory) => {

'use strict';
const characters = {

@@ -169,2 +169,3 @@ '1': { // Latin => https://en.wikipedia.org/wiki/Morse_code

};
characters[1][' '] = options.space;
characters[0] = characters[options.priority];

@@ -176,3 +177,3 @@ return options;

const options = getOptions(opts);
return text.replace(/\s+/g, '').toLocaleUpperCase().split('').map(function(character) {
return [...text.replace(/\s+/g, ' ').trim().toLocaleUpperCase()].map(function(character) {
for (let set in characters) {

@@ -184,3 +185,3 @@ if (typeof characters[set] !== 'undefined' && typeof characters[set][character] !== 'undefined') {

return parseInt(options.priority) === 13 ? unicodeToMorse(character) : options.invalid;
}).join(options.space).replace(/0/g, options.dot).replace(/1/g, options.dash);
}).join(' ').replace(/0/g, options.dot).replace(/1/g, options.dash);
};

@@ -190,3 +191,3 @@

const options = getOptions(opts), swapped = swapCharacters(options);
return morse.split(options.space).map(function(characters) {
return morse.replace(/\s+/g, ' ').trim().split(' ').map(function(characters) {
if (typeof swapped[characters] !== 'undefined') {

@@ -196,3 +197,3 @@ return swapped[characters];

return parseInt(options.priority) === 13 ? unicodeToHex(characters, options) : options.invalid;
}).join(' ').replace(/\s+/g, ' ');
}).join('');
};

@@ -223,3 +224,3 @@

};
const silence = (i) => {

@@ -247,3 +248,2 @@ gainNode.gain.setValueAtTime(0, t);

const play = () => {

@@ -250,0 +250,0 @@ oscillator.start(context.currentTime);

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