{"_id":"@litexa/render-template","_rev":"51-0e5a22a07109dcdf26c0950ed11a1765","name":"@litexa/render-template","dist-tags":{"latest":"0.9.0","nightly":"0.4.2-nightly.157326457.1"},"versions":{"0.0.2":{"name":"@litexa/render-template","version":"0.0.2","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-labs/litexa.git"},"bugs":{"url":"https://github.com/alexa-labs/litexa/issues"},"homepage":"https://litexa.github.io","gitHead":"795625ee8ecd349565f081808eca48cd9976d9ff","_id":"@litexa/render-template@0.0.2","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-1lOnaMiuGC0vIdRDRRfnTsKWZf3AHMzbo411vTfDgtjk4GSOAeTz17vGRKal4GB/E1bLnKECC6d0Pl2uwkXNCA==","shasum":"9e4e4b97ab02ac47249a02ce189eb93816779f0e","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.0.2.tgz","fileCount":19,"unpackedSize":58735,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJczJZxCRA9TVsSAnZWagAAEvcP/Rhf2yCB6vPoWJOwL+5C\nfFPITBC0gm/FU5y6S0tApNlPTklWrfH1WglMIxBrMehMD71eHG0sUgevGn3K\nwTL4FzM7vJ6VoQuIP4F7MhpaLfJkYRY/mVFsilAA8swM7zr7i+ObU2Ezs0yL\n5iVyb+9gUpHtuPuC7hlzFvWs+Xp/z7o6+wMvIsQ5lDB1uZhkECA417+g3BxT\nWpbXdZ7CafPlr5OWOLvbDi++0avxC03bHrHaD+ZOM76rjosBD54RfHACOL5h\n3LiSa7NYJH1HGV1F1iKSSmjM1j0bltlDGDvCrgcVA43MvljZd5IrarWfRUEr\n8PX13Fi1IzatmRAtUSg4H7zUN62mYEBvWdfO1n7WeosmdjlWNP0pw4/xp/lC\noSDHbwc4tkOR3f+KJOWy24q494I6plXWN/77IMjODMH/RdnZj6jKMW9TqCkG\n++xv95kTQC/GXTIqygQPTdt+obk5bdFUvkTOb7Sa5nXO6QOPHLea91unAzRm\nxpAAnzzwzPR0WrH7MfP1kVWfsYTf6qrOTyluktrroF6pVroxEgA9ny08T2RV\nuV+EcZgk6D+L8o1mv1nJvqEyR0Bo5sFaxNbEENWZBeE18Zmm5Xq9XAe1NZEs\nHWZwQE1HydW9tjSvp6gETBCXcb4woJyeR72cyanYZdgKlvOF3U1PTYy7zRSR\n9AvL\r\n=gmu4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDqSs3UiAqSxJ3XJ4N4AD8TdoS0BUVz2Kxz6860EC4z+AiEAgRubT+bjGOWzNlLYr4M/ReWYx/rdFTWQsDCBhSuP3N4="}]},"maintainers":[{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.0.2_1556911729360_0.1541125405367758"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.3":{"name":"@litexa/render-template","version":"0.0.3","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-labs/litexa.git"},"bugs":{"url":"https://github.com/alexa-labs/litexa/issues"},"homepage":"https://litexa.github.io","gitHead":"f9d79982170f28b81e4037f52e3df6ea1f72abf7","_id":"@litexa/render-template@0.0.3","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-tZ2GrYcn+nT5AXhB9Kx2hu06+6agKNGyFNRri1GBQpWj2tFr00L2r99N1vVEkkn8aJvZSGlM1mCTwd7uH2gh5Q==","shasum":"71176a299dcbc85e763a8cac99c6f717d7873ec4","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.0.3.tgz","fileCount":19,"unpackedSize":58827,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJczLvvCRA9TVsSAnZWagAAD3cP/iHLDcujYPX4uOIt2IVA\nzpkmIwVtHPQoJqdZPPqmvIgy99MieSoHpKE1Ok1fgF40R55cWUpjozu7v0+x\nYWJ45hh8fv4Q/Px5iqIEr3mjiLqOD62NAQZ/5jlEkB612jqNAVsX0FOfTwyO\nulzad0/E1RcyFc7AuWkOxndLk3PGz5AH95cAW7PY4ths5yL5uKLc/j9vqbJf\n110aPBh4HsQplQkSKDP58UPBuPn9/VLbXmo9ppQEpuASTohvrhZzL0SIWhFb\n6kTF7zy+wYNL+0FE9x5UeJ7hxWopfmgwQ7xC1DHW4XnU4PX3ToM4XEwD+P64\nG71d6W59qzUdTsRLpWhxi9J1oXJU5uIFFSvxt/AIHGXJ82E+p5CwZ4DqAb16\nHBXDhbTfryZ0lWiH5lM8w4qmsFuKWk6JTbninA1AEvlf1AVWeGcCditsG/+c\nmnJ+5/DfHYnBET8u1tJXJOkDVKVmmzVfzo1C79AHz11NTsWiyre3trcsVzyD\nm4gdmJgzkOEUrQOCULSvtSvtceL6PBYzJkDSMC20Lb73GAuMw/CeC/S5GBOa\n6ApiJ3m9H8CuE5l+MCn/GmjYmsUi6r6K1eaZKMR3nuRe+dBml0e7KO2rvbgg\n5/S4Z3/ygasf64twR7swZJvTh7WOtk/q3YaHlkC2HuWs29b0InIHwLIObyGY\ngKSn\r\n=5wrB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFa6NyyBExE1UJz6JVUvYeaLFuKrQohwaTmIbjpsO/jHAiAJ+IEgeQOb7Ojsd46O7MlxJaz86OjmKi3/eX4TC4wVBw=="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.0.3_1556921326378_0.9348142283079193"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.1":{"name":"@litexa/render-template","version":"0.1.1","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-labs/litexa.git"},"bugs":{"url":"https://github.com/alexa-labs/litexa/issues"},"homepage":"https://litexa.github.io","gitHead":"56523ebcc830e555c1e2b43f0027a03d1eefca1d","_id":"@litexa/render-template@0.1.1","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-PaEcQEE/Zoa0Hkt28hPSO1ea4nfmWWzBV9h9heX81+OiaXh46leL/0jlJWSgFYbyC8gRxY+o+2aUfDYoVvKKCw==","shasum":"30ae25ae5754de1d3eb6c96352af2cdd63d9485c","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.1.tgz","fileCount":19,"unpackedSize":67998,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0IY1CRA9TVsSAnZWagAAjwQP/RRCII9CO99ODdCrB284\nym/lDhKqYB7IgGewCc0Yg/ROunzXi+RHAenMIshy1x9bqT3FJteL8FFwqa7T\nPRfxNxeTyoho3h2X5ZJvvnH85/e8U5d+KTIHQXARSZ3+aCJXgLwPZDAQIPaC\nr/g0dniWUxJswIAKbqu+cbUBBJYgursoojS1t8cdfq5jewV0WrQZNAF7EFXx\n0TEkITVk039fclLqUbFb+Ea/6s4DqqsC7HdEU/33wbRayp300VUNlkN+AC7L\nzK9dFxSL1/aEQ6vq/4V4l8MyThFXb3v6ea94DI9AlGZ+36cpyGVJOoZCm4Rk\nlk+UK1/9LKTnN+OAPas6mbc3/dljdG0FFmlejpSY1H8IK5XeSl+ESLwdM9OX\nayOPZiT/WGJrj/3fTaRfqxUCVVQCrskkWiCv6KwJCKYpDMH0wbW8vZ1Hy/4a\nhJ9uL6MGDSxkj8MSLQ5dn8ZZN53eMNRwnZ2h6n/NcsYuQm0F3a6ZA6MoKzY+\ndUkoJgYRWFuj/P+1SNGwCbmiRVKgPigRqQbR/b/OMJz+70rSwDE9h9JwSpwx\n1wSRyfUlHZfShmoqWxbLgW0tSM+yHhboTm7mbl9va0W/pe4Bbd8x3f1U3UhB\nOpK1jsyTswdEG25khva/tFjk4FDhEWkp4DihaoeGyGp5bSYMx2KL+a6E6oH1\ngTOl\r\n=rO4Z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE1ez/8YtbJoZz+Fj6VXxAkJ76SXqogyHz8m2AmZfcPlAiA/TxYQgQ/ukE7phCMN23ZrpudgWoRsUUUim+8Oe7x4/A=="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.1_1557169716992_0.75315667716698"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.4-nightly.110967595.1":{"name":"@litexa/render-template","version":"0.1.4-nightly.110967595.1","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"http://litexa.games.alexa.a2z.com","gitHead":"495fc60175e42f13ec3103bd81f8d2a1bcb9126c","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.4-nightly.110967595.1","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-tYVAqhLBPyJAndYmL9eIqshnMBK+RZScpqmo7Ne/Q8G8yfILghs9kaGOG+i2Pc6f3PWIx+YQO0u35jXI9U0XJg==","shasum":"c525e51e508fafefa018163ef48ead751e85146d","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.4-nightly.110967595.1.tgz","fileCount":19,"unpackedSize":68037,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0gfXCRA9TVsSAnZWagAANiEP/0k6oHtKWOBvTTdmcRS8\nS5T4fBvARkas/dE2o71JKDWTY2gxqosDibpk1HSwXaR2aYNwoDCcsUA5j6f/\nAfXcIRGKnDa8fzpGjFIculL5waltc2dVmWrQrYO8v65SSGEz3yuLP3WW2+RR\ngARFy7CrnNHnWROGk+lzx7g7sGMsOrUAXwI4BVpr5v1eZVOf4VKUHZIvBjht\nLDf1mIjhyE5CxmdWPtHTydg3rffaRzSvVD+4RO+zrtMkyeYn/Q0e08VLU8Rf\nB03STq1ZJYCPp9bhElxfTzNoGXwzeVJlR6JUMJVebUSdZRQ8++smFxVjlNHQ\nk42JZoG+8lDP8znPcPzP5CKmSJD5je6196grIfAlA3IN0jowI6yMTzUsWNzB\naBxiCbVZpTQ1s7tqmRp3nJaKnRM5HgkmyyRIuHx6BSZLQ6vQOGqvaPJ41Qhh\nuPGeW/QNbdp1doPSdpVj68HHmfVFKeLSpFE9agrKbQeKq4KUxAfp+ocXuQsE\ntPhDXKRn21yuCSWNy2gJ2ZgS69HwieRENiOj9muwE4vVJRlkaLRA48o+bYfX\n17htp8kivmxq+hmK1iluuk1bRnwLEtYFD01gpLeaVIMpX6ViiqXUOXTX+TGp\nFRHoLt7KNJdiO4AAzh4yZq3IAz2P/qVsb/epOisPMmhwYQwiC+XQM0YJMscy\n7xsd\r\n=oqMr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID8dugoD91v/kz4h8uZWOodsEgtibtOumLeLoART8JB/AiEApVOCCY+JVimeY7WzKBkyDAQQOa2eFC0WzkDJXFS8CLs="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.4-nightly.110967595.1_1557268439071_0.7814508111269234"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.4-nightly.111120854.1":{"name":"@litexa/render-template","version":"0.1.4-nightly.111120854.1","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"http://litexa.games.alexa.a2z.com","gitHead":"495fc60175e42f13ec3103bd81f8d2a1bcb9126c","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.4-nightly.111120854.1","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-aK0SNqVHRNivZzQAVA18hoo6+vkh2tRmt61TJUhnjglgTWmBcI2KACerYmxO9c3ON0Rse5v1E7u6kOS+P57Ikg==","shasum":"174277e12567402f089a797c0b228cbe4b42c2d3","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.4-nightly.111120854.1.tgz","fileCount":19,"unpackedSize":68037,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc01nQCRA9TVsSAnZWagAAo8UP/0nOJ0jVWoREAmJCOj5R\nPSG2QnFG3n0hK3SzgCJHhv0kJz1ymWsp6njqRNhF7oGw0Woz5oHEVhOXdUGr\n3vpSSD3wEGNVtbnLb/sEnTV0X6RH0XYKtenKYcShBH9Ao8LBp+R0RU4gnKqM\nf4hGrIdRSABtlhn7R4q3EZdLmW2RMlsqwVK8nyZwMZxwq1cAoDwNBknQn6VH\nd4D486eSx+i1WAkaDrShaTagahObgh7xZRyofpCQwzNGOpp+DSb9nl+tPmDd\nE8iDW2XBOlgYYZ3pDU/gfi1SBaQilSORYFVb7G3VizLOg3qVHXNxkaLOZLOp\na+ef9UrRZH6/J9cTY+RFe8fP0I09RcDpt3E5MtJbDJex6FWpYwjyWIiWzrTC\nEIHgRT6kKVwbxkCD0ocEZ7Y267Y/4e1crYmTAhlaBN9w6NNOeRuRp0MhOgc9\nRkLJOlTcavCe29ZeTYhiKcoYJnAy2uMwjl1QoW0tAnzoH0WL3yF2CdsxzpK9\nq7nDP5a9RJ7TtLNxOr7oyvZ+D734Dy22X9+4lRBiTcxsGYB+YiA0gDhTb3N/\nP2zJYhetl+7ngSvbcGprp0OC1fKkz/1FKrk8BfBta612+SAHucw7RDIdEJv9\nqf2S0tlR8W23oSL+9K/zVEagW2vQSXBP5gGNkrIFjMXdMq0XG5eMFLvPtDC9\nYdBo\r\n=AiGN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBpIQkbJUmbgBTUEu13yq0OtwYdqZ86KF0kR8Urb7Es7AiEAuSG6fSylwENLCn2x4jvSBXxQQvUw925uj4Aqf18rtk4="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.4-nightly.111120854.1_1557354960143_0.4019538183413276"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.4-nightly.111132236.2":{"name":"@litexa/render-template","version":"0.1.4-nightly.111132236.2","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"http://litexa.games.alexa.a2z.com","gitHead":"1c576668dd36dc3e2675332bf3a062056c83e02b","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.4-nightly.111132236.2","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-PPEJCM7zzSAebaJ7s7nh5ze5QLtYcM3OB6IanZikxCj7HSBheA5dyZMO9MHLJVXwT9uJGf/MASV+SzPjbeoYaQ==","shasum":"0fc8e9570a94e5a5f94a67bfe3e7b501eaaf8591","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.4-nightly.111132236.2.tgz","fileCount":19,"unpackedSize":68037,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc04GnCRA9TVsSAnZWagAANbwQAILLpDv0qm9fa1kysla6\nVJSMFChhfJSrdOzIFqzBHkIdTCTIInx4wU2OwuAmhxYMdeNo/W0ZCb5zuoR5\naDOidkw1DXCZd1yjlLynqQFMIE77Lghjf9/O0Ci9LY0Vvc/cbkV7no7G6RyI\nGnmOgKPEKPodMw2nVPSwvRTHZ6wdup/qDgR7Ql/MOKZNa3jJ07Tmo9YS5xAi\nLksRuXu7byi0a4n4KS5BF0y6mu23UqOhDhCADZA6u+BPIcKtArr6yG0shn5w\nwsTNFpJn1nCmbrdkO/XL+R1zD7S+ApSfo7ZRb0KizBiXFYDs1b9UMDQqwjhX\nqsHBbHsunORFah3Q6m9pVU4aFp4fj5aMb3vcsB/PyHWGoeI8APE5hiQ8mv0k\n93+jeQhzSylR/1aE9KpMQVKbgJjpm8RicxQC8Mtg3LbUQ/gEQ0PI/4sGho3n\n+4tCQAncp0BkBpv19BY1/aO28pjMwtAYS39mvpvWfBVSiCkvNwSevPTqNj1U\nt5VbHQR5zTfYiiDHqi8550JH2Ty7K7a7e9UMem8aurQX8w5MA3gB21Ev9WnW\n3j9UJHPzbjh1l8nRfXkmAemEffdFXx9vB3JWqtRe98Edz/8KHd9qbZ1oxYcm\n7jcWM+KbPPR4PuM/wqVQ14Bg35bW2PSv/rfUrGl287WrRpYcIs+LqhjBQ/Jr\njzoh\r\n=yUfK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBdVdnWVUxx1egkvngHkVT2t7MiqpBM5VqBDweFxCDKMAiEAwxPOaNSw5eFlmVi4iWUKWoiq1BGezxCIfxjQO31jrco="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.4-nightly.111132236.2_1557365158937_0.2991939871470992"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.4":{"name":"@litexa/render-template","version":"0.1.4","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"http://litexa.games.alexa.a2z.com","gitHead":"d89330a299df060bcd10e05f17b8dc50d28cade2","_id":"@litexa/render-template@0.1.4","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-/Anmswda4B0+dm+Uh1C+rENZJXvK30lDjY5Cmh2cawYjTgOe2/bjQ+ciK0qJOxFxbOZQt4XNt+c1gH1vAyaYsQ==","shasum":"b78891dc6db98a7ad84d27f8723f72aec437709c","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.4.tgz","fileCount":19,"unpackedSize":68429,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc1KBhCRA9TVsSAnZWagAAYAkP/2C0sKePK0/9hd+YpzVt\nxjZxnyIncPEIAED+//C0tHLwCHtYFc9mAPETIS2Yn+7mDFuId+pkTc/bQHd/\nd7AmpeZrww9GKbj2GVf/cKKXuVqJD61iEAD8IV0X5z2yI3HYJrMt/EjqLrr1\n2NCz6oUL2t6DtMcmbYDop/7R053HURYBX5If3mpCutAi+kCfoxu7SGuY0THj\nQCaVvBWOQC3KCne2zwThy4Psk8uWuNrAfgkWfxd15e6N8rQQbpHi01+iRz3D\nc1dOIMemINnvyCjg0azX0Yx2D/LTsvsviVUKXyuUOOWVk8adn5GVDIIvVIi8\nSOax/eL9aDy9x3pNZHdt1/FQaGKPg9qjW8128DNlABSwRbk8RFUz91itT9mN\ni7nhdX7d+gjMShogqbV1Gi0GgcbInT/Czz31fcWccP8L+kL40RMMHq8+kX4w\nGisoxoO3NcRZU3wmiIG9IiYZCAsw4eHhEnlVts4eePR+fsuSLjaM66lO5s1c\nwsOVbJfrY94jg28suI3XQNGJpWojmXVMIcKAsDEgaJDI8zQ7VKvf2sYrclK+\nUcGHeODSnDNfH6U4mlSYU4/h5bZPz0Ta7W4/MUeR8RSi9AVRDyojORMOO8qq\nQFwsDhOv6hWdvDricp9SszDdJ8oFdVhkdw6CnSBCNYCCfOn3gqQQdOLGSocb\n4rpK\r\n=2KZL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCw03elYQ0aABpx5Wu1Gj969AJVkp3OJqEd6/wW4uDytAIgHsX0YNKjzMMegdUGizihHQvll6qt3ef7+WSGhzyVo38="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.4_1557438560544_0.6310893139923344"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.5-nightly.112154138.0":{"name":"@litexa/render-template","version":"0.1.5-nightly.112154138.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"7b9c6d5302d1e9da84f72a64e3975f5e7d86e830","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.5-nightly.112154138.0","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-yWpn8Dv11heMznhOkAuWD7OxMRc49YMnR658Nae2Hyjro+xY2ot58cZZt41yaCgNdk7DCySNA7fzYNsz7XH5XQ==","shasum":"f5fda93c2a5b6951b55a13ab06618f89f5d94e13","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.5-nightly.112154138.0.tgz","fileCount":19,"unpackedSize":68458,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3ezNCRA9TVsSAnZWagAAyY4P/2Y1iTbUfWLnORNLjrFW\n/5mFZVYpnb/2ME4r2tsGkBI+HJUC2YiCGA8wxq1mOsswaaQ9cq9+NbGd+e5s\nn7tIxoIaymVIx749tPRCH/+uVic7xlZBKGJWdekhb77YHeEkXyY2TPpsJQoe\nEyCPvB4zlpZZQuYU1Y5c+ckLy7JwFFB1genId/j5xG5JKlKD7pw4fAK0zUex\nFlL+A78dy9xN1Zsn12j+z7SJ4jrDgQsODLf+8FpNl5t3vMV9pRQJphkPzjew\nqxsxdq9gvn43MN/ZgtTtH90pjW/EMf32Er1yls3CYv5b7on4+VOnqVl+fR0/\nKJLhuWhPNT99kpTPm9wZwMRo4nkBGvZLAggyvWkZmSzSq7vL+/Uc9nDPwQRw\n4QMvMMVEGcNrJlX8eZHl4J0wSOrcpK1KrhJYxvANL5MiCIc2rYEYkMkx1Uc9\neRBAssihPzp03WEqfkUReknICytMp4LIrz/ejFOsgnpcCmcXLb8JramNr4ii\npFQ+p07Wv3ogkK8u0GX/FiRLrujydar2l8Dy8/KnZtRLOX9uBj+M6loRZkx5\nBg/VB4OIkCnmMfDje8JWuY1Y9g4RnQ6SSIgUZZb9JP2nROVh0ofvGPwcqBVj\ndY83/achBCDp+w6qEG/nWnsependAmnqPmxvzG6F0IfEjmsaPjWZcP3GpU+Y\nZopT\r\n=sh7i\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGXYxTi7XF8dV4+yIW4CKX1sKvzCc9OOWnJo2r9aDi4cAiAmlT9bIz1C2dQeFoEdIW9AUueO5cgs37mbwIeeOMWouw=="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.5-nightly.112154138.0_1558047948352_0.6556874801337136"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.5-nightly.112295593.0":{"name":"@litexa/render-template","version":"0.1.5-nightly.112295593.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"7b9c6d5302d1e9da84f72a64e3975f5e7d86e830","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.5-nightly.112295593.0","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-vGhHc9PAL4XPUl87wUo0Rz3w71Koj6CglJJPa3n8S5wm1LWxKDpfPBcRkFxTWjoFJ41+q3t4FGwlOHPnqI4enQ==","shasum":"ae41f432ebac877a9528d440b9792af170cf5c7d","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.5-nightly.112295593.0.tgz","fileCount":19,"unpackedSize":68458,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3z6XCRA9TVsSAnZWagAA6wYP+wZ0hOUTVRv9biPEA0gE\neL149sNhmPQdg5hCIG1IhsbNhIsR3vryeCGCt9Qs+0Lo3cXCMhHGtSpR73mM\nleZjeFCIkqvaYTcz4VmnL+86+oZji+QXsDvXEHci7ojwnpH5xIXgEzgSGiCs\nGyzn4LEcFwTvhWk+Ui1q87KZwFXUI7mPhJ3TyQLTBOufEs9+QNESA/GJ28fN\nGO17uDZjY+WPIip4wWRs+EeCXvwuMI7jG+b51M47Zjrflt927OnISfouFzro\nrPB9qw8PStAzHrZCCQ1H9cskls4MWY5Of7fl22WKN+RV/OJ5/f4Ewvk4bOHO\ni7idj98WtsBspgpBcS7GwZvJ1EalMZSAd/45jE+9zgcYTxsxJ/HrJJhDCv9Q\nJM1hWM+cZJzTAskcjT1+aTo9yhunpfwqZv3dAYr1ae6XIuw6nGUmxfRcqkQO\nJjxzQAMTKn/g8tsbdICGRywqCAk9oIwKFZj2JX7I/4DZ5IDpI7M7Ftkou4KF\nh5EHKev3IOmqnUybtTAdLJ7hToTRX+bmkRfezIzdFSEpjSnZCp+jerM8ht2S\nGI6AyDlKPUPCpnWcpa6WdLTEjzOpPog9P7MNWIjv0mt+1DE5XPwFTiyN4Nkv\nMFJArf5Bj2KJgLMMb+mCUt33s+TVSWRCGcXFe8SgZXshJjd3g+R/gqDMqlyC\nzYA4\r\n=qf4k\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAVJYFLgqsbRC+vRPCM7oNeKgzO0kqJOtluOIBEMOPQOAiAteY+TECw+ejdv/SuGWEmOqnRcfMb06XENwMldLFSqfg=="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.5-nightly.112295593.0_1558134422735_0.688918315457433"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.5-nightly.112335225.0":{"name":"@litexa/render-template","version":"0.1.5-nightly.112335225.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"7b9c6d5302d1e9da84f72a64e3975f5e7d86e830","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.5-nightly.112335225.0","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-HT3gOgvZjHNeU9Vgxj9Htp01LXA7rwfsZvnYnwdLGbookoTxlaeAYbHgTmZuWMQn/tVJ5zKQ4neiweqQU2Kd8w==","shasum":"dd3fc05fecd71c5041e89465fbcd884602243cc6","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.5-nightly.112335225.0.tgz","fileCount":19,"unpackedSize":68458,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4I/ICRA9TVsSAnZWagAAKewP/2VJNv1Narme0lRQvUR+\nVJiAjJSpxU4n9ssCAvHEDzgMSEP4NmUulnT/fZwjX6KWf/p5yjPEAGl9SRl8\n9Qwlew+u0AgbF7WbdPwEA5UfdONbIOs1tJDRKI1rWg7wPx+1eqoNBEZHjfRX\nH4Km12vjkGosage9BaZa8EwnzLYvCp5nzT7XqLMCnI7H4wYV9/czhMi5+RGd\nNFTesW9e3PuG2CSbRoc25WgIEFP+w26XiamU0jCpvelexdf39thX9Fc6n29p\njSyz/2tq/QGGUcAOOt2kRHTBUpCNJekxf0KZVPueVKsbtcORN1w9ffuxgaaI\n1Iq/Ng66v2b5+a2ZC2Jru75UXFTnAXaKbmMJO7v6jeAbNumKIG9FTGhyGrXM\niz8BjTgLMbB3t9+3yRohJ4hin97EgxdPvTEvjAe3c6ImM6esNnSsELe6+ERy\n8X7rSllb6snFjIEEz57V/7gsmRwat4+7ruOvhcTuAJYvUeqW/i5Ch7MyEO+W\nO5EY/K6EezS+ST0Z+hVZIDd7OI5lOrNtVfcn0fgL5uRmGhpdd94lS1k17aTt\n3F/uc/f1LwKF0jU3dN69Y1MpV5iiPmvcYSfvRFMcscB3Gly5FuT8NjGgvzeJ\nv7aPEzcc2RQyB9fLFwva3CkdJS9Rp2o0dD9AoCheiVU1a+JSvx4SK83Gh6RL\n9ATM\r\n=bPRJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5YcAau9usB0EtD6S4gmKER0zyFtDOpnehvj+KNERUxwIgZidye8A4oNJT1OsiciJV0/XXODOarGIHCMZb76AAYyU="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.5-nightly.112335225.0_1558220743644_0.652750081352427"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.5-nightly.112374729.0":{"name":"@litexa/render-template","version":"0.1.5-nightly.112374729.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"7b9c6d5302d1e9da84f72a64e3975f5e7d86e830","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.5-nightly.112374729.0","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-ELxr95wa4+DbIEq3HSmD8WSmxo5nELd0KvXV7ksMVutP0+fPsp+AzxWHzRQNaCNrMcTvq+71hAQUBzJkahSjaA==","shasum":"21a9630894c64ee2c2cac8d20458cba1e0bb615c","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.5-nightly.112374729.0.tgz","fileCount":19,"unpackedSize":68458,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4eFVCRA9TVsSAnZWagAAVpsP/A3Qlh8eS3Byq32cSuGf\nLuryM5a7k6i/V+PQTlj9dwg7u0UeiBhb7IHXgB3c+ZqbdHPEC/ZjEwbyof3M\nl0/KKsnMKcOtKqyBfrFh6ZPNRD8OSZLvhAnJg/l2/QtNz9ykkt6m+czyAfYT\nsDXLL/6RT5TR3XTG9z52vInmTW9dVv834wM4UE2YF7OYTsE4+gkRiWIBsGj3\nyuM4com+/aiaRJRk/JCJE85o+vXZ8cWaFpZizTetjWHPV8vqgLvPak5G9p1t\nMU3XHR9igh1m6aKsXkkCfLBw2nP2m6vQITsh9JezrdtJ4+2urdsbegZvnxIQ\nctvUbmQw1ELZqdAjMKW53rVFeiiYFz0kC/wkyrkz6Srh1zm1M6sMC4PzTCEz\nymnvk5T0SQikrpLNzgPLyYdByzm1pW/BwD8u/fkEI0R4EhmEY5HGuu/oN6/M\n/WgjFuzQnyBtmv2pFF/NHjmU8tfH1/5D4NN/w+yoQEJTarhC1y8SUHKbNkc1\nreMKdfIoyIqhHEh0XvcfvZ53VW1Ip8nMUbgoV1wqsoa3NzIXvpEmgKbjKa/V\nrW339NHWcG7+8W8mIuK9rxbPudxdqHvw/kgK6pIb4KTH9mSH+V16b+/H6z1B\numjOHzx5LiMKs9K7a3/aw+vRiAahK8hr47CMnH+Zol6kwEOjpqP8O2IeBBqz\naPJn\r\n=Ez1w\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC573u3NN5A1cBX44f5gBHTiU/FzCRWpkbesOO+gs8EiQIgC8gJIanlZH6HwgxECnI6B12xICrTdcOGqv00eXTAesY="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.5-nightly.112374729.0_1558307157251_0.04863536403041491"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.5-nightly.112519784.0":{"name":"@litexa/render-template","version":"0.1.5-nightly.112519784.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"7b9c6d5302d1e9da84f72a64e3975f5e7d86e830","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.5-nightly.112519784.0","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-8dsW1MYkZ1CgSqwioUlLh3Mmieg4ElzINlK3SDqrf9wR8GdG+FiujoKj/yh2R5jRD7MemUlUHDaq2+gskEEgZg==","shasum":"e7616cdc138ef69961dea48782257846164ca775","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.5-nightly.112519784.0.tgz","fileCount":19,"unpackedSize":68458,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4zMoCRA9TVsSAnZWagAAHwcP/ieECMvnr+ibosU/rhXC\nHxd5ORhXrFaxllP86siwbgheQ9UYdlji9uEtJu9U1xjRCYHbxAwVvuCYAt5B\n74k3wG6ZayYYwoj76lIbquCJ1caig4TbhwA1O419//cuAIwnDZqVxIZ5dXOC\nm4wV63f/PAD9jGXrFCjkJRw+vwrQOb1JNUMSTqPAeYA4sCczeRyMskylNQKX\nXWDINvwJFTSHsq8QfhkWvLAG5GEaPWbDSB+3jkZpR6dmAAMNV3BWuBG722aM\nKS4zAjNQkSbEK6tC/YNCG2hDOGLpclpOomtHPN7odOgXfQgBS9JKlg1vI6My\noFthO/xJI9ewgcehjx6AyUrky0bj7AKy1WZew0DHNLZnD/vzVJeIKAQPuVhD\nZu101gEZxJ4jxzHVGCmHM3HwC9ploD78VekwB5SbVYo/9baXkVNcqhhfHmIJ\nWc/19kmMWbtXuhaIUI0/YcKFRGTAjdMekIzCHhwc7vPRf9xQ0x5wLoR8xsfk\nP4AQPuQDS8SmnS/hb91w2QFVODzsmMSpexU94M2K/J43Q9X2v2jHLAS5G6Vz\nEsDyEMSJXcgHM3rFmCzj74h0tckJTC9w/UCnEHp61mISzLma7h9KwCJGg83f\nHwwfUx749IEpyqJ6IK23fEq8xdX7JqMNbMCuuyXpNqoN9nK1PWflAFksWrJN\ni8le\r\n=tqN9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYn4jMqwG6uQVH5cO6OTL6j/x1QfEMLrymEUavDZ/J3QIgaNuGCDwr443sV0m3ozpek84TN9OAQg3aw3uepHmXmLA="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.5-nightly.112519784.0_1558393639692_0.5755387786232418"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.5-nightly.112682969.0":{"name":"@litexa/render-template","version":"0.1.5-nightly.112682969.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"7b9c6d5302d1e9da84f72a64e3975f5e7d86e830","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.5-nightly.112682969.0","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-EPJ0RWYAQDdYXels31L3EX1rVX0CryV0j45BIjcJ2X1/azjWpnW3p30/PE3JLD/FljTgtfxC3or/wiws4XHY3Q==","shasum":"2f650edd382c825ff7312e0fba9e8fcece91044b","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.5-nightly.112682969.0.tgz","fileCount":19,"unpackedSize":68458,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc5ITPCRA9TVsSAnZWagAA+mMP/0FzVw8TT8oh8cEcIbAV\nE6qg9zNSYTRU0NIUvJIkroTytBZf8dZA0wbCr3EYc//pYpIZVr6bh1xq3mOs\nv/UnKDhpqthPE1dQDkFzviYSMV6zLxftWamHDhSDhSFbjrkAeiCuLmAPKusb\n3VH3HlO5cNx+CkQyMtElEXPmqkFBgs+n5sUsa8Ql1/uoXi912sK4uhvNuBhi\n8n+KsQBlGQUgypdGzWtw03mGbewIBfBKlMIsibip4BQ6hfIZBXNxgFiw9vp4\n0DIAM81j2NZYG8XguZ38jmtq2/7QHWFOmz/9NocW69myZfiAlKQoijWAwEJ8\ncvDg542s2IpetpF66Iq5ViVWMOb++cuRHxWNshN96S/yB5dPZsoNH4HrOX7o\n9Fv785JXzd5fbC7JFTHmNb8cuNxUY5PVS5d7ENthqeGFdE9+l77OQlxo/OHd\nm8QmULHmQ6wAOa9cH7LCjh+eZ4osIFcEzd296HROqfLsn9nO9+u424cqjk0L\nl1KvNvxpocKXjSiFAZvyjWiHFr0GtMEqQ8SFlW4ScniAAXjNJwAztqWJv0hf\nfa+r+WQgKqu2CqHJ//hd/JEytpzOhidu6/BLtIyicy2z1pKbNe2+Ahh5+f+T\n4gutPuUvM9NDu6kZQHbgb/dJLzVRw14WFAA/pWzWRtdR1x4YLrE6CbL2pPca\n7sva\r\n=a3GH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrxialkK7sWpEltDsRL1W41ybEgrtswl0mkQYW1FXUFgIhAO/4w5jHHpUblnzrfokSaraydERtPj3MEtxhOMgYfMuk"}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.5-nightly.112682969.0_1558480078423_0.6659831152735729"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.5":{"name":"@litexa/render-template","version":"0.1.5","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"51341595db365ab7874cfff3faf5ffd314cd1075","_id":"@litexa/render-template@0.1.5","_nodeVersion":"10.15.3","_npmVersion":"lerna/3.13.1/node@v10.15.3+x64 (linux)","dist":{"integrity":"sha512-T3kkQWW0nUgEoDB0Ys+0gwpvloG888V82XgzWuIjO8E86A/PRkXLrK1ujKDn4WugXvW/OF/C4CuGJ1QlCMwegA==","shasum":"d935aea1c43f1596509124aea929d9053d21e03a","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.5.tgz","fileCount":19,"unpackedSize":68587,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc5b9eCRA9TVsSAnZWagAA4KQQAIaidiiYjOaogbMBjhsD\n0zbKraRmVUp9t4GAxA420PDAzqoWJpK5oQbNsmnAJcj3fRFC2pBhcyktUiB2\nnnf3u9fv2mSejwgjCXXI7QTvBFf71eeZ+tz3VfHLrreyNnHtZShTJQiQTf6z\n06SUH3I1eQ+14yYrybL+vn1lpYmxu5jFetJ18LsPF3k00y1LDSMJFMppmNow\nAd6nrqVUq4K6U3jqzucfepGKvFY4i9g+6Z9WdWB1kaYBGhh+9055q1xqM0g7\nXegelZFJAM/vb1liSToqSsVPFHFgjq7u1pNoN2s/l5zP8q3oQcZGVhVC5wcj\nbCKp4i4ZJcgYFyxaTwKaK9aICx767G+ogNTs6eeL4MkikaSgCqEIfl51ZKzf\nesbACu0CN72yHXqrRuH7w7+ueWwv8dt58ldVGzO3WjxO22EFCRuQGG+2Ytdg\ny4Fjjxa0LCG5UY5Oc4PCawQtEgACSCxvSuBWbxoBPeFDMfBlFUZnZnrcevS9\nZb4N4+Vp5B7oevH+TDjQopN3hUlOyeK3RMxXKlimIxWz0wvCpkcXA3JOkRjA\n8aro3YVl0SLK3MdKFFjli1Fnut7T8DFMSnCK5s1hhxeEw9rHwslZS9fIQTnX\n35N2foJU4mWHowF8oF+7g1JkUwwaIagf90/AcQAIIBRoOjFEwH4r0Rgwck3R\ntPyR\r\n=jXjZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGd2irOW2n80L2Td4ngvDS2FTHZ6veXfat41XfpoOnZgAiEA99sUFAL8c9dddpSoKjsYBu5IHrjyB/WlJ4wG1VKnaP0="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.5_1558560605694_0.4207587505985717"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.6-nightly.116497869.0":{"name":"@litexa/render-template","version":"0.1.6-nightly.116497869.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"46bdf16d5718eb0f5dc816579359366e080fc236","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.6-nightly.116497869.0","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-wFTuqD29dX/wsgr9FfuO9fan0DiqEcRRfjfZQ+OG89m1NxWmK5f7E3LvHh6X8hUgN8j/vznoaS7HCaUrjyjW/A==","shasum":"aa2bf16059aca88d0bd8813c1e5ffc7083a937f6","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.6-nightly.116497869.0.tgz","fileCount":19,"unpackedSize":68866,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdDWuiCRA9TVsSAnZWagAApsEP/28vQ+XaNOp14runw7n4\n2yhrauO9laY4LP8dJuPjcAva+Hj9X6L5ZjdwTYgI1YYI63qZbvyjVlXbTaSj\ns/owTUyaIT+Kmlphz7g7if5Ufn3aKZ/kiWre+eBrJkOMr4tZ8oTLfk8QPKW4\nxWtGqMy0WVXST4fHuz3pZ5P+84zXvuimMyROt0By9QlZY2OVspO3WrFhQc+u\nZzJjEKFA6N+DCDh1wFVqITbOTgkPzcKO91UY6CFbhDAoT93Duzerbw2T/vp2\nct5xidktMbxDJ0b/ilavd3/N68nrQu6Cu0/US/5QkoUF5llR0IRYUVzfwh+n\nZyA52YcRrEj/Lh/0EdjV1u0jnhAdE+l0vINnw+5lNs7gyNDFJvI3eS6JU3Xb\nEtCj81TfjxM3Nhu1KSBvErt5+pgnfyW+ELV4pmDcFB+hkVbUt1xMBIUlwF6G\njDn9GkEcMQmvc+Ox98eV7ldZs9ByYdDliUYGkSe86KpRKpaQ2dSrPgwXHs/g\nsr8/q2god/v1JzrNkmVthqytyYaqOclgGQva+s0YQN0zNQnxxrHjuSIQa/ei\nSZEDexkpkxbDQWKGTeUC6iBIkiauMp4P4D04m12cCXTMkb4nXCAoGGAGA80T\nSp5ujrPpre8OLCsd0aixUxay2IgEbUr0VyexyFrvb5f+tQKkkyO2rM5gl1Vh\nn9dI\r\n=0bQw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICcpfZSRbnsYcFOolHIFvSd0dVUn5N4ORC+EByOxsstfAiEA56aef0vNYpsvDud/hRJx0qv0Un2Mg5MeSh/sZx2+qC8="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.6-nightly.116497869.0_1561160610029_0.02373853818854199"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.6-nightly.116537503.0":{"name":"@litexa/render-template","version":"0.1.6-nightly.116537503.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"46bdf16d5718eb0f5dc816579359366e080fc236","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.6-nightly.116537503.0","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-sWhDN/oBkQfivlHFAqXrUqPQ1XKJWT6qoh2dXaXYyikpy04N5AzF7ntGfFw3+cw3gaGbCSJqlfBQMMDUP4uQQQ==","shasum":"224b90e37882645a7a7398070b408037e66cb1d7","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.6-nightly.116537503.0.tgz","fileCount":19,"unpackedSize":68866,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdDrgbCRA9TVsSAnZWagAAnpoP/iqZ49WUOoHeV8LiiqaG\nam08crbdsnled5boTtq7xh6Z3h1w5HqVOTEAW6MBluBYlJz9kWtdMf1qvceo\n6wd4CbRoHEaGfyMl/podJFUpJ2KugITdBuEJseEGNGxUAsRLKcYh+YrN5B6f\nRb6XBJPmukk9MyqntQPs91PJYhQMRFQ3vHbwCUGT8t/U3HIKjCzlnoMHy6kO\nae0JcKpk05ZVdo9ne2ybVLnOfYX6iq3VWDTKzatoZx0n7RI3ZpBCa2WeQrV3\npfVWxkbCqpSnP/Z0t398OPAa1xWwqkACx64+OoO9G84KxLVAtnytjhqhkdSV\nrwYdz3tLI25y/Ihr6GGy81KJeSASFmzDX3t71a3VUkBRUkffEsY8O1gz1vGh\nO53a/F6frQDG1KPUii9QWeckdBVTGfeY8O0iH0Kh9xRb6b/0o0jJdPs/TxgL\nLXTDRdYVsuH4nPTtoNlpZnCw7J6gUozOnwLGj+ZE8wfHjnvLxwkE4D/NEWfO\nxEpeVe2FLUZAGmbfoCQeyrgl7WtSz1N4ud0azsuPKS1nTN20IsCo5PSs3Q9Q\nHRuwksGKj4MPARoSoCETqv2v/M3XJFLqT24jBizS97lFoMHNSqLYtYkuxZ98\nFY/MmThKX7dq6Nt0hzR9vP0+QKOt1QBAhe7UY+No5cAaDRy7sE6CK4NDL5qk\nGzCu\r\n=gWFf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE6pXWuamB/SVgvcM6UnEV3B83GrOqNQDwLv7NUg+Pd9AiAyFWMDwzKRQrAQXETGH+wdyoTKt3x8R5muHYdvzHelBA=="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.6-nightly.116537503.0_1561245722006_0.8613742335249066"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.6-nightly.116575979.0":{"name":"@litexa/render-template","version":"0.1.6-nightly.116575979.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"46bdf16d5718eb0f5dc816579359366e080fc236","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.6-nightly.116575979.0","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-V+2SxqZIK7NEh4htA0cjVy/NHPP6/+43TsHV0aV349unfaMKVO/eDaUDn2e+rNTkFXXLFvS678Brj5JHm3qBjQ==","shasum":"2df04c30a5bde4c4a32755797fc7bfa074680ac8","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.6-nightly.116575979.0.tgz","fileCount":19,"unpackedSize":68866,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdEAoHCRA9TVsSAnZWagAAiHIP/R9tD/8oXV7EVsP1BXZh\nogUo9tv5aOE/glYxDKUXlOqhND4YBMkxmJbCCW6H8UMtGQ250pdUZ56wK8NW\nJOnQKKssd4hyWZnLPN3slqXQ69Tq+305X80kgjeFAZxckihyPcAp6Hasyxvo\nkq6dxDsfKTr02Hj2PD6jhHIRl1ehsJtZwKoL272G8IHd1j97Z9NSZmnk2qmr\nFqmwPr1aLOEjwsQ05qUXoqorYspRjzlshMtd3N9lRPz6ZCirZ7CGl1t4cUqk\nl8a7ymqruL/5mtjMlNjimWaF4+BsmgUEFvxb1ExY0bZazBk8uCMKByLnXmSA\nQo8fYhJwFjhca2ii1Ii3nhwhQTJkDkDVCJbO8ny9Vqk6ZQ5NJgsqYfQuhnqW\nQMJvvdfdBWVegNGiqiN7uWCVnewRmKAzqpIGK43wPOS7cHycLgIX73W35oFp\nq0ArtjQY9YdhUdjgmvO5AKbshzFV/O0UxjMxnZD2XZWK+L3EXE4DGVnqB/Gg\negDY6Z30Bms+bqj8Gd3WANn9TTsdRvm2ClO3MOwMa/9yzW98zgxVQoWsa8zb\nd24UQcAVjIeFPIf5jxd0bP+iSZQ+kr4lGcgm2b8GA/N3YxwUOWwqXwJi8oVU\nt3xaVPTnHOHd3b0dRNgrAjEXohV1+NXn0j7nvQiV11a28J7tzxhKHdv4Wdxg\nvfi8\r\n=Sxz4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDeRX6UutCLUOZxBUPLplIEy2F9T+6+1XC+aLFRxEhsrAiAcqfnS5Jj30fASaV15qZCYs6WYToK0aRIWUHofaTTYkA=="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.6-nightly.116575979.0_1561332231111_0.5391464844316056"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.6-nightly.116725281.0":{"name":"@litexa/render-template","version":"0.1.6-nightly.116725281.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"46bdf16d5718eb0f5dc816579359366e080fc236","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.6-nightly.116725281.0","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-ztvD5lAP5fpbWwsrfr/MyR6u/gGOUQQK5du6mpM8lbV4lk9c+vJ7CIWRJ8BisYQ29pGf7fBVNcvRjLHsfROPFw==","shasum":"7b32aa91493b94171b5c52608bd6b34be2a7d35b","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.6-nightly.116725281.0.tgz","fileCount":19,"unpackedSize":68866,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdEVvOCRA9TVsSAnZWagAAl8gQAI3AWKGRCsUE/A0uGZnN\nx2K7nLnWDalNteAZGv6c89WrnjSRpiCl0qq9906zsUXqv0e+8+aBpJiuKSo2\nD+d37I3dp38VkXJFZ3OMhcWgfA34Q7OZH1tamksVUd4lqIjtLxbWvQ481jr0\nREiFzd6IdIRgT10GFyP50EIbydCcDX4bBzfrfnh42NP2kHXMGqvJM7YByYSh\nxTHP9bT661vcBoNRhwSJMBMwwn0h2Vg2xqSzh1zJhrUUSqfInZI0TEl4epcX\neJFLm+nItVMh+2peXpyCWIZn2jabJusoGl+r+GntmY5lmTIGPT9ZPTD0k3R3\n3LD2NbXVYkeY7zOV/P2h/HVRc+rYSEK+P3ky2eVHK4VFf3nk9vwuRCZknUoa\nkzZDtaSa7cDGn7PpLcssvKRKng53FAPpz958Nbktlw8uOPNL/tB4ZDt/V3Qi\nPqRaj8hDDKmkNI8YHitbqrCGQMg+27aNOoh+efXgcCSUl2PRd5g1Yr35rYUk\n7Wt7F3B/HUt6ZwlT5jCQPr5LsWh3IbmJzeNtuTUQtIfsafjH3uQfaazZC1Z5\nCWRD0Q5xVwp2S4dMepMLXrTVTZ+qIIs5DVyL+YZ6Ezmhi2VL+ptLNTfuOQHT\n18kfFCFu67BmzephqiJEaQea7GDRuNe9XFVKbY8NecREMGuSENADme0cvDFj\nFqvG\r\n=Fehg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCYpowXTZGITp0SJ2WHhdp9msedzO11CkhuMlvbuMb2jQIgDSahLUpw/y/cX9nWVhXvI6KJEAZd0pAbvwq1ksVHPLo="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.6-nightly.116725281.0_1561418701850_0.9854531155446562"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.6-nightly.116894862.0":{"name":"@litexa/render-template","version":"0.1.6-nightly.116894862.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"46bdf16d5718eb0f5dc816579359366e080fc236","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.6-nightly.116894862.0","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-8ES31lFkPz9dhfjpbZW3CEeKyxJuRJjVko6lr0j1fPb83YQREN3P382PHyf49/bLd9C5FNHGWdkdseqGrQgNOA==","shasum":"b24adebcead9cc66171e6c808c1e4e3d422665b9","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.6-nightly.116894862.0.tgz","fileCount":19,"unpackedSize":68866,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdEq1ZCRA9TVsSAnZWagAAPdQP/RWvMTFiECmAZGcJKXQB\n9C3yC1XEx7Mu5ME5fW5lkeGWMEPA65NSeC79P/JTjSJhjKvS98lXg7Htjq7M\n24EBsQCO1cktX8EY/iW8gR4HfN5841UDFzNKysf/aKIpq/GQkM2idbnpF2VG\nOfsWps6yaM7OHHS/3iTCUxWJFDXq9T9x/NBddcwFl6tClClVJzlEbb0tHbll\nif5qNKeEOjZLiCLe31b74Mtu0tbWFn1YBHowmOlXx6MeqCO6rnMF2extvad7\npQmJSh3s0hCpN8lA1G7asFvCFbXM77P2rmrN4psW2ArAicvhLqRrdZ7fKK8x\npZgt+Q7bBA537927D7LCsG0S0rGIfuiApJnSLo3fsVb/c5F7x9PAs+mwQLz1\nrkpLZkG7zrpyqLLhLJpGn1YyDRMvcvbVPe2hjLx7OxZ+zlMjWwHDM1qjiPOz\nAe8jZI1kRj/J5WpcJZZ+i8+CxnKvG1wwwA+jZRBA+hVaukUPaacZUkAQ2LRe\neMubzmKTdi+CZ352b/GHQVCUHOTWtHiEzRZAn49fm8ZtlPyOPEZ6jN0staxs\nGrECxAvKCnhohgnxLTYDQY76X4bG63ehpQQ9BOBtfUYDTUP/tmi2v9vfEdka\nJ9z4R/VIU++u3c1vG74gNdq+XGp7Ew6LHVs2vc2QFPfsCcq6bzuHAPOQsbIm\nk8Kr\r\n=d7sw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDPDeXQiR0KSpBgEz9H3NeFw5ah876IJaPRuJhFq6IVJgIhANQV7OHQrGmgzlYIdt29AxPB8k4qN3IPslzza6/mIhfR"}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.6-nightly.116894862.0_1561505112443_0.8243427906303145"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.6-nightly.117061114.0":{"name":"@litexa/render-template","version":"0.1.6-nightly.117061114.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"46bdf16d5718eb0f5dc816579359366e080fc236","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.6-nightly.117061114.0","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-v8DVEp8ahJpRtUWaHxqBk658+gsQHNPmYTrQICmOs/Gk+KajVOJpPiaWr0wMRVRS5RDYFnaKm9UJR1Je27hFSw==","shasum":"847cfb134d02feb0899fa2f06c02fd0be38390e6","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.6-nightly.117061114.0.tgz","fileCount":19,"unpackedSize":68866,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdE/69CRA9TVsSAnZWagAAvYIP/0EVLgQW0wloDayAd+d8\nDNJLdG4uCBJCL/Yg+/BUGsovLuQTbzHRusDhDqWzKPLw52gL4DIW1ZMTSRyk\nwnXm50p05JYiIwknWHSSnmyB3Geb945DOlf3DICuqNvPY+D9PF3oMXk792K5\nIIbXnl8A3+l29LO039fl1905uLxOny+y9gOlwUjJzRb8qJyBgMSHoLFujeyj\nvXpWK3Jm0MZcCNAoB/2uioCh7S7Q/NoiEjO3v0A1Tb9INYaClWezQrFE/PTx\nxo0XLjouPmhSKMUIhKhkHS+Lm7nHrcIZUupbEwtu41Lpv03ZurdD1/ZXdDZp\neWBlZR44zo8on5dom8UGTImX5XDp2Nl5dAswGG7yUNsppL29PoLDWuOjeZJg\nV8+feJxK1Aq1X6lmsA/XrQbzKaZgIY7ZyrUx1P8imzK6Xr1cYBAvvvR1cXvb\nkQv7KnmYzlrszOPJslDL6l4wfxEy0UpYy0TTIQ/ziBSIkKDC8LiDT0F1iMVb\ngfp35XWLVbweUhLW/q66U/S4p5jdfPDS+y9N2/JypiXp34EC6HwhZKszPlRS\nUHnms4KL9ojXAPta6nC05pimBimAGAiEm7DS0bf8N6SCsSZ2P4FZM2dlMmwz\nreCAHxBZo6Cfw1cTSU3X32BwrznKyZYJl78Sn2JUrzB7tuyBsIKz+Axc0vGB\n1aHb\r\n=3/3M\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnNHvhUP2KwUfFuRXVKfdy9RT5/+NoA7lwNkUrnxXFXAIhAPqGnoe3ZSWWO6jyJR76GFWKt/AvV03W1JUHM5OpzWcP"}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.6-nightly.117061114.0_1561591485072_0.1268656130621728"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.6":{"name":"@litexa/render-template","version":"0.1.6","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"1c3a75c51ff0ca99e5aec086ff6f9c26fa225874","_id":"@litexa/render-template@0.1.6","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-/22qUkiOjqWu3uXRg+Eo5vQR6Sqyz7pXAuZCNkWbE4ksKJ2OYvAmCd5UEkz0mQDjI2VANt3rM++3NSKXEZfmrg==","shasum":"060203e3d00c79d893e670c5d32b94053dfe5ac5","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.6.tgz","fileCount":19,"unpackedSize":69081,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHUMgCRA9TVsSAnZWagAAFbwP/3KcyScS6U91oPF2BhWM\n9HZ+2nByufMxXgaxQfBBe2+cKk+BmxVpliLbDvg8sEqdjXMtUSDqPoG+MMWr\nnTUfWVajbvpBpwR8ZkS10V2qojUNnmF725sqoYaizGU3J5kd/lyuXO9MPQu6\nMqeoyLasS9AZHeSp14r7l83v2eLcg4A/6wFf8q07DPg5Z+AYd6KnIoUoqsSh\ndvNr5haNFOuGbMdLK9eR30OnUgr2IxxbtNiMfQagC/DhmJpkSMakdGexg2tF\nASQeo0rzCVgoGg65OnJWazE7coyhDTgnXErDqZcaCVFp8UlmksPKZkddqMaf\nd1I+OE12ekUNGzBcp+u6r42d/SknPdPt/7QD95V4+DgkLBi5YreolWgZ2HqC\neXtl1lRda0nmTBRAdb8U+w1gYKAAJJ/tBgj8dBWTmUBl6Nfm/1qE8GMVgGhH\n1gs0jP5dcEcQgCvfIkdr5UM9vTcXrAlM20gYf9F2xyE4ZKArAoVtdfgsfKTl\nPIck5tAeqQsf4TazcRugNO7GCe3Ops5RdNpp4Vr60XAvXDLV78s8Jo8WI9Sf\n0PWLxzq2A3b3sUQSevLUAUbN23YE2muBGjNFMXvfavBrxkZKMO2YnLP5Tp0d\nrcWzx7/zj88cpc8usDXf36TXdam0qYLXoByr5F+girI52T+3rC6+pzlBBLcw\n6PT1\r\n=nPci\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxAsB7LP5JVQ7oBpK/NK1im1URFbrI90nokcc3vkYN9AIgEKOvL2iq9t2xby75ag1fn8OTc6RBXqwTxf5szO7XMN4="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.6_1562198815077_0.046142556564362724"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.7-nightly.118656676.0":{"name":"@litexa/render-template","version":"0.1.7-nightly.118656676.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"085fa79a6f10a59a306b52ce8dacdf6cd29e4ea1","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.7-nightly.118656676.0","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-9HNAaaIWRj8eCnx8l9sVFp1FHJjH+wMN6XomnnoBGvHEoagzpMh3VVNn3jxsg14GkJafChwJxRzCn+iwv4wm1w==","shasum":"3e5b8a01bd36ec53b0b6d32a41c3954ca4f2b618","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.7-nightly.118656676.0.tgz","fileCount":19,"unpackedSize":69131,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJjP4CRA9TVsSAnZWagAAL3cP/1kWfl+7Fxl7q6mr+F8J\n6cghCuoqEt12Hg6qrTm6R+3FW2IYEsw2AZjlF4zKb0EWtlGIdbWOggeZuf7/\nehH+yA+T9v3evMLQQh2AQ7wuPdH4tnlJ/r7Q8zjXB00rqp6XJCE4Qtuuxqgn\ncaeeHf5x8YhCTqNPxfy6L8fUKf5b/5a0lQMCXA/r9giAIsFsRjS14zIAix03\nA5l1Hq7/F5+RYgwZdmpSVPy2URGIxL4/15ivOON9md1SbYCihEjw7Ky6GY0C\nqBLrdddCfVq4BolcSYfO0YEpn0qb6tZcAG5tLLs6UET6+1udjJ/ien28TotM\nt4CR6m1mdmoO/R7Gpc1TW1pN03WLTEj+nWHXprFYwki9Qv/ZYEzGFxqOJiiH\nAIvda1gRGAOXW+88Dn3jM8xKwllMqgSQy3J2PfoLj/wdezEsWojuWirsicXN\n6RC7Tph33yEEE6GumNsbMRGGrQQG+dJEg3XvA5045Qkg3223gSyn0vuCnj53\nzHOsfF9PSEMlegum+qpZTQg1i2HOmWsKwooAhsIfX7BZ6e+rqMYbH2msfBP8\nDx2omdw8KIpeQRHPdvhhGPHbWjTnFHsuwlLK5uEZQo87lWr5XPsTstEx/QhQ\nvbjDZu/4WqVJ54tMBOZzTQP1BH3l2RJ6OO4j2WsjxkFaMuHeB2vlCdoEbNtv\n6kS9\r\n=567Z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHIkwUwPjI9Q9/xR0wdRX5+zvmCH2Iyjuw+H4mMUpHXOAiEA0NuRZu3kpkWvuST9SXjr+qm6GYH07I5vD03D8tQvQ9Q="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.7-nightly.118656676.0_1562784759846_0.864256348594838"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.7-nightly.118827687.0":{"name":"@litexa/render-template","version":"0.1.7-nightly.118827687.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"085fa79a6f10a59a306b52ce8dacdf6cd29e4ea1","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.7-nightly.118827687.0","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-+B6/MULPEDVbJANtQ8B1/2AZzFb+nA4eG4xmzzWsTM8dvbl+JYM2uXyu6RVfWPh5Mu24Vda/yNjmy2F2eF6KaQ==","shasum":"35542332435f865bcf44f9984d3460f562014e96","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.7-nightly.118827687.0.tgz","fileCount":19,"unpackedSize":69131,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJ4O9CRA9TVsSAnZWagAAWTkQAIvgkUxvAN4AQL1Z69Vl\n8EzqW2RrD4PHPerNqsCfy+z4e5wEgjb4cFwWTfKaHFXg5PO5mBOU8v9UTIl9\nNRPgmECXz60GXQfcJmAmJRUjtWupyePJ6oR2kPv4mY8TE9uLFVaoYAr9ZBmr\nU2Dg1IOBIfKKQ4M5QVijUFBu9FAt/K8UpQFEiKGjV+xXiQyUOAF1GytuxoHf\n/KXFYwRsM8eLvmtQVt3EOS67/caJNtTbQzarx7PFUCCxxqbeCOlGR/JYm4VI\n9BYLHluiZiNaDwKCswrpsaIKxVj0IoEGtpR02uHhGvnpVs4YwIe2aE3KwqIq\nM80t6hoNEcT9avXa4j7p+4Y0bWOu5mkRHFKvpB/xVqO0WSS9HOI07a3Y4nfY\nhmZ5s6I6yea1/UG/HQOuk915d41ZacIJ2E2/woeEVnm3kpT06+oKPP4cjuj+\n9FRgtHbOYGINjMCk6GVE+6toK+Xm1k2waB+waK97Ky7B6UiQ7s40ryOjLPYq\nIvHQ2Q2SjYFtvBOY6AGljjplKiXlx08MyokWhppBelc4uThu9+o2VDX5I7Tg\nEDvD3lZwgbwpnxl7hUrQt9uBoY4GMCEQ9jaL6Q9mwB4iRqPDOsM0TTi/xLgR\n8aUCI5bCkpxdOoRUl8HDGyhDw4nMCuWAwRgOMXOAF3yAMA7CDfAK2opLy0WX\nNn2M\r\n=8z7j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGkMxwzdr/Bg57AHmWG4+xYj+v4S7rI6A9NUsMfPwIKMAiEApWerGHA+6YXMBW9MKaQBcCnAlFYpoUe/sMMrz+kVSws="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.7-nightly.118827687.0_1562870716573_0.6588940678988866"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.7-nightly.118977469.0":{"name":"@litexa/render-template","version":"0.1.7-nightly.118977469.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"085fa79a6f10a59a306b52ce8dacdf6cd29e4ea1","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.7-nightly.118977469.0","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-w5eTXo2h6KQEZ1e+/qiLhUiqHFZgqCxZFji4AalW8e5M8mtsz6zARIJvFMUnjhsL+HmeyCM1SGDHPZJGHkvTbQ==","shasum":"2a46a6a9c329d4a2e53208c9caafbd96738b2f64","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.7-nightly.118977469.0.tgz","fileCount":19,"unpackedSize":69131,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdKNSuCRA9TVsSAnZWagAA5rIQAIVCBEttoMN/HiG+NvvH\npU1Giu5BMIpy6JacKqTrEPdAH8GxzqhY7+oyBGFUgZIm5mHpgIN0WEtqFEh4\nQNQs6e3GZkIP9+P4TUgiuZAyXSbSO4dWdJBlPES9Fss7nvBlIfqJ9QO74N/S\nf58dp1eqHBc60w4TfUrSYdgMfR2iS2ekPHKp74PznN7qROA1ruNfHPeujasa\nAZcXq9FBOn7Rcs2sWX1HVlVFQ/PKEMy/ZQyiiaFUi8Q8ycWTJ4kbLqdEHGBm\net10cIn6JKj22u2En7DBqmQ6vsP0tHx5MZAH1LF/m11QXhd7HWwbjAwuz51f\nGM5vlHcIjPWHXyGQPyAKL+QqXH/ZgyQjzJBKVvT97glEakrDwbtPMWnsIxg8\nZjZHOvKTwKP0KtM2tKmqdfjRUFVJpCUHc9nskSzP95wu+rXdANxHna4FH008\nCtdfWpQYpFqJsT1ul1TXKAnypATuFrSYee72T5YaP3+4YZ1zPa+8hkbdsvRv\nce4xHCdg5ZQqJeCYLKcn7Pt2idgni8W6SgI4atNYgIree9yGiQv/KHo4PYGz\nr3mo1xSX3Z+7fcUB6unC8NBU8VAvaoS/EgPmG13VR8CGP8HvpHWON8ITERRh\nHOo2ji73F+gxdI+D9GMuQOsYz7Cz+GGbe3OBaxtKqHnZK+iwtxoULEie4ND5\nrMap\r\n=/Ve9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZ81tZmyNwWdDJBSZ4b9QQ7L1RVeLZoIdkNd2N+qA2TAIgHQFL5dJqGTwCboBIb85QSquZxorC2mDexbsnYWXfV3c="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.7-nightly.118977469.0_1562956973717_0.14730828240119753"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.7-nightly.119038144.0":{"name":"@litexa/render-template","version":"0.1.7-nightly.119038144.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"085fa79a6f10a59a306b52ce8dacdf6cd29e4ea1","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.7-nightly.119038144.0","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-4sXgBHpkq+dYyJS9mgpJ4WGDm5PYKefQ+Ma8kYfv9NaNS0yYk4AaVutvXbJUNaCxoF850mqUZ8HG0ynCRyH7vg==","shasum":"1ed78ffcc37c0b07a12b19902a29b4a332865d19","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.7-nightly.119038144.0.tgz","fileCount":19,"unpackedSize":69131,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdKiYxCRA9TVsSAnZWagAAVrMP/jHN3zTSC4WakkG3dmKw\nnwFVrkX+Nvr8hIm8GUa834zzv9xEhlSo0QhZ1wpi0aCMh4hrNTgNniALfPnk\np0nbl98sTMmsbusfACSPHXzX0SyF62ORXrBaIKbFwEfEsRuGmQnc6WqNhg5A\nvS9axBu9T2vy2fjD7jNZxR/Xxd8YkuSXjvSMNuVNsc2sWEOye/eJsmhVSDJM\nwbKZ2DX5GUX9swkx9nMVLjDtXtSAyNi+6XpRqWFVVmH8UTHttSBAh3rwNc57\ntgQ1rtiL3s+qDAbmGABRGP2ymsUGsDG5ELiSJb5ljb8WnuEMi7fEDRhu3JFR\nxAu2XgyA+Q5XoOGXafKWPA3gOv1uiLCMlOzyYrluTpESBaM3qGJvU+PKW2b+\nXjL50zUcgrEIOcjbcU1q2/hnC/70EUI7PLgGl+zr1QNGt8WiLsaPkinxfwXn\n+dNNcNSIvdVFL51Up42i4qeY8HJX6rrDyoeFcfJeE9RTOsaL6zhU1F6vJI0j\noI0yfbtt8KWAlirHcYPYpupgsOo5b6/Oll9jKfvBC3XptNIclnpbhWvmdf7E\nHFII+Qi2SHme6hdqrtvlDoEkSTG2pJVuVwkZDJSJXKDo8l06+CE832fnIsot\nbsW8Bm0aRddMclakJLhOjURvgcTRGf6mK1Ak1yontwL+NbhUPVL7uAFc6Zqq\nNN3e\r\n=VIxl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF7sTkqf88zXTt3pvRsBoorDX5/QbyZrbMEVbURGOy1IAiEAma0PCaNsijZSETOFp7gyGd5jgBsyUkag7xyg2lzwtBQ="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.7-nightly.119038144.0_1563043376558_0.3514060614707193"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.7-nightly.119075289.0":{"name":"@litexa/render-template","version":"0.1.7-nightly.119075289.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"085fa79a6f10a59a306b52ce8dacdf6cd29e4ea1","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.7-nightly.119075289.0","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-gzxQeioBy30hnxtY3k54Ag5fOi/P7EaSuX76mIUIP9Nbn9708VkmFNqdNWHW3TeQsIrNvMgDSYCShrOn3aYzyg==","shasum":"aa70859ceee9422ffb6945ad9a5747b8bd93ad6f","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.7-nightly.119075289.0.tgz","fileCount":19,"unpackedSize":69131,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdK3eCCRA9TVsSAnZWagAANFwP/0o2ZeiD/L1RIfocR2ID\nOMhfojsAscpZsXf02ZKcDjzmNTviLoa1RrHK+oZHWHNVpWokyA2H8kCTGbkX\nJM/DRzI0mcWz5S3+DldI7l8GWTRZ7/jqcljTVy0au1fGFOdTv7Z8pJ+zC1cb\nkdme9fN7GHhIrThyJLWCJpOcWsfvk23eaNBKisx24Hu3J1y+Pk/aRZEc3ROe\n0nSlJD4E63fddBJ4YlXNEy5MFjyFf7qGKYp3mBSdY9PdZ9j64LGHLa2RhZpx\n7nVxBkDJHTCESwytOyQXxGRtx8NLZZBdIbebnHOMpRdfyo3zdm0igi74LVRj\njH9IkB7UT+4YASV5YeVxWmSdGmQfZoAmACOcOqIn0ZEBJLIm1GkwwwraVQWR\nXJ3ZJ4wQVkFPOAUsbsUqIMXANQMkCF4BMNWl6RauxtosH3cFsfOqkmyxrF9L\nyOB/kOiTWCRKQHYFfxB8t3o45NOfYdDdFw0HGdtpCnyiUEMTHK7dCMuzKvJE\nB04Wub8jMHB0aXSSq8mbxM9dEi4BDzM1ulHZee6YO9fv1+WS6JcWVnmVQ5Jf\n8jED1GqURAhj7/d8F+XlTXPQ9jBdchTVt5NEnobmAR9/sBMrBmGGQMKN/kMR\naqpmluC28DcbB/pLFWrDLppaNRL9h82+zzxKbm9BGgfqU2RuUBBBRnHJjCPO\n3byj\r\n=1SOS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHQkp1B67Ob5fmgs8qyOV3Xz0GUlSLCgjd8yliyyyO8TAiEAi/EgtjcH5DlF41Nm6BH4JrFRysQBHke1DZA58c0TVDg="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.7-nightly.119075289.0_1563129730242_0.09381639420945653"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.7-nightly.119201138.0":{"name":"@litexa/render-template","version":"0.1.7-nightly.119201138.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"085fa79a6f10a59a306b52ce8dacdf6cd29e4ea1","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.7-nightly.119201138.0","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-EziOtIcH1B+5ZnQNCFa422Xp7NIvs9+HbwKd9QHi2fAqjnGihxCC0QFLhPKw4GywI3mIQsZCVny74EpfMsH/7g==","shasum":"f217143d226f040f465498356e7992a12cb3a7b1","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.7-nightly.119201138.0.tgz","fileCount":19,"unpackedSize":69131,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLMloCRA9TVsSAnZWagAAR90P/0QBCcFVE0j72/0QW5yw\nwpgk9OudMX5/5GkectOyTHkKpj2IQYiPru+F9g+NzjHZx54o3scyRR4EXfv9\naXmOAcVY8Twhn85j3Dkuzg1zNoHX18sA/0whG/G5OluiCULUc/5m0x+amTEG\nyf+MpCtcapMA1W2VyEWRjOWfcjrE1AXlA+2HVjh99uUOjphYlGyq/aExK0CN\nHXVIz2lA40mktQCTyYAJkyaN1Ff7hIlf343o6/NMuZ7Ekj4NFTXvkVqkNZrX\nWKCV56+BUnw+Yuq0qw8CGQ98O8slP1ILdbCzqdW+ZPPHh5qK/WUWWV07D8nF\nt9rqtwTMTa5Kcl0jbvs1G3o4OFIPxjs7WMcFyq1Kt1egMCIOcaA3ovw9ZC6F\nva7LS99HpSYyxCL0CWQXoKzn1i7qqjYfXaBIZDWuIM0IFUUvFBYAGl2UjNEe\nsHK8ef9feorsm4FZ6FfdMikTIfq12ZmppXDX8p8J/NZm6171pbevWBq4mgVa\nofE1LfvivSZXgNUJ3ZpbftktrHO841cNos3syPD0OvAWbKrd5G2trm8cWA/B\nSZQXWuJx2OGcUyqw4tAWKHk0HXz0uvrXMz6RdDiWNRmymcr3v/t2YC2XpMLY\n/a43RGA6u93KZYsuFW7J8pBgOYujcf2a8Bj5227hLmMYivPO9nypWrQPm/A8\n3QyF\r\n=if8i\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE23LIx4PEpTX5qmryvCL0/9ncZmJYWrWtHxDcS3YGopAiBU+7KPevaU5FqWdHi1O7iNVaVaXeFSttZrZGykmT2cUA=="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.7-nightly.119201138.0_1563216231897_0.8012859661198164"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.7-nightly.119523712.0":{"name":"@litexa/render-template","version":"0.1.7-nightly.119523712.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"085fa79a6f10a59a306b52ce8dacdf6cd29e4ea1","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.7-nightly.119523712.0","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-4IcgpWflYOxxsyCCMKxDyGPuxdot/7lLu4iRO5Lq7KcCGf2tkcRcT74t8pYPsz+/dvJhOLCNT/i214BOlzVcqQ==","shasum":"6a674a47fb8f8d5a36dd9fe2edfafea19ee04248","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.7-nightly.119523712.0.tgz","fileCount":19,"unpackedSize":69131,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdL21PCRA9TVsSAnZWagAAi8QP/jkBWoLSLo84Gen2d1Dn\nSw5uUBIo7qB+B68U5Q0SfVD9dQLtgJI79boGqNrpbyR6dnsDH+phvlTHfwiR\npba3Tbt1bGTs6lQZv4YyCcP7ai8upJgAGYSpS5r14PoMEEGkyCyR9CDKeVNN\nj8fVmAs3g8+Iev/8uNbVe6NhG+a1vr36JKSTC7nOfQa/d0eC34uBgDPDENyy\nueks7tixjKXe6fIo8CSmq1uK8gaURqBYQFywFtGElYl9LxWLM94LQKwLX8fl\nAR9fEYJqmZp4H8S/SsulS+/rWk0pPwBaHf4JS0IpSUoJZTFuYFKM9gJ0i9VR\nO4MPtIx38gfMwX24ZT3BgDFGvm29QyKEknOHWm1wz8ayeBZ8iIZ+dyr6tOmf\nEhoU/5TNOiPZrRoZyC37FihGfoZx1Dy5DaMYIRdsDbVaygqQfBCVmYxOapca\n2iZqOUMQJ4Go0Mu3n7Wu264heOa9+Z3EBWIylWuAP1PTSsIrrxRFoXtXUbim\nJnFxtMg2Mh0dSOPXeo3fsW976YIPfQPI07h286ukPePoxklU90XDZso5L9I0\ndFHxTC3z4sCNmCxGA1gLHU6sjJPkK7MPDODqXsTp9hwAxpuIfC5TTg61kZ1l\nHsa+8FHSDJ87py8+G7btw838TVbj/2Bv3CHTOlNnWnDvPqLfAMxPhb+aRuT8\nJ7DC\r\n=P7eh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClwatR5mJcT5D3sfoUz/J/B7Y7r+Lklx7/BLg156iOQgIhAJiIcDDEHkuhlSJzasDC7kSA2izPvGJ7rCDGTZqY5d7M"}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.7-nightly.119523712.0_1563389262584_0.8096157640006296"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.7-nightly.121138444.4":{"name":"@litexa/render-template","version":"0.1.7-nightly.121138444.4","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"df4f2ad1f4acc6fbbc28ba28dc4a4aaec7b9c01e","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.7-nightly.121138444.4","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-WxEBBtSlnIBoaqlnXLT13nsQm9oTRVvfZr3loifzxgbHxmeWtCl4+agZE29rCv9Iz9X7jWoGsqv+l1cGbew5jg==","shasum":"911f9dd6c5a23b0c6088e7d939e5828d0456ed49","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.7-nightly.121138444.4.tgz","fileCount":19,"unpackedSize":69070,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdP0BVCRA9TVsSAnZWagAAcoIP/jKtwO6k30nVpoib8oK0\nylGLV9E6zLpWJYBGyANi4q4RNalMPRNNxWLE33NGqYLJ46DW+3+sAdqtn8UL\nb8o5fpjozJy9tQA8x48OM49+BqKH/zjxrR/QwnxxHvOnxJYAxGnR5Dks7cDf\nIFZl4GB6vmfiCnYIEH7p4YQGbcuwxpeSP3jmzqecVTGqOZ4MJpeJYrdUwEQi\n/H0Up+yd1/rW9LFiBq3OlBjKjn4ud75t/FB/Q/JccxMB59GWwSRcMy7gyYM7\nbNMvK9vQeDUoeaDGbqaFV9zY7lmbvUuh5a3gIJlaUGH+mGAEArpMM7dXz2U7\nf4kUvH3mtoYRq3ZEvDi9DJCK1kCJMl6YLS3f3zgn8zMr4VbOoV1InjPmTik3\nSbb0UwAlFhBqrcCnkCE+QHnEEHnF6VVixJkIfUUFv2wGNVUspfXcCmFyYRPp\n75O1XGyIcZhCmhTvk8i9gNE+NuvvAi3aGGngX7MT7swWkY97UFVS39a2YXzH\naNmsEc4dPVvH1LA2OFfI9UrBA31F4ji8b3beMM3fbbfHt7/VVrkDNrkZm5WN\nvG9Kh4AFm4ftnnAuO3UK6xtVDSY3NHcnSj6pyDddu4Q+kE7w3Jd4Nf4YU/ps\n3E0sWwCpIuRS7YF+wwlEQ0Zuwp73HPGgFY8Ole8QaXTFO5RCD9DZdzwkpLVv\nYDE2\r\n=zXhl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH6D0D59nmbAjY7t5neV+WXLtOSFuIjkBOXzLWVDnLenAiEA/vDJQa1uhH87sARRXJy7iHkHUhaO4xKYP434TBNWsb4="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.7-nightly.121138444.4_1564426323895_0.9682725232584741"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.7-nightly.121301407.4":{"name":"@litexa/render-template","version":"0.1.7-nightly.121301407.4","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"df4f2ad1f4acc6fbbc28ba28dc4a4aaec7b9c01e","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.7-nightly.121301407.4","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-UqWFg1YR3iKU74mi23fi6a87HYe1+bwdCHuQVnsY8OQW3gjDOssuWlmzF0yTiH/ceTrqGFLiW/1F44EvmhtTkA==","shasum":"e196b9de2d807dc768f9b3dd6ebafff96f771a7a","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.7-nightly.121301407.4.tgz","fileCount":19,"unpackedSize":69070,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQJHdCRA9TVsSAnZWagAAfk8P/2XFaM7VFpA8ecRdpHSs\nby+t8Q0O6lY9aVnUU1lCYzFwMhSRq7+GBFOT0ZTc6RN4Uf8HJZNz33ChWS/6\nOj4HkuVw3EN6KHO5MDSgxnroSfbP/pwnyZM1W2TLn93H0PP+DyAThPU8GA5Y\nHXbkjZ48pWPBkdWXH+PTWNWCrFqeaPYCDViHliWjHAORGKXAqDiGP7WgzX1F\n6ZT27DHZh+niBJO5bgO4D7rQk4u4CPGtfkx/1I5D09Amgzkza77pVAm4zJTN\nh1KJbQWL/oHyVN5KPR7W+iHqaINEwKrK3Oythkjxk2Q6XNzJJpeNGaUhQuPh\n9R2uuLYk9Tx1S+rG3OCV47d8l14+7fKBP2pHzUMhPpB5831j/n4lnNB50j8O\nTtaiqBV51yRkpk3bAcDWDF6F6fy9QIUcFrklHGqqNBUeemTctgqeHRpexaMt\nGG3l/8p5v9cLnwLWiOlK+ebIm7QP8X+hs2wyeEoqxaR0J4FSA3TO1LrKslsK\npRx5+pSwYntQgGtk98K2w0Zb1yj4R9anXFLxjA9ZMkXFLJBPri+E/WeZjJ0B\nuEJHZ02E7z91j8+q6vIsByYq0CFs5RsB+iVVXFGsBorkKhfqoKxO4Tz8Nbsg\nmACq2eNPv8FKg+KCeH7gFEm8/ZGURbHga4jOvREkw8iFjYIBsyPPANMuwVBw\nMMtQ\r\n=JvAQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBteiePH4GsdWbkw6IDtUXxasgnMdcmJ5WxXtnxVGQbUAiEAtvpxN6ibzPqgRJ/WSKSy9syrBbusfJWikFWBrqQcvLs="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.7-nightly.121301407.4_1564512732432_0.08135516456077996"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.7-nightly.121465221.4":{"name":"@litexa/render-template","version":"0.1.7-nightly.121465221.4","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"df4f2ad1f4acc6fbbc28ba28dc4a4aaec7b9c01e","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.7-nightly.121465221.4","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.1/node@v10.16.0+x64 (linux)","dist":{"integrity":"sha512-Fq8iUqwdvDu3qKep1bWMjdqNZoXTdDKoXxX9a71LPKofP8HNPl8+cXB80TR9zJ5Sz14SUA0fe4P9mmJCbIImog==","shasum":"583207ae1d1a304e655f5a018f7f3f0b6b7a6026","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.7-nightly.121465221.4.tgz","fileCount":19,"unpackedSize":69070,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQeNOCRA9TVsSAnZWagAAI+sP/0NQYU0eg550+zkipz2v\nNn5hGx6C69jrDu/3vZwXpkrnDJTPdJHOvDOmXuTpdjju08Rbb3pEn9PJTOEA\ncBzGbR2W+BF/l0DEZBEZbHwpnIQjuGRFX4T/+9Ewmhad+6vLwfT2LZfbN23O\n0N9VaysaU3yzR4DYfd4xUPitPDMhOxPKtpbO6r+m21ReX1OR3VtIUa3PAgnQ\n+zVQ0q0XXDp9Kju0hdVlyYSBAUVUiWvRuKSS6+l87bFuVWU0MdZZKxDIaXkg\nODWLwGVW22OhDt7u9QTdLZzulF35z50CFtupOC1MQyC5+R8BopsFbx4RELJG\nu2kG1KsjG1PZmMG08AvyoUoOrmRChy8uyChFoykKmkNGgfKKPPTUPU2kYbmA\n6fW/yfyL2G8etRI92ted7ok8FTFiVJ/EQglomuTYqWeUF46FBKJ230sBvhei\nlAneuKAnMVcL4zhBkF4IHUJjV+NYexLfAZLVO+veh0cLHnnGs7HmyRJUSlea\na68Z1HLhMsaZw9McWbgpmxEsq7MPRiqQwmsZ5uHleRybEiDl/Rh/zJ1hEuks\ni3Js9flI+d/YbGxKlNhs2Pl8kOAgiAv1S/SwpdAV3FIGfwPmTRoS1ZvtrU86\npRKFwmOgeM/qmwwNkCnqRAaBx0oyI734vcofa5kq6XCI60VXZXIIHSgAnZHq\nrhEr\r\n=kPgJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDokHoWslvu2iwNhDesPOeCKeUNhKY+nRPwwL+li++e/gIgPERaVpR8rRLhTr72EEN7XM9dGgaj2FmrglV7mT03dGM="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.7-nightly.121465221.4_1564599118310_0.3086009702247594"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.7-nightly.121654298.4":{"name":"@litexa/render-template","version":"0.1.7-nightly.121654298.4","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"df4f2ad1f4acc6fbbc28ba28dc4a4aaec7b9c01e","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.7-nightly.121654298.4","_nodeVersion":"10.16.1","_npmVersion":"lerna/3.13.1/node@v10.16.1+x64 (linux)","dist":{"integrity":"sha512-r9Kxr1XOUv67NtT7lP7rHAbQErxXblxlvmFvCV6YRHslTFXTjnR8WrBsmBRtJU+WYTmRK633UePrJl7Om02R5Q==","shasum":"d5227311230de50d5904bca9de53ae67f5a4c205","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.7-nightly.121654298.4.tgz","fileCount":19,"unpackedSize":69070,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQzTrCRA9TVsSAnZWagAAazkP/jpXguLAe+J9eXklWULq\nMvWZQ4eyhqwJFKLnTFuZDzTop/cQJENlYSV6rSCXpuRPg67N9+j8lMD58IT6\ncbaY/ozKc//FGUSshltXiC0W3T3pIPqD13H0W6XCJwn9h2UdCCi/VMEaFZMH\nv8wqieGUpZ4c6fI0LsbDlbwbpdnFOC0eDrn9kv7OyXBg/nfr+LLQPYNDE10g\njnu85Fwc1Qj6QBVXaB+fT81xysupz6oM3u/BTOY3Uuzuzy2hx4b57+SUcJbG\nmVdstMPmJ7+XqX+GDxVPlI8Ie3134m/emkHkj43MwIBfFi0jYNcuUhpsPayl\nnjUpt9oDUh9CjHEP7ksOnJcwVugjwqtzC1H6Jilc5B/8xDyvHKqZu54G3ZrL\nRuCJ9SphxV0aec3XmZsLTHCqZRNR1lOEzQoxh6vGCb7aTy0FclWnxgPTrVpS\nYViryQplnmk+FgNfiTIpeXCO87i2qSwDEO9FAnep+MC8vUM7u+1LC0GqEdnL\nS1WKEaplfR3H7wTPMc8PFrE2Fvlzsy5XCJXvxHtlnEHn+DPe3dBPR6hf8ESt\n1lCZ3NT9SKBJlgixElnHO/2Ir7TtKYV8TuA3kjJn7M4FDJFXhadbz+KA9ime\n6fPdYs9lhdWsydbzWm/izv+/oROAevbo8smKJKYtgCOcdWgnHwOJcsXuZGzi\ns7rh\r\n=9dIS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA7kMAP/7+pfzlyPwJv23qLmScAwLk+5ZoSgW57K7aGVAiAKEHBzDwiUxykBbIYYnrTewgszqBZiRV6UVwfB29KX2Q=="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.7-nightly.121654298.4_1564685546678_0.8014073387196639"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.7-nightly.121796953.4":{"name":"@litexa/render-template","version":"0.1.7-nightly.121796953.4","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"df4f2ad1f4acc6fbbc28ba28dc4a4aaec7b9c01e","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.7-nightly.121796953.4","_nodeVersion":"10.16.1","_npmVersion":"lerna/3.13.1/node@v10.16.1+x64 (linux)","dist":{"integrity":"sha512-hRZpjpsYamY/e5gUcu3y+15d07XLwK21B2caaP8jhhC15D/CdaNEcoXocmcePkXtAn45c6/xK8NN0b7Ll9Xvmw==","shasum":"ebac91b1dea45d1f07ccb8f1601faec0a6b2da79","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.7-nightly.121796953.4.tgz","fileCount":19,"unpackedSize":69070,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdRIc0CRA9TVsSAnZWagAAwOkP/38pRWcz/cgk2X2wsivG\n3ZTyMqoil05GnLKc8Q8FQCJ+buDkP/xkufrMukh/pkNjQkJ8W4uNdMZyQPb4\nd2RrOEkoZzv4w8ypEAWsjFaJ3snj5loQeBSdHtD5snjAVPK2Z7smSaK7fgrz\nlTpmAkEle72iQytgJnb7wBeOM76LlD0eik27ZhxLB0XBNWDI037sn35zEbkW\nj5gra09CTRWFRLBmLQ6LQLK7iI6HUBo+S31wWjb2npuWGy25QdPy89dv9FJI\n1HyuUGpxUiHkBE6DxvgZ4clCklCg8kiYwmbVGFAKaTml8x2GhaiuFQKvuPRh\nGHlSbaeuiLa8N0R6eVi0D9cZvBRwQhCk3iExZ0RsHwnnIJuOgHI2ckKFbN+5\nhvq6wzGxuh5CrQVismtBEUu2qPw1cI6C3L5jYnjs3gfp5zmujd9Sy1fhYMIR\nB1yBdQeWnURpOLw4q34SG8SyDSYe39kuRJBz7Lq0qrxWNTIbR29VAgmRS3x3\ndioTtyklKOaRhrVSGbaYYf4mLa0vV6p+QzEr+loNP1JaUdsZLbveCr76yMYz\nxjm7RP/czY/vfo7KugxOQ2wY/tlfW0lfdhb/MNlQrMRQLHwEk3UxMtrZYQKu\nyChZCy8yrhmr1lDDv4pADr+XAD3lYpj21+FSVyR40Jo4Xonrl2MpF+WMVniA\nBOHc\r\n=M+k7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1H4qx7G1wRSlOoZo2IWii9pCYAv/4jxv2xLyedFLIDQIhAOF+P+cEN68WtcgAGiF3eNsj3B+t8DCcDS2mg5cOeR+3"}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.7-nightly.121796953.4_1564772147401_0.35412766204045854"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.7-nightly.121850486.4":{"name":"@litexa/render-template","version":"0.1.7-nightly.121850486.4","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"df4f2ad1f4acc6fbbc28ba28dc4a4aaec7b9c01e","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.7-nightly.121850486.4","_nodeVersion":"10.16.1","_npmVersion":"lerna/3.13.1/node@v10.16.1+x64 (linux)","dist":{"integrity":"sha512-R7bMTEsY6s+ytPMh5tSpcNlFGvCI726k4gCcUESau/cXhhaX7XIZNuowF+4xu5jFXHaEKOlJu6MbW3o2oIYWsQ==","shasum":"a065cf26472f32fef61a420ef8ab9bd553e4ef75","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.7-nightly.121850486.4.tgz","fileCount":19,"unpackedSize":69070,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdRdiNCRA9TVsSAnZWagAA/4IP/A08++/YgsyTzm5Qtbxi\nHXgyc84wkjh/P4xUWtTtxNbiieRcL7FSwNX65WJNj/dqoJyBAfR7Qg3X7U09\noyAVnlAOWo0F/NZbDEPLEC0fUj4T5cEMw8QZXujbyPCZqiR47OaYbMxarvuZ\nTskD6c1KHzyMyhmq4nNApWMy+eNhueL0mAHVd2KB0Xb3WnkIhPzfykOKEOxB\nFpkT5CxteNOETx/SPPEHE9r2oj2ATa/wm7hmu2A60K+hrSC2/xcZh2VH++na\njTAeMyHuf1HQdUzIfJE8g2h5uDDp+Qkd9XneWHpxpagyvST1vZL2NaTdWseJ\nXj7wN4fNP67ES3FILr9CGxWoWtGL87mdCaiW8OcYHi3O6lRuqNdCYWUUseuF\n6eR/rK8wQTXt0V124+T0TztxDaingPjW4Tmf3X9rSeEUdOjV1PzQzu/6uqLF\nnwQ2RSBJoxpVO6pP/8hb53Bo7RqDc6saQIHQQ/99DWTx1uGmQ23SeZKFyBWq\n61Kt5GoEMSiQK0t3P2noOUz0aqlW9HrRQHr7Tkht2a7TAZhNVFz1wXdYZwK4\nzXNsBIMSapncY/U76b2EW1MjvZvG/kNNo4v0AcPxCcPMQkJmxFMGL4tPOGGp\nkFe+P5glFqhYIbmeap9CgL01yIfj1J6pVz/roTm9Nyg3KmKzAN0S1i6gbyeZ\nQScZ\r\n=Jgqc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDrFaSkB2R2N8ajl2NJOpO7sQEOQfD4mfZ67aEflUt8mQIhAKzgLOof6oU48NYQRRU0h6hgf8dYaFM3n8uR2QJdL4t3"}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.7-nightly.121850486.4_1564858508763_0.20812157894384065"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.7-nightly.121882823.4":{"name":"@litexa/render-template","version":"0.1.7-nightly.121882823.4","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"df4f2ad1f4acc6fbbc28ba28dc4a4aaec7b9c01e","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.7-nightly.121882823.4","_nodeVersion":"10.16.1","_npmVersion":"lerna/3.13.1/node@v10.16.1+x64 (linux)","dist":{"integrity":"sha512-4tFzG9QY2H+UIF/+AbHZNtEhne3fJMOlsKph2UiDj0e9+6YtRY1Iuot9ifSpSbDvVqagTkk4woBtg/hcJVfJjQ==","shasum":"117df432230574056a4b9e9237104af2c68e5a5a","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.7-nightly.121882823.4.tgz","fileCount":19,"unpackedSize":69070,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdRyo6CRA9TVsSAnZWagAApQEQAI8MdtBCdOcaJcziLVLF\n2t95YtggZXctK98Dn5v2X/J+Wl5dxUPmDVYLoML1gxvaGbV669GhPJ8pG2mB\nCGuCxRNip5zKDpAUDETgtwUQ9nsIHvWKu/TAMNKtpbRLhlWSUEPZMrThdeK2\n3YVMYvt12wrguRyidMKM/lMNRu/QLisuzVjtucoXsl/eQQ+k1g+KByn2wTpn\n5sLuryu8Zort/nIGh1G4NISDfWCutW7u1dio3dDEvRs/5c9NIgvquTrhV2Zs\ndchwWivkXXSB09ac1/Uv+leoY0GMSmifkXtlL2eE8OXon4sr+Lw3Qo6fERLP\n31UE+vw/aPHJ8U+DSu6Opa4GBWo7Tv8VPwI3u29enthchJpLJgDe8MEpcBmq\nqb0jFCRw+8dGpml9O+rvRiwar/THgHXMaKph33njjxFHHhgLc/9CR+AdDcTy\nb0NA2RIyiZKMmUMAIdlSwoVBDLKhUuWNmBQWizuxwlAueNfxOEaAHXzPFIbX\nJl6jN2AJFoZAkkL6FVbc5ehj/iTJu/j42+h7HlDf90aD9u2bBbpbjtZ/7skP\nnwQUxcdDgZVm6iADiGbOjAd9hLSbB2YV7Dvtc3uoCFk748eePrRRidEtCRaX\n0MRh+05/O6G+njLb2VOz5SdNBL61rHAwYAtdmrJQpu+iWFItIwIDtOu+wheX\nwTn6\r\n=r4Pq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICfM5sGPqAp/hu2lGbbT/ZGTsCMdHH0c3bZBej7gwoWkAiEA0d9JTlVi9RO8dEpGYDIuwuqbTuKV39d33BsS6bTYaJ0="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.7-nightly.121882823.4_1564944953620_0.8625214490158137"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.7-nightly.122004222.4":{"name":"@litexa/render-template","version":"0.1.7-nightly.122004222.4","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"df4f2ad1f4acc6fbbc28ba28dc4a4aaec7b9c01e","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.1.7-nightly.122004222.4","_nodeVersion":"10.16.1","_npmVersion":"lerna/3.13.1/node@v10.16.1+x64 (linux)","dist":{"integrity":"sha512-s0WV/j+tNoE+1yq9EKHgRWMII2KAKivrJC0X9ZbHZMZUD68jUGc58vS7cGD4r1PbkAlwErgaymVnHuPpzbjGxw==","shasum":"01b78410b6f71d1df747c6641c876bdfd3747401","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.1.7-nightly.122004222.4.tgz","fileCount":19,"unpackedSize":69070,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSITwCRA9TVsSAnZWagAAW0IP+gKk+IkcontZpZuW9+TF\nEBRAwnRukLj2kOTAZiHi0N49xfrYHT1amhSGizZMJcT+ZiMtHk12O0c5WzZV\nYcuXA52CKyzfIsS/M2R+W3SiDbOPTpgpA9/XheZUPT4OBzgcmeFKef1dGcEm\np/3JdY2TZQBUTUwocGN2wu1GFJqLKAytVA9BsxXUSN1Oaze0EJ2aRHQVRf41\nPVRn2o/ukWx0aLEjjbDvS/jDalnVf8sfL/U3UL+1p47XeGwCLHdbIQa/xorE\nxJJ3KZyTtbM0JBpZkpo6XXosM5Qni4YoEBq4A5f0ata7cOa+/z2kklj2GuwE\ndx/W/tBM7m5o33pGk0ZIuS2eeGt6vuB9B/9FtKS7EUQeo8ZyBPenFryBlB+9\nOWRW+hXYTlbcxAgUJEv9qP60KzoteP5gnoRpab0AkB13QCrQM5VXW5PutqkF\nAyVzYuPW773KlfMOli+/wnVc1fso+5yNZK0wLo1wrofGMZHNoLImxUtTAhqI\n7t0sJmGKG2Yk/Z6is+9JgyRMrq6zq7NLshuuO6ZUglbk4mqweW2/8me5hs4c\nE1DnMXu4Gpx309XgNEyIEhdGkdtfi0BHMRk77DRmXPbyRZjq4aXeM7YhB00u\nfEIreVja8OUWZ5QBWcIBKtoTMZUCMGQAaoko+QJqAGWP+sq7TpJsc4Z1F2hh\nh0NZ\r\n=aVUD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDyDYvnacD2kiU51l7d3Bq6TbYm2ecdELifpoJilWu72gIhAKHjVqKfTNJGVUDqILyVWgS8Hc3kpswoDOHnhi5aza7P"}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.1.7-nightly.122004222.4_1565033711693_0.9064648755227922"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.2.0":{"name":"@litexa/render-template","version":"0.2.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon.com"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"SEE LICENSE IN LICENSE.TXT","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.games.alexa.a2z.com","gitHead":"3adf414d624551190f210b80f940c9c0fcbb89bc","_id":"@litexa/render-template@0.2.0","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.13.1/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-SffEEP8GvJQBWRL3lSkGSm1JhTaYl9Ge8iCd+53A00DQrsNf2IIEMuoVK8C3G9LOtdgKD62o9QzDl2Wjj6/3oA==","shasum":"4cb69a4cba8c6dfe28264f06022c8fb86eb06c2d","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.2.0.tgz","fileCount":19,"unpackedSize":69481,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdgtaGCRA9TVsSAnZWagAAf6IP/10ogCzSgYL8Rs1+6aId\nuSmVzcrD+5E2UwuZxF1b6d+RmbG+nL0D52+b8Z27/su8DbhBdHuC3WjbaH+a\nSOzTcx1+7jNGOsEhP2Zd/TC+acbicJNSeUF95JACcze/F2VXPj/zxCyXuM45\n+2tNoB1CRErvm8qAp6+2dngx8joi65IcksxpR7Kjaa9/l881rgwDtE2OfBwV\nQv52nsPcFEhgLJvw4PBO9f5wKzZIKzoiON2VKMEdYgk7Sg72ckUUEL0SNJ7U\nq0bTAhYmntcmhAlTYxY4MHbGFCRXiChiwPjuob0c6qWVFOEg5Yk7CnOxFz3i\n64uJphputMN+E6wHyS6qAJXY3CQqSk4e/oio3UrfcvQPAPzj7xIdRLkIj5vq\nirpzmJ/cyuvUkj/NuXLL3laIoRk0IYe8+3L6ul+UrhzhoaeRdQa5gMJJOkmZ\nJGvT+r0oBM/6wb/ar0fdVNX4K/MNvbFC16rEASXtt05HDuH0JZKa0TRVkKir\nne9vUhmxbysIZN7xpZJzTkCOurFAU2azvN+DD+MggH9/A/eRp0aONZgbZhO8\nEkcRl5gye/h5p6Jx6E6/z6oISZsAb8JyDr9Tia1/gsGxxFwDf6AZ3BOp5xWd\nGFtAWQWEcYjCbHUm8ByvWyvxv4zWM+ToNOxLLzOFNpOyjT/6fdXUOCXKzukA\n/hC4\r\n=fq63\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEAmRxN9IysZ5VIIBjmyZjMdz9MTBb881mF3IBATsQ7JAiAVaHtXxA8Ptom4Yyd5sZo4cndu4lfvLV6esPi9gAdWxA=="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.2.0_1568855685928_0.7096150901335774"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.3.0":{"name":"@litexa/render-template","version":"0.3.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to Litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon"},"keywords":["Alexa","Skill","RenderTemplate","SDK"],"license":"Apache-2.0","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.com","gitHead":"8292531c50c47a90cb264603155b867d07759311","_id":"@litexa/render-template@0.3.0","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.13.1/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-k/CKmib8EiIB6ktFMeFRqx690rDdYnUS+jd3Tny55Yp4JKXO5YjMs4W2cflpnKiHJn25JDy8CEmTypVcVYsCeg==","shasum":"db285134ae69dc08c7463a32a4f65c59d1a35f28","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.3.0.tgz","fileCount":19,"unpackedSize":75175,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoRyUCRA9TVsSAnZWagAA10QP/2sglwZhdh3q9ip78WrX\nZkPNH60tIlGFfHrl1ANqt9wKsH8vcijHzKoTPDRnPg1Mit6dx3jtR7xArQo4\nef/82rpw7OeVQwHFb6AkQEduPieXmna8gWgyCLOCN1lizbZzYKpzR0zjbJGS\n8EKHuF8TjTcbEb8kTnb20vCH1VzVKdR7gf0H2HLJY60Kxxi8Qj45Jia1hCh6\nBxMO03ShLxT/0aNHRnwDePOvmIzK7dlKU/oQW7SJBJH/WADK7IgecloAHqsd\ngOduWBafuWFP5xcE1V0/GHpe9LceRE8nliRn9SL7Zj5lRiHX90Efp0/16RpJ\niDlCWwrOWws15nZy8mArrNHmQ3F4e1544KyjJRxHyYW0riWV27qC6fyZy93K\n+8gISaU1DNnV0kgN7jeT3D0eWFxyGe/6d/fp6QTBorW95h63UdrxF8k4kMy4\nDEnFEoLkcGQxZ0khFBMHGmFfK6SwiGr12VwtPV4GCqTy9NqbbAZELWnGEvoi\nRdigzuFKNg/UCS8FTczHAfKq/CzQ9aCclek2PwVURRbWShZbpDwQWfEmdXsY\n3bVpnN3IfGToHmApTuxkXDytcpgiaf7dURMGY8UfD9GtoIlHN6W/xQsmrlzo\nIJNjukxieZHlsHFUi/BtStStNnP/U1bhPyG+zZxQaSnu0Mojm/FheHTXcIx+\nBWEq\r\n=haqI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDm9WouIYaSrDDQjwUyS+xqx0xn9C9YBEcCL9Fs/BEdLAiBp1zd71bfu5C0wpxdWGE8YWTM5v/0bTPeQ7+KQhFFhXw=="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.3.0_1570839699984_0.6552430914358762"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.3.1":{"name":"@litexa/render-template","version":"0.3.1","description":"This module adds support for the Alexa Display.RenderTemplate directive to Litexa.","scripts":{"build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon"},"keywords":["Alexa","Skill","RenderTemplate","SDK","Litexa"],"license":"Apache-2.0","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.com","gitHead":"0a9b12eed2e37a861122c71cb3f3ac26ea9fe4bd","_id":"@litexa/render-template@0.3.1","_nodeVersion":"10.16.3","_npmVersion":"lerna/3.13.1/node@v10.16.3+x64 (linux)","dist":{"integrity":"sha512-A0Kf5ANcglio1zNRSwrt9reHMHhDxRtSh8LQ3PhoFhQLifSkzvUbqrGmEc2kyhn0HwDOY8ld0WMmOdOzc1X47w==","shasum":"b01e1c337e57231718c33c657e347fc09feae400","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.3.1.tgz","fileCount":19,"unpackedSize":75494,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdpP1QCRA9TVsSAnZWagAAcw8P/RjFaPZuFrnLoNx73ebi\nI81MKLyJqvh9emmABa4NsdknV1XUzQnue+7B3XGM0lnoPto+7HrSgJQc7lxG\nX8lKcoULca/PLaAdPZwGc9x18iZY3XO8zkjhdsWW74b7GOmEm+vsqgzQXc2r\nZf1PFIsH/ZDYC8skXB36z9ZKPDBPDLPOB2QcYHiBPXg7op+wv0WfQNV/dIWg\nBN6Z1gfyTosZPR7gy1BW5U+5YKuKLjxdhgU7oMbeX7BT1tMMzs12by2C8Lt3\n5a7jbf3e90dV28dRfp09fGzRFqT2fLEQyWmFlXZ+GsFIf1tZErQrb+m2U0HN\n1ALxODC/pHFVJsdly+gIiXyNkxyIM0Y5Xi8+JAFlCLJ35KhvUTsNWOIpxE0H\ndAry7UXkbi99U5PZRa470/1FiFFHnNvjQqsAcIxJII4J2yzyrH64Jzgw6Qyz\nRtk+4UwwzaqUoRjV79NmHcsVpkWmKdWPh8oc5mwmrlR/u7e5qtEGB4bSXcqh\nVz3Y1PeOJ8IPnd3G68hN2FWf/w/klY8dYCUd2HEd8w9uDRJ8r1K+55xhutxz\nEYUGM3tx9MvAnGAlkBLY5VSg47s0Cc+4316rNJRCY4odT8Ze/R2gJKfbA/2Y\nJyAwrGw6niHBRMCzfwZTuKxfJA0qMTdWFQ3rU7cUAnxj6VJZFz1khCJ6Ji0W\nce38\r\n=nAFa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDw+JZ74kSU0jUhLnbSKUXFkLR8PRboWw6NWTMnZcwA2AIhALMSXqhPeZGOBqZIm5LqhtqmZ4LFVsgi1KcAWkGgh4fJ"}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.3.1_1571093839633_0.43580132774184954"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.3.2-nightly.143460678.10":{"name":"@litexa/render-template","version":"0.3.2-nightly.143460678.10","description":"This module adds support for the Alexa Display.RenderTemplate directive to Litexa.","scripts":{"audit:fix":"npm audit fix","build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon"},"keywords":["Alexa","Skill","RenderTemplate","SDK","Litexa"],"license":"Apache-2.0","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.com","gitHead":"84d2ba7851387deed6fff571ba072018eff9a4f0","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.3.2-nightly.143460678.10","_nodeVersion":"10.18.0","_npmVersion":"lerna/3.13.1/node@v10.18.0+x64 (linux)","dist":{"integrity":"sha512-OUHJusvuu2XkrjQy7hdt7JId7vWSR9qGaVEHXDQPyn2U/d0wloj1gzlyGnGtUGmPMw5z8zlm0ZGFk2T+vVPO+w==","shasum":"d50291c468922f661a09e319078f92020887d112","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.3.2-nightly.143460678.10.tgz","fileCount":19,"unpackedSize":75557,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeFOfmCRA9TVsSAnZWagAAlEcP/i1CyvLdLNXkBihnnT1T\nAE18uOwutm4A4DjH0WR9EL9ieViBhwt3hM1Et2cwWVxU84iQyq18r5H3HjIt\ntvykTnWqR/9WX93ijj/RmiG7m0li4bq3xBa8zBs/GXf44ZC/+pEUwI0xKNkE\n+DaY19ra+3VlXyeiSBbSQ4SWdLNN8bSe1p5o8q/iyrjsqJo0RxWVdC6pS8IP\n+VTur6ASLLVlzhNfoz13Gt/rO0jz+G6S7lKMpx9AF+Ce6a3BaVC++FfdEjbx\n9R/32aOyueGjOBM28V7Y36DuOchid+e+7g6xekwiRGnoo0iJXLI6KySkYhxl\nhYLE7tD0adE7GWxqxiB7R3nW1YWD8fg2/PGIKrfn3e5AkbOCw288sT7jfIo1\n6dv2iDm65I+prulAmN5Es6Up6jr3rJnBo2JBt3jFnX8dMM2r50B2jjh58AAv\ne8q8XaBtScIhTc28dxpNZ/4qBQWO4LNFphbBjvGXXYeg9IYDNyFiLRwkgO6L\nMkawN8fMOqtJqOznL5BLbMVGK7AkD15kaRJMgXtCdi1GCH51OtPPh6Zj+oeC\n5l+4McFie4Xwo73pJaLvSHhB8rQbVmh9jefWoT31RewDlMXISN70a73mOm4H\ns7ZD50dcJ5RMNQ/u5oxdut3WOSxy6FEQ/YLk50g8V6OR39H5TxgVFuJvepI6\n1eD7\r\n=/05j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDEDfppOdeu7NXrUgkvAVfxCp/9q5L82nbzKnIrEY8/eQIgdKOAEVPMclI1x1A6hYNdeGfHKQKZ5UyykBLYIMijSm8="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.3.2-nightly.143460678.10_1578428390381_0.7272935222324051"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.3.2-nightly.143626239.10":{"name":"@litexa/render-template","version":"0.3.2-nightly.143626239.10","description":"This module adds support for the Alexa Display.RenderTemplate directive to Litexa.","scripts":{"audit:fix":"npm audit fix","build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha \"./test/**/*.spec.js\"","test:debug":"npx mocha debug \"./test/**/**.spec.js\"","test:file":"npx mocha","test:file:debug":"npx mocha debug"},"author":{"name":"Amazon"},"keywords":["Alexa","Skill","RenderTemplate","SDK","Litexa"],"license":"Apache-2.0","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.com","gitHead":"84d2ba7851387deed6fff571ba072018eff9a4f0","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.3.2-nightly.143626239.10","_nodeVersion":"10.18.0","_npmVersion":"lerna/3.13.1/node@v10.18.0+x64 (linux)","dist":{"integrity":"sha512-oRpQSW9fwSRScZA/rXwRpMI+a5QuM0WWv8CluM4VdaLOx3ehTg54HYl939ohjpMaj9OHR/TmgVOr5HE2b1+roQ==","shasum":"5a18aec8ab08196cacb4163c627792c5614847dd","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.3.2-nightly.143626239.10.tgz","fileCount":19,"unpackedSize":75557,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeFjleCRA9TVsSAnZWagAAuQcP/i0k8wVNS7a3hDNaXUY1\nh4R2x9lJ9qUIIdlNQbdHVuO7X6hv72ukqUml19qDW9LfL7AtJcmkuDQddnzQ\n4ANwDmYjt7WdTqo0c9WIpv2gjKmJcYjGK46AW+AlEiP6lyFButwOIyF0yBxK\n6W8Dfs5Z0wfhweXqhDfHyq30lj2ZZDg7uySuHeY5zZjB3/yer4J4Hq2hXkoR\nsyrJf1S1lyNHrlrLpFOvIMkcfwOeIgcvLOlwEticCo21BCvl/Bo7ZRCAmEP/\nll8PCIzwdKx1Lb/yuwf+D6HDzXjnJcUwRCNbdZMX5u0lW/0rCDy679jn7Ka+\nXBz4QVHaBgikCFeKJ0bhfcFnchX0P6d12uCrBXkstiutuB8IPdd97HtVScbw\nu1YwOtHzAaZWjBCu8nxd/wlqcAC3WS+OQBsqz/BHHL6+dHigYblUP6WaPG+5\nf3xJTGT6qOfT2jvYg9i3FXO3Bg7RTMq73uGLmmJJ/I6JTUQr5t48D22BXciE\niaLmeGGlWiR196n+OnyIxmsAZh508THb/W/KGvLtGakRVqvXmB2UPyTBJgXl\neCdQgf7E3Ant4FbcyYAL2MCXxix7wMx0HaL/C3y6y0wGVdEUUtZnoP5d3AGH\nfeU/hTraH44C3ukSeJiJF09tFixCl6tTinH3sKpj5MUVrW4CjEl3n4c7Spjg\ntgmC\r\n=5ojN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA2ZvpLnwACHgPvEJ5CUA2oC3lMxKutzpOKDpEAScPEPAiANymRrv+mVX+D6oMDaGteHO/GjuVK+DBbVTYhGf2rD+A=="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.3.2-nightly.143626239.10_1578514781974_0.5581240174627085"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.0":{"name":"@litexa/render-template","version":"0.4.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to Litexa.","scripts":{"audit:fix":"npm audit fix","build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha './test/**/*.spec.js'","test:file":"npx mocha"},"author":{"name":"Amazon"},"keywords":["Alexa","Skill","RenderTemplate","SDK","Litexa"],"license":"Apache-2.0","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.com","gitHead":"5f203822eb5ecfad5590d02d8d3c8b1a39a44b81","_id":"@litexa/render-template@0.4.0","_nodeVersion":"10.18.1","_npmVersion":"lerna/3.13.1/node@v10.18.1+x64 (linux)","dist":{"integrity":"sha512-zzlY/M7g+ZxtrE/uBDea+4Fsaqv5f7YF9vhvy2yu5OlzomUEFEpGCC99QaB/lc5iXx6VG7CvC6kyWPJkHuwgjA==","shasum":"2858d0f4220f1d2614ff86a24633ef286b1c26df","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.4.0.tgz","fileCount":19,"unpackedSize":75989,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeMiTSCRA9TVsSAnZWagAAj9wP+wS785g4KvEgZzYxgG09\nm0g6M4Gq76n22NlXdIq01MkN8mNSuB048wROqRossQjk14KrG4TPEek62dSV\nMnfAxDGvWcrIOYVlxAy3zrLoWIXAqShFuoFeb9P6qsP+z67P4S41hICyAIVb\nAUSTGPSCCCmDbZS2e9UwxnsAwx5qCYvhOLYXaDdUH2yrwXqGcHMZNw0ar/Jk\nsfSPmVmQcyXqtG2mheUa6bS3IYwXAV84/US3gcaJTF5GlzGtMwaeiVsMRP/j\nD11MJjd0amBvi8lEv4aB9UjUzv90H82NvZ//jH3aw/rivqLHM14se3GA9VmG\npOJfvfoy7MTqiqjn9MDfj0RiO5rfsZWIyQ1Jz7dhUGSfmWHHY8H+Mt2rAC7C\nGuNZ6ehpVjyAvzOT05xRa6v6aoanauGri/2ugHLdoP9Na8q4HnPT5iW3AJRx\nRCJALhOkiPwaeqYi3jE1Df5unlr99Z8QAEVNnWR0rDqmBPPWtUuchVcNaV02\nZK6TWNA6sh6umaXu5Y2dfL8hWbprHSr20hH8fCWgiyi1ArO+Evwrd+hoPE2S\ng0BPfdO1YiQnikXkNHL/PyRMvT0/4zi8qnT9UWwDQngB+IfInx4qIdzDe5Qq\nrVPZ3RzIfqKS+XWcJhN3KAWOZKLQ32AfPSbV05RC2cnxdA5wyROBUpA0t6Az\nsCiV\r\n=/fJ+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWRRZ35JcPGV8KLAH2zp+ZfAwkwNtEYKl0AIzpvz2NhAIhAJbalcwHEXXFP6XmD2ke+FZ7VDx5LL3XfEJrZ0oA9hPV"}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.4.0_1580344530465_0.7022400843811754"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.4.2-nightly.157326457.1":{"name":"@litexa/render-template","version":"0.4.2-nightly.157326457.1","description":"This module adds support for the Alexa Display.RenderTemplate directive to Litexa.","scripts":{"audit:fix":"npm audit fix","build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha './test/**/*.spec.js'","test:file":"npx mocha"},"author":{"name":"Amazon"},"keywords":["Alexa","Skill","RenderTemplate","SDK","Litexa"],"license":"Apache-2.0","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.com","gitHead":"f3cc7de046f0d8f633c991aeefe33e032a6f1bd3","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md","_id":"@litexa/render-template@0.4.2-nightly.157326457.1","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-SmC/6CK6kHY94x0RbqrnRl8nw+m8zi7DQvyMeelJiZFk2yQTSFJ2HrhmsNVy0ANqV0hGOhZfzyJ+7IPKaxkYnQ==","shasum":"356461ffb8fd3bf7c8bc80941da54a0ad5f28ec8","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.4.2-nightly.157326457.1.tgz","fileCount":19,"unpackedSize":76017,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeg6/iCRA9TVsSAnZWagAA9vIQAIXZZy3swjtVxn0r7uFU\nhI+G8FzjePbI57cGsiMNcxRjcjzXrwSjp51/Z9hETJjM8KGiC5plAx2lRh2z\nTQ76aQaulces7AReKNwl8xRtp621gKpSTNjbv1Jfg6T7PyQ5Irn56a9ycAzV\nY+be4Rf7bMFjtPkHrBMspManfza+u7aRbtZNwN6O/OnRLYz4fg1pyL/re8Fj\nzmI+P7o6KStjhhk9OozdVRVnKR9s7kS4dtxqZlwzUnMeJgL8LCChoVS9qyzz\nxeSxxn2y7ZR4SaB7Ztx8baUT7urO+XdS9pD18FNuh8FCZry640kBexJzwLn1\nAFUqteRiNZ138PD8MEBuo8UKGIZ6J0zboBq1mF4Q66x0MTqEEIb1Yp+nmU+S\nbqtC6LTihi9fzpnIVs22j97XD/cuZvB4Y5pQhrxQK/hnPQyxfbhjyaj9b9+k\nxsNwEO5+o233JULrRxMBKyp9CCnyt89qYQzEqa1uCm3DyhrqslJPM5it5I/p\nMeI7NTq7oCZOuZe20KWRIBC5TSFivkxWoqqh9mhK+XZNW9mR74ikGPJBNQDC\nPi3NEEsNDdbuGoIGVn9cJ0LiIX/tAX4c3ooZqXWGzA4gxai24kAigqSuiYyi\nBxD+Ft6YK28t53/KNW6JL7DxPdAfckVmCMd6JIa5ROm5TDZAN25a9xwGPSpv\ntMyd\r\n=djF3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEpn54Ym+ZTCrvQBeDvhRVNhtKooO1PS/0gCcvZaLLicAiBcBp9uixPtfU/bjinJw21t/r1zuKGnKZh2TrW6h6bNKw=="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.4.2-nightly.157326457.1_1585688546580_0.8639536341165983"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.5.0":{"name":"@litexa/render-template","version":"0.5.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to Litexa.","scripts":{"audit:fix":"npm audit fix","build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha './test/**/*.spec.js'","test:file":"npx mocha"},"author":{"name":"Amazon"},"keywords":["Alexa","Skill","RenderTemplate","SDK","Litexa"],"license":"Apache-2.0","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.com","gitHead":"89b994293c4b99a342b9306ed4d90528fee81d3d","_id":"@litexa/render-template@0.5.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-p1sMHYd7o6u36d+7DGicKFOFvNIACcCJiyySQVxgqWJrHECWsbqWe+SwRaHtqf+nx9UELJ2F8jNPdYehj637gw==","shasum":"f7fd1570d8a98219d65bc8a95727900057cb7d74","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.5.0.tgz","fileCount":19,"unpackedSize":76145,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehQy4CRA9TVsSAnZWagAATB0P/iIYLYAu4ix5RmTQ/SFq\ntzCCDW/xjhVwuhol5nt9WT9UOVR6jMypT0PoioUvBCnApO8k99dPi3oZvnQf\nXc4Y07VEzbNCJTHZwRDuNoEj7BofT9domSM+o/n+liWmGuyTkEa/Jduq9fhf\nTfN2/pTQDl9N1exWnFf8T0uNrh7qAf02Lnvx7EXiNeX/cgJ51H3zWKtH1YXd\nCnbnHePH9BIaX4Nf28/vkhKCwVE919vgNLh3BBFg9cWYQUPjWpcxIBqDUe9F\nbRcZi5rxwAu7tcpkwZi2aN5gPOeuSEsJWplKI0FcFRBpzlpzSrGHSpqmapFt\nreyULGXgSoe9LLPFrQjWWJ8Nn7EyFtk7v/c1WQNDYFtglGdciuGhyw5PmRNm\nUTQxTPiv8ZF+W3J4+NCswtoIFqWI4eDKA3loLtBixQDRhx/KzzwKF2+OlXiB\nkL4q5J9g6IUYaaYOrwDGj1umcE/meDAkyLWbpaSLjkInbceUx2BSIrL4gSLL\nCYS8/cW54IS7BYt6DM8b4hpBtZsGHTKhH9oFA968g21cxPnignO+FOTsEZ9N\ndOkgy7UyxDAPcHZkt1YmCpEYahLcubZNnTjvKV1ffU645I3SOAo2PVLUiYNE\n7ZvbEn16reDLOb0BiHqHKVaEW0VJ8kn7pe0Q4zskBIF2869r2SMkuD6FJ83+\nYKqP\r\n=VD3+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSzBG/DMQwK6YNYhfYsWvxl4kjp+xoUG1UHSPxGXbtlAIga7An3SUYgB49YSJV+lWzfySwrt72ST87uHLvHW0UpMk="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.5.0_1585777847931_0.3547420334919167"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.5.1":{"name":"@litexa/render-template","version":"0.5.1","description":"This module adds support for the Alexa Display.RenderTemplate directive to Litexa.","scripts":{"audit:fix":"npm audit fix","build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha './test/**/*.spec.js'","test:file":"npx mocha"},"author":{"name":"Amazon"},"keywords":["Alexa","Skill","RenderTemplate","SDK","Litexa"],"license":"Apache-2.0","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.com","gitHead":"12aed72dbe659ee9d246eda215be4e7c94a15ee6","_id":"@litexa/render-template@0.5.1","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.22.0/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-DgxlJoyx4k2p5SUO8UUfr3bO3dJSUIVhno4tBkyCVkUNZ11RDcPf5O10KG8GAcVO/QOl0VPfD2IpPJXOpEUltw==","shasum":"7ee07fcb4850b1f33dccc86e53d5937c3db07b06","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.5.1.tgz","fileCount":19,"unpackedSize":76302,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4/4PCRA9TVsSAnZWagAA6A4P/2ikrvxhCRB3ar1PpTso\nzAkznstV3mxxFVfkANcqdeDIQD88+dsF9a4Q/y4YqqXf5aJW88GqbfxT8hTf\nCKKOWS/jEmP00C2VbM9rcQ7lA5ETL/A1ycx00MZeBFpW9yUxK2lMGr5vxeXe\nj6m+3CvoGa6/iLIG51q1y1x8G2cA9KtIboDPeOBd3fYAuOTDfaSKvwZUOP/c\ntzlTVewfKNCMrj6kBcpRbx2Pb1AGvA9OmaTCKr+duxnuTSgKwPCQg7LEKp9l\nYbrObU1ZjAE3rIFlEeK7sfOSSKtAnFr3GiCnpVXprWoPwwaikGAXPbbjZVSb\n4ivfcX2uE9g0X/mA4YXardCb7F1DYjzZ910l6wxLTxVb8XtqOSLSoLO5Q1XT\n8quIqsapycnKguOPrUoFq/IFGW62J7eg+AcbujlkVww7aCVRCTH57vVXZ8oM\no3yPZZu0pb823f7lW1c1w1LM3//e0Bjcu9RaAm8tCIrdRp7U2MC8qdlqrLYk\nvQFp9JV5QJMUamMlcTiXrUUXypWFCrtIMonvZTCbQwnUzx1edxHe8ZDpS1I/\niOn1OzzOpdRM70jqF1+b6CGOzBNthhWk719udCvXYHB6o4jM0oS5MRC4+dIh\nknwsxNUvLo88C2/ciE1GrZw/lnHzqzRFQa+yTr5CXfkQga4DZ1btcD6t4hJh\nRi6X\r\n=wHfz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGqspOSzDeyX3fjFi2Nt9VD2G8SF+/wb3RkpYhwUCaQ1AiEAlCpjimx1bSBdRRt8RpyhPQYfVhb/3U0/47yy+OcEfx0="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.5.1_1592000014594_0.35708438187009484"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.6.0":{"name":"@litexa/render-template","version":"0.6.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to Litexa.","scripts":{"audit:fix":"npm audit fix","build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha './test/**/*.spec.js'","test:file":"npx mocha"},"author":{"name":"Amazon"},"keywords":["Alexa","Skill","RenderTemplate","SDK","Litexa"],"license":"Apache-2.0","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.com","gitHead":"7652d56addc4fbc53b4fba8de27bc7f307109cb3","_id":"@litexa/render-template@0.6.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.22.0/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-72dLYSYlX0qYenp0AfF//U+VR7IWutajLQqNY3mi8flfuHSWAlEbtsmNz2jact4SnkH1B6u73XH0rg+FKIKzoA==","shasum":"f9c30377eb42ab4cee9da94bf84ad74a13c3e514","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.6.0.tgz","fileCount":19,"unpackedSize":76458,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe6Cq+CRA9TVsSAnZWagAAj08P/1p7gIGHh3IQWWNdtyer\nVVk5u2ghsq5NzP/e5JES0EcduEk/nyguePZLIc+bC85mUaM1iIlsyCTj4Tdz\nk33kGRhFp3YnmGmQzvmdYPzRKiZKe6nr1Zw/NvdyN8xQQVoMzIFILdzG47ZL\nE0g/gD49oyw7mq1NJPghr/uRV2m2JCDehNTtLFo1hc/qcz8vEwrsmWKJ/Lrn\nEMXExNR3BcFiWnXv28CNKbaMmFCdGBcU7REf4YGDwL4q52gW5TlTgtp4oUT4\nvFP4UTp2N+WHM5EWGtTDaOoPpsEHOpIGbP3/BnNtuv43P9fAlOlrIbHySmoV\nrtdWhow1XbkGNgJOXvIdDQdEx36tEfSutmUNcu0GwJK1Mjs9MeTAImYx1nbA\n9DmmU5ZO9/oJu46HjoW0qI5ke+jE6J/2YLVrs+cP+XGHsCzXiJtyr2Yku1uI\nOdvehZeJejp+Sib5wvXura3hiN4Dk9CyUkR/E6sxFka9THr+G0klzkMMBllT\nHHlwLxic3mq8vIzQQwzI+kZCJVtxaSX9xppj2jstes3vmd8Fvy5ylKdn2X0u\nw+rh4l0iGCNd1TpwKwSNTQmHTu7ET5yvIazkC/tR1eaevTs8z4BPD3SBVcWw\nd3gYTLcXtxQZAVrsDMjmr44ZsLlpLbYH3k6eaPFGGB8WlTXWXe1WX6mUqQIK\nNPhF\r\n=P6Ji\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAY/Z/dP8VuJrjJGv5zeGM/RwIg5SHO0Ib81qUJMDr6aAiEAwwVHbCGBZrD8oyQyPXQpDWMdJB1QYhH6Z6KTMOfCy18="}]},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.6.0_1592273597619_0.09158793993139924"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.7.0":{"name":"@litexa/render-template","version":"0.7.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to Litexa.","scripts":{"audit:fix":"npm audit fix","build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha './test/**/*.spec.js'","test:file":"npx mocha"},"author":{"name":"Amazon"},"keywords":["Alexa","Skill","RenderTemplate","SDK","Litexa"],"license":"Apache-2.0","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.com","gitHead":"bfb1e3d6cd40f3fbe3491a1f4512539cdcf7b9c2","_id":"@litexa/render-template@0.7.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.22.1/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-xGH+eQCm89o7xdRtfNIktgOXM1gUs14eDOje/DWV8cZBKn6gXL50vJdWztxHBhc7iKfQaYz8+CNRabyl0r5Suw==","shasum":"a041716ab20ee992e62fad0818be3852c16d6553","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.7.0.tgz","fileCount":19,"unpackedSize":76614,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfd6sXCRA9TVsSAnZWagAA8N4P/04KoycHbWBS+alMSj7R\nhTKBNd/hsYpgefcOxRBNNomCn9+2SVvPWmFIWxdWSiZu5fJUtvO503xgY8gG\nAIVclRhdFeeUZ8lg6NnPFWL2kEMTMOObjdpRV6lATWYw5YcIodXdDtKfXikl\nN2aNgh6motERPTOMjFpyojbjPUbvLr+zWctSazHStZz8EpoBQwHqo+jb/r27\ndTxT1Q1eK7+4w07CI+bhqY/zsPMLyBi4z6R7z8JQstwxW38v4UoIAWsyaSsf\na0LdjGr16Jw6B0p0BSQY0wXAUcqdBAGEzcyUTwpnu+OmPwRWIXCFJlq9Is6x\njw9+/7sJ60oPR4M7vcX8LtcUrRnotbaNcD4tYkMei6f5oIGHcGYcYtV8B9ot\ncc3yBCAUCxXQdNh63v20UKH/T/YbtE4wd1hEyUH44PNII+vOBg3mixBIBTZe\ni7ovIvq9VmtKbkDTQq1F+de0Nh6GbIlZSyo/nElbv4xqme/Z438RDfzC2zVi\nYBocI5T1ug5j3Xf8PF2PNtqqT61UFoFklDizJYgHruNDTViMWhY9m7xWWU0V\nZxg/P7ldcv7o8hIEOsOxufWwRH2FbLlknD/oFEJ/1eIsvDPkhgujBUdM3EFQ\nvTO/I9Wkq1DMsBTYkreFp3c1jEJYzEVWKNAm4VcPvfi108QINweqVPH2y92x\nZmq/\r\n=WXMU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFMJ7AsrNJElkD5b6jp9jgPopA0QxqkAI1fpPc/D5+n3AiEAoSJE5eUkERrHHpI/S8+EGY4ajAe5AFoc9Ig358k9Y0A="}]},"maintainers":[{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"}],"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builder@amazon.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.7.0_1601678102785_0.9516081036975013"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.7.2":{"name":"@litexa/render-template","version":"0.7.2","description":"This module adds support for the Alexa Display.RenderTemplate directive to Litexa.","scripts":{"audit:fix":"npm audit fix","build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha './test/**/*.spec.js'","test:file":"npx mocha"},"author":{"name":"Amazon"},"keywords":["Alexa","Skill","RenderTemplate","SDK","Litexa"],"license":"Apache-2.0","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.com","gitHead":"4e9de1b4d975db48ade88264c869be8ebc30401c","_id":"@litexa/render-template@0.7.2","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.22.1/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-wU3xKOtp1yoOn0isUac6wyrfcD444RNIT4/YjHJcHF10ykosOt8wDTLQcpZ+/tOmPhuutj2NzMWHb0sK3SGEhQ==","shasum":"6f979e22fcd15dacb19c26f444cdf8394264fd25","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.7.2.tgz","fileCount":19,"unpackedSize":76771,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf67vsCRA9TVsSAnZWagAAUacP/i5R8wL+h/csM3KIN5Pc\nb9wv85cuY9OTWUeZx1lfkQ+Ouc0tbgMsalszMltWBGkvXAZV1TjwS4blAeGk\nfs5csA3hWdNTVBzsExh7aehHrLkqkIjeHIsorWiCYVRJ1ZAAwC/cGYRbNQI3\n8ZHvfKp8Qp4+InJ5YSwQ4O1HHhQGVaM8nhOkRQbToOCJcsGsVBw1AHZ+1JE0\nTDNnpr4Z76w69NRMS2lVY9G0Kz8HLOqjjuXkfnklzMTzzr7CfTQKtDVe2zAP\nmFjw1K8S9C8sVsuSY44Hkw+3K9eqrrfyzGe72DQZbSwQOrRAZ3+17VROGEzn\nY0v1u7PupuZ4WbHkNcuDLMPp+nKVMV4I0Ade/zVMqwyf/99NSzVI4J0RRJKA\nZjA0nl6HSSyRAXPF9u5Uj1x0iDUyewhGBtsaABFVhOuucPTLbW/N042myXN6\npT8W1iQzXvBjI5nqEAJPiggWSst0N/JHf5YJPWbIEn/9r146WDwiz1Ghq24p\n9dTJP28+62QDYrdKq3Hsu7KH2fTjD1LoVlKqiOS4ty8tWoBE9U+b7quGwZAl\nt8xkXh6s5n4x9Re3D1PhobwKpqZfQ0tYY0EQ+P9h3jLBbx5ty0n7qNYO6Eki\nQyLhwyEiZB4DN1evQ2qhnOiRhg5BIFSUqBCkOV4VfTpMzMnTPMcTH05+CJHd\nksIh\r\n=hJiB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHk9oLNSLd5eLJHr+rbSfBqBB8/EQzg4QrwtmAD/XSN6AiEAnO5X+rh+EaWykAom6HiJayiBjy2gy6CjtMjo6xYNFBA="}]},"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builders@amazon.com"},"directories":{},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builders@amazon.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.7.2_1609284588299_0.8702085783427977"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.8.0":{"name":"@litexa/render-template","version":"0.8.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to Litexa.","scripts":{"audit:fix":"npm audit fix","build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha './test/**/*.spec.js'","test:file":"npx mocha"},"author":{"name":"Amazon"},"keywords":["Alexa","Skill","RenderTemplate","SDK","Litexa"],"license":"Apache-2.0","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.com","gitHead":"1433954be45b5d6dabe3a3282775c30830858395","_id":"@litexa/render-template@0.8.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/4.0.0/node@v10.24.1+x64 (darwin)","dist":{"integrity":"sha512-remK25raGSI8ltg2KN2x9paNXsLCJq4wSbaWrT2I6mk4ryBQcVHuFQaKoRHERgaHakU9uXBSjasgfvGlPS5yog==","shasum":"c8b90130bc51a2b004ee3363504d49d265a21f35","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.8.0.tgz","fileCount":19,"unpackedSize":76771,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh7xGACRA9TVsSAnZWagAASQAP/3eTl/dH/bhdQXOdyzul\nm3mmJiSO9vfZMGIqKcK8o0KIlhuACmezRMjTZLtbu9a5KkQ7Vxr9nmgeVL4+\ngVmoPN204teQ+rY04WBBuGF8TMGHVudKkPgiY0ijtILaNHd3A9QG39ztKMoe\nVqefUzucH2bEBTBZEvpBB7q63GZG65iPeQQa2v3pmMI/8GeKZw4/GdJlWmM+\nA5CUwrM2x7Paj6TDR6Kg7PI0s7zExQt1F7EmwOXendM/gMFx8HlER1fHqiWP\nD1bWcNBIEOuaJyYmqOCgig1Dy+lbpfOOJ0fXfEmcrthgL9dmyYX5rdDsudUK\nE4lwL9Mn3H9jOv9mSftpgkmC6XXyDb9ZowH9vrPLgzGVU9xWvucqDPf7lhs7\nd5J1KtKqlnPaxl4M4bauGU5fMDy8DAsSKZBo/YwCK2lqBXMQmak6WuiVz7Nc\nuS9AM/vqtoCIop4ERKXmQzdNgbtw1sfU3Ixf4m+4I7UPb2hxpD2mW1tofAfL\nua0SZVhJZPY63FAvZ9j9CmthWi489lj/7+zehNRBPOhs0iBXkwUdGc3vmZmR\nr9vF5+4XU9rTa8tYEnpcT6G0GjH0raFUiGeVM8XjZn6OrZkZTpu/Vcmtmklc\nHbQ17cXvnt/fRVnUQPXlTlmBM51m5ZV22BDUYlRXfIPqtnMqC1fdUNrfj6OV\nszXM\r\n=Ut9R\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpJJIfCjj5sNleEjipa1KWTsJe0/qFL2xyXd0/36H75wIgfQxH8L4kNOdJxJz0XAjUMKgygty5dflHEXog8tZ0o00="}]},"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builders@amazon.com"},"directories":{},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builders@amazon.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.8.0_1643057536287_0.6603592917799628"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.9.0":{"name":"@litexa/render-template","version":"0.9.0","description":"This module adds support for the Alexa Display.RenderTemplate directive to Litexa.","scripts":{"audit:fix":"npm audit fix","build":"npm run clean && npm install","clean":"npx rimraf node_modules","compile":"npx rollup --config rollup.config.js","coverage":"npx nyc npm test && node ../../cacheCoverage.js","postinstall":"npm run compile","test":"npx mocha './test/**/*.spec.js'","test:file":"npx mocha"},"author":{"name":"Amazon"},"keywords":["Alexa","Skill","RenderTemplate","SDK","Litexa"],"license":"Apache-2.0","dependencies":{"rollup":"1.10.1","rollup-plugin-commonjs":"9.3.4","rollup-plugin-node-resolve":"4.2.3"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"homepage":"https://litexa.com","gitHead":"1433954be45b5d6dabe3a3282775c30830858395","_id":"@litexa/render-template@0.9.0","_nodeVersion":"14.18.3","_npmVersion":"8.15.0","dist":{"integrity":"sha512-v80fsbMqGCpbeNn1x3sO1WHRVu0U1PBoYJbCDQjiNJs/WpBDG3YilpQzVC3Mkk92n6I/Ne1RU6jOAiEzX8hoTA==","shasum":"1cc2e5ccb57db6a3d5c780c8082c469044c3c553","tarball":"https://registry.npmjs.org/@litexa/render-template/-/render-template-0.9.0.tgz","fileCount":19,"unpackedSize":76771,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCi5iWcZQbDP/6ysbxLgQOp9m1mA+fI1m6QoIHiATC0fAIgXKabIMFI4WPvzPHp92jylKoC8PH/8KFs9v7sLyheGsg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQwCqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpHkw//Sa6oykOvSH5glm3S3FSZ4Cs/jTf6f2DVhy66bQsNH/AryR70\r\nZ5EIxnb3IcC1mhZmRIQPuRsBLtx3H7C2NJgjuAv5eAOgmmKWu+BBC1btFCTl\r\n70IIjS9dBFv4Uf8HLblv32HJvJZTuI7Oip52OH7f6hAX9cJ/KlHvKnknfmRH\r\nq0Zu09H4EEgvPe5fwJ9UgR9HE5zkr7wdaAU9bwH/tk+FYvaG7gToZ/akyHNh\r\n6bm2EpcLGlhIb/IpnqGDPeTY+KyNYh6xuzaLLHWzBafYb8JjQf/rvehCuCd0\r\nY/K2Cxtgv3U4tosgR+ckPV3eKL5XXN2+mY1HAPKZFZtmsAb9wpcRcZpQO3w9\r\nzAbDKr5kKnN/yGU39WhoJZnkX7vfEG2dtyMjO9mQZih+bmkvOCF8rVv0SJfg\r\ndFsL3ehOH1ppVVZ13cnLo+l15Aj5Lih0fNWqhpcQ4ShFjlpGxiTw6oz8xKRd\r\nFiQyHhwihJ3q9NnWO/zGa2cL7W/uwvyZo+Vw/IUCSMqVrF/jskoa5AiRQqJd\r\nv5AHYliii6aZoumxJZcHmUItP1P4sNP0LdZgbyNZs2og6cjaqaTryv9qZvwz\r\nGd7FDZv+klRpUzzlKCg3wkaUdb1lbIiEtL/t4S4SfJgcBCEIFj6YLUvjx7cH\r\ng423KzQSde96SszeY0fYa7aD03zy19p+GdA=\r\n=LsP0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alexa-games-builder","email":"alexa-games-npm-builders@amazon.com"},"directories":{},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builders@amazon.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/render-template_0.9.0_1682112682206_0.9374050035176025"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2019-05-03T19:28:49.360Z","0.0.2":"2019-05-03T19:28:49.483Z","modified":"2023-04-21T21:35:43.598Z","0.0.3":"2019-05-03T22:08:46.509Z","0.1.1":"2019-05-06T19:08:37.122Z","0.1.4-nightly.110967595.1":"2019-05-07T22:33:59.250Z","0.1.4-nightly.111120854.1":"2019-05-08T22:36:00.297Z","0.1.4-nightly.111132236.2":"2019-05-09T01:25:59.065Z","0.1.4":"2019-05-09T21:49:20.648Z","0.1.5-nightly.112154138.0":"2019-05-16T23:05:48.680Z","0.1.5-nightly.112295593.0":"2019-05-17T23:07:02.880Z","0.1.5-nightly.112335225.0":"2019-05-18T23:05:43.809Z","0.1.5-nightly.112374729.0":"2019-05-19T23:05:57.341Z","0.1.5-nightly.112519784.0":"2019-05-20T23:07:19.837Z","0.1.5-nightly.112682969.0":"2019-05-21T23:07:58.534Z","0.1.5":"2019-05-22T21:30:05.850Z","0.1.6-nightly.116497869.0":"2019-06-21T23:43:30.205Z","0.1.6-nightly.116537503.0":"2019-06-22T23:22:02.120Z","0.1.6-nightly.116575979.0":"2019-06-23T23:23:51.248Z","0.1.6-nightly.116725281.0":"2019-06-24T23:25:02.080Z","0.1.6-nightly.116894862.0":"2019-06-25T23:25:12.570Z","0.1.6-nightly.117061114.0":"2019-06-26T23:24:45.229Z","0.1.6":"2019-07-04T00:06:55.346Z","0.1.7-nightly.118656676.0":"2019-07-10T18:52:39.965Z","0.1.7-nightly.118827687.0":"2019-07-11T18:45:16.762Z","0.1.7-nightly.118977469.0":"2019-07-12T18:42:53.860Z","0.1.7-nightly.119038144.0":"2019-07-13T18:42:56.723Z","0.1.7-nightly.119075289.0":"2019-07-14T18:42:10.373Z","0.1.7-nightly.119201138.0":"2019-07-15T18:43:52.082Z","0.1.7-nightly.119523712.0":"2019-07-17T18:47:42.740Z","0.1.7-nightly.121138444.4":"2019-07-29T18:52:04.032Z","0.1.7-nightly.121301407.4":"2019-07-30T18:52:12.648Z","0.1.7-nightly.121465221.4":"2019-07-31T18:51:58.482Z","0.1.7-nightly.121654298.4":"2019-08-01T18:52:26.890Z","0.1.7-nightly.121796953.4":"2019-08-02T18:55:47.577Z","0.1.7-nightly.121850486.4":"2019-08-03T18:55:08.903Z","0.1.7-nightly.121882823.4":"2019-08-04T18:55:53.785Z","0.1.7-nightly.122004222.4":"2019-08-05T19:35:11.815Z","0.2.0":"2019-09-19T01:14:46.010Z","0.3.0":"2019-10-12T00:21:40.103Z","0.3.1":"2019-10-14T22:57:19.796Z","0.3.2-nightly.143460678.10":"2020-01-07T20:19:50.549Z","0.3.2-nightly.143626239.10":"2020-01-08T20:19:42.106Z","0.4.0":"2020-01-30T00:35:30.632Z","0.4.2-nightly.157326457.1":"2020-03-31T21:02:26.699Z","0.5.0":"2020-04-01T21:50:48.091Z","0.5.1":"2020-06-12T22:13:34.717Z","0.6.0":"2020-06-16T02:13:17.773Z","0.7.0":"2020-10-02T22:35:02.962Z","0.7.2":"2020-12-29T23:29:48.413Z","0.8.0":"2022-01-24T20:52:16.502Z","0.9.0":"2023-04-21T21:31:22.421Z"},"maintainers":[{"name":"alexa-games-admin","email":"alexa-games-npm-admins@amazon.com"},{"name":"alexa-games-builder","email":"alexa-games-npm-builders@amazon.com"}],"description":"This module adds support for the Alexa Display.RenderTemplate directive to Litexa.","homepage":"https://litexa.com","keywords":["Alexa","Skill","RenderTemplate","SDK","Litexa"],"repository":{"type":"git","url":"git+https://github.com/alexa-games/litexa.git"},"author":{"name":"Amazon"},"bugs":{"url":"https://github.com/alexa-games/litexa/issues"},"license":"Apache-2.0","readme":"# Litexa Render Template\n\nAlexa's `Display` interface allows for showing static, one-size-fits-all screens on compatible Alexa-enabled screen\ndevices. This is achieved by sending `render templates` in a `Display.RenderTemplate` directive (see\n[Display Interface Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\nfor more details).\n\nThe `@litexa/render-template` module adds support for easily building, sending and validating such\n`Display.RenderTemplate` directives from within Litexa.\n\n## Installation\n\nThe module can be installed globally, which makes it available to any of your Litexa projects:\n\n```bash\nnpm install -g @litexa/render-template\n```\n\nIf you alternatively prefer installing the extension locally inside your Litexa project, for the sake of tracking the\ndependency, just run the following inside of your Litexa project directory:\n\n```bash\nnpm install --save @litexa/render-template\n```\n\nThis should result in the following directory structure:\n\n```stdout\nproject_dir\n├── litexa\n└── node_modules\n    └── @litexa\n        └── render-template\n```\n\n## New Statement\n\nWhen installed, the module adds a new `screen` statement to Litexa's syntax, which can be used to send a\nspecific render template type via directive as follows:\n\n```coffeescript\nscreen\n  template: \"BodyTemplate1\"\n```\n\nThe supported template types are split into two categories:\n\n### 1) Body Templates\n\nThe following body templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`primaryText`|`secondaryText`|`tertiaryText`|`displaySpeechAs`|`image` |`hint`  |\n|---------------|:----------:|:------:|:-----------:|:-------------:|:------------:|:---------------:|:------:|:------:|\n| BodyTemplate1 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |        |\n| BodyTemplate2 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|&#10003;|\n| BodyTemplate3 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |&#10003;|        |\n| BodyTemplate6 | &#10003;   |&#10003;|&#10003;     |&#10003;       |&#10003;      |&#10003;         |        |&#10003;|\n| BodyTemplate7 | &#10003;   |&#10003;|             |               |              |&#10003;         |&#10003;|        |\n\n#### Example: BodyTemplate2\n\nHere's an example of sending a `BodyTemplate2` with every possible attribute (any subset of attributes is allowed).\n\n```coffeescript\nscreen\n    template: BodyTemplate2\n    title: \"Cheese Varieties\"\n    primaryText: \"Brie originated in France\"\n    secondaryText: \"Gruyere originated in Switzerland\"\n    tertiaryText: \"Gorgonzola originated in Italy\"\n    background: background.jpg\n    image: \"https://www.example.com/my-image.png\"\n    displaySpeechAs: \"title\"\n    hint: \"Cheesy Hint\"\n```\n\nThe `displaySpeechAs` attribute requires a value that is:\n\n* one of `[title, primaryText, secondaryText, tertiaryText]`\n* supported by the specified template type\n\nSetting this attribute will:\n\n1. concatenate any output speech sent in the next response to the indicated text field\n2. strip any SSML tags (e.g. `<say-as interpret-as='ordinal'>`) from the displayed text\n\n### 2) List Templates\n\nThe following list templates are supported along with their respective attributes:\n\n| template type |`background`|`title` |`list`  |\n|---------------|:----------:|:------:|:------:|\n| ListTemplate1 | &#10003;   |&#10003;|&#10003;|\n| ListTemplate2 | &#10003;   |&#10003;|&#10003;|\n\nThe `list` attribute requires an `array` of list items. Each list item is an `object` with\nany subset of the attributes: `[token, primaryText, secondaryText, tertiaryText, image]`\n\nThe `token` attribute is optional and `list` item-specific. It sets an author-chosen String identifier for the\nassociated list item. For example:\n\n```javascript\n// list litem:\n{\n  token: 'My List Item Token',\n  primaryText: 'My list item'\n}\n```\n\nThe token can then be used to identify which list item was touched - see the following example.\n\n#### Example: ListTemplate1\n\nHere's an example of sending a `ListTemplate1` with every attribute, and handling touch events.\n\nDynamically generating the list in some JS code:\n\n```javascript\n// static list\nlet list = [\n    {token: 'brie', primaryText: 'Brie (France)', image: 'brie.jpg'},\n    {token: 'gruyere', tertiaryText: 'Gruyere (Switzerland)', image: 'gruyere.jpg'},\n];\n\n// alternative or supplementary code to assemble/manipulate a dynamic list\nlet listItem = {token: 'gorgonzola', secondaryText: 'Gorgonzola (Italy)', image: 'gorgonzola.jpg'};\nlist.push(listItem);\n// (...)\n\nconst getList = function() {\n    return list;\n}\n```\n\nSending the list directive in litexa:\n\n```coffeescript\nlocal myCheeseList = getList()\nscreen\n    template: ListTemplate1\n    background: background.jpg\n    title: \"Cheese List\"\n    list: myCheeseList\n\nwhen Display.ElementSelected\n    say \"You touched list item {$request.token}.\"\n```\n\nThe above example would display the defined `list` on the screen and, if an item were touched by the user,\nAlexa would say the item's token out loud. The touch event and corresponding token can be handled in\nwhichever way is required.\n\n## Statement Shorthands\n\nThere are several statement shorthand options available.\n\n```coffeescript\nscreen [title] [background]  # screen \"My Title\" background.jpg\nscreen [background] [title]  # screen background.jpg \"My Title\"\nscreen [title]               # screen \"My Title\"\nscreen [background]          # screen background.jpg\n```\n\n## Statement Attribute Specifications\n\n#### Attribute properties\n\n* If no `template` is specified, the template type defaults to `BodyTemplate1`.\n* `hint` will generate a\n[Hint Directive](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#hint-directive)\nwith the supplied String, and add it to the pending response.\n* `image` and `background` expect one of the following:\n  * Unquoted or quoted name of a file provided in `litexa/assets`.\n  * Existing image's URL as a String (`litexa` does not validate URL's existence).\n  * A variable storing either of the above.\n* `image` and `primary|secondary|tertiaryText` size and placement depend on which template is used (see examples in\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)).\n\n**TIP:** It is useful to frequently test your skill on an Alexa device or the\n[ASK Developer Console](https://developer.amazon.com/alexa/console/ask) (ideally test each device type), to detect any\nunforeseen rendering issues (e.g. text overflow).\n\n#### Attribute shorthands\n\nAs can be seen in the above examples, we've shortened some of the official render template attributes (see\n[Display Template Reference](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)), for\nthe sake of convenience:\n\n* Use `background` instead of `backgroundImage`.\n* Use `list` instead of `listItems`.\n* Directly use `primary|secondary|tertiaryText` instead of a\n[textContent](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html#textcontent-object-specifications)\ncontainer.\n\n## Text Formatting\n\nThe text attributes `primary|secondary|tertiaryText` support the below `RichText` HTML tags.\n\n**NOTE:** These HTML tags are supported without requiring closing tags - see the examples below.\n\n### Bold, Italics, Underlined\n\n```coffeescript\n\"<b a bold sentence 1>\"\n\"<b> a bold sentence 2\"\n\"<b> bold\n  not bold\"\n```\n\nFor italics and underlined, use `<i>` and `<u>` analogously.\n\n### Font Sizes\n\n```coffeescript\n\"<f2 this has font size two> <f3 this has font size three>\"\n\"<f3> font size three\"\n\"regular size <f5 size 5>\"\n\"<f7 size 7> regular size\"\n```\n\nOnly the following font sizes are allowed: `[2,3,5,7]`\n\n### Alignment\n\n```coffeescript\n\"<center something 1>\"\n\"<center>something 2\"\n\"<center> centered\n  not centered\"\n\"<center> centered\n  <center> also centered\"\n```\n\n### Mixing Tags\n\n```coffeescript\n\"<center><u><b>centered, underlined and bold\"\n\"<center><b>centered and bold\n  neither\n  <b><f7 bold and large><f2 bold and small>\"\n```\n\n### Special Characters\n\nYou should only use the special characters newline (`\\n`) and ampersand (`&`) in `primary|secondary|tertiaryText`.\nThese two characters will automatically be converted to the HTML tags `<br/>` and `&amp;`.\n\n## Intent Handling Requirements\n\nWhen using a `Render Template` directive, certain built-in intents must be supported by the skill (i.e. included in at\nleast one `when` listener). Not doing so will result in an error during deployment.\n\nThe following intents should be handled correctly by the skill author, to control the skill's screen flow:\n\n```coffeescript\nAMAZON.NextIntent\nAMAZON.PreviousIntent\n```\n\nThe following intents must also be included, but can be routed to do nothing since they have automatic handling:\n\n```coffeescript\nAMAZON.ScrollUpIntent\nAMAZON.ScrollDownIntent\nAMAZON.ScrollLeftIntent\nAMAZON.ScrollRightIntent\nAMAZON.MoreIntent\nAMAZON.NavigateHomeIntent\nAMAZON.NavigateSettingsIntent\nAMAZON.PageDownIntent\nAMAZON.PageUpIntent\n```\n\nExamples of the above mentioned automatic handling are:\n\n* ListTemplate1 will automatically \"scroll down\" and \"scroll up\"\n* ListTemplate2 will automatically \"scroll right\" and \"scroll left\"\n\nIf no custom handling is required, the intent listeners can be added to an unreachable state:\n\n```coffeescript\ninvalidIntents # nothing points to this state\n  when AMAZON.ScrollUpIntent\n    # do nothing\n```\n\nDoing so would include the intents in the skill model, while not ever actively handling them.\n\n## Checking Render Template Support\n\nTo check whether the `Display` interface, and therewith render templates are supported by the active device at runtime,\nthe following command can be used in `litexa` or external code:\n\n```javascript\nRenderTemplate.isEnabled()\n```\n\nThis check can and should be used to potentially compensate for any missing visuals on a voice-only device.\nFor example:\n\n```coffeescript\n  if RenderTemplate.isEnabled()\n    screen instructions.png\n    say \"Please read the instructions on the screen.\"\n  else\n    say \"Here are your instructions: @instructions\"\n```\n\n## Resources\n\nFor more information, please refer to the official `Display Render Templates` documentation:\n\n* [Display Interface](https://developer.amazon.com/docs/custom-skills/display-interface-reference.html)\n* [Display Render Templates](https://developer.amazon.com/docs/custom-skills/display-template-reference.html)\n","readmeFilename":"README.md"}