Template Upload

This commit is contained in:
SOUTHERNCO\x2mjbyrn
2017-05-17 13:45:25 -04:00
parent 415b9c25f3
commit 7efe7605b8
11476 changed files with 2170865 additions and 34 deletions

4
node_modules/string-template/.npmignore generated vendored Normal file
View File

@ -0,0 +1,4 @@
support
test
examples
*.sock

7
node_modules/string-template/.travis.yml generated vendored Normal file
View File

@ -0,0 +1,7 @@
language: node_js
node_js:
- "0.10"
before_script:
- npm install
- npm install istanbul coveralls
script: npm run travis-test

19
node_modules/string-template/LICENCE generated vendored Normal file
View File

@ -0,0 +1,19 @@
Copyright (c) 2013 Matt Esch.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

103
node_modules/string-template/Readme.md generated vendored Normal file
View File

@ -0,0 +1,103 @@
# string-template
[![build status][1]][2] [![dependency status][3]][4] [![coverage report][9]][10] [![stability index][15]][16]
[![npm stats][13]][14]
[![browser support][5]][6]
A simple string template function based on named or indexed arguments
## Example
```js
var format = require("string-template")
var greeting
// Format using an object hash with keys matching [0-9a-zA-Z]+
greeting = format("Hello {name}, you have {count} unread messages", {
name: "Robert",
count: 12
})
// greeting -> "Hello Robert, you have 12 unread messages"
// Format using a number indexed array
greeting = format("Hello {0}, you have {1} unread messages", ["Robert", 12])
// greeting -> "Hello Robert, you have 12 unread messages"
// Format using optional arguments
greeting = format("Hello {0}, you have {1} unread messages",
"Robert",
12)
// greeting -> "Hello Robert, you have 12 unread messages"
// Escape {} pairs by using double {{}}
var text = format("{{0}}")
// text -> "{0}"
```
## Compiling templates
`string-template` exposes two template compiling options for when you need the
additional performance. Arguments passed to the compiled template are of the
same structure as the main `string-template` function, so either a single
object/array or a list of arguments.
```js
var compile = require("string-template/compile")
var greetingTemplate = compile("Hello {0}, you have {1} unread messages")
var greeting = greetingTemplate("Robert", 12)
// -> "Hello Robert, you have 12 unread messages"
```
Passing a truthy second argument to `compile` will opt into using `new Function`
to generate a function. The function returned contains a literal string
concatenation statement, interleaving the correct arguments you have passed in.
```js
var compile = require("string-template/compile")
var greetingTemplate = compile("Hello {0}, you have {1} unread messages", true)
// -> greetingTemplate generated using new Function
var greeting = greetingTemplate(["Robert", 12])
// -> "Hello Robert, you have 12 unread messages"
```
## Installation
`npm install string-template`
## Contributors
- Matt-Esch
## MIT Licenced
[1]: https://secure.travis-ci.org/Matt-Esch/string-template.png
[2]: https://travis-ci.org/Matt-Esch/string-template
[3]: https://david-dm.org/Matt-Esch/string-template.png
[4]: https://david-dm.org/Matt-Esch/string-template
[5]: https://ci.testling.com/Matt-Esch/string-template.png
[6]: https://ci.testling.com/Matt-Esch/string-template
[9]: https://coveralls.io/repos/Matt-Esch/string-template/badge.png
[10]: https://coveralls.io/r/Matt-Esch/string-template
[13]: https://nodei.co/npm/string-template.png?downloads=true&stars=true
[14]: https://nodei.co/npm/string-template
[15]: http://hughsk.github.io/stability-badges/dist/unstable.svg
[16]: http://github.com/hughsk/stability-badges
[7]: https://badge.fury.io/js/string-template.png
[8]: https://badge.fury.io/js/string-template
[11]: https://gemnasium.com/Matt-Esch/string-template.png
[12]: https://gemnasium.com/Matt-Esch/string-template

142
node_modules/string-template/compile.js generated vendored Normal file
View File

@ -0,0 +1,142 @@
var template = require("./index")
var whitespaceRegex = /["'\\\n\r\u2028\u2029]/g
var nargs = /\{[0-9a-zA-Z]+\}/g
var replaceTemplate =
" var args\n" +
" var result\n" +
" if (arguments.length === 1 && typeof arguments[0] === \"object\") {\n" +
" args = arguments[0]\n" +
" } else {\n" +
" args = arguments" +
" }\n\n" +
" if (!args || !(\"hasOwnProperty\" in args)) {\n" +
" args = {}\n" +
" }\n\n" +
" return {0}"
var literalTemplate = "\"{0}\""
var argTemplate = "(result = args.hasOwnProperty(\"{0}\") ? " +
"args[\"{0}\"] : null, \n " +
"(result === null || result === undefined) ? \"\" : result)"
module.exports = compile
function compile(string, inline) {
var replacements = string.match(nargs) || []
var interleave = string.split(nargs)
var replace = []
for (var i = 0; i < interleave.length; i++) {
var current = interleave[i]
var replacement = replacements[i]
var escapeLeft = current.charAt(current.length - 1)
var escapeRight = (interleave[i + 1] || "").charAt(0)
if (replacement) {
replacement = replacement.substring(1, replacement.length - 1)
}
if (escapeLeft === "{" && escapeRight === "}") {
replace.push(current + replacement)
} else {
replace.push(current)
if (replacement) {
replace.push({ name: replacement })
}
}
}
var prev = [""]
for (var j = 0; j < replace.length; j++) {
var curr = replace[j]
if (String(curr) === curr) {
var top = prev[prev.length - 1]
if (String(top) === top) {
prev[prev.length - 1] = top + curr
} else {
prev.push(curr)
}
} else {
prev.push(curr)
}
}
replace = prev
if (inline) {
for (var k = 0; k < replace.length; k++) {
var token = replace[k]
if (String(token) === token) {
replace[k] = template(literalTemplate, escape(token))
} else {
replace[k] = template(argTemplate, escape(token.name))
}
}
var replaceCode = replace.join(" +\n ")
var compiledSource = template(replaceTemplate, replaceCode)
return new Function(compiledSource)
}
return function template() {
var args
if (arguments.length === 1 && typeof arguments[0] === "object") {
args = arguments[0]
} else {
args = arguments
}
if (!args || !("hasOwnProperty" in args)) {
args = {}
}
var result = []
for (var i = 0; i < replace.length; i++) {
if (i % 2 === 0) {
result.push(replace[i])
} else {
var argName = replace[i].name
var arg = args.hasOwnProperty(argName) ? args[argName] : null
if (arg !== null || arg !== undefined) {
result.push(arg)
}
}
}
return result.join("")
}
}
function escape(string) {
string = '' + string
return string.replace(whitespaceRegex, escapedWhitespace)
}
function escapedWhitespace(character) {
// Escape all characters not included in SingleStringCharacters and
// DoubleStringCharacters on
// http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4
switch (character) {
case '"':
case "'":
case '\\':
return '\\' + character
// Four possible LineTerminator characters need to be escaped:
case '\n':
return '\\n'
case '\r':
return '\\r'
case '\u2028':
return '\\u2028'
case '\u2029':
return '\\u2029'
}
}

212
node_modules/string-template/coverage/base.css generated vendored Normal file
View File

@ -0,0 +1,212 @@
body, html {
margin:0; padding: 0;
height: 100%;
}
body {
font-family: Helvetica Neue, Helvetica, Arial;
font-size: 14px;
color:#333;
}
.small { font-size: 12px;; }
*, *:after, *:before {
-webkit-box-sizing:border-box;
-moz-box-sizing:border-box;
box-sizing:border-box;
}
h1 { font-size: 20px; margin: 0;}
h2 { font-size: 14px; }
pre {
font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace;
margin: 0;
padding: 0;
-moz-tab-size: 2;
-o-tab-size: 2;
tab-size: 2;
}
a { color:#0074D9; text-decoration:none; }
a:hover { text-decoration:underline; }
.strong { font-weight: bold; }
.space-top1 { padding: 10px 0 0 0; }
.pad2y { padding: 20px 0; }
.pad1y { padding: 10px 0; }
.pad2x { padding: 0 20px; }
.pad2 { padding: 20px; }
.pad1 { padding: 10px; }
.space-left2 { padding-left:55px; }
.space-right2 { padding-right:20px; }
.center { text-align:center; }
.clearfix { display:block; }
.clearfix:after {
content:'';
display:block;
height:0;
clear:both;
visibility:hidden;
}
.fl { float: left; }
@media only screen and (max-width:640px) {
.col3 { width:100%; max-width:100%; }
.hide-mobile { display:none!important; }
}
.quiet {
color: #7f7f7f;
color: rgba(0,0,0,0.5);
}
.quiet a { opacity: 0.7; }
.fraction {
font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
font-size: 10px;
color: #555;
background: #E8E8E8;
padding: 4px 5px;
border-radius: 3px;
vertical-align: middle;
}
div.path a:link, div.path a:visited { color: #333; }
table.coverage {
border-collapse: collapse;
margin: 10px 0 0 0;
padding: 0;
}
table.coverage td {
margin: 0;
padding: 0;
vertical-align: top;
}
table.coverage td.line-count {
text-align: right;
padding: 0 5px 0 20px;
}
table.coverage td.line-coverage {
text-align: right;
padding-right: 10px;
min-width:20px;
}
table.coverage td span.cline-any {
display: inline-block;
padding: 0 5px;
width: 100%;
}
.missing-if-branch {
display: inline-block;
margin-right: 5px;
border-radius: 3px;
position: relative;
padding: 0 4px;
background: #333;
color: yellow;
}
.skip-if-branch {
display: none;
margin-right: 10px;
position: relative;
padding: 0 4px;
background: #ccc;
color: white;
}
.missing-if-branch .typ, .skip-if-branch .typ {
color: inherit !important;
}
.coverage-summary {
border-collapse: collapse;
width: 100%;
}
.coverage-summary tr { border-bottom: 1px solid #bbb; }
.keyline-all { border: 1px solid #ddd; }
.coverage-summary td, .coverage-summary th { padding: 10px; }
.coverage-summary tbody { border: 1px solid #bbb; }
.coverage-summary td { border-right: 1px solid #bbb; }
.coverage-summary td:last-child { border-right: none; }
.coverage-summary th {
text-align: left;
font-weight: normal;
white-space: nowrap;
}
.coverage-summary th.file { border-right: none !important; }
.coverage-summary th.pct { }
.coverage-summary th.pic,
.coverage-summary th.abs,
.coverage-summary td.pct,
.coverage-summary td.abs { text-align: right; }
.coverage-summary td.file { white-space: nowrap; }
.coverage-summary td.pic { min-width: 120px !important; }
.coverage-summary tfoot td { }
.coverage-summary .sorter {
height: 10px;
width: 7px;
display: inline-block;
margin-left: 0.5em;
background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
}
.coverage-summary .sorted .sorter {
background-position: 0 -20px;
}
.coverage-summary .sorted-desc .sorter {
background-position: 0 -10px;
}
.status-line { height: 10px; }
/* dark red */
.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 }
.low .chart { border:1px solid #C21F39 }
/* medium red */
.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE }
/* light red */
.low, .cline-no { background:#FCE1E5 }
/* light green */
.high, .cline-yes { background:rgb(230,245,208) }
/* medium green */
.cstat-yes { background:rgb(161,215,106) }
/* dark green */
.status-line.high, .high .cover-fill { background:rgb(77,146,33) }
.high .chart { border:1px solid rgb(77,146,33) }
.medium .chart { border:1px solid #666; }
.medium .cover-fill { background: #666; }
.cbranch-no { background: yellow !important; color: #111; }
.cstat-skip { background: #ddd; color: #111; }
.fstat-skip { background: #ddd; color: #111 !important; }
.cbranch-skip { background: #ddd !important; color: #111; }
span.cline-neutral { background: #eaeaea; }
.medium { background: #eaeaea; }
.cover-fill, .cover-empty {
display:inline-block;
height: 12px;
}
.chart {
line-height: 0;
}
.cover-empty {
background: white;
}
.cover-full {
border-right: none !important;
}
pre.prettyprint {
border: none !important;
padding: 0 !important;
margin: 0 !important;
}
.com { color: #999 !important; }
.ignore-none { color: #999; font-weight: normal; }
.wrapper {
min-height: 100%;
height: auto !important;
height: 100%;
margin: 0 auto -48px;
}
.footer, .push {
height: 48px;
}

1
node_modules/string-template/coverage/coverage.json generated vendored Normal file

File diff suppressed because one or more lines are too long

93
node_modules/string-template/coverage/index.html generated vendored Normal file
View File

@ -0,0 +1,93 @@
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for All files</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="prettify.css" />
<link rel="stylesheet" href="base.css" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1>
/
</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>87/87</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">98.36% </span>
<span class="quiet">Branches</span>
<span class='fraction'>60/61</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>6/6</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>87/87</span>
</div>
</div>
</div>
<div class='status-line high'></div>
<div class="pad1">
<table class="coverage-summary">
<thead>
<tr>
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="string-template/"><a href="string-template/index.html">string-template/</a></td>
<td data-value="100" class="pic high"><div class="chart"><div class="cover-fill cover-full" style="width: 100%;"></div><div class="cover-empty" style="width:0%;"></div></div></td>
<td data-value="100" class="pct high">100%</td>
<td data-value="87" class="abs high">87/87</td>
<td data-value="98.36" class="pct high">98.36%</td>
<td data-value="61" class="abs high">60/61</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="6" class="abs high">6/6</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="87" class="abs high">87/87</td>
</tr>
</tbody>
</table>
</div><div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Thu Jan 07 2016 11:47:09 GMT-0800 (PST)
</div>
</div>
<script src="prettify.js"></script>
<script>
window.onload = function () {
if (typeof prettyPrint === 'function') {
prettyPrint();
}
};
</script>
<script src="sorter.js"></script>
</body>
</html>

1
node_modules/string-template/coverage/prettify.css generated vendored Normal file
View File

@ -0,0 +1 @@
.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}

1
node_modules/string-template/coverage/prettify.js generated vendored Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

158
node_modules/string-template/coverage/sorter.js generated vendored Normal file
View File

@ -0,0 +1,158 @@
var addSorting = (function () {
"use strict";
var cols,
currentSort = {
index: 0,
desc: false
};
// returns the summary table element
function getTable() { return document.querySelector('.coverage-summary'); }
// returns the thead element of the summary table
function getTableHeader() { return getTable().querySelector('thead tr'); }
// returns the tbody element of the summary table
function getTableBody() { return getTable().querySelector('tbody'); }
// returns the th element for nth column
function getNthColumn(n) { return getTableHeader().querySelectorAll('th')[n]; }
// loads all columns
function loadColumns() {
var colNodes = getTableHeader().querySelectorAll('th'),
colNode,
cols = [],
col,
i;
for (i = 0; i < colNodes.length; i += 1) {
colNode = colNodes[i];
col = {
key: colNode.getAttribute('data-col'),
sortable: !colNode.getAttribute('data-nosort'),
type: colNode.getAttribute('data-type') || 'string'
};
cols.push(col);
if (col.sortable) {
col.defaultDescSort = col.type === 'number';
colNode.innerHTML = colNode.innerHTML + '<span class="sorter"></span>';
}
}
return cols;
}
// attaches a data attribute to every tr element with an object
// of data values keyed by column name
function loadRowData(tableRow) {
var tableCols = tableRow.querySelectorAll('td'),
colNode,
col,
data = {},
i,
val;
for (i = 0; i < tableCols.length; i += 1) {
colNode = tableCols[i];
col = cols[i];
val = colNode.getAttribute('data-value');
if (col.type === 'number') {
val = Number(val);
}
data[col.key] = val;
}
return data;
}
// loads all row data
function loadData() {
var rows = getTableBody().querySelectorAll('tr'),
i;
for (i = 0; i < rows.length; i += 1) {
rows[i].data = loadRowData(rows[i]);
}
}
// sorts the table using the data for the ith column
function sortByIndex(index, desc) {
var key = cols[index].key,
sorter = function (a, b) {
a = a.data[key];
b = b.data[key];
return a < b ? -1 : a > b ? 1 : 0;
},
finalSorter = sorter,
tableBody = document.querySelector('.coverage-summary tbody'),
rowNodes = tableBody.querySelectorAll('tr'),
rows = [],
i;
if (desc) {
finalSorter = function (a, b) {
return -1 * sorter(a, b);
};
}
for (i = 0; i < rowNodes.length; i += 1) {
rows.push(rowNodes[i]);
tableBody.removeChild(rowNodes[i]);
}
rows.sort(finalSorter);
for (i = 0; i < rows.length; i += 1) {
tableBody.appendChild(rows[i]);
}
}
// removes sort indicators for current column being sorted
function removeSortIndicators() {
var col = getNthColumn(currentSort.index),
cls = col.className;
cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, '');
col.className = cls;
}
// adds sort indicators for current column being sorted
function addSortIndicators() {
getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted';
}
// adds event listeners for all sorter widgets
function enableUI() {
var i,
el,
ithSorter = function ithSorter(i) {
var col = cols[i];
return function () {
var desc = col.defaultDescSort;
if (currentSort.index === i) {
desc = !currentSort.desc;
}
sortByIndex(i, desc);
removeSortIndicators();
currentSort.index = i;
currentSort.desc = desc;
addSortIndicators();
};
};
for (i =0 ; i < cols.length; i += 1) {
if (cols[i].sortable) {
// add the click event handler on the th so users
// dont have to click on those tiny arrows
el = getNthColumn(i).querySelector('.sorter').parentElement;
if (el.addEventListener) {
el.addEventListener('click', ithSorter(i));
} else {
el.attachEvent('onclick', ithSorter(i));
}
}
}
}
// adds sorting functionality to the UI
return function () {
if (!getTable()) {
return;
}
cols = loadColumns();
loadData(cols);
addSortIndicators();
enableUI();
};
})();
window.addEventListener('load', addSorting);

View File

@ -0,0 +1,491 @@
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for string-template/compile.js</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../prettify.css" />
<link rel="stylesheet" href="../base.css" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1>
<a href="../index.html">all files</a> / <a href="index.html">string-template/</a> compile.js
</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>68/68</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">97.67% </span>
<span class="quiet">Branches</span>
<span class='fraction'>42/43</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>4/4</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>68/68</span>
</div>
</div>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143</td><td class="line-coverage quiet"><span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">76×</span>
<span class="cline-any cline-yes">76×</span>
<span class="cline-any cline-yes">76×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">76×</span>
<span class="cline-any cline-yes">228×</span>
<span class="cline-any cline-yes">228×</span>
<span class="cline-any cline-yes">228×</span>
<span class="cline-any cline-yes">228×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">228×</span>
<span class="cline-any cline-yes">152×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">228×</span>
<span class="cline-any cline-yes">6×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">222×</span>
<span class="cline-any cline-yes">222×</span>
<span class="cline-any cline-yes">146×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">76×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">76×</span>
<span class="cline-any cline-yes">374×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">374×</span>
<span class="cline-any cline-yes">228×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">228×</span>
<span class="cline-any cline-yes">82×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">146×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">146×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">76×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">76×</span>
<span class="cline-any cline-yes">38×</span>
<span class="cline-any cline-yes">184×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">184×</span>
<span class="cline-any cline-yes">111×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">73×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">38×</span>
<span class="cline-any cline-yes">38×</span>
<span class="cline-any cline-yes">38×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">38×</span>
<span class="cline-any cline-yes">39×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">39×</span>
<span class="cline-any cline-yes">22×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">17×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">39×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">39×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">39×</span>
<span class="cline-any cline-yes">187×</span>
<span class="cline-any cline-yes">113×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">74×</span>
<span class="cline-any cline-yes">74×</span>
<span class="cline-any cline-yes">74×</span>
<span class="cline-any cline-yes">74×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">39×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">184×</span>
<span class="cline-any cline-yes">184×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">16×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">12×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">var template = require("./index")
&nbsp;
var whitespaceRegex = /["'\\\n\r\u2028\u2029]/g
var nargs = /\{[0-9a-zA-Z]+\}/g
&nbsp;
var replaceTemplate =
" var args\n" +
" var result\n" +
" if (arguments.length === 1 &amp;&amp; typeof arguments[0] === \"object\") {\n" +
" args = arguments[0]\n" +
" } else {\n" +
" args = arguments" +
" }\n\n" +
" if (!args || !(\"hasOwnProperty\" in args)) {\n" +
" args = {}\n" +
" }\n\n" +
" return {0}"
&nbsp;
var literalTemplate = "\"{0}\""
var argTemplate = "(result = args.hasOwnProperty(\"{0}\") ? " +
"args[\"{0}\"] : null, \n " +
"(result === null || result === undefined) ? \"\" : result)"
&nbsp;
module.exports = compile
&nbsp;
function compile(string, inline) {
var replacements = string.match(nargs) || []
var interleave = string.split(nargs)
var replace = []
&nbsp;
for (var i = 0; i &lt; interleave.length; i++) {
var current = interleave[i]
var replacement = replacements[i]
var escapeLeft = current.charAt(current.length - 1)
var escapeRight = (interleave[i + 1] || "").charAt(0)
&nbsp;
if (replacement) {
replacement = replacement.substring(1, replacement.length - 1)
}
&nbsp;
if (escapeLeft === "{" &amp;&amp; escapeRight === "}") {
replace.push(current + replacement)
} else {
replace.push(current)
if (replacement) {
replace.push({ name: replacement })
}
}
}
&nbsp;
var prev = [""]
&nbsp;
for (var j = 0; j &lt; replace.length; j++) {
var curr = replace[j]
&nbsp;
if (String(curr) === curr) {
var top = prev[prev.length - 1]
&nbsp;
if (String(top) === top) {
prev[prev.length - 1] = top + curr
} else {
prev.push(curr)
}
} else {
prev.push(curr)
}
}
&nbsp;
replace = prev
&nbsp;
if (inline) {
for (var k = 0; k &lt; replace.length; k++) {
var token = replace[k]
&nbsp;
if (String(token) === token) {
replace[k] = template(literalTemplate, escape(token))
} else {
replace[k] = template(argTemplate, escape(token.name))
}
}
&nbsp;
var replaceCode = replace.join(" +\n ")
var compiledSource = template(replaceTemplate, replaceCode)
return new Function(compiledSource)
}
&nbsp;
return function template() {
var args
&nbsp;
if (arguments.length === 1 &amp;&amp; typeof arguments[0] === "object") {
args = arguments[0]
} else {
args = arguments
}
&nbsp;
if (!args || !("hasOwnProperty" in args)) {
args = {}
}
&nbsp;
var result = []
&nbsp;
for (var i = 0; i &lt; replace.length; i++) {
if (i % 2 === 0) {
result.push(replace[i])
} else {
var argName = replace[i].name
var arg = args.hasOwnProperty(argName) ? args[argName] : null
<span class="missing-if-branch" title="else path not taken" >E</span>if (arg !== null || arg !== undefined) {
result.push(arg)
}
}
}
&nbsp;
return result.join("")
}
}
&nbsp;
function escape(string) {
string = '' + string
return string.replace(whitespaceRegex, escapedWhitespace)
}
&nbsp;
function escapedWhitespace(character) {
// Escape all characters not included in SingleStringCharacters and
// DoubleStringCharacters on
// http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4
switch (character) {
case '"':
case "'":
case '\\':
return '\\' + character
// Four possible LineTerminator characters need to be escaped:
case '\n':
return '\\n'
case '\r':
return '\\r'
case '\u2028':
return '\\u2028'
case '\u2029':
return '\\u2029'
}
}
&nbsp;</pre></td></tr>
</table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Thu Jan 07 2016 11:47:09 GMT-0800 (PST)
</div>
</div>
<script src="../prettify.js"></script>
<script>
window.onload = function () {
if (typeof prettyPrint === 'function') {
prettyPrint();
}
};
</script>
<script src="../sorter.js"></script>
</body>
</html>

View File

@ -0,0 +1,106 @@
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for string-template/</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../prettify.css" />
<link rel="stylesheet" href="../base.css" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1>
<a href="../index.html">all files</a> string-template/
</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>87/87</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">98.36% </span>
<span class="quiet">Branches</span>
<span class='fraction'>60/61</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>6/6</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>87/87</span>
</div>
</div>
</div>
<div class='status-line high'></div>
<div class="pad1">
<table class="coverage-summary">
<thead>
<tr>
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
</tr>
</thead>
<tbody><tr>
<td class="file high" data-value="compile.js"><a href="compile.js.html">compile.js</a></td>
<td data-value="100" class="pic high"><div class="chart"><div class="cover-fill cover-full" style="width: 100%;"></div><div class="cover-empty" style="width:0%;"></div></div></td>
<td data-value="100" class="pct high">100%</td>
<td data-value="68" class="abs high">68/68</td>
<td data-value="97.67" class="pct high">97.67%</td>
<td data-value="43" class="abs high">42/43</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="4" class="abs high">4/4</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="68" class="abs high">68/68</td>
</tr>
<tr>
<td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
<td data-value="100" class="pic high"><div class="chart"><div class="cover-fill cover-full" style="width: 100%;"></div><div class="cover-empty" style="width:0%;"></div></div></td>
<td data-value="100" class="pct high">100%</td>
<td data-value="19" class="abs high">19/19</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="18" class="abs high">18/18</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="2" class="abs high">2/2</td>
<td data-value="100" class="pct high">100%</td>
<td data-value="19" class="abs high">19/19</td>
</tr>
</tbody>
</table>
</div><div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Thu Jan 07 2016 11:47:09 GMT-0800 (PST)
</div>
</div>
<script src="../prettify.js"></script>
<script>
window.onload = function () {
if (typeof prettyPrint === 'function') {
prettyPrint();
}
};
</script>
<script src="../sorter.js"></script>
</body>
</html>

View File

@ -0,0 +1,173 @@
<!doctype html>
<html lang="en">
<head>
<title>Code coverage report for string-template/index.js</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../prettify.css" />
<link rel="stylesheet" href="../base.css" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type='text/css'>
.coverage-summary .sorter {
background-image: url(../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class='wrapper'>
<div class='pad1'>
<h1>
<a href="../index.html">all files</a> / <a href="index.html">string-template/</a> index.js
</h1>
<div class='clearfix'>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Statements</span>
<span class='fraction'>19/19</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Branches</span>
<span class='fraction'>18/18</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Functions</span>
<span class='fraction'>2/2</span>
</div>
<div class='fl pad1y space-right2'>
<span class="strong">100% </span>
<span class="quiet">Lines</span>
<span class='fraction'>19/19</span>
</div>
</div>
</div>
<div class='status-line high'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37</td><td class="line-coverage quiet"><span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-yes">258×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">258×</span>
<span class="cline-any cline-yes">23×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">235×</span>
<span class="cline-any cline-yes">235×</span>
<span class="cline-any cline-yes">241×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">258×</span>
<span class="cline-any cline-yes">1×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">258×</span>
<span class="cline-any cline-yes">369×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">369×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">3×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">366×</span>
<span class="cline-any cline-yes">366×</span>
<span class="cline-any cline-yes">19×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-yes">347×</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">var nargs = /\{([0-9a-zA-Z_]+)\}/g
&nbsp;
module.exports = template
&nbsp;
function template(string) {
var args
&nbsp;
if (arguments.length === 2 &amp;&amp; typeof arguments[1] === "object") {
args = arguments[1]
} else {
args = new Array(arguments.length - 1)
for (var i = 1; i &lt; arguments.length; ++i) {
args[i - 1] = arguments[i]
}
}
&nbsp;
if (!args || !args.hasOwnProperty) {
args = {}
}
&nbsp;
return string.replace(nargs, function replaceArg(match, i, index) {
var result
&nbsp;
if (string[index - 1] === "{" &amp;&amp;
string[index + match.length] === "}") {
return i
} else {
result = args.hasOwnProperty(i) ? args[i] : null
if (result === null || result === undefined) {
return ""
}
&nbsp;
return result
}
})
}
&nbsp;</pre></td></tr>
</table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
Code coverage
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Thu Jan 07 2016 11:47:09 GMT-0800 (PST)
</div>
</div>
<script src="../prettify.js"></script>
<script>
window.onload = function () {
if (typeof prettyPrint === 'function') {
prettyPrint();
}
};
</script>
<script src="../sorter.js"></script>
</body>
</html>

36
node_modules/string-template/index.js generated vendored Normal file
View File

@ -0,0 +1,36 @@
var nargs = /\{([0-9a-zA-Z_]+)\}/g
module.exports = template
function template(string) {
var args
if (arguments.length === 2 && typeof arguments[1] === "object") {
args = arguments[1]
} else {
args = new Array(arguments.length - 1)
for (var i = 1; i < arguments.length; ++i) {
args[i - 1] = arguments[i]
}
}
if (!args || !args.hasOwnProperty) {
args = {}
}
return string.replace(nargs, function replaceArg(match, i, index) {
var result
if (string[index - 1] === "{" &&
string[index + match.length] === "}") {
return i
} else {
result = args.hasOwnProperty(i) ? args[i] : null
if (result === null || result === undefined) {
return ""
}
return result
}
})
}

107
node_modules/string-template/package.json generated vendored Normal file
View File

@ -0,0 +1,107 @@
{
"_args": [
[
"string-template@^1.0.0",
"C:\\Users\\x2mjbyrn\\Source\\Repos\\Skeleton\\node_modules\\typings-core"
]
],
"_from": "string-template@>=1.0.0-0 <2.0.0-0",
"_id": "string-template@1.0.0",
"_inCache": true,
"_location": "/string-template",
"_nodeVersion": "0.10.32",
"_npmUser": {
"email": "matt@mattesch.info",
"name": "mattesch"
},
"_npmVersion": "2.11.3",
"_phantomChildren": {},
"_requested": {
"name": "string-template",
"raw": "string-template@^1.0.0",
"rawSpec": "^1.0.0",
"scope": null,
"spec": ">=1.0.0-0 <2.0.0-0",
"type": "range"
},
"_requiredBy": [
"/typings-core"
],
"_resolved": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz",
"_shasum": "9e9f2233dc00f218718ec379a28a5673ecca8b96",
"_shrinkwrap": null,
"_spec": "string-template@^1.0.0",
"_where": "C:\\Users\\x2mjbyrn\\Source\\Repos\\Skeleton\\node_modules\\typings-core",
"author": {
"email": "matt@mattesch.info",
"name": "Matt-Esch"
},
"bugs": {
"email": "matt@mattesch.info",
"url": "https://github.com/Matt-Esch/string-template/issues"
},
"contributors": [
{
"name": "Matt-Esch"
}
],
"dependencies": {},
"description": "A simple string template function based on named or indexed arguments",
"devDependencies": {
"istanbul": "^0.4.1",
"opn": "^3.0.3",
"tape": "~1.1.1"
},
"directories": {},
"dist": {
"shasum": "9e9f2233dc00f218718ec379a28a5673ecca8b96",
"tarball": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz"
},
"gitHead": "1a936280d4c9569035f9ac6a9808df564d413b30",
"homepage": "https://github.com/Matt-Esch/string-template",
"installable": true,
"keywords": [
"arguments",
"format",
"replace",
"string",
"template"
],
"license": "MIT",
"main": "index",
"maintainers": [
{
"name": "mattesch",
"email": "matt@mattesch.info"
}
],
"name": "string-template",
"optionalDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/Matt-Esch/string-template.git"
},
"scripts": {
"cover": "istanbul cover --report none --print detail ./test/index.js",
"test": "node ./test/index.js",
"travis-test": "istanbul cover ./test/index.js && ((cat coverage/lcov.info | coveralls) || exit 0)",
"view-cover": "istanbul report html && opn --no-wait ./coverage/index.html"
},
"testling": {
"browsers": [
"android-browser/4.2..latest",
"chrome/22..latest",
"chrome/canary",
"firefox/16..latest",
"firefox/nightly",
"ie/8..latest",
"ipad/6.0..latest",
"iphone/6.0..latest",
"opera/12..latest",
"opera/next",
"safari/5.1..latest"
],
"files": "test/index.js"
},
"version": "1.0.0"
}