New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

alexa-ssml-jsx

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

alexa-ssml-jsx - npm Package Compare versions

Comparing version 1.1.0 to 1.1.1

51

build/index.js

@@ -164,5 +164,5 @@ 'use strict';

var validate = (function (_ref, props) {
var name = _ref.name;
var _ref$propTypes = _ref.propTypes;
var propTypes = _ref$propTypes === undefined ? {} : _ref$propTypes;
var name = _ref.name,
_ref$propTypes = _ref.propTypes,
propTypes = _ref$propTypes === undefined ? {} : _ref$propTypes;

@@ -481,2 +481,26 @@ Object.keys(propTypes).forEach(function (key) {

if (!node || node.type !== 'speak') {
throw Error('Expected SSML to be surrounded in a <speak> tag.');
}
return render(node, _extends({}, options, { root: true }));
}
function render(node) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
if (!node) {
return '';
}
if (Array.isArray(node)) {
return node.map(function (child) {
return render(child, _extends({}, options, { root: false }));
}).join('');
}
if (typeof node.type === 'function') {
return render(node.type(node.props), _extends({}, options, { root: false }));
}
if (typeof node === 'string') {

@@ -486,13 +510,18 @@ return node;

var _ref = node.props || {};
var _ref = node.props || {},
_ref$children = _ref.children,
children = _ref$children === undefined ? [] : _ref$children,
rest = objectWithoutProperties(_ref, ['children']);
var _ref$children = _ref.children;
var children = _ref$children === undefined ? [] : _ref$children;
var rest = objectWithoutProperties(_ref, ['children']);
if (node.type === 'speak' && !options.root) {
return children.map(function (child) {
return render(child, _extends({}, options, { root: false }));
}).join('');
}
var props = entries(rest).reduce(function (state, _ref2) {
var _ref3 = slicedToArray(_ref2, 2);
var _ref3 = slicedToArray(_ref2, 2),
key = _ref3[0],
value = _ref3[1];
var key = _ref3[0];
var value = _ref3[1];
return state + ' ' + key + '="' + value + '"';

@@ -502,3 +531,3 @@ }, '');

return children.length ? '<' + node.type + props + '>' + children.map(function (child) {
return renderToString(child, options);
return render(child, _extends({}, options, { root: false }));
}).join('') + '</' + node.type + '>' : '<' + node.type + props + '/>';

@@ -505,0 +534,0 @@ }

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

"use strict";function chainable(e){var r=function(r,t,n){return e(r,t,n)};return r.isRequired=function(r,t,n){if(r&&r[t])return e(r,t,n);throw new Error('Missing required prop "'+t+'" on "'+n+'" tag.')},r}function ssml$1(e,r){for(var t=arguments.length,n=Array(t>2?t-2:0),o=2;o<t;o++)n[o-2]=arguments[o];var i=throwIfUndefined(getTagDefinition(e),'Unsupported tag: "'+e+'"'),a=r||i.defaultProps||n.length,u=a&&_extends({},i.defaultProps,r,n.length&&{children:n}),p=validate(i,u);return _extends({type:i.type},p&&{props:p})}function throwIfUndefined(e,r){if(e)return e;throw new Error(r)}function getTagDefinition(e){switch("undefined"==typeof e?"undefined":_typeof(e)){case"string":return schema[e];case"function":return _extends({},e,{type:e});default:return}}function renderToString(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof e)return e;var t=e.props||{},n=t.children,o=void 0===n?[]:n,i=objectWithoutProperties(t,["children"]),a=entries(i).reduce(function(e,r){var t=slicedToArray(r,2),n=t[0],o=t[1];return e+" "+n+'="'+o+'"'},"");return o.length?"<"+e.type+a+">"+o.map(function(e){return renderToString(e,r)}).join("")+"</"+e.type+">":"<"+e.type+a+"/>"}Object.defineProperty(exports,"__esModule",{value:!0});var _oneOf=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return function(r,t,n){var o=r&&r[t];if(o&&e.indexOf(o)<0)throw new Error('Unsupported value "'+o+'" for prop "'+t+'" on "'+n+'" tag. Supported values are: '+e.join(", ")+".")}},_match=function(e){return function(r,t,n){var o=r&&r[t];if(o&&!e.exec(o))throw new Error('Invalid value for prop "'+t+'" on "'+n+'" tag. Expected "'+o+'" to match '+e.toString()+".")}},array=function(e,r,t){var n=e&&e[r];if(!Array.isArray(n))throw new Error('Invalid value for prop "'+r+'" on "'+t+'" tag. Expected an array.')},none=function(e,r,t){if(e&&e[r])throw new Error('Unexpected prop "'+r+'" on "'+t+'" tag. Expected none.')},PropTypes={array:chainable(array),match:function(e){return chainable(_match(e))},none:chainable(none),oneOf:function(e){return chainable(_oneOf(e))}},Strengths=["none","x-weak","weak","medium","strong","x-strong"],breakTag={type:"break",propTypes:{strength:PropTypes.oneOf(Strengths),time:PropTypes.match(/(\d+)(m?s)?/),children:PropTypes.none}},p={type:"p",propTypes:{children:PropTypes.array.isRequired}},s={type:"s",propTypes:{children:PropTypes.array.isRequired}},interpretations=["characters","spell-out","cardinal","number","ordinal","digits","fraction","unit","date","time","telephone","address"],formats=["mdy","dmy","ymd","md","dm","ym","my","d","m","y"],sayAsTag={type:"say-as",propTypes:{children:PropTypes.array.isRequired,"interpret-as":PropTypes.oneOf(interpretations).isRequired,format:function e(r,t,n){if("date"===r["interpret-as"]){var e=PropTypes.oneOf(formats).isRequired;return e(r,t,n)}}}},speak={type:"speak",propTypes:{children:PropTypes.array.isRequired}},schema={break:breakTag,p:p,s:s,"say-as":sayAsTag,speak:speak},validate=function(e,r){var t=e.name,n=e.propTypes,o=void 0===n?{}:n;return Object.keys(o).forEach(function(e){var n=o[e];n&&n(r,e,t)}),r},_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},asyncGenerator=function(){function e(e){this.value=e}function r(r){function t(e,r){return new Promise(function(t,o){var u={key:e,arg:r,resolve:t,reject:o,next:null};a?a=a.next=u:(i=a=u,n(e,r))})}function n(t,i){try{var a=r[t](i),u=a.value;u instanceof e?Promise.resolve(u.value).then(function(e){n("next",e)},function(e){n("throw",e)}):o(a.done?"return":"normal",a.value)}catch(e){o("throw",e)}}function o(e,r){switch(e){case"return":i.resolve({value:r,done:!0});break;case"throw":i.reject(r);break;default:i.resolve({value:r,done:!1})}i=i.next,i?n(i.key,i.arg):a=null}var i,a;this._invoke=t,"function"!=typeof r.return&&(this.return=void 0)}return"function"==typeof Symbol&&Symbol.asyncIterator&&(r.prototype[Symbol.asyncIterator]=function(){return this}),r.prototype.next=function(e){return this._invoke("next",e)},r.prototype.throw=function(e){return this._invoke("throw",e)},r.prototype.return=function(e){return this._invoke("return",e)},{wrap:function(e){return function(){return new r(e.apply(this,arguments))}},await:function(r){return new e(r)}}}(),_extends=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},get=function e(r,t,n){null===r&&(r=Function.prototype);var o=Object.getOwnPropertyDescriptor(r,t);if(void 0===o){var i=Object.getPrototypeOf(r);return null===i?void 0:e(i,t,n)}if("value"in o)return o.value;var a=o.get;if(void 0!==a)return a.call(n)},objectWithoutProperties=function(e,r){var t={};for(var n in e)r.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t},set=function e(r,t,n,o){var i=Object.getOwnPropertyDescriptor(r,t);if(void 0===i){var a=Object.getPrototypeOf(r);null!==a&&e(a,t,n,o)}else if("value"in i&&i.writable)i.value=n;else{var u=i.set;void 0!==u&&u.call(o,n)}return n},slicedToArray=function(){function e(e,r){var t=[],n=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(t.push(a.value),!r||t.length!==r);n=!0);}catch(e){o=!0,i=e}finally{try{!n&&u.return&&u.return()}finally{if(o)throw i}}return t}return function(r,t){if(Array.isArray(r))return r;if(Symbol.iterator in Object(r))return e(r,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),entries=function(e){return Object.keys(e).map(function(r){return[r,e[r]]})};exports.default=ssml$1,exports.renderToString=renderToString;
"use strict";function chainable(e){var r=function(r,t,n){return e(r,t,n)};return r.isRequired=function(r,t,n){if(r&&r[t])return e(r,t,n);throw new Error('Missing required prop "'+t+'" on "'+n+'" tag.')},r}function ssml$1(e,r){for(var t=arguments.length,n=Array(t>2?t-2:0),o=2;o<t;o++)n[o-2]=arguments[o];var i=throwIfUndefined(getTagDefinition(e),'Unsupported tag: "'+e+'"'),a=r||i.defaultProps||n.length,u=a&&_extends({},i.defaultProps,r,n.length&&{children:n}),p=validate(i,u);return _extends({type:i.type},p&&{props:p})}function throwIfUndefined(e,r){if(e)return e;throw new Error(r)}function getTagDefinition(e){switch("undefined"==typeof e?"undefined":_typeof(e)){case"string":return schema[e];case"function":return _extends({},e,{type:e});default:return}}function renderToString(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e||"speak"!==e.type)throw Error("Expected SSML to be surrounded in a <speak> tag.");return render(e,_extends({},r,{root:!0}))}function render(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return"";if(Array.isArray(e))return e.map(function(e){return render(e,_extends({},r,{root:!1}))}).join("");if("function"==typeof e.type)return render(e.type(e.props),_extends({},r,{root:!1}));if("string"==typeof e)return e;var t=e.props||{},n=t.children,o=void 0===n?[]:n,i=objectWithoutProperties(t,["children"]);if("speak"===e.type&&!r.root)return o.map(function(e){return render(e,_extends({},r,{root:!1}))}).join("");var a=entries(i).reduce(function(e,r){var t=slicedToArray(r,2),n=t[0],o=t[1];return e+" "+n+'="'+o+'"'},"");return o.length?"<"+e.type+a+">"+o.map(function(e){return render(e,_extends({},r,{root:!1}))}).join("")+"</"+e.type+">":"<"+e.type+a+"/>"}Object.defineProperty(exports,"__esModule",{value:!0});var _oneOf=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return function(r,t,n){var o=r&&r[t];if(o&&e.indexOf(o)<0)throw new Error('Unsupported value "'+o+'" for prop "'+t+'" on "'+n+'" tag. Supported values are: '+e.join(", ")+".")}},_match=function(e){return function(r,t,n){var o=r&&r[t];if(o&&!e.exec(o))throw new Error('Invalid value for prop "'+t+'" on "'+n+'" tag. Expected "'+o+'" to match '+e.toString()+".")}},array=function(e,r,t){var n=e&&e[r];if(!Array.isArray(n))throw new Error('Invalid value for prop "'+r+'" on "'+t+'" tag. Expected an array.')},none=function(e,r,t){if(e&&e[r])throw new Error('Unexpected prop "'+r+'" on "'+t+'" tag. Expected none.')},PropTypes={array:chainable(array),match:function(e){return chainable(_match(e))},none:chainable(none),oneOf:function(e){return chainable(_oneOf(e))}},Strengths=["none","x-weak","weak","medium","strong","x-strong"],breakTag={type:"break",propTypes:{strength:PropTypes.oneOf(Strengths),time:PropTypes.match(/(\d+)(m?s)?/),children:PropTypes.none}},p={type:"p",propTypes:{children:PropTypes.array.isRequired}},s={type:"s",propTypes:{children:PropTypes.array.isRequired}},interpretations=["characters","spell-out","cardinal","number","ordinal","digits","fraction","unit","date","time","telephone","address"],formats=["mdy","dmy","ymd","md","dm","ym","my","d","m","y"],sayAsTag={type:"say-as",propTypes:{children:PropTypes.array.isRequired,"interpret-as":PropTypes.oneOf(interpretations).isRequired,format:function e(r,t,n){if("date"===r["interpret-as"]){var e=PropTypes.oneOf(formats).isRequired;return e(r,t,n)}}}},speak={type:"speak",propTypes:{children:PropTypes.array.isRequired}},schema={break:breakTag,p:p,s:s,"say-as":sayAsTag,speak:speak},validate=function(e,r){var t=e.name,n=e.propTypes,o=void 0===n?{}:n;return Object.keys(o).forEach(function(e){var n=o[e];n&&n(r,e,t)}),r},_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},asyncGenerator=function(){function e(e){this.value=e}function r(r){function t(e,r){return new Promise(function(t,o){var u={key:e,arg:r,resolve:t,reject:o,next:null};a?a=a.next=u:(i=a=u,n(e,r))})}function n(t,i){try{var a=r[t](i),u=a.value;u instanceof e?Promise.resolve(u.value).then(function(e){n("next",e)},function(e){n("throw",e)}):o(a.done?"return":"normal",a.value)}catch(e){o("throw",e)}}function o(e,r){switch(e){case"return":i.resolve({value:r,done:!0});break;case"throw":i.reject(r);break;default:i.resolve({value:r,done:!1})}i=i.next,i?n(i.key,i.arg):a=null}var i,a;this._invoke=t,"function"!=typeof r.return&&(this.return=void 0)}return"function"==typeof Symbol&&Symbol.asyncIterator&&(r.prototype[Symbol.asyncIterator]=function(){return this}),r.prototype.next=function(e){return this._invoke("next",e)},r.prototype.throw=function(e){return this._invoke("throw",e)},r.prototype.return=function(e){return this._invoke("return",e)},{wrap:function(e){return function(){return new r(e.apply(this,arguments))}},await:function(r){return new e(r)}}}(),_extends=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},get=function e(r,t,n){null===r&&(r=Function.prototype);var o=Object.getOwnPropertyDescriptor(r,t);if(void 0===o){var i=Object.getPrototypeOf(r);return null===i?void 0:e(i,t,n)}if("value"in o)return o.value;var a=o.get;if(void 0!==a)return a.call(n)},objectWithoutProperties=function(e,r){var t={};for(var n in e)r.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t},set=function e(r,t,n,o){var i=Object.getOwnPropertyDescriptor(r,t);if(void 0===i){var a=Object.getPrototypeOf(r);null!==a&&e(a,t,n,o)}else if("value"in i&&i.writable)i.value=n;else{var u=i.set;void 0!==u&&u.call(o,n)}return n},slicedToArray=function(){function e(e,r){var t=[],n=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(t.push(a.value),!r||t.length!==r);n=!0);}catch(e){o=!0,i=e}finally{try{!n&&u.return&&u.return()}finally{if(o)throw i}}return t}return function(r,t){if(Array.isArray(r))return r;if(Symbol.iterator in Object(r))return e(r,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),entries=function(e){return Object.keys(e).map(function(r){return[r,e[r]]})};exports.default=ssml$1,exports.renderToString=renderToString;
{
"name": "alexa-ssml-jsx",
"version": "1.1.0",
"version": "1.1.1",
"description": "Write SSML inline within javascript files using JSX",

@@ -5,0 +5,0 @@ "main": "build/index.min.js",

const entries = (object) => Object.keys(object).map(key => [key, object[key]]);
export default function renderToString(node, options = {}) {
if (!node || node.type !== 'speak') {
throw Error('Expected SSML to be surrounded in a <speak> tag.');
}
return render(node, { ...options, root: true });
}
function render(node, options = {}) {
if (!node) {
return '';
}
if (Array.isArray(node)) {
return node.map(child => render(child, { ...options, root: false })).join('');
}
if (typeof node.type === 'function') {
return render(node.type(node.props), { ...options, root: false });
}
if (typeof node === 'string') {

@@ -9,5 +29,10 @@ return node;

const { children = [], ...rest } = node.props || {};
if (node.type === 'speak' && !options.root) {
return children.map(child => render(child, { ...options, root: false })).join('');
}
const props = entries(rest).reduce((state, [key, value]) => `${state} ${key}="${value}"`, '');
return children.length ? `<${node.type}${props}>${children.map(child => renderToString(child, options)).join('')}</${node.type}>` : `<${node.type}${props}/>`;
return children.length ? `<${node.type}${props}>${children.map(child => render(child, { ...options, root: false })).join('')}</${node.type}>` : `<${node.type}${props}/>`;
}

@@ -51,2 +51,30 @@ import test from 'ava';

test('Only renders outer <speak> tags', t => {
const speech = renderToString(
<speak>
<s>Hello</s>
<speak>
<s>world</s>
</speak>
</speak>
);
t.deepEqual(speech, '<speak><s>Hello</s><s>world</s></speak>');
});
test('Renders custom tags', t => {
const Verbose = (props) => props.verbose ? props.children : null; // eslint-disable-line
const speech = renderToString(
<speak>
<s>Hello world</s>
<Verbose verbose={true}>
<s>How are you doing today?</s>
</Verbose>
</speak>
);
t.deepEqual(speech, '<speak><s>Hello world</s><s>How are you doing today?</s></speak>');
});
test('Renders deeply', t => {

@@ -53,0 +81,0 @@ const speech = renderToString(

@@ -38,6 +38,6 @@ import test from 'ava';

const speech = (
<speak>
<s>This is a sentence</s>
</speak>
);
<speak>
<s>This is a sentence</s>
</speak>
);

@@ -44,0 +44,0 @@ t.deepEqual(speech, {

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