diff --git a/.eslintrc.json b/.eslintrc.json
index 09c66550..c15096ec 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -1,4 +1,5 @@
{
+ "parserOptions": { "sourceType": "module" },
"env": {
"browser": false,
"es6": true,
diff --git a/index.js b/index.js
index e527003a..7df916e9 100644
--- a/index.js
+++ b/index.js
@@ -7,13 +7,15 @@
'use strict';
-var lib = require('./lib/');
+import lib from './lib/index.js';
+// TODO: import only when required
+import Handlebars from 'handlebars';
/**
* Expose helpers
*/
-module.exports = function helpers(groups, options) {
+export default function helpers(groups, options) {
if (typeof groups === 'string') {
groups = [groups];
} else if (!Array.isArray(groups)) {
@@ -22,17 +24,16 @@ module.exports = function helpers(groups, options) {
}
options = options || {};
- var hbs = options.handlebars || options.hbs || require('handlebars');
- module.exports.handlebars = hbs;
+ var hbs = options.handlebars || options.hbs || Handlebars;
if (groups) {
groups.forEach(function(key) {
- hbs.registerHelper(lib[key]);
+ hbs.registerHelper(Object.assign({}, lib[key]));
});
} else {
for (const key in lib) {
const group = lib[key];
- hbs.registerHelper(group);
+ hbs.registerHelper(Object.assign({}, group));
}
}
@@ -42,20 +43,33 @@ module.exports = function helpers(groups, options) {
/**
* Expose helper groups
*/
-for (const key in lib) {
- const group = lib[key];
-
- module.exports[key] = function(options) {
+function exportGroup(group) {
+ group = Object.assign({}, group);
+ return function(options) {
options = options || {};
- var hbs = options.handlebars || options.hbs || require('handlebars');
- module.exports.handlebars = hbs;
+ var hbs = options.handlebars || options.hbs || Handlebars;
hbs.registerHelper(group);
return group;
- };
-}
+ };
+};
-/**
- * Expose `utils`
- */
+export const array = exportGroup(lib.array);
+export const code = exportGroup(lib.code);
+export const collection = exportGroup(lib.collection);
+export const comparison = exportGroup(lib.comparison);
+export const html = exportGroup(lib.html);
+export const i18n = exportGroup(lib.i18n);
+export const inflection = exportGroup(lib.inflection);
+export const match = exportGroup(lib.match);
+export const math = exportGroup(lib.math);
+export const misc = exportGroup(lib.misc);
+export const number = exportGroup(lib.number);
+export const object = exportGroup(lib.object);
+export const path = exportGroup(lib.path);
+export const regex = exportGroup(lib.regex);
+export const string = exportGroup(lib.string);
+export const url = exportGroup(lib.url);
+export const uuid = exportGroup(lib.uuid);
-module.exports.utils = require('./lib/utils');
+import * as _utils from './lib/utils/index.js';
+export const utils = _utils;
diff --git a/lib/array.js b/lib/array.js
index db4b1556..d79a5f4f 100644
--- a/lib/array.js
+++ b/lib/array.js
@@ -1,17 +1,8 @@
'use strict';
-var util = {
- isUndefined: require('./utils/isUndefined'),
- result: require('./utils/result'),
- value: require('./utils/value'),
- indexOf: require('./utils/indexOf'),
- isString: require('./utils/isString'),
- isOptions: require('./utils/isOptions'),
- isObject: require('./utils/isObject')
-};
-var helpers = module.exports;
-const getValue = require('get-value');
-const createFrame = require('./utils/createFrame');
+import * as util from './utils/index.js';
+import getValue from 'get-value';
+import createFrame from './utils/createFrame.js';
/**
* Returns all of the items in an array after the specified index.
@@ -29,14 +20,14 @@ const createFrame = require('./utils/createFrame');
* @example {{ after ['a', 'b', 'c', 'd'] 2}} -> ['c', 'd']
*/
-helpers.after = function(array, n) {
+export function after(array, n) {
if (util.isUndefined(array)) return '';
array = util.result(array);
if (Array.isArray(array)) {
return array.slice(n);
}
return '';
-};
+}
/**
* Cast the given `value` to an array.
@@ -51,10 +42,10 @@ helpers.after = function(array, n) {
* @example {{ arrayify 'foo' }} -> ['foo']
*/
-helpers.arrayify = function(value) {
+export function arrayify(value) {
if (util.isUndefined(value)) return [];
return value ? (Array.isArray(value) ? value : [value]) : [];
-};
+}
/**
* Return all of the items in the collection before the specified
@@ -72,14 +63,14 @@ helpers.arrayify = function(value) {
* @example {{ before ['a', 'b', 'c', 'd'] 3}} -> ['a', 'b']
*/
-helpers.before = function(array, n) {
+export function before(array, n) {
if (util.isUndefined(array)) return '';
array = util.result(array);
if (Array.isArray(array)) {
return array.slice(0, n - 1);
}
return '';
-};
+}
/**
* ```handlebars
@@ -96,7 +87,7 @@ helpers.before = function(array, n) {
* @example {{#eachIndex [1, 2, 3]}} {{item}} is {{index}} {{/eachIndex}} -> ' 1 is 0 2 is 1 3 is 2 '
*/
-helpers.eachIndex = function(array, options) {
+export function eachIndex(array, options) {
var result = '';
if (util.isUndefined(array)) return '';
array = util.result(array);
@@ -106,7 +97,7 @@ helpers.eachIndex = function(array, options) {
}
}
return result;
-};
+}
/**
* Block helper that filters the given array and renders the block for values that
@@ -126,7 +117,7 @@ helpers.eachIndex = function(array, options) {
* @example {{#filter [1, 2, 3] 2}}2 Found{{else}}2 not found{{/filter}} -> 2 Found
*/
-helpers.filter = function(array, value, options) {
+export function filter(array, value, options) {
if (util.isUndefined(array)) return options.inverse(this);
array = util.result(array);
if (Array.isArray(array)) {
@@ -154,7 +145,7 @@ helpers.filter = function(array, value, options) {
}
}
return options.inverse(this);
-};
+}
/**
* Returns the first item, or first `n` items of an array.
@@ -170,7 +161,7 @@ helpers.filter = function(array, value, options) {
* @example {{first [1, 2, 3, 4] 2}} -> 1,2
*/
-helpers.first = function(array, n) {
+export function first(array, n) {
if (util.isUndefined(array)) return [];
array = util.result(array);
if (Array.isArray(array)) {
@@ -180,7 +171,7 @@ helpers.first = function(array, n) {
return array.slice(0, n);
}
return [];
-};
+}
/**
* Iterates over each item in an array and exposes the current item
@@ -218,7 +209,7 @@ helpers.first = function(array, n) {
* @example {{#forEach [{ 'name': 'John' }] }} {{ name }} {{/forEach}} -> ' John '
*/
-helpers.forEach = function(array, options) {
+export function forEach(array, options) {
if (util.isUndefined(array)) return options.inverse(this);
array = util.result(array);
if (Array.isArray(array)) {
@@ -239,7 +230,7 @@ helpers.forEach = function(array, options) {
return buffer;
}
return options.inverse(this);
-};
+}
/**
* Block helper that renders the block if an array has the
@@ -264,14 +255,14 @@ helpers.forEach = function(array, options) {
* @example {{#inArray [1, 2, 3] 2}} 2 exists {{else}} 2 does not exist {{/inArray}} -> ' 2 exists '
*/
-helpers.inArray = function(array, value, options) {
+export function inArray(array, value, options) {
if (util.isUndefined(array)) return '';
array = util.result(array);
if (Array.isArray(array)) {
return util.value(util.indexOf(array, value) > -1, this, options);
}
return '';
-};
+}
/**
* Returns true if `value` is an es5 array.
@@ -290,9 +281,9 @@ helpers.inArray = function(array, value, options) {
* @example {{isArray [1, 2]}} -> true
*/
-helpers.isArray = function(value) {
+export function isArray(value) {
return Array.isArray(value);
-};
+}
/**
* Returns the item from `array` at index `idx`.
@@ -309,7 +300,7 @@ helpers.isArray = function(value) {
* @example {{itemAt [1, 2, 3] 1}} -> 2
*/
-helpers.itemAt = function(array, idx) {
+export function itemAt(array, idx) {
if (util.isUndefined(array)) return null;
array = util.result(array);
if (Array.isArray(array)) {
@@ -322,7 +313,7 @@ helpers.itemAt = function(array, idx) {
}
}
return null;
-};
+}
/**
* Join all elements of array into a string, optionally using a
@@ -343,7 +334,7 @@ helpers.itemAt = function(array, idx) {
* @example {{join [1, 2, 3]}} -> 1, 2, 3
*/
-helpers.join = function(array, separator) {
+export function join(array, separator) {
if (util.isUndefined(array)) return '';
if (typeof array === 'string') return array;
array = util.result(array);
@@ -352,7 +343,7 @@ helpers.join = function(array, separator) {
return array.join(separator);
}
return '';
-};
+}
/**
* Returns true if the the length of the given `value` is equal
@@ -367,16 +358,16 @@ helpers.join = function(array, separator) {
* @example {{equalsLength [1, 2, 3] 3}} -> true
*/
-helpers.equalsLength = function(value, length, options) {
+export function equalsLength(value, length, options) {
if (util.isOptions(length)) {
options = length;
length = 0;
}
- var len = helpers.length(value);
+ var len = _length(value);
return util.value(len === length, this, options);
-};
+}
/**
* Returns the last item, or last `n` items of an array or string.
@@ -401,7 +392,7 @@ helpers.equalsLength = function(value, length, options) {
* @example {{last [1, 2, 3]}} -> 3
*/
-helpers.last = function(array, n) {
+export function last(array, n) {
if (util.isUndefined(array)) return '';
if (!Array.isArray(array) && typeof value !== 'string') {
return '';
@@ -410,7 +401,7 @@ helpers.last = function(array, n) {
return array[array.length - 1];
}
return array.slice(-Math.abs(n));
-};
+}
/**
* Returns the length of the given string or array.
@@ -433,17 +424,15 @@ helpers.last = function(array, n) {
* @example {{length [1, 2, 3]}} -> 3
*/
-helpers.length = function(array) {
+const _length = function(array) {
if (util.isUndefined(array)) return 0;
if (util.isObject(array) && !util.isOptions(array)) {
array = Object.keys(array);
}
// this is an inline array, split it
- if (
- typeof array === 'string' &&
+ if (typeof array === 'string' &&
array.startsWith('[') &&
- array.endsWith(']')
- ) {
+ array.endsWith(']')) {
return array.split(',').length;
}
if (typeof array === 'string' || Array.isArray(array)) {
@@ -451,14 +440,9 @@ helpers.length = function(array) {
}
return 0;
};
+export { _length as length };
-/**
- * Alias for [equalsLength](#equalsLength)
- *
- * @api public
- */
-
-helpers.lengthEqual = helpers.equalsLength;
+export const lengthEqual = equalsLength;
/**
* Returns a new array, created by calling `function` on each
@@ -478,7 +462,7 @@ helpers.lengthEqual = helpers.equalsLength;
* @example {{map [1, 2, 3] double}} -> [2, 4, 6]
*/
-helpers.map = function(array, iter) {
+export function map(array, iter) {
if (util.isUndefined(array)) return '';
if (!Array.isArray(array)) return '';
var len = array.length;
@@ -493,7 +477,7 @@ helpers.map = function(array, iter) {
res[i] = iter(array[i], i, array);
}
return res;
-};
+}
/**
* Map over the given object or array or objects and create an array of values
@@ -511,7 +495,7 @@ helpers.map = function(array, iter) {
* @example {{pluck [{ 'name': 'Bob' }] 'name' }} -> ['Bob']
*/
-helpers.pluck = function(array, prop) {
+export function pluck(array, prop) {
if (util.isUndefined(array)) return '';
array = util.result(array);
if (Array.isArray(array)) {
@@ -525,7 +509,7 @@ helpers.pluck = function(array, prop) {
return res;
}
return '';
-};
+}
/**
* Reverse the elements in an array, or the characters in a string.
@@ -543,7 +527,7 @@ helpers.pluck = function(array, prop) {
* @api public
* @example {{reverse [1, 2, 3]}} -> [3, 2, 1]
*/
-helpers.reverse = function(array) {
+export function reverse(array) {
if (util.isUndefined(array)) return '';
array = util.result(array);
if (Array.isArray(array)) {
@@ -553,7 +537,7 @@ helpers.reverse = function(array) {
return array.split('').reverse().join('');
}
return '';
-};
+}
/**
* Block helper that returns the block if the callback returns true
@@ -577,7 +561,7 @@ helpers.reverse = function(array) {
* @example {{#some [1, "b", 3] isString}} string found {{else}} No string found {{/some}} -> ' string found '
*/
-helpers.some = function(array, iter, options) {
+export function some(array, iter, options) {
if (util.isUndefined(array)) return options.inverse(this);
array = util.result(array);
if (Array.isArray(array)) {
@@ -588,7 +572,7 @@ helpers.some = function(array, iter, options) {
}
}
return options.inverse(this);
-};
+}
/**
* Sort the given `array`. If an array of objects is passed,
@@ -608,7 +592,7 @@ helpers.some = function(array, iter, options) {
* @example {{ sort ['b', 'a', 'c'] }} -> ['a', 'b', 'c']
*/
-helpers.sort = function(array, options) {
+export function sort(array, options) {
if (util.isUndefined(array)) return '';
array = util.result(array);
if (Array.isArray(array)) {
@@ -618,7 +602,7 @@ helpers.sort = function(array, options) {
return [...array].sort();
}
return '';
-};
+}
/**
* Sort an `array`. If an array of objects is passed,
@@ -638,7 +622,7 @@ helpers.sort = function(array, options) {
* @example {{ sortBy [{'a': 'zzz'}, {'a': 'aaa'}] 'a' }} -> [{'a':'aaa'},{'a':'zzz'}]
*/
-helpers.sortBy = function(array, prop, options) {
+export function sortBy(array, prop, options) {
if (util.isUndefined(array)) return '';
array = util.result(array);
if (Array.isArray(array)) {
@@ -657,7 +641,7 @@ helpers.sortBy = function(array, prop, options) {
return [...array].sort((a, b) => (a[prop] > b[prop] ? 1 : -1));
}
return '';
-};
+}
/**
* Use the items in the array _after_ the specified index
@@ -679,7 +663,7 @@ helpers.sortBy = function(array, prop, options) {
* @example {{#withAfter [1, 2, 3] 1 }} {{this}} {{/withAfter}} -> ' 2 3 '
*/
-helpers.withAfter = function(array, idx, options) {
+export function withAfter(array, idx, options) {
if (util.isUndefined(array)) return '';
array = util.result(array);
if (Array.isArray(array)) {
@@ -692,7 +676,7 @@ helpers.withAfter = function(array, idx, options) {
return result;
}
return '';
-};
+}
/**
* Use the items in the array _before_ the specified index
@@ -714,7 +698,7 @@ helpers.withAfter = function(array, idx, options) {
* @example {{#withBefore [1, 2, 3] 2 }} {{this}} {{/withBefore}} -> ' 1 '
*/
-helpers.withBefore = function(array, idx, options) {
+export function withBefore(array, idx, options) {
if (util.isUndefined(array)) return '';
array = util.result(array);
if (Array.isArray(array)) {
@@ -727,7 +711,7 @@ helpers.withBefore = function(array, idx, options) {
return result;
}
return '';
-};
+}
/**
* Use the first item in a collection inside a handlebars
@@ -749,7 +733,7 @@ helpers.withBefore = function(array, idx, options) {
* @example {{#withFirst [1, 2, 3] }}{{this}}{{/withFirst}} -> 1
*/
-helpers.withFirst = function(array, idx, options) {
+export function withFirst(array, idx, options) {
if (util.isUndefined(array)) return '';
array = util.result(array);
if (Array.isArray(array)) {
@@ -770,7 +754,7 @@ helpers.withFirst = function(array, idx, options) {
return result;
}
return '';
-};
+}
/**
* Block helper that groups array elements by given group `size`.
@@ -796,7 +780,7 @@ helpers.withFirst = function(array, idx, options) {
* @example {{#withGroup [1, 2, 3, 4] 2}}{{#each this}}{{.}}{{/each}}
{{/withGroup}} -> 12
34
* */
-helpers.withGroup = function(array, size, options) {
+export function withGroup(array, size, options) {
if (util.isUndefined(array)) return '';
var result = '';
array = util.result(array);
@@ -812,7 +796,7 @@ helpers.withGroup = function(array, size, options) {
result += options.fn(subcontext);
}
return result;
-};
+}
/**
* Use the last item or `n` items in an array as context inside a block.
@@ -833,7 +817,7 @@ helpers.withGroup = function(array, size, options) {
* @example {{#withLast [1, 2, 3, 4]}}{{this}}{{/withLast}} -> 4
*/
-helpers.withLast = function(array, idx, options) {
+export function withLast(array, idx, options) {
if (util.isUndefined(array)) return '';
array = util.result(array);
if (Array.isArray(array)) {
@@ -856,7 +840,7 @@ helpers.withLast = function(array, idx, options) {
return result;
}
return '';
-};
+}
/**
* Block helper that sorts a collection and exposes the sorted
@@ -876,7 +860,7 @@ helpers.withLast = function(array, idx, options) {
* @example {{#withSort ['b', 'a', 'c']}}{{this}}{{/withSort}} -> abc
*/
-helpers.withSort = function(array, prop, options) {
+export function withSort(array, prop, options) {
if (util.isUndefined(array)) return '';
array = util.result(array);
if (Array.isArray(array)) {
@@ -914,7 +898,7 @@ helpers.withSort = function(array, prop, options) {
return result;
}
return '';
-};
+}
/**
* Block helper that return an array with all duplicate
@@ -933,7 +917,7 @@ helpers.withSort = function(array, prop, options) {
* @example {{#each (unique ['a', 'a', 'c', 'b', 'e', 'e']) }}{{.}}{{/each}} -> acbe
*/
-helpers.unique = function(array, options) {
+export function unique(array, options) {
if (util.isUndefined(array)) return '';
array = util.result(array);
@@ -943,4 +927,4 @@ helpers.unique = function(array, options) {
});
}
return '';
-};
+}
diff --git a/lib/code.js b/lib/code.js
index d665c03b..92510bc1 100644
--- a/lib/code.js
+++ b/lib/code.js
@@ -1,10 +1,9 @@
'use strict';
-var fs = require('fs');
-var path = require('path');
-const codeBlock = require('to-gfm-code-block');
-const htmlTag = require('html-tag');
-var helpers = module.exports;
+import { readFileSync } from 'fs';
+import { extname } from 'path';
+import codeBlock from 'to-gfm-code-block';
+import htmlTag from 'html-tag';
/**
* Embed code from an external file as preformatted text.
@@ -21,16 +20,16 @@ var helpers = module.exports;
* @api public
*/
-helpers.embed = function embed(filepath, ext) {
- ext = typeof ext !== 'string' ? path.extname(filepath).slice(1) : ext;
- var code = fs.readFileSync(filepath, 'utf8');
+export function embed(filepath, ext) {
+ ext = typeof ext !== 'string' ? extname(filepath).slice(1) : ext;
+ var code = readFileSync(filepath, 'utf8');
if (ext === 'markdown' || ext === 'md') {
ext = 'markdown';
// if the string is markdown, escape backticks
code = code.split('`').join('`');
}
return codeBlock(code, ext).trim() + '\n';
-};
+}
/**
* Embed a GitHub Gist using only the id of the Gist
@@ -43,22 +42,11 @@ helpers.embed = function embed(filepath, ext) {
* @api public
*/
-helpers.gist = function(id) {
+export function gist(id) {
return htmlTag('script', {src: 'https://gist.github.com/' + id + '.js'});
-};
-
-/**
- * Generate the HTML for a jsFiddle link with the given `params`
- *
- * ```handlebars
- * {{jsfiddle id='0dfk10ks' tabs='true'}}
- * ```
- * @param {Object} `params`
- * @return {String}
- * @api public
- */
+}
-helpers.jsfiddle = function jsFiddle(options) {
+export const jsfiddle = function jsFiddle(options) {
var attr = Object.assign({}, options && options.hash);
if (typeof attr.id === 'undefined') {
diff --git a/lib/collection.js b/lib/collection.js
index 6cb87f1d..c23ffa21 100644
--- a/lib/collection.js
+++ b/lib/collection.js
@@ -1,11 +1,9 @@
'use strict';
-var util = require('./utils/handlebarsUtils');
-var object = require('./object');
-var array = require('./array');
-var forEach = array.forEach;
-var forOwn = object.forOwn;
-var helpers = module.exports;
+import { isOptions, fn, isObject } from './utils/index.js';
+import { forOwn } from './object.js';
+import { forEach } from './array.js';
+import value from './utils/value.js';
/**
* Inline, subexpression, or block helper that returns true (or the block)
@@ -28,20 +26,20 @@ var helpers = module.exports;
* @api public
*/
-helpers.isEmpty = function(collection, options) {
- if (!util.isOptions(options)) {
+export function isEmpty(collection, options) {
+ if (!isOptions(options)) {
options = collection;
- return util.fn(true, this, options);
+ return fn(true, this, options);
}
if (Array.isArray(collection) && !collection.length) {
- return util.fn(true, this, options);
+ return fn(true, this, options);
}
var keys = Object.keys(collection);
var isEmpty = typeof collection === 'object' && !keys.length;
- return util.value(isEmpty, this, options);
-};
+ return value(isEmpty, this, options);
+}
/**
* Block helper that iterates over an array or object. If
@@ -56,12 +54,12 @@ helpers.isEmpty = function(collection, options) {
* @api public
*/
-helpers.iterate = function(collection, options) {
+export function iterate(collection, options) {
if (Array.isArray(collection)) {
return forEach.apply(null, arguments);
}
- if (util.isObject(collection)) {
+ if (isObject(collection)) {
return forOwn.apply(null, arguments);
}
return options.inverse(this);
-};
+}
diff --git a/lib/comparison.js b/lib/comparison.js
index cad8c9a8..5335610a 100644
--- a/lib/comparison.js
+++ b/lib/comparison.js
@@ -1,18 +1,10 @@
'use strict';
-var has = require('has-value');
-var util = {
- value: require('./utils/value'),
- isOptions: require('./utils/isOptions'),
- isString: require('./utils/isString'),
- fn: require('./utils/fn'),
- isObject: require('./utils/isObject'),
- inverse: require('./utils/inverse')
-};
-var utils = require('./utils');
-const falsey = require('./utils/falsey');
-const isOdd = require('./utils/odd');
-var helpers = module.exports;
+import has from 'has-value';
+
+import * as util from './utils/index.js';
+import falsey from './utils/falsey.js';
+import isOdd from './utils/odd.js';
/**
* Helper that renders the block if **both** of the given values
@@ -34,7 +26,7 @@ var helpers = module.exports;
* @example {{#and great magnificent}}both{{else}}no{{/and}} -> no
*/
-helpers.and = function() {
+export function and() {
var len = arguments.length - 1;
var options = arguments[len];
var val = true;
@@ -47,7 +39,7 @@ helpers.and = function() {
}
return util.value(val, this, options);
-};
+}
/**
* Render a block when a comparison of the first and third
@@ -66,7 +58,7 @@ helpers.and = function() {
* @example {{compare 10 '<' 5 }} -> false
*/
-helpers.compare = function(a, operator, b, options) {
+export function compare(a, operator, b, options) {
/*eslint eqeqeq: 0*/
if (arguments.length < 4) {
@@ -110,7 +102,7 @@ helpers.compare = function(a, operator, b, options) {
}
return util.value(result, this, options);
-};
+}
/**
* Block helper that renders the block if `collection` has the
@@ -136,14 +128,14 @@ helpers.compare = function(a, operator, b, options) {
* @example {{#contains ['a', 'b', 'c'] 'd'}} This will not be rendered. {{else}} This will be rendered. {{/contains}} -> ' This will be rendered. '
*/
-helpers.contains = function(collection, value, startIndex, options) {
+export function contains(collection, value, startIndex, options) {
if (typeof startIndex === 'object') {
options = startIndex;
startIndex = undefined;
}
- var val = utils.contains(collection, value, startIndex);
+ var val = util.contains(collection, value, startIndex);
return util.value(val, this, options);
-};
+}
/**
* Returns the first value that is not undefined, otherwise the 'default' value is returned.
@@ -156,12 +148,13 @@ helpers.contains = function(collection, value, startIndex, options) {
* @example {{default null null 'default'}} -> default
*/
-helpers.default = function() {
+const _default = function() {
for (var i = 0; i < arguments.length - 1; i++) {
if (arguments[i] != null) return arguments[i];
}
return '';
};
+export { _default as default };
/**
* Block helper that renders a block if `a` is **equal to** `b`.
@@ -179,13 +172,13 @@ helpers.default = function() {
* @example {{#eq 3 3}}equal{{else}}not equal{{/eq}} -> equal
*/
-helpers.eq = function(a, b, options) {
+export function eq(a, b, options) {
if (arguments.length === 2) {
options = b;
b = options.hash.compare;
}
return util.value(a === b, this, options);
-};
+}
/**
* Block helper that renders a block if `a` is **greater than** `b`.
@@ -203,13 +196,13 @@ helpers.eq = function(a, b, options) {
* @example {{#gt 4 3}} greater than{{else}} not greater than{{/gt}} -> ' greater than'
*/
-helpers.gt = function(a, b, options) {
+export function gt(a, b, options) {
if (arguments.length === 2) {
options = b;
b = options.hash.compare;
}
return util.value(a > b, this, options);
-};
+}
/**
* Block helper that renders a block if `a` is **greater than or
@@ -228,13 +221,13 @@ helpers.gt = function(a, b, options) {
* @example {{#gte 4 3}} greater than or equal{{else}} not greater than{{/gte}} -> ' greater than or equal'
*/
-helpers.gte = function(a, b, options) {
+export function gte(a, b, options) {
if (arguments.length === 2) {
options = b;
b = options.hash.compare;
}
return util.value(a >= b, this, options);
-};
+}
/**
* Block helper that renders a block if `value` has `pattern`.
@@ -249,7 +242,7 @@ helpers.gte = function(a, b, options) {
* @example {{#has 'foobar' 'foo'}}has it{{else}}doesn't{{/has}} -> has it
*/
-helpers.has = function(value, pattern, options) {
+const _has = function(value, pattern, options) {
if (util.isOptions(value)) {
options = value;
pattern = null;
@@ -269,10 +262,8 @@ helpers.has = function(value, pattern, options) {
return util.value(has(this, value), this, options);
}
- if (
- (Array.isArray(value) || util.isString(value)) &&
- util.isString(pattern)
- ) {
+ if ((Array.isArray(value) || util.isString(value)) &&
+ util.isString(pattern)) {
if (value.indexOf(pattern) > -1) {
return util.fn(true, this, options);
}
@@ -282,6 +273,7 @@ helpers.has = function(value, pattern, options) {
}
return util.inverse(false, this, options);
};
+export { _has as has };
/**
* Returns true if the given `value` is falsey. Uses the [falsey][]
@@ -295,9 +287,9 @@ helpers.has = function(value, pattern, options) {
* @example {{isFalsey '' }} -> true
*/
-helpers.isFalsey = function(val, options) {
+export function isFalsey(val, options) {
return util.value(falsey(val), this, options);
-};
+}
/**
* Returns true if the given `value` is truthy. Uses the [falsey][]
@@ -311,9 +303,9 @@ helpers.isFalsey = function(val, options) {
* @example {{isTruthy '12' }} -> true
*/
-helpers.isTruthy = function(val, options) {
+export function isTruthy(val, options) {
return util.value(!falsey(val), this, options);
-};
+}
/**
* Return true if the given value is an even number.
@@ -333,9 +325,9 @@ helpers.isTruthy = function(val, options) {
* @example {{#ifEven 2}} even {{else}} odd {{/ifEven}} -> ' even '
*/
-helpers.ifEven = function(num, options) {
+export function ifEven(num, options) {
return util.value(!isOdd(num), this, options);
-};
+}
/**
* Conditionally renders a block if the remainder is zero when
@@ -351,10 +343,10 @@ helpers.ifEven = function(num, options) {
* @example {{#ifNth 2 10}}remainder{{else}}no remainder{{/ifNth}} -> remainder
*/
-helpers.ifNth = function(a, b, options) {
+export function ifNth(a, b, options) {
var isNth = !isNaN(a) && !isNaN(b) && b % a === 0;
return util.value(isNth, this, options);
-};
+}
/**
* Block helper that renders a block if `value` is **an odd number**.
@@ -375,9 +367,9 @@ helpers.ifNth = function(a, b, options) {
* @example {{#ifOdd 3}}odd{{else}}even{{/ifOdd}} -> odd
*/
-helpers.ifOdd = function(val, options) {
+export function ifOdd(val, options) {
return util.value(isOdd(val), this, options);
-};
+}
/**
* Block helper that renders a block if `a` is **equal to** `b`.
@@ -393,13 +385,13 @@ helpers.ifOdd = function(val, options) {
* @example {{#is 3 3}} is {{else}} is not {{/is}} -> ' is '
*/
-helpers.is = function(a, b, options) {
+export function is(a, b, options) {
if (arguments.length === 2) {
options = b;
b = options.hash.compare;
}
return util.value(a == b, this, options);
-};
+}
/**
* Block helper that renders a block if `a` is **not equal to** `b`.
@@ -416,13 +408,13 @@ helpers.is = function(a, b, options) {
* @example {{#isnt 3 3}} isnt {{else}} is {{/isnt}} -> ' is '
*/
-helpers.isnt = function(a, b, options) {
+export function isnt(a, b, options) {
if (arguments.length === 2) {
options = b;
b = options.hash.compare;
}
return util.value(a != b, this, options);
-};
+}
/**
* Block helper that renders a block if `a` is **less than** `b`.
@@ -439,13 +431,13 @@ helpers.isnt = function(a, b, options) {
* @example {{#lt 2 3}} less than {{else}} more than or equal {{/lt}} -> ' less than '
*/
-helpers.lt = function(a, b, options) {
+export function lt(a, b, options) {
if (arguments.length === 2) {
options = b;
b = options.hash.compare;
}
return util.value(a < b, this, options);
-};
+}
/**
* Block helper that renders a block if `a` is **less than or
@@ -464,13 +456,13 @@ helpers.lt = function(a, b, options) {
* @example {{#lte 2 3}} less than or equal {{else}} more than {{/lte}} -> ' less than or equal '
*/
-helpers.lte = function(a, b, options) {
+export function lte(a, b, options) {
if (arguments.length === 2) {
options = b;
b = options.hash.compare;
}
return util.value(a <= b, this, options);
-};
+}
/**
* Block helper that renders a block if **neither of** the given values
@@ -486,9 +478,9 @@ helpers.lte = function(a, b, options) {
* @example {{#neither null null}}both falsey{{else}}both not falsey{{/neither}} -> both falsey
*/
-helpers.neither = function(a, b, options) {
+export function neither(a, b, options) {
return util.value(!a && !b, this, options);
-};
+}
/**
* Returns true if `val` is falsey. Works as a block or inline helper.
@@ -501,9 +493,9 @@ helpers.neither = function(a, b, options) {
* @example {{#not undefined }}falsey{{else}}not falsey{{/not}} -> falsey
*/
-helpers.not = function(val, options) {
+export function not(val, options) {
return util.value(!val, this, options);
-};
+}
/**
* Block helper that renders a block if **any of** the given values
@@ -524,7 +516,7 @@ helpers.not = function(val, options) {
* @example {{#or 1 2 undefined }} at least one truthy {{else}} all falsey {{/or}} -> ' at least one truthy '
*/
-helpers.or = function(/* any, any, ..., options */) {
+export function or(/* any, any, ..., options */) {
var len = arguments.length - 1;
var options = arguments[len];
var val = false;
@@ -536,7 +528,7 @@ helpers.or = function(/* any, any, ..., options */) {
}
}
return util.value(val, this, options);
-};
+}
/**
* Block helper that always renders the inverse block **unless `a` is
@@ -551,13 +543,13 @@ helpers.or = function(/* any, any, ..., options */) {
* @example {{#unlessEq 2 1 }} not equal {{else}} equal {{/unlessEq}} -> ' not equal '
*/
-helpers.unlessEq = function(a, b, options) {
+export function unlessEq(a, b, options) {
if (util.isOptions(b)) {
options = b;
b = options.hash.compare;
}
return util.value(a !== b, this, options);
-};
+}
/**
* Block helper that always renders the inverse block **unless `a` is
@@ -572,13 +564,13 @@ helpers.unlessEq = function(a, b, options) {
* @example {{#unlessGt 20 1 }} not greater than {{else}} greater than {{/unlessGt}} -> ' greater than '
*/
-helpers.unlessGt = function(a, b, options) {
+export function unlessGt(a, b, options) {
if (util.isOptions(b)) {
options = b;
b = options.hash.compare;
}
return util.value(a <= b, this, options);
-};
+}
/**
* Block helper that always renders the inverse block **unless `a` is
@@ -593,13 +585,13 @@ helpers.unlessGt = function(a, b, options) {
* @example {{#unlessLt 20 1 }}greater than or equal{{else}}less than{{/unlessLt}} -> greater than or equal
*/
-helpers.unlessLt = function(a, b, options) {
+export function unlessLt(a, b, options) {
if (util.isOptions(b)) {
options = b;
b = options.hash.compare;
}
return util.value(a >= b, this, options);
-};
+}
/**
* Block helper that always renders the inverse block **unless `a` is
@@ -614,13 +606,13 @@ helpers.unlessLt = function(a, b, options) {
* @example {{#unlessGteq 20 1 }} less than {{else}}greater than or equal to{{/unlessGteq}} -> greater than or equal to
*/
-helpers.unlessGteq = function(a, b, options) {
+export function unlessGteq(a, b, options) {
if (util.isOptions(b)) {
options = b;
b = options.hash.compare;
}
return util.value(a < b, this, options);
-};
+}
/**
* Block helper that always renders the inverse block **unless `a` is
@@ -635,10 +627,10 @@ helpers.unlessGteq = function(a, b, options) {
* @example {{#unlessLteq 20 1 }} greater than {{else}} less than or equal to {{/unlessLteq}} -> ' greater than '
*/
-helpers.unlessLteq = function(a, b, options) {
+export function unlessLteq(a, b, options) {
if (util.isOptions(b)) {
options = b;
b = options.hash.compare;
}
return util.value(a > b, this, options);
-};
+}
diff --git a/lib/fs.js b/lib/fs.js
index 6460a6de..16bfcd41 100644
--- a/lib/fs.js
+++ b/lib/fs.js
@@ -1,19 +1,15 @@
'use strict';
-var fs = require('fs');
-var path = require('path');
-var util = require('./utils/handlebarsUtils');
-var number = require('./number');
-var helpers = module.exports;
-const kindOf = require('kind-of');
-const isGlob = require('is-glob');
-const micromatch = require('micromatch');
+import { readFileSync, readdirSync, statSync } from 'fs';
+import { join } from 'path';
+import { isOptions } from './utils/handlebarsUtils';
+import { bytes } from './number';
-/**
- * Helper `fileSize` is deprecated. Use `helper.prettyBytes` instead.
- */
+import kindOf from 'kind-of';
+import isGlob from 'is-glob';
+import { matcher } from 'micromatch';
-helpers.fileSize = number.bytes;
+export const fileSize = bytes;
/**
* Read a file from the file system. This is useful in composing
@@ -28,9 +24,9 @@ helpers.fileSize = number.bytes;
* @api public
*/
-helpers.read = function(filepath, options) {
- return fs.readFileSync(filepath, 'utf8');
-};
+export function read(filepath, options) {
+ return readFileSync(filepath, 'utf8');
+}
/**
* Return an array of files from the given
@@ -41,12 +37,12 @@ helpers.read = function(filepath, options) {
* @api public
*/
-helpers.readdir = function(dir, filter) {
- var files = fs.readdirSync(dir);
+export function readdir(dir, filter) {
+ var files = readdirSync(dir);
files = files.map(function(fp) {
- return path.join(dir, fp);
+ return join(dir, fp);
});
- if (util.isOptions(filter)) {
+ if (isOptions(filter)) {
return files;
}
if (typeof filter === 'function') {
@@ -58,13 +54,13 @@ helpers.readdir = function(dir, filter) {
});
}
if (isGlob(filter)) {
- return files.filter(micromatch.matcher(filter));
+ return files.filter(matcher(filter));
}
if (['isFile', 'isDirectory'].indexOf(filter) !== -1) {
return files.filter(function(fp) {
- var stat = fs.statSync(fp);
+ var stat = statSync(fp);
return stat[filter]();
});
}
return files;
-};
+}
diff --git a/lib/html.js b/lib/html.js
index 208ee07a..23e96c8b 100644
--- a/lib/html.js
+++ b/lib/html.js
@@ -1,11 +1,11 @@
'use strict';
-var path = require('path');
-var util = require('./utils/handlebarsUtils');
-var html = require('./utils/html');
-var parseAttr = html.parseAttributes;
-var helpers = module.exports;
-const htmlTag = require('html-tag');
+import { extname, posix } from 'path';
+import { arrayify } from './utils/index.js';
+import { parseAttributes, sanitize as htmlSanitize } from './utils/html.js';
+var parseAttr = parseAttributes;
+
+import htmlTag from 'html-tag';
/**
* Stringify attributes on the options `hash`.
@@ -20,10 +20,10 @@ const htmlTag = require('html-tag');
* @api public
*/
-helpers.attr = function(options) {
+export function attr(options) {
var val = parseAttr((options && options.hash) || {});
return val.trim() ? ' ' + val : '';
-};
+}
/**
* Add an array of `` tags. Automatically resolves
@@ -42,13 +42,13 @@ helpers.attr = function(options) {
* @api public
*/
-helpers.css = function(list, options) {
+export function css(list, options) {
if (arguments.length < 2) {
options = list;
list = [];
}
- var styles = util.arrayify(list);
+ var styles = arrayify(list);
var assets = '';
if (this && this.options) {
@@ -56,15 +56,15 @@ helpers.css = function(list, options) {
}
if (options.hash.href) {
- styles = util.arrayify(options.hash.href);
+ styles = arrayify(options.hash.href);
}
return styles.map(function(item) {
- var ext = path.extname(item);
+ var ext = extname(item);
var fp = item;
if (!/(^\/\/)|(:\/\/)/.test(item)) {
- fp = path.posix.join(assets, item);
+ fp = posix.join(assets, item);
}
if (ext === '.less') {
@@ -72,7 +72,7 @@ helpers.css = function(list, options) {
}
return ``;
}).join('\n');
-};
+}
/**
* Generate one or more `` tags with paths/urls to
@@ -86,7 +86,7 @@ helpers.css = function(list, options) {
* @api public
*/
-helpers.js = function(context) {
+export function js(context) {
if (typeof context === 'object' && context.hash) {
var attr = parseAttr(context.hash);
return ``;
@@ -96,13 +96,13 @@ helpers.js = function(context) {
return ``;
}
- context = util.arrayify(context);
+ context = arrayify(context);
return context.map(function(fp) {
- return (path.extname(fp) === '.coffee')
+ return (extname(fp) === '.coffee')
? htmlTag('script', { type: 'text/coffeescript', src: fp })
: htmlTag('script', { src: fp });
}).join('\n');
-};
+}
/**
* Strip HTML tags from a string, so that only the text nodes
@@ -118,9 +118,9 @@ helpers.js = function(context) {
* @api public
*/
-helpers.sanitize = function(str) {
- return html.sanitize(str);
-};
+export function sanitize(str) {
+ return htmlSanitize(str);
+}
/**
* Block helper for creating unordered lists (`
`)
@@ -132,14 +132,14 @@ helpers.sanitize = function(str) {
* @api public
*/
-helpers.ul = function(context, options) {
+export function ul(context, options) {
return ('') + context.map(function(item) {
if (typeof item !== 'string') {
item = options.fn(item);
}
return '- ' + item + '
';
}).join('\n') + '
';
-};
+}
/**
* Block helper for creating ordered lists (`
`)
@@ -151,14 +151,14 @@ helpers.ul = function(context, options) {
* @api public
*/
-helpers.ol = function(context, options) {
+export function ol(context, options) {
return ('') + context.map(function(item) {
if (typeof item !== 'string') {
item = options.fn(item);
}
return '- ' + item + '
';
}).join('\n') + '
';
-};
+}
/**
* Returns a `` with a thumbnail linked to a full picture
@@ -173,7 +173,7 @@ helpers.ol = function(context, options) {
* @api public
*/
-helpers.thumbnailImage = function(context) {
+export function thumbnailImage(context) {
var figure = '';
var image = '';
@@ -215,4 +215,4 @@ helpers.thumbnailImage = function(context) {
figure += '';
return figure;
-};
+}
diff --git a/lib/i18n.js b/lib/i18n.js
index 1b4a8d66..61d047d7 100644
--- a/lib/i18n.js
+++ b/lib/i18n.js
@@ -1,8 +1,7 @@
'use strict';
-var util = require('./utils/handlebarsUtils');
-var helpers = module.exports;
-const getValue = require('get-value');
+import * as utils from './utils/index.js';
+import getValue from 'get-value';
/**
* i18n helper. See [button-i18n](https://github.com/assemble/buttons)
@@ -15,17 +14,17 @@ const getValue = require('get-value');
* @api public
*/
-helpers.i18n = function(prop, locals, options) {
- if (util.isOptions(locals)) {
+export function i18n(prop, locals, options) {
+ if (utils.isOptions(locals)) {
options = locals;
locals = {};
}
- if (!util.isString(prop)) {
+ if (!utils.isString(prop)) {
throw new Error('{{i18n}} helper expected "key" to be a string');
}
- var opts = util.options(this, locals, options);
+ var opts = utils.options(this, locals, options);
var context = Object.assign({}, this, opts);
var lang = context.language || context.lang;
@@ -45,4 +44,4 @@ helpers.i18n = function(prop, locals, options) {
}
return result;
-};
+}
diff --git a/lib/index.js b/lib/index.js
index f5ab2e30..ca2f9f4a 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -1,24 +1,39 @@
'use strict';
-module.exports = {
- array: require('./array'),
- code: require('./code'),
- collection: require('./collection'),
- comparison: require('./comparison'),
- //date: require('./date'),
- //fs: require('./fs'),
- html: require('./html'),
- i18n: require('./i18n'),
- inflection: require('./inflection'),
- //markdown: require('./markdown'),
- match: require('./match'),
- math: require('./math'),
- misc: require('./misc'),
- number: require('./number'),
- object: require('./object'),
- path: require('./path'),
- regex: require('./regex'),
- string: require('./string'),
- url: require('./url'),
- uuid: require('./uuid')
+import * as array from './array.js';
+import * as code from './code.js';
+import * as collection from './collection.js';
+import * as comparison from './comparison.js';
+import * as html from './html.js';
+import * as i18n from './i18n.js';
+import * as inflection from './inflection.js';
+import * as match from './match.js';
+import * as math from './math.js';
+import * as misc from './misc.js';
+import * as number from './number.js';
+import * as object from './object.js';
+import * as path from './path.js';
+import * as regex from './regex.js';
+import * as string from './string.js';
+import * as url from './url.js';
+import * as uuid from './uuid.js';
+
+export default {
+ array,
+ code,
+ collection,
+ comparison,
+ html,
+ i18n,
+ inflection,
+ match,
+ math,
+ misc,
+ number,
+ object,
+ path,
+ regex,
+ string,
+ url,
+ uuid
};
diff --git a/lib/inflection.js b/lib/inflection.js
index b518b98e..ec1490ae 100644
--- a/lib/inflection.js
+++ b/lib/inflection.js
@@ -1,7 +1,6 @@
'use strict';
-var util = require('./utils/handlebarsUtils');
-var helpers = module.exports;
+import { indexOf } from './utils/index.js';
/**
* Returns either the `singular` or `plural` inflection of a word based on
@@ -27,14 +26,14 @@ var helpers = module.exports;
* @api public
*/
-helpers.inflect = function(count, singular, plural, includeCount) {
+export function inflect(count, singular, plural, includeCount) {
var word = (count > 1 || count === 0) ? plural : singular;
if (includeCount === true) {
return String(count) + ' ' + word;
} else {
return word;
}
-};
+}
/**
* Returns an ordinalized number as a string.
@@ -55,12 +54,12 @@ helpers.inflect = function(count, singular, plural, includeCount) {
* @api public
*/
-helpers.ordinalize = function(val) {
+export function ordinalize(val) {
var num = Math.abs(Math.round(val));
var str = String(val);
var res = num % 100;
- if (util.indexOf([11, 12, 13], res) >= 0) {
+ if (indexOf([11, 12, 13], res) >= 0) {
return str + 'th';
}
@@ -75,4 +74,4 @@ helpers.ordinalize = function(val) {
return str + 'th';
}
}
-};
+}
diff --git a/lib/match.js b/lib/match.js
index 049c99ff..f7823fe9 100644
--- a/lib/match.js
+++ b/lib/match.js
@@ -1,8 +1,8 @@
'use strict';
-var util = require('./utils/handlebarsUtils');
-var helpers = module.exports;
-const micromatch = require('micromatch');
+import * as utils from './utils/index.js';
+
+import micromatch from 'micromatch';
/**
* Returns an array of strings that match the given glob pattern(s).
@@ -20,13 +20,13 @@ const micromatch = require('micromatch');
* @api public
*/
-helpers.match = function(files, patterns, locals, options) {
- var opts = util.options(this, locals, options);
+export function match(files, patterns, locals, options) {
+ var opts = utils.options(this, locals, options);
if (typeof patterns === 'string') {
patterns = patterns.split(/, */);
}
return micromatch(files, patterns, opts);
-};
+}
/**
* Returns true if a filepath contains the given pattern.
@@ -44,18 +44,18 @@ helpers.match = function(files, patterns, locals, options) {
* @api public
*/
-helpers.isMatch = function(files, patterns, locals, options) {
- var opts = util.options(this, locals, options);
+export function isMatch(files, patterns, locals, options) {
+ var opts = utils.options(this, locals, options);
return micromatch.isMatch(files, patterns, opts);
-};
+}
/**
* Alias for micromatch helper. Deprecated in v0.9.0.
*/
-helpers.mm = function() {
+export function mm() {
console.log('the {{mm}} helper is depcrecated and will be removed');
console.log('in handlebars-helpers v1.0.0, please use the {{match}}');
console.log('helper instead.');
- return helpers.match.apply(this, arguments);
-};
+ return match.apply(this, arguments);
+}
diff --git a/lib/math.js b/lib/math.js
index 77884435..b217be65 100644
--- a/lib/math.js
+++ b/lib/math.js
@@ -1,7 +1,6 @@
'use strict';
-var utils = require('./utils');
-var helpers = module.exports;
+import * as utils from './utils/index.js';
/**
* Return the magnitude of `a`.
@@ -12,12 +11,12 @@ var helpers = module.exports;
* @example {{ abs 12012.1000 }} -> 12012.1
*/
-helpers.abs = function(num) {
+export function abs(num) {
if (isNaN(num)) {
throw new TypeError('expected a number');
}
return Math.abs(num);
-};
+}
/**
* Return the sum of `a` plus `b`.
@@ -29,7 +28,7 @@ helpers.abs = function(num) {
* @example {{ add 1 2 }} -> 3
*/
-helpers.add = function(a, b) {
+export function add(a, b) {
if (!isNaN(a) && !isNaN(b)) {
return Number(a) + Number(b);
}
@@ -37,7 +36,7 @@ helpers.add = function(a, b) {
return a + b;
}
return '';
-};
+}
/**
* Returns the average of all numbers in the given array.
@@ -53,12 +52,12 @@ helpers.add = function(a, b) {
* @example {{ avg 1 2 3 4 5 }} -> 3
*/
-helpers.avg = function() {
+export function avg() {
const args = [].concat.apply([], arguments);
// remove handlebars options object
args.pop();
- return helpers.sum(args) / args.length;
-};
+ return sum(args) / args.length;
+}
/**
* Get the `Math.ceil()` of the given value.
@@ -69,12 +68,12 @@ helpers.avg = function() {
* @example {{ ceil 1.2 }} -> 2
*/
-helpers.ceil = function(num) {
+export function ceil(num) {
if (isNaN(num)) {
throw new TypeError('expected a number');
}
return Math.ceil(num);
-};
+}
/**
* Divide `a` by `b`
@@ -85,7 +84,7 @@ helpers.ceil = function(num) {
* @example {{ divide 10 5 }} -> 2
*/
-helpers.divide = function(a, b) {
+export function divide(a, b) {
if (isNaN(a)) {
throw new TypeError('expected the first argument to be a number');
}
@@ -93,7 +92,7 @@ helpers.divide = function(a, b) {
throw new TypeError('expected the second argument to be a number');
}
return Number(a) / Number(b);
-};
+}
/**
* Get the `Math.floor()` of the given value.
@@ -104,12 +103,12 @@ helpers.divide = function(a, b) {
* @example {{ floor 1.2 }} -> 1
*/
-helpers.floor = function(num) {
+export function floor(num) {
if (isNaN(num)) {
throw new TypeError('expected a number');
}
return Math.floor(num);
-};
+}
/**
* Return the difference of `a` minus `b`.
@@ -121,7 +120,7 @@ helpers.floor = function(num) {
* @example {{ minus 10 5 }} -> 5
*/
-helpers.minus = function(a, b) {
+export function minus(a, b) {
if (isNaN(a)) {
throw new TypeError('expected the first argument to be a number');
}
@@ -129,7 +128,7 @@ helpers.minus = function(a, b) {
throw new TypeError('expected the second argument to be a number');
}
return Number(a) - Number(b);
-};
+}
/**
* Get the remainder of a division operation.
@@ -141,7 +140,7 @@ helpers.minus = function(a, b) {
* @example {{ modulo 10 5 }} -> 0
*/
-helpers.modulo = function(a, b) {
+export function modulo(a, b) {
if (isNaN(a)) {
throw new TypeError('expected the first argument to be a number');
}
@@ -149,7 +148,7 @@ helpers.modulo = function(a, b) {
throw new TypeError('expected the second argument to be a number');
}
return Number(a) % Number(b);
-};
+}
/**
* Multiply number `a` by number `b`.
@@ -162,7 +161,7 @@ helpers.modulo = function(a, b) {
* @example {{ multiply 10 5 }} -> 50
*/
-helpers.multiply = function(a, b) {
+export function multiply(a, b) {
if (isNaN(a)) {
throw new TypeError('expected the first argument to be a number');
}
@@ -170,7 +169,7 @@ helpers.multiply = function(a, b) {
throw new TypeError('expected the second argument to be a number');
}
return Number(a) * Number(b);
-};
+}
/**
* Add `a` by `b`.
@@ -181,7 +180,7 @@ helpers.multiply = function(a, b) {
* @example {{ plus 10 5 }} -> 15
*/
-helpers.plus = function(a, b) {
+export function plus(a, b) {
if (isNaN(a)) {
throw new TypeError('expected the first argument to be a number');
}
@@ -189,7 +188,7 @@ helpers.plus = function(a, b) {
throw new TypeError('expected the second argument to be a number');
}
return Number(a) + Number(b);
-};
+}
/**
* Generate a random number between two values
@@ -201,7 +200,7 @@ helpers.plus = function(a, b) {
* @example {{ random 0 20 }} -> 10
*/
-helpers.random = function(min, max) {
+export function random(min, max) {
if (isNaN(min)) {
throw new TypeError('expected minimum to be a number');
}
@@ -209,7 +208,7 @@ helpers.random = function(min, max) {
throw new TypeError('expected maximum to be a number');
}
return utils.random(min, max);
-};
+}
/**
* Get the remainder when `a` is divided by `b`.
@@ -220,9 +219,9 @@ helpers.random = function(min, max) {
* @example {{ remainder 10 6 }} -> 4
*/
-helpers.remainder = function(a, b) {
+export function remainder(a, b) {
return a % b;
-};
+}
/**
* Round the given number.
@@ -233,12 +232,12 @@ helpers.remainder = function(a, b) {
* @example {{ round 10.3 }} -> 10
*/
-helpers.round = function(num) {
+export function round(num) {
if (isNaN(num)) {
throw new TypeError('expected a number');
}
return Math.round(num);
-};
+}
/**
* Return the product of `a` minus `b`.
@@ -251,7 +250,7 @@ helpers.round = function(num) {
* @example {{ subtract 10 5 }} -> 5
*/
-helpers.subtract = function(a, b) {
+export function subtract(a, b) {
if (isNaN(a)) {
throw new TypeError('expected the first argument to be a number');
}
@@ -259,7 +258,7 @@ helpers.subtract = function(a, b) {
throw new TypeError('expected the second argument to be a number');
}
return Number(a) - Number(b);
-};
+}
/**
* Returns the sum of all numbers in the given array.
@@ -274,7 +273,7 @@ helpers.subtract = function(a, b) {
* @example {{ sum [1, 2, 3] }} -> 6
*/
-helpers.sum = function() {
+export function sum() {
var args = [].concat.apply([], arguments);
var len = args.length;
var sum = 0;
@@ -285,4 +284,4 @@ helpers.sum = function() {
}
}
return sum;
-};
+}
diff --git a/lib/misc.js b/lib/misc.js
index 79110038..1c56fedc 100644
--- a/lib/misc.js
+++ b/lib/misc.js
@@ -1,15 +1,15 @@
'use strict';
-var util = require('./utils/handlebarsUtils');
-var helpers = module.exports;
-const getValue = require('get-value');
-const createFrame = require('./utils/createFrame');
+import {options as _options} from './utils/index.js';
+
+import getValue from 'get-value';
+import createFrame from './utils/createFrame.js';
/**
* Block helper for exposing private `@` variables on the context
*/
-helpers.frame = function(context, options) {
+export function frame(context, options) {
if (typeof(context) === 'object' && context.hash) {
options = context;
context = options.data;
@@ -23,7 +23,7 @@ helpers.frame = function(context, options) {
// extend the frame with hash arguments
frame.extend(options.hash);
return options.fn(this, { data: frame });
-};
+}
/**
* Return the given value of `prop` from `this.options`.
@@ -38,9 +38,9 @@ helpers.frame = function(context, options) {
* @api public
*/
-helpers.option = function(prop, locals, options) {
- return getValue(util.options(this, locals, options), prop);
-};
+export function option(prop, locals, options) {
+ return getValue(_options(this, locals, options), prop);
+}
/**
* Block helper that renders the block without taking any arguments.
@@ -51,9 +51,9 @@ helpers.option = function(prop, locals, options) {
* @api public
*/
-helpers.noop = function(options) {
+export function noop(options) {
return options.fn(this);
-};
+}
/**
* Get the native type of the given `value`
@@ -71,7 +71,7 @@ helpers.noop = function(options) {
* @api public
*/
-helpers.typeOf = function(val) { return typeof val; };
+export function typeOf(val) { return typeof val; }
/**
* Block helper that builds the context for the block
@@ -83,10 +83,10 @@ helpers.typeOf = function(val) { return typeof val; };
* @api public
*/
-helpers.withHash = function(options) {
+export function withHash(options) {
if (options.hash && Object.keys(options.hash).length) {
return options.fn(options.hash);
} else {
return options.inverse(this);
}
-};
+}
diff --git a/lib/number.js b/lib/number.js
index 7948db60..23cd4671 100644
--- a/lib/number.js
+++ b/lib/number.js
@@ -1,9 +1,6 @@
'use strict';
-var util = {
- isUndefined: require('./utils/isUndefined')
-};
-var helpers = module.exports;
+import * as util from './utils/index.js';
/**
* Format a number to it's equivalent in bytes. If a string is passed,
@@ -22,7 +19,7 @@ var helpers = module.exports;
* @example {{ bytes 1386 1 }} -> 1.4 kB
*/
-helpers.bytes = function(number, precision, options) {
+export function bytes(number, precision, options) {
if (number == null) return '0 B';
if (isNaN(number)) {
@@ -49,7 +46,7 @@ helpers.bytes = function(number, precision, options) {
}
return number;
-};
+}
/**
* Add commas to numbers
@@ -60,9 +57,9 @@ helpers.bytes = function(number, precision, options) {
* @example {{ addCommas 1000000 }} -> 1,000,000
*/
-helpers.addCommas = function(num) {
+export function addCommas(num) {
return num.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,');
-};
+}
/**
* Convert a string or number to a formatted phone number.
@@ -74,13 +71,13 @@ helpers.addCommas = function(num) {
* @example {{ phoneNumber 8005551212 }} -> (800) 555-1212
*/
-helpers.phoneNumber = function(num) {
+export function phoneNumber(num) {
num = num.toString();
return '(' + num.substr(0, 3) + ') '
+ num.substr(3, 3) + '-'
+ num.substr(6, 4);
-};
+}
/**
* Abbreviate numbers to the given number of `precision`. This is for
@@ -93,7 +90,7 @@ helpers.phoneNumber = function(num) {
* @example {{ toAbbr 10123 2 }} -> 10.12k
*/
-helpers.toAbbr = function(number, precision) {
+export function toAbbr(number, precision) {
if (isNaN(number)) {
number = 0;
}
@@ -117,7 +114,7 @@ helpers.toAbbr = function(number, precision) {
len--;
}
return number;
-};
+}
/**
* Returns a string representing the given number in exponential notation.
@@ -132,7 +129,7 @@ helpers.toAbbr = function(number, precision) {
* @example {{ toExponential 10123 2 }} -> 1.01e+4
*/
-helpers.toExponential = function(number, digits) {
+export function toExponential(number, digits) {
if (isNaN(number)) {
number = 0;
}
@@ -140,7 +137,7 @@ helpers.toExponential = function(number, digits) {
digits = 0;
}
return Number(number).toExponential(digits);
-};
+}
/**
* Formats the given number using fixed-point notation.
@@ -156,7 +153,7 @@ helpers.toExponential = function(number, digits) {
* @example {{ toFixed 1.1234 2 }} -> 1.12
*/
-helpers.toFixed = function(number, digits) {
+export function toFixed(number, digits) {
if (isNaN(number)) {
number = 0;
}
@@ -164,7 +161,7 @@ helpers.toFixed = function(number, digits) {
digits = 0;
}
return Number(number).toFixed(digits);
-};
+}
/**
* @param {Number} `number`
@@ -172,9 +169,9 @@ helpers.toFixed = function(number, digits) {
* @api public
*/
-helpers.toFloat = function(number) {
+export function toFloat(number) {
return parseFloat(number);
-};
+}
/**
* @param {Number} `number`
@@ -182,9 +179,9 @@ helpers.toFloat = function(number) {
* @api public
*/
-helpers.toInt = function(number) {
+export function toInt(number) {
return parseInt(number, 10);
-};
+}
/**
* Returns a string representing the `Number` object to the specified precision.
@@ -200,7 +197,7 @@ helpers.toInt = function(number) {
* @example {{toPrecision '1.1234' 2}} -> 1.1
*/
-helpers.toPrecision = function(number, precision) {
+export function toPrecision(number, precision) {
if (isNaN(number)) {
number = 0;
}
@@ -208,4 +205,4 @@ helpers.toPrecision = function(number, precision) {
precision = 1;
}
return Number(number).toPrecision(precision);
-};
+}
diff --git a/lib/object.js b/lib/object.js
index 3cd17757..f0a54a04 100644
--- a/lib/object.js
+++ b/lib/object.js
@@ -1,15 +1,18 @@
'use strict';
var hasOwn = Object.hasOwnProperty;
+
+import isOptions from './utils/isOptions.js';
+import isObject from './utils/isObject.js';
var util = {
- isOptions: require('./utils/isOptions'),
- isObject: require('./utils/isObject')
+ isOptions,
+ isObject
};
-var array = require('./array');
-var helpers = module.exports;
-const getValue = require('get-value');
-const getObject = require('get-object');
-const createFrame = require('./utils/createFrame');
+import { arrayify } from './array.js';
+
+import getValue from 'get-value';
+import getObject from 'get-object';
+import createFrame from './utils/createFrame.js';
/**
* Extend the context with the properties of other objects.
@@ -20,7 +23,7 @@ const createFrame = require('./utils/createFrame');
* @api public
*/
-helpers.extend = function(/*objects*/) {
+export function extend(/*objects*/) {
var args = [].slice.call(arguments);
var opts = {};
@@ -44,7 +47,7 @@ helpers.extend = function(/*objects*/) {
}
return context;
-};
+}
/**
* Block helper that iterates over the properties of
@@ -57,7 +60,7 @@ helpers.extend = function(/*objects*/) {
* @api public
*/
-helpers.forIn = function(obj, options) {
+export function forIn(obj, options) {
if (!util.isOptions(options)) {
return obj.inverse(this);
}
@@ -70,7 +73,7 @@ helpers.forIn = function(obj, options) {
result += options.fn(obj[key], { data: data });
}
return result;
-};
+}
/**
* Block helper that iterates over the **own** properties of
@@ -83,7 +86,7 @@ helpers.forIn = function(obj, options) {
* @api public
*/
-helpers.forOwn = function(obj, options) {
+export function forOwn(obj, options) {
if (!util.isOptions(options)) {
return obj.inverse(this);
}
@@ -98,7 +101,7 @@ helpers.forOwn = function(obj, options) {
}
}
return result;
-};
+}
/**
* Take arguments and, if they are string or number, convert them to a dot-delineated object property path.
@@ -108,7 +111,7 @@ helpers.forOwn = function(obj, options) {
* @api public
*/
-helpers.toPath = function(/*prop*/) {
+export function toPath(/*prop*/) {
var prop = [];
for (var i = 0; i < arguments.length; i++) {
if (typeof arguments[i] === 'string' || typeof arguments[i] === 'number') {
@@ -116,7 +119,7 @@ helpers.toPath = function(/*prop*/) {
}
}
return prop.join('.');
-};
+}
/**
* Use property paths (`a.b.c`) to get a value or nested value from
@@ -130,13 +133,13 @@ helpers.toPath = function(/*prop*/) {
* @api public
*/
-helpers.get = function(prop, context, options) {
+export function get(prop, context, options) {
var val = getValue(context, prop);
if (options && options.fn) {
return val ? options.fn(val) : options.inverse(context);
}
return val;
-};
+}
/**
* Use property paths (`a.b.c`) to get an object from
@@ -151,9 +154,10 @@ helpers.get = function(prop, context, options) {
* @api public
*/
-helpers.getObject = function(prop, context) {
+const _getObject = function(prop, context) {
return getObject(context, prop);
};
+export { _getObject as getObject };
/**
* Return true if `key` is an own, enumerable property
@@ -169,9 +173,10 @@ helpers.getObject = function(prop, context) {
* @api public
*/
-helpers.hasOwn = function(context, key) {
+const _hasOwn = function(context, key) {
return hasOwn.call(context, key);
};
+export { _hasOwn as hasOwn };
/**
* Return true if `value` is an object.
@@ -185,9 +190,10 @@ helpers.hasOwn = function(context, key) {
* @api public
*/
-helpers.isObject = function(value) {
+const _isObject = function(value) {
return typeof value === 'object';
};
+export { _isObject as isObject };
/**
* Parses the given string using `JSON.parse`.
@@ -203,9 +209,9 @@ helpers.isObject = function(value) {
* @api public
*/
-helpers.JSONparse = function(str, options) {
+export function JSONparse(str, options) {
return JSON.parse(str);
-};
+}
/**
* Stringify an object using `JSON.stringify`.
@@ -220,12 +226,12 @@ helpers.JSONparse = function(str, options) {
* @api public
*/
-helpers.JSONstringify = function(obj, indent) {
+export function JSONstringify(obj, indent) {
if (isNaN(indent)) {
indent = 0;
}
return JSON.stringify(obj, null, indent);
-};
+}
/**
* Deeply merge the properties of the given `objects` with the
@@ -237,7 +243,7 @@ helpers.JSONstringify = function(obj, indent) {
* @api public
*/
-helpers.merge = function(context/*, objects, options*/) {
+export function merge(context/*, objects, options*/) {
var args = [].slice.call(arguments);
var opts = {};
@@ -249,14 +255,9 @@ helpers.merge = function(context/*, objects, options*/) {
}
return Object.assign.apply(null, args);
-};
-
-/**
- * Alias for parseJSON. this will be
- * deprecated in a future release
- */
+}
-helpers.parseJSON = helpers.JSONparse;
+export const parseJSON = JSONparse;
/**
* Pick properties from the context object.
@@ -269,13 +270,13 @@ helpers.parseJSON = helpers.JSONparse;
* @api public
*/
-helpers.pick = function(props, context, options) {
- var keys = array.arrayify(props);
+export function pick(props, context, options) {
+ var keys = arrayify(props);
var len = keys.length, i = -1;
var result = {};
while (++i < len) {
- result = helpers.extend({}, result, getObject(context, keys[i]));
+ result = extend({}, result, getObject(context, keys[i]));
}
if (options.fn) {
@@ -285,11 +286,6 @@ helpers.pick = function(props, context, options) {
return options.inverse(context);
}
return result;
-};
-
-/**
- * Alias for JSONstringify. this will be
- * deprecated in a future release
- */
+}
-helpers.stringify = helpers.JSONstringify;
+export const stringify = JSONstringify;
diff --git a/lib/path.js b/lib/path.js
index 6af69c4e..019555b6 100644
--- a/lib/path.js
+++ b/lib/path.js
@@ -1,9 +1,8 @@
'use strict';
-var util = require('./utils/handlebarsUtils');
-var path = require('path');
-const relative = require('relative');
-var helpers = module.exports;
+import * as util from './utils/index.js';
+import path from 'path';
+import _relative from 'relative';
/**
* Get the directory path segment from the given `filepath`.
@@ -17,7 +16,7 @@ var helpers = module.exports;
* @api public
*/
-helpers.absolute = function(filepath, options) {
+export const absolute = function(filepath, options) {
options = options || { data: {} };
var context = util.options(this, options);
var ctx = Object.assign({}, options.data.root, context);
@@ -37,7 +36,7 @@ helpers.absolute = function(filepath, options) {
* @api public
*/
-helpers.dirname = function(filepath, options) {
+export const dirname = function(filepath, options) {
if (typeof filepath !== 'string') {
throw new TypeError(util.expectedType('filepath', 'string', filepath));
}
@@ -56,14 +55,14 @@ helpers.dirname = function(filepath, options) {
* @api public
*/
-helpers.relative = function(a, b) {
+export const relative = function(a, b) {
if (typeof a !== 'string') {
throw new TypeError(util.expectedType('first path', 'string', a));
}
if (typeof b !== 'string') {
throw new TypeError(util.expectedType('second path', 'string', b));
}
- return relative(a, b);
+ return _relative(a, b);
};
/**
@@ -78,7 +77,7 @@ helpers.relative = function(a, b) {
* @api public
*/
-helpers.basename = function(filepath) {
+export const basename = function(filepath) {
if (typeof filepath !== 'string') {
throw new TypeError(util.expectedType('filepath', 'string', filepath));
}
@@ -97,7 +96,7 @@ helpers.basename = function(filepath) {
* @api public
*/
-helpers.stem = function(filepath) {
+export const stem = function(filepath) {
if (typeof filepath !== 'string') {
throw new TypeError(util.expectedType('filepath', 'string', filepath));
}
@@ -116,7 +115,7 @@ helpers.stem = function(filepath) {
* @api public
*/
-helpers.extname = function(filepath) {
+export const extname = function(filepath) {
if (typeof filepath !== 'string') {
throw new TypeError(util.expectedType('filepath', 'string', filepath));
}
@@ -135,7 +134,7 @@ helpers.extname = function(filepath) {
* @api public
*/
-helpers.resolve = function(filepath) {
+export const resolve = function(filepath) {
var args = [].slice.call(arguments);
var opts = util.options(this, args.pop());
var cwd = path.resolve(opts.cwd || process.cwd());
@@ -163,7 +162,7 @@ helpers.resolve = function(filepath) {
* @api public
*/
-helpers.segments = function(filepath, a, b) {
+export const segments = function(filepath, a, b) {
if (typeof filepath !== 'string') {
throw new TypeError(util.expectedType('filepath', 'string', filepath));
}
diff --git a/lib/regex.js b/lib/regex.js
index 5cba5f6d..b2ae442b 100644
--- a/lib/regex.js
+++ b/lib/regex.js
@@ -1,8 +1,8 @@
'use strict';
-var util = { options: require('./utils/options') };
-var helpers = module.exports;
-const kindOf = require('kind-of');
+import * as util from './utils/index.js';
+
+import kindOf from 'kind-of';
/**
* Convert the given string to a regular expression.
@@ -17,10 +17,10 @@ const kindOf = require('kind-of');
* @example {{toRegex 'foo'}} -> /foo/
*/
-helpers.toRegex = function(str, locals, options) {
+export function toRegex(str, locals, options) {
var opts = util.options({}, locals, options);
return new RegExp(str, opts.flags);
-};
+}
/**
* Returns true if the given `str` matches the given regex. A regex can
@@ -41,7 +41,7 @@ helpers.toRegex = function(str, locals, options) {
* @example {{test 'foobar' (toRegex 'foo')}} -> true
*/
-helpers.test = function(str, regex) {
+export function test(str, regex) {
if (typeof(str) !== 'string') {
return false;
}
@@ -49,4 +49,4 @@ helpers.test = function(str, regex) {
throw new TypeError('expected a regular expression');
}
return regex.test(str);
-};
+}
diff --git a/lib/string.js b/lib/string.js
index 4351da27..4297a7cf 100644
--- a/lib/string.js
+++ b/lib/string.js
@@ -1,13 +1,7 @@
'use strict';
-var util = {
- isString: require('./utils/isString'),
- isObject: require('./utils/isObject'),
- options: require('./utils/options')
-};
-var utils = require('./utils');
-var helpers = module.exports;
-let lorem = require('./lorem.js');
+import * as utils from './utils/index.js';
+import loremText from './utils/lorem.js';
/**
* Append the specified `suffix` to the given string.
@@ -24,7 +18,7 @@ let lorem = require('./lorem.js');
* @example {{append 'index' '.html'}} -> index.html
*/
-helpers.append = function(str, suffix) {
+export const append = function(str, suffix) {
if (typeof str === 'string' && typeof suffix === 'string') {
return str + suffix;
}
@@ -44,7 +38,7 @@ helpers.append = function(str, suffix) {
* @example {{camelcase 'foo bar baz'}} -> fooBarBaz
*/
-helpers.camelcase = function(str) {
+export const camelcase = function(str) {
if (typeof(str) !== 'string') return '';
return utils.changecase(str, function(ch) {
return ch.toUpperCase();
@@ -64,7 +58,7 @@ helpers.camelcase = function(str) {
* @example {{capitalize 'foo bar baz'}} -> Foo bar baz
*/
-helpers.capitalize = function(str) {
+export const capitalize = function(str) {
if (typeof(str) !== 'string') return '';
return str.charAt(0).toUpperCase() + str.slice(1);
};
@@ -82,11 +76,11 @@ helpers.capitalize = function(str) {
* @example {{ capitalizeAll 'foo bar baz'}} -> Foo Bar Baz
*/
-helpers.capitalizeAll = function(str) {
+export const capitalizeAll = function(str) {
if (typeof(str) !== 'string') return '';
- if (util.isString(str)) {
+ if (utils.isString(str)) {
return str.replace(/\w\S*/g, function(word) {
- return helpers.capitalize(word);
+ return capitalize(word);
});
}
};
@@ -101,7 +95,7 @@ helpers.capitalizeAll = function(str) {
* @example {{ center 'test' 1}} -> ' test '
*/
-helpers.center = function(str, spaces) {
+export const center = function(str, spaces) {
if (typeof(str) !== 'string') return '';
var space = '';
var i = 0;
@@ -132,7 +126,7 @@ helpers.center = function(str, spaces) {
* @example {{ chop ' ABC '}} -> ABC
*/
-helpers.chop = function(str) {
+export const chop = function(str) {
if (typeof(str) !== 'string') return '';
return utils.chop(str);
};
@@ -151,7 +145,7 @@ helpers.chop = function(str) {
* @example {{dashcase 'a-b-c d_e'}} -> a-b-c-d-e
*/
-helpers.dashcase = function(str) {
+export const dashcase = function(str) {
if (typeof(str) !== 'string') return '';
return utils.changecase(str, function(ch) {
return '-' + ch;
@@ -171,7 +165,7 @@ helpers.dashcase = function(str) {
* @example {{dotcase 'a-b-c d_e'}} -> a.b.c.d.e
*/
-helpers.dotcase = function(str) {
+export const dotcase = function(str) {
if (typeof(str) !== 'string') return '';
return utils.changecase(str, function(ch) {
return '.' + ch;
@@ -193,8 +187,8 @@ helpers.dotcase = function(str) {
*/
-helpers.downcase = function() {
- return helpers.lowercase.apply(this, arguments);
+export const downcase = function() {
+ return lowercase.apply(this, arguments);
};
/**
@@ -214,12 +208,12 @@ helpers.downcase = function() {
* @example {{ellipsis 'foo bar baz' 7}} -> foo bar…
*/
-helpers.ellipsis = function(str, limit) {
- if (util.isString(str)) {
+export const ellipsis = function(str, limit) {
+ if (utils.isString(str)) {
if (str.length <= limit) {
return str;
}
- return helpers.truncate(str, limit) + '…';
+ return truncate(str, limit) + '…';
}
};
@@ -236,7 +230,7 @@ helpers.ellipsis = function(str, limit) {
* @example {{hyphenate 'foo bar baz qux'}} -> foo-bar-baz-qux
*/
-helpers.hyphenate = function(str) {
+export const hyphenate = function(str) {
if (typeof(str) !== 'string') return '';
return str.split(' ').join('-');
};
@@ -254,7 +248,7 @@ helpers.hyphenate = function(str) {
* @example {{isString 'foo'}} -> true
*/
-helpers.isString = function(value) {
+export const isString = function(value) {
return typeof value === 'string';
};
@@ -271,8 +265,8 @@ helpers.isString = function(value) {
* @example {{lowercase 'Foo BAR baZ'}} -> foo bar baz
*/
-helpers.lowercase = function(str) {
- if (util.isObject(str) && str.fn) {
+export const lowercase = function(str) {
+ if (utils.isObject(str) && str.fn) {
return str.fn(this).toLowerCase();
}
if (typeof(str) !== 'string') return '';
@@ -294,7 +288,7 @@ helpers.lowercase = function(str) {
* @example {{occurrences 'foo bar foo bar baz' 'foo'}} -> 2
*/
-helpers.occurrences = function(str, substring) {
+export const occurrences = function(str, substring) {
if (typeof(str) !== 'string') return '';
var len = substring.length;
var pos = 0;
@@ -320,7 +314,7 @@ helpers.occurrences = function(str, substring) {
* @example {{pascalcase 'foo bar baz'}} -> FooBarBaz
*/
-helpers.pascalcase = function(str) {
+export const pascalcase = function(str) {
if (typeof(str) !== 'string') return '';
str = utils.changecase(str, function(ch) {
return ch.toUpperCase();
@@ -341,7 +335,7 @@ helpers.pascalcase = function(str) {
* @example {{pathcase 'a-b-c d_e'}} -> a/b/c/d/e
*/
-helpers.pathcase = function(str) {
+export const pathcase = function(str) {
if (typeof(str) !== 'string') return '';
return utils.changecase(str, function(ch) {
return '/' + ch;
@@ -362,9 +356,9 @@ helpers.pathcase = function(str) {
* @example {{plusify 'foo bar baz'}} -> foo+bar+baz
*/
-helpers.plusify = function(str, ch) {
+export const plusify = function(str, ch) {
if (typeof(str) !== 'string') return '';
- if (!util.isString(ch)) ch = ' ';
+ if (!utils.isString(ch)) ch = ' ';
return str.split(ch).join('+');
};
@@ -383,7 +377,7 @@ helpers.plusify = function(str, ch) {
* @example {{prepend 'bar' 'foo-'}} -> foo-bar
*/
-helpers.prepend = function(str, prefix) {
+export const prepend = function(str, prefix) {
return typeof str === 'string' && typeof prefix === 'string'
? (prefix + str)
: str;
@@ -406,9 +400,9 @@ helpers.prepend = function(str, prefix) {
* @example {{{{raw}}}}{{foo}}{{{{/raw}}}} -> \{{foo}}
*/
-helpers.raw = function(options) {
+export const raw = function(options) {
var str = options.fn();
- var opts = util.options(this, options);
+ var opts = utils.options(this, options);
if (opts.escape !== false) {
var idx = 0;
while (((idx = str.indexOf('{{', idx)) !== -1)) {
@@ -435,9 +429,9 @@ helpers.raw = function(options) {
* @example {{remove 'a b a b a b' 'a '}} -> b b b
*/
-helpers.remove = function(str, ch) {
+export const remove = function(str, ch) {
if (typeof(str) !== 'string') return '';
- if (!util.isString(ch)) return str;
+ if (!utils.isString(ch)) return str;
return str.split(ch).join('');
};
@@ -455,9 +449,9 @@ helpers.remove = function(str, ch) {
* @example {{removeFirst 'a b a b a b' 'a'}} -> ' b a b a b'
*/
-helpers.removeFirst = function(str, ch) {
+export const removeFirst = function(str, ch) {
if (typeof(str) !== 'string') return '';
- if (!util.isString(ch)) return str;
+ if (!utils.isString(ch)) return str;
return str.replace(ch, '');
};
@@ -476,10 +470,10 @@ helpers.removeFirst = function(str, ch) {
* @example {{replace 'a b a b a b' 'a' 'z'}} -> z b z b z b
*/
-helpers.replace = function(str, a, b) {
+export const replace = function(str, a, b) {
if (typeof(str) !== 'string') return '';
- if (!util.isString(a)) return str;
- if (!util.isString(b)) b = '';
+ if (!utils.isString(a)) return str;
+ if (!utils.isString(b)) b = '';
return str.split(a).join(b);
};
@@ -498,10 +492,10 @@ helpers.replace = function(str, a, b) {
* @example {{replaceFirst 'a b a b a b' 'a' 'z'}} -> z b a b a b
*/
-helpers.replaceFirst = function(str, a, b) {
+export const replaceFirst = function(str, a, b) {
if (typeof(str) !== 'string') return '';
- if (!util.isString(a)) return str;
- if (!util.isString(b)) b = '';
+ if (!utils.isString(a)) return str;
+ if (!utils.isString(b)) b = '';
return str.replace(a, b);
};
@@ -518,7 +512,7 @@ helpers.replaceFirst = function(str, a, b) {
* @example {{reverse 'abcde'}} -> edcba
*/
-helpers.reverse = require('./array').reverse;
+export { reverse} from './array.js';
/**
* Sentence case the given string
@@ -533,7 +527,7 @@ helpers.reverse = require('./array').reverse;
* @example {{sentence 'hello world. goodbye world.'}} -> Hello world. Goodbye world.
*/
-helpers.sentence = function(str) {
+export const sentence = function(str) {
if (typeof(str) !== 'string') return '';
return str.replace(/((?:\S[^\.\?\!]*)[\.\?\!]*)/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
@@ -553,7 +547,7 @@ helpers.sentence = function(str) {
* @example {{snakecase 'a-b-c d_e'}} -> a_b_c_d_e
*/
-helpers.snakecase = function(str) {
+export const snakecase = function(str) {
if (typeof(str) !== 'string') return '';
return utils.changecase(str, function(ch) {
return '_' + ch;
@@ -573,9 +567,9 @@ helpers.snakecase = function(str) {
* @example {{split 'a,b,c'}} -> ['a', 'b', 'c']
*/
-helpers.split = function(str, ch) {
+export const split = function(str, ch) {
if (typeof(str) !== 'string') return '';
- if (!util.isString(ch)) ch = ',';
+ if (!utils.isString(ch)) ch = ',';
return str.split(ch);
};
@@ -599,10 +593,10 @@ helpers.split = function(str, ch) {
* @example {{#startsWith 'Goodbye' 'Hello, world!'}}Yep{{else}}Nope{{/startsWith}} -> Nope
*/
-helpers.startsWith = function(prefix, str, options) {
+export const startsWith = function(prefix, str, options) {
var args = [].slice.call(arguments);
options = args.pop();
- if (util.isString(str) && str.indexOf(prefix) === 0) {
+ if (utils.isString(str) && str.indexOf(prefix) === 0) {
return options.fn(this);
}
if (typeof options.inverse === 'function') {
@@ -624,7 +618,7 @@ helpers.startsWith = function(prefix, str, options) {
* @example {{titleize 'this is title case' }} -> This Is Title Case
*/
-helpers.titleize = function(str) {
+export const titleize = function(str) {
if (typeof(str) !== 'string') return '';
var title = str.replace(/[- _]+/g, ' ');
var words = title.split(' ');
@@ -633,7 +627,7 @@ helpers.titleize = function(str) {
var i = 0;
while (len--) {
var word = words[i++];
- res.push(exports.capitalize(word));
+ res.push(capitalize(word));
}
return res.join(' ');
};
@@ -652,7 +646,7 @@ helpers.titleize = function(str) {
* @example {{trim ' ABC ' }} -> ABC
*/
-helpers.trim = function(str) {
+export const trim = function(str) {
return typeof str === 'string' ? str.trim() : '';
};
@@ -669,8 +663,8 @@ helpers.trim = function(str) {
* @example {{trimLeft ' ABC ' }} -> 'ABC '
*/
-helpers.trimLeft = function(str) {
- if (util.isString(str)) {
+export const trimLeft = function(str) {
+ if (utils.isString(str)) {
return str.replace(/^\s+/, '');
}
};
@@ -688,8 +682,8 @@ helpers.trimLeft = function(str) {
* @example {{trimRight ' ABC ' }} -> ' ABC'
*/
-helpers.trimRight = function(str) {
- if (util.isString(str)) {
+export const trimRight = function(str) {
+ if (utils.isString(str)) {
return str.replace(/\s+$/, '');
}
};
@@ -712,8 +706,8 @@ helpers.trimRight = function(str) {
* @example {{truncate 'foo bar baz' 7 }} -> foo bar
*/
-helpers.truncate = function(str, limit, suffix) {
- if (util.isString(str)) {
+export const truncate = function(str, limit, suffix) {
+ if (utils.isString(str)) {
if (typeof suffix !== 'string') {
suffix = '';
}
@@ -745,8 +739,8 @@ helpers.truncate = function(str, limit, suffix) {
* @example {{truncateWords 'foo bar baz' 1 }} -> foo…
*/
-helpers.truncateWords = function(str, count, suffix) {
- if (util.isString(str) && !isNaN(count)) {
+export const truncateWords = function(str, count, suffix) {
+ if (utils.isString(str) && !isNaN(count)) {
if (typeof suffix !== 'string') {
suffix = '…';
}
@@ -777,8 +771,8 @@ helpers.truncateWords = function(str, count, suffix) {
* @example {{upcase 'aBcDef'}} -> ABCDEF
*/
-helpers.upcase = function() {
- return helpers.uppercase.apply(this, arguments);
+export const upcase = function() {
+ return uppercase.apply(this, arguments);
};
/**
@@ -800,8 +794,8 @@ helpers.upcase = function() {
* @example {{uppercase 'aBcDef'}} -> ABCDEF
*/
-helpers.uppercase = function(str) {
- if (util.isObject(str) && str.fn) {
+export const uppercase = function(str) {
+ if (utils.isObject(str) && str.fn) {
return str.fn(this).toUpperCase();
}
if (typeof(str) !== 'string') return '';
@@ -823,11 +817,11 @@ helpers.uppercase = function(str) {
* @example {{lorem 11}} -> Lorem ipsum
*/
-helpers.lorem = function(num) {
+export const lorem = function(num) {
// Sad Path - Not a number, or not greater than 1, or not truthy
if (isNaN(num) || num < 1 || !num) {
num = 11;
}
- return lorem.substring(0, num);
+ return loremText.substring(0, num);
};
diff --git a/lib/url.js b/lib/url.js
index 5ee2496a..50d51829 100644
--- a/lib/url.js
+++ b/lib/url.js
@@ -1,11 +1,8 @@
'use strict';
-var url = require('url');
-var util = {
- isString: require('./utils/isString')
-};
-var querystring = require('querystring');
-var helpers = module.exports;
+import { resolve, parse } from 'url';
+import * as util from './utils/index.js';
+import * as qs from 'querystring';
/**
* Encodes a Uniform Resource Identifier (URI) component
@@ -19,11 +16,11 @@ var helpers = module.exports;
* @example {{ encodeURI 'https://myurl?Hello There' }} -> https%3A%2F%2Fmyurl%3FHello%20There
*/
-helpers.encodeURI = function(str) {
+export function encodeURI(str) {
if (util.isString(str)) {
return encodeURIComponent(str);
}
-};
+}
/**
* Escape the given string by replacing characters with escape sequences.
@@ -35,11 +32,11 @@ helpers.encodeURI = function(str) {
* @example {{ escape 'https://myurl?Hello+There' }} -> https%3A%2F%2Fmyurl%3FHello%2BThere
*/
-helpers.escape = function(str) {
+export function escape(str) {
if (util.isString(str)) {
- return querystring.escape(str);
+ return qs.escape(str);
}
-};
+}
/**
* Decode a Uniform Resource Identifier (URI) component.
@@ -50,11 +47,11 @@ helpers.escape = function(str) {
* @example {{ decodeURI 'https://myurl?Hello%20There' }} -> https://myurl?Hello There
*/
-helpers.decodeURI = function(str) {
+export function decodeURI(str) {
if (util.isString(str)) {
return decodeURIComponent(str);
}
-};
+}
/**
* Take a base URL, and a href URL, and resolve them as a
@@ -67,9 +64,9 @@ helpers.decodeURI = function(str) {
* @example {{ urlResolve 'https://myurl' '/api/test' }} -> https://myurl/api/test
*/
-helpers.urlResolve = function(base, href) {
- return url.resolve(base, href);
-};
+export function urlResolve(base, href) {
+ return resolve(base, href);
+}
/**
* Parses a `url` string into an object.
@@ -80,9 +77,9 @@ helpers.urlResolve = function(base, href) {
* @example {{ urlParse 'https://myurl/api/test' }}
*/
-helpers.urlParse = function(str) {
- return url.parse(str);
-};
+export function urlParse(str) {
+ return parse(str);
+}
/**
* Strip the query string from the given `url`.
@@ -93,11 +90,11 @@ helpers.urlParse = function(str) {
* @example {{ stripQuerystring 'https://myurl/api/test?foo=bar' }} -> 'https://myurl/api/test'
*/
-helpers.stripQuerystring = function(str) {
+export function stripQuerystring(str) {
if (util.isString(str)) {
return str.split('?')[0];
}
-};
+}
/**
* Strip protocol from a `url`. Useful for displaying media that
@@ -114,10 +111,10 @@ helpers.stripQuerystring = function(str) {
* @example {{ stripProtocol 'https://myurl/api/test' }} -> '//myurl/api/test'
*/
-helpers.stripProtocol = function(str) {
+export function stripProtocol(str) {
if (util.isString(str)) {
- var parsed = url.parse(str);
+ var parsed = parse(str);
parsed.protocol = '';
return parsed.format();
}
-};
+}
diff --git a/lib/utils/createFrame.js b/lib/utils/createFrame.js
index ba552b11..88c9be03 100644
--- a/lib/utils/createFrame.js
+++ b/lib/utils/createFrame.js
@@ -1,6 +1,6 @@
'use strict';
-module.exports = function createFrame(data) {
+export default function createFrame(data) {
if (typeof(data) !== 'object') {
throw new TypeError('createFrame expects data to be an object');
}
diff --git a/lib/utils/falsey.js b/lib/utils/falsey.js
index a0e43f85..546240f0 100644
--- a/lib/utils/falsey.js
+++ b/lib/utils/falsey.js
@@ -36,4 +36,4 @@ falsey.keywords = [
'zero'
];
-module.exports = falsey;
+export default falsey;
diff --git a/lib/utils/fn.js b/lib/utils/fn.js
index 9b4c9869..a486e1ee 100644
--- a/lib/utils/fn.js
+++ b/lib/utils/fn.js
@@ -1,8 +1,7 @@
'use strict';
-const isBlock = require('./isBlock');
-const isOptions = require('./isOptions');
-const fn = require('./fn');
+import isBlock from './isBlock.js';
+import isOptions from './isOptions.js';
/**
* This code was taken directly from handlebars-helpers,
@@ -29,7 +28,7 @@ const fn = require('./fn');
* @api public
*/
-module.exports = function(val, context, options) {
+const fn = function(val, context, options) {
if (isOptions(val)) {
return fn('', val, options);
}
@@ -38,3 +37,4 @@ module.exports = function(val, context, options) {
}
return isBlock(options) ? options.fn(context) : val;
};
+export default fn;
diff --git a/lib/utils/handlebarsUtils.js b/lib/utils/handlebarsUtils.js
deleted file mode 100644
index d23cbe7a..00000000
--- a/lib/utils/handlebarsUtils.js
+++ /dev/null
@@ -1,275 +0,0 @@
-'use strict';
-
-/**
- * This code was taken directly from handlebars-helpers, (extracting some utils to its own file)
- * https://github.com/helpers/handlebars-utils/blob/master/index.js#L398
- *
- * that was taken directly from handlebars.
- * https://github.com/wycats/handlebars.js/blob/b55a120e8222785db3dc00096f6afbf91b656e8a/LICENSE
- * Released under the MIT License
- * Copyright (C) 2011-2016 by Yehuda Katz
- */
-
-var util = require('util');
-var type = require('typeof-article');
-var utils = exports = module.exports;
-
-utils.extend = extend;
-utils.escapeExpression = escapeExpression;
-utils.isEmpty = isEmpty;
-utils.createFrame = createFrame;
-utils.blockParams = blockParams;
-utils.appendContextPath = appendContextPath;
-
-utils.isObject = require('./isObject');
-utils.isOptions = require('./isOptions');
-utils.isUndefined = require('./isUndefined');
-utils.result = require('./result');
-utils.indexOf = require('./indexOf');
-utils.isBlock = require('./isBlock');
-utils.fn = require('./fn');
-utils.inverse = require('./inverse');
-utils.value = require('./value');
-utils.options = require('./options');
-utils.identity = require('./identity');
-utils.isString = require('./isString');
-
-var escape = {
- '&': '&',
- '<': '<',
- '>': '>',
- '"': '"',
- "'": ''',
- '`': '`',
- '=': '='
-};
-
-var badChars = /[&<>"'`=]/g;
-var possible = /[&<>"'`=]/;
-
-function escapeChar(chr) {
- return escape[chr];
-}
-
-function extend(obj /* , ...source */) {
- for (var i = 1; i < arguments.length; i++) {
- for (var key in arguments[i]) {
- if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {
- obj[key] = arguments[i][key];
- }
- }
- }
-
- return obj;
-}
-
-var toString = Object.prototype.toString;
-
-utils.toString = toString;
-// Sourced from lodash
-// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt
-/* eslint-disable func-style */
-var isFunction = function isFunction(value) {
- return typeof value === 'function';
-};
-// fallback for older versions of Chrome and Safari
-/* istanbul ignore next */
-if (isFunction(/x/)) {
- utils.isFunction = isFunction = function(value) {
- return typeof value === 'function' && toString.call(value) === '[object Function]';
- };
-}
-utils.isFunction = isFunction;
-
-/* eslint-enable func-style */
-
-/* istanbul ignore next */
-var isArray = Array.isArray || function(value) {
- return value && typeof value === 'object'
- ? toString.call(value) === '[object Array]'
- : false;
-};
-
-utils.isArray = isArray;
-
-function escapeExpression(string) {
- if (typeof string !== 'string') {
- // don't escape SafeStrings, since they're already safe
- if (string && string.toHTML) {
- return string.toHTML();
- } else if (string == null) {
- return '';
- } else if (!string) {
- return string + '';
- }
-
- // Force a string conversion as this will be done by the append regardless and
- // the regex test will do this transparently behind the scenes, causing issues if
- // an object's to string has escaped characters in it.
- string = '' + string;
- }
-
- if (!possible.test(string)) {
- return string;
- }
- return string.replace(badChars, escapeChar);
-}
-
-function createFrame(object) {
- var frame = extend({}, object);
- frame._parent = object;
- return frame;
-}
-
-function blockParams(params, ids) {
- params.path = ids;
- return params;
-}
-
-function appendContextPath(contextPath, id) {
- return (contextPath ? contextPath + '.' : '') + id;
-}
-
-//
-// The code below this line was not sourced from handlebars
-// --------------------------------------------------------
-//
-
-utils.expectedType = function(param, expected, actual) {
- var exp = type.types[expected];
- var val = util.inspect(actual);
- return 'expected ' + param + ' to be ' + exp + ' but received ' + type(actual) + ': ' + val;
-};
-
-/**
- * Returns true if an `app` propery is on the context, which means
- * the context was created by [assemble][], [templates][], [verb][],
- * or any other library that follows this convention.
- *
- * ```js
- * Handlebars.registerHelper('example', function(val, options) {
- * var context = options.hash;
- * if (utils.isApp(this)) {
- * context = Object.assign({}, this.context, context);
- * }
- * // do stuff
- * });
- * ```
- * @param {any} `value`
- * @return {Boolean}
- * @api public
- */
-
-utils.isApp = function(thisArg) {
- return utils.isObject(thisArg)
- && utils.isObject(thisArg.options)
- && utils.isObject(thisArg.app);
-};
-
-/**
- * Get the context to use for rendering.
- *
- * @param {Object} `thisArg` Optional invocation context `this`
- * @return {Object}
- * @api public
- */
-
-utils.context = function(thisArg, locals, options) {
- if (utils.isOptions(thisArg)) {
- return utils.context({}, locals, thisArg);
- }
- // ensure args are in the correct order
- if (utils.isOptions(locals)) {
- return utils.context(thisArg, options, locals);
- }
- var appContext = utils.isApp(thisArg) ? thisArg.context : {};
- options = options || {};
-
- // if "options" is not handlebars options, merge it onto locals
- if (!utils.isOptions(options)) {
- locals = Object.assign({}, locals, options);
- }
- // merge handlebars root data onto locals if specified on the hash
- if (utils.isOptions(options) && options.hash.root === true) {
- locals = Object.assign({}, options.data.root, locals);
- }
- var context = Object.assign({}, appContext, locals, options.hash);
- if (!utils.isApp(thisArg)) {
- context = Object.assign({}, thisArg, context);
- }
- if (utils.isApp(thisArg) && thisArg.view && thisArg.view.data) {
- context = Object.assign({}, context, thisArg.view.data);
- }
- return context;
-};
-
-/**
- * Returns true if the given value is "empty".
- *
- * ```js
- * console.log(utils.isEmpty(0));
- * //=> false
- * console.log(utils.isEmpty(''));
- * //=> true
- * console.log(utils.isEmpty([]));
- * //=> true
- * console.log(utils.isEmpty({}));
- * //=> true
- * ```
- * @name .isEmpty
- * @param {any} `value`
- * @return {Boolean}
- * @api public
- */
-
-function isEmpty(val) {
- if (val === 0 || typeof val === 'boolean') {
- return false;
- }
- if (val == null) {
- return true;
- }
- if (utils.isObject(val)) {
- val = Object.keys(val);
- }
- if (!val.length) {
- return true;
- }
- return false;
-}
-
-/**
- * Cast the given `val` to an array.
- *
- * ```js
- * console.log(utils.arrayify(''));
- * //=> []
- * console.log(utils.arrayify('foo'));
- * //=> ['foo']
- * console.log(utils.arrayify(['foo']));
- * //=> ['foo']
- * ```
- * @param {any} `val`
- * @return {Array}
- * @api public
- */
-
-utils.arrayify = function(val) {
- return val != null ? (Array.isArray(val) ? val : [val]) : [];
-};
-
-/**
- * Try to parse the given `string` as JSON. Fails
- * gracefully and always returns an object if the value cannot be parsed.
- *
- * @param {String} `string`
- * @return {Object}
- * @api public
- */
-
-utils.tryParse = function(str) {
- try {
- return JSON.parse(str);
- } catch (err) { }
- return {};
-};
diff --git a/lib/utils/html.js b/lib/utils/html.js
index 75758c99..a945287b 100644
--- a/lib/utils/html.js
+++ b/lib/utils/html.js
@@ -1,13 +1,7 @@
'use strict';
-var util = require('./handlebarsUtils');
-var striptags = require('striptags');
-
-/**
- * Expose `utils`
- */
-
-var html = module.exports;
+import { isString } from './index.js';
+import striptags from 'striptags';
/**
* Remove extra newlines from HTML, respect indentation.
@@ -17,9 +11,9 @@ var html = module.exports;
* @api public
*/
-html.condense = function(str) {
+export function condense(str) {
return str.replace(/(\r\n|\r|\n|\u2028|\u2029) {2,}/g, '\n');
-};
+}
/**
* Add a single newline above code comments in HTML
@@ -29,9 +23,9 @@ html.condense = function(str) {
* @api public
*/
-html.padcomments = function(str) {
+export function padcomments(str) {
return str.replace(/(\s*'), '\n');
+ equal(padcomments(''), '\n');
});
});
describe('parseAttributes', function() {
it('should parse attributes', function() {
- assert.equal(HTML.parseAttributes({a: 'b', c: 200 }), 'a="b" c="200"');
+ equal(parseAttributes({a: 'b', c: 200 }), 'a="b" c="200"');
});
});
describe('toAttributes', function() {
it('should convert an object hash into html attributes', function() {
var hash = {disabled: true, display: 'hidden', class: 'fade'};
- assert.equal(HTML.toAttributes(hash), ' disabled display="hidden" class="fade"');
+ equal(toAttributes(hash), ' disabled display="hidden" class="fade"');
});
});
});
diff --git a/test/uuid.js b/test/uuid.js
index 5d845780..a0868c9e 100644
--- a/test/uuid.js
+++ b/test/uuid.js
@@ -1,13 +1,16 @@
'use strict';
-require('mocha');
-const assert = require('assert');
-const uuid = require('../lib/uuid');
+import 'mocha';
+import { match } from 'assert';
+import { uuid } from '../lib/uuid.js';
describe('uuid', function() {
describe('generate', function() {
it('should generate a valid uuid', function() {
- assert.match(uuid.uuid(), /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i);
+ match(
+ uuid(),
+ /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i
+ );
});
});
});
diff --git a/yarn.lock b/yarn.lock
index d21687a6..56f39fcb 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,88 +2,94 @@
# yarn lockfile v1
-"@babel/code-frame@7.12.11":
- version "7.12.11"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
- integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
+"@eslint-community/eslint-utils@^4.2.0":
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56"
+ integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==
dependencies:
- "@babel/highlight" "^7.10.4"
-
-"@babel/helper-validator-identifier@^7.14.5":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8"
- integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==
+ eslint-visitor-keys "^3.4.3"
-"@babel/highlight@^7.10.4":
- version "7.14.5"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9"
- integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==
- dependencies:
- "@babel/helper-validator-identifier" "^7.14.5"
- chalk "^2.0.0"
- js-tokens "^4.0.0"
+"@eslint-community/regexpp@^4.6.1":
+ version "4.12.1"
+ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0"
+ integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
-"@eslint/eslintrc@^0.4.2":
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179"
- integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==
+"@eslint/eslintrc@^2.1.4":
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad"
+ integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==
dependencies:
ajv "^6.12.4"
- debug "^4.1.1"
- espree "^7.3.0"
- globals "^13.9.0"
- ignore "^4.0.6"
+ debug "^4.3.2"
+ espree "^9.6.0"
+ globals "^13.19.0"
+ ignore "^5.2.0"
import-fresh "^3.2.1"
- js-yaml "^3.13.1"
- minimatch "^3.0.4"
+ js-yaml "^4.1.0"
+ minimatch "^3.1.2"
strip-json-comments "^3.1.1"
-"@sinonjs/commons@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3"
- integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==
- dependencies:
- type-detect "4.0.8"
+"@eslint/js@8.57.1":
+ version "8.57.1"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2"
+ integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==
-"@sinonjs/commons@^3.0.0":
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd"
- integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==
+"@humanwhocodes/config-array@^0.13.0":
+ version "0.13.0"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748"
+ integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==
dependencies:
- type-detect "4.0.8"
+ "@humanwhocodes/object-schema" "^2.0.3"
+ debug "^4.3.1"
+ minimatch "^3.0.5"
-"@sinonjs/fake-timers@^11.2.2":
- version "11.2.2"
- resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz#50063cc3574f4a27bd8453180a04171c85cc9699"
- integrity sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==
+"@humanwhocodes/module-importer@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
+ integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
+
+"@humanwhocodes/object-schema@^2.0.3":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3"
+ integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==
+
+"@nodelib/fs.scandir@2.1.5":
+ version "2.1.5"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
+ integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
dependencies:
- "@sinonjs/commons" "^3.0.0"
+ "@nodelib/fs.stat" "2.0.5"
+ run-parallel "^1.1.9"
-"@sinonjs/samsam@^8.0.0":
- version "8.0.0"
- resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-8.0.0.tgz#0d488c91efb3fa1442e26abea81759dfc8b5ac60"
- integrity sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==
+"@nodelib/fs.stat@2.0.5":
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
+ integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
+
+"@nodelib/fs.walk@^1.2.8":
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
+ integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
dependencies:
- "@sinonjs/commons" "^2.0.0"
- lodash.get "^4.4.2"
- type-detect "^4.0.8"
+ "@nodelib/fs.scandir" "2.1.5"
+ fastq "^1.6.0"
-"@sinonjs/text-encoding@^0.7.2":
- version "0.7.2"
- resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918"
- integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==
+"@ungap/structured-clone@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
+ integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
-acorn-jsx@^5.3.1:
- version "5.3.1"
- resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
- integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==
+acorn-jsx@^5.3.2:
+ version "5.3.2"
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
+ integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
-acorn@^7.4.0:
- version "7.4.1"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
- integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
+acorn@^8.9.0:
+ version "8.14.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0"
+ integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==
-ajv@^6.10.0, ajv@^6.12.4:
+ajv@^6.12.4:
version "6.12.6"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
@@ -93,16 +99,6 @@ ajv@^6.10.0, ajv@^6.12.4:
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
-ajv@^8.0.1:
- version "8.6.0"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.0.tgz#60cc45d9c46a477d80d92c48076d972c342e5720"
- integrity sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==
- dependencies:
- fast-deep-equal "^3.1.1"
- json-schema-traverse "^1.0.0"
- require-from-string "^2.0.2"
- uri-js "^4.2.2"
-
align-text@^0.1.1, align-text@^0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
@@ -238,11 +234,6 @@ ansi-colors@^1.0.1, ansi-colors@^1.1.0:
dependencies:
ansi-wrap "^0.1.0"
-ansi-colors@^4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
- integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
-
ansi-colors@^4.1.3:
version "4.1.3"
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b"
@@ -333,6 +324,11 @@ ansi-regex@^5.0.0:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
+ansi-regex@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+ integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+
ansi-reset@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/ansi-reset/-/ansi-reset-0.1.1.tgz#e7e71292c3c7ddcd4d62ef4a6c7c05980911c3b7"
@@ -486,7 +482,7 @@ arr-filter@^1.1.0, arr-filter@^1.1.1:
dependencies:
make-iterator "^1.0.0"
-arr-flatten@^1.0.0, arr-flatten@^1.0.1, arr-flatten@^1.0.3, arr-flatten@^1.1.0:
+arr-flatten@^1.0.0, arr-flatten@^1.0.1, arr-flatten@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
@@ -564,15 +560,6 @@ array-slice@^1.0.0:
resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4"
integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==
-array-sort@^0.1.2:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-0.1.4.tgz#662855eaeb671b4188df4451b2f24a0753992b23"
- integrity sha512-BNcM+RXxndPxiZ2rd76k6nyQLRZr2/B/sdi8pQ+Joafr5AH279L40dfokSUTp8O+AaqYjXWhblBWa2st2nc4fQ==
- dependencies:
- default-compare "^1.0.0"
- get-value "^2.0.6"
- kind-of "^5.0.2"
-
array-sort@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a"
@@ -642,11 +629,6 @@ assign-symbols@^1.0.0:
resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
-astral-regex@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
- integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
-
async-array-reduce@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/async-array-reduce/-/async-array-reduce-0.1.0.tgz#c74b88651d5c7f46ce5203d150c3cc7eedca57f2"
@@ -697,14 +679,6 @@ async-helpers@^0.2.2:
dependencies:
async "^0.9.0"
-async-helpers@^0.3.9:
- version "0.3.17"
- resolved "https://registry.yarnpkg.com/async-helpers/-/async-helpers-0.3.17.tgz#3d91af1ff853d62e9809b0f31c4bdac79baa6ba4"
- integrity sha512-LfgCyvmK6ZiC7pyqOgli2zfkWL4HYbEb+HXvGgdmqVBgsOOtQz5rSF8Ii/H/1cNNtrfj1KsdZE/lUMeIY3Qcwg==
- dependencies:
- co "^4.6.0"
- kind-of "^6.0.0"
-
async-listener@^0.6.0:
version "0.6.10"
resolved "https://registry.yarnpkg.com/async-listener/-/async-listener-0.6.10.tgz#a7c97abe570ba602d782273c0de60a51e3e17cbc"
@@ -814,29 +788,6 @@ base-data@^0.6.0:
set-value "^2.0.0"
union-value "^1.0.0"
-base-engines@^0.2.0:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/base-engines/-/base-engines-0.2.1.tgz#697800ca8ab888a33789738dbfaccb818a2a5a7b"
- integrity sha1-aXgAyoq4iKM3iXONv6zLgYoqWns=
- dependencies:
- debug "^2.2.0"
- define-property "^0.2.5"
- engine-cache "^0.19.0"
- is-valid-app "^0.1.2"
- lazy-cache "^2.0.1"
-
-base-helpers@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/base-helpers/-/base-helpers-0.2.0.tgz#75a9494bb8c059ff3d7943829cf755047bfe10d7"
- integrity sha1-dalJS7jAWf89eUOCnPdVBHv+ENc=
- dependencies:
- debug "^2.6.0"
- define-property "^0.2.5"
- is-valid-app "^0.2.1"
- isobject "^3.0.0"
- lazy-cache "^2.0.2"
- load-helpers "^0.3.1"
-
base-loader@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/base-loader/-/base-loader-0.1.0.tgz#d9237e506582bb5e475db7536580741d3c7e537c"
@@ -845,40 +796,6 @@ base-loader@^0.1.0:
map-files "^0.7.4"
relative "^3.0.0"
-base-option@^0.8.4:
- version "0.8.4"
- resolved "https://registry.yarnpkg.com/base-option/-/base-option-0.8.4.tgz#11417fa9244f227a4d537b4d291723462787d5c7"
- integrity sha1-EUF/qSRPInpNU3tNKRcjRieH1cc=
- dependencies:
- define-property "^0.2.5"
- get-value "^2.0.6"
- is-valid-app "^0.2.0"
- isobject "^2.1.0"
- lazy-cache "^2.0.1"
- mixin-deep "^1.1.3"
- option-cache "^3.4.0"
- set-value "^0.3.3"
-
-base-plugins@^0.4.13:
- version "0.4.13"
- resolved "https://registry.yarnpkg.com/base-plugins/-/base-plugins-0.4.13.tgz#91df178dc37f86842dea286d79e48fb86b5aac3d"
- integrity sha1-kd8XjcN/hoQt6ihteeSPuGtarD0=
- dependencies:
- define-property "^0.2.5"
- is-registered "^0.1.5"
- isobject "^2.1.0"
-
-base-routes@^0.2.2:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/base-routes/-/base-routes-0.2.2.tgz#0a614d172d49045d8c9387713f860df3c405341e"
- integrity sha1-CmFNFy1JBF2Mk4dxP4YN88QFNB4=
- dependencies:
- debug "^2.2.0"
- en-route "^0.7.5"
- is-valid-app "^0.2.0"
- lazy-cache "^2.0.1"
- template-error "^0.1.2"
-
base@^0.11.1:
version "0.11.2"
resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
@@ -1077,7 +994,7 @@ chalk@^1.0.0, chalk@^1.1.1:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
-chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.1:
+chalk@^2.0.1, chalk@^2.3.1:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -1245,7 +1162,7 @@ clone@^1.0.0, clone@^1.0.2:
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
-clone@^2.1.0, clone@^2.1.1:
+clone@^2.1.1:
version "2.1.2"
resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
@@ -1259,11 +1176,6 @@ cloneable-readable@^1.0.0:
process-nextick-args "^2.0.0"
readable-stream "^2.3.5"
-co@^4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
- integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
-
code-context@^0.5.2:
version "0.5.3"
resolved "https://registry.yarnpkg.com/code-context/-/code-context-0.5.3.tgz#e368c7bd247d3ac71100d91b5fd02e4e66fa9022"
@@ -1478,9 +1390,9 @@ core-util-is@~1.0.0:
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
cross-spawn@^7.0.2:
- version "7.0.3"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
- integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+ version "7.0.6"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
+ integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
dependencies:
path-key "^3.1.0"
shebang-command "^2.0.0"
@@ -1598,14 +1510,7 @@ debug@^3.1.0:
dependencies:
ms "^2.1.1"
-debug@^4.0.1, debug@^4.1.1:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
- integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
- dependencies:
- ms "2.1.2"
-
-debug@^4.3.5:
+debug@^4.3.1, debug@^4.3.2, debug@^4.3.5:
version "4.3.7"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52"
integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
@@ -1634,13 +1539,6 @@ decompress-response@^3.3.0:
dependencies:
mimic-response "^1.0.0"
-deep-bind@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/deep-bind/-/deep-bind-0.3.0.tgz#95c31dd84a1cd1b381119a2c42edb90db485bc33"
- integrity sha1-lcMd2Eoc0bOBEZosQu25DbSFvDM=
- dependencies:
- mixin-deep "^1.1.3"
-
deep-equal@^1.0.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a"
@@ -1755,11 +1653,6 @@ diff@^2.0.2:
resolved "https://registry.yarnpkg.com/diff/-/diff-2.2.3.tgz#60eafd0d28ee906e4e8ff0a52c1229521033bf99"
integrity sha1-YOr9DSjukG5Oj/ClLBIpUhAzv5k=
-diff@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40"
- integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==
-
diff@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531"
@@ -1826,18 +1719,6 @@ en-route@^0.5.0:
path-to-regexp "^1.0.3"
utils-merge "^1.0.0"
-en-route@^0.7.5:
- version "0.7.5"
- resolved "https://registry.yarnpkg.com/en-route/-/en-route-0.7.5.tgz#e8230e73836c5e95c6757e0442d3c113124bdd98"
- integrity sha1-6CMOc4NsXpXGdX4EQtPBExJL3Zg=
- dependencies:
- arr-flatten "^1.0.1"
- debug "^2.2.0"
- extend-shallow "^2.0.1"
- kind-of "^3.0.2"
- lazy-cache "^1.0.3"
- path-to-regexp "^1.2.1"
-
end-of-stream@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf"
@@ -1886,18 +1767,6 @@ engine-cache@^0.12.1:
extend-shallow "^1.1.4"
helper-cache "^0.7.1"
-engine-cache@^0.19.0:
- version "0.19.4"
- resolved "https://registry.yarnpkg.com/engine-cache/-/engine-cache-0.19.4.tgz#8224966fbdf6a65e780ec79df87b6b2cb82395b2"
- integrity sha1-giSWb732pl54Dsed+HtrLLgjlbI=
- dependencies:
- async-helpers "^0.3.9"
- extend-shallow "^2.0.1"
- helper-cache "^0.7.2"
- isobject "^3.0.0"
- lazy-cache "^2.0.2"
- mixin-deep "^1.1.3"
-
engine-handlebars@^0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/engine-handlebars/-/engine-handlebars-0.8.2.tgz#aa709d86949d35331a15d650023d9cbe4215a9f9"
@@ -1923,7 +1792,7 @@ engine-utils@^0.1.1:
resolved "https://registry.yarnpkg.com/engine-utils/-/engine-utils-0.1.1.tgz#addf4708dd85a05a3217a97797eab8a013c4f80e"
integrity sha1-rd9HCN2FoFoyF6l3l+q4oBPE+A4=
-engine@^0.1.10, engine@^0.1.11, engine@^0.1.12, engine@^0.1.5:
+engine@^0.1.10, engine@^0.1.11, engine@^0.1.12:
version "0.1.12"
resolved "https://registry.yarnpkg.com/engine/-/engine-0.1.12.tgz#f87e8c90bb80cd3f58597ac569593ee46da2742d"
integrity sha1-+H6MkLuAzT9YWXrFaVk+5G2idC0=
@@ -1936,13 +1805,6 @@ engine@^0.1.10, engine@^0.1.11, engine@^0.1.12, engine@^0.1.5:
object.omit "^2.0.0"
set-value "^0.2.0"
-enquirer@^2.3.5:
- version "2.3.6"
- resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
- integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
- dependencies:
- ansi-colors "^4.1.1"
-
error-ex@^1.2.0:
version "1.3.2"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
@@ -2006,94 +1868,81 @@ escape-string-regexp@^4.0.0:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
-eslint-scope@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
- integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
+eslint-scope@^7.2.2:
+ version "7.2.2"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f"
+ integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
dependencies:
esrecurse "^4.3.0"
- estraverse "^4.1.1"
-
-eslint-utils@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
- integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
- dependencies:
- eslint-visitor-keys "^1.1.0"
-
-eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
- integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
-
-eslint-visitor-keys@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
- integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
+ estraverse "^5.2.0"
-eslint@^7.26.0:
- version "7.29.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.29.0.tgz#ee2a7648f2e729485e4d0bd6383ec1deabc8b3c0"
- integrity sha512-82G/JToB9qIy/ArBzIWG9xvvwL3R86AlCjtGw+A29OMZDqhTybz/MByORSukGxeI+YPCR4coYyITKk8BFH9nDA==
- dependencies:
- "@babel/code-frame" "7.12.11"
- "@eslint/eslintrc" "^0.4.2"
- ajv "^6.10.0"
+eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
+ version "3.4.3"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
+ integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
+
+eslint@^8.57.0:
+ version "8.57.1"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9"
+ integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==
+ dependencies:
+ "@eslint-community/eslint-utils" "^4.2.0"
+ "@eslint-community/regexpp" "^4.6.1"
+ "@eslint/eslintrc" "^2.1.4"
+ "@eslint/js" "8.57.1"
+ "@humanwhocodes/config-array" "^0.13.0"
+ "@humanwhocodes/module-importer" "^1.0.1"
+ "@nodelib/fs.walk" "^1.2.8"
+ "@ungap/structured-clone" "^1.2.0"
+ ajv "^6.12.4"
chalk "^4.0.0"
cross-spawn "^7.0.2"
- debug "^4.0.1"
+ debug "^4.3.2"
doctrine "^3.0.0"
- enquirer "^2.3.5"
escape-string-regexp "^4.0.0"
- eslint-scope "^5.1.1"
- eslint-utils "^2.1.0"
- eslint-visitor-keys "^2.0.0"
- espree "^7.3.1"
- esquery "^1.4.0"
+ eslint-scope "^7.2.2"
+ eslint-visitor-keys "^3.4.3"
+ espree "^9.6.1"
+ esquery "^1.4.2"
esutils "^2.0.2"
fast-deep-equal "^3.1.3"
file-entry-cache "^6.0.1"
- functional-red-black-tree "^1.0.1"
- glob-parent "^5.1.2"
- globals "^13.6.0"
- ignore "^4.0.6"
- import-fresh "^3.0.0"
+ find-up "^5.0.0"
+ glob-parent "^6.0.2"
+ globals "^13.19.0"
+ graphemer "^1.4.0"
+ ignore "^5.2.0"
imurmurhash "^0.1.4"
is-glob "^4.0.0"
- js-yaml "^3.13.1"
+ is-path-inside "^3.0.3"
+ js-yaml "^4.1.0"
json-stable-stringify-without-jsonify "^1.0.1"
levn "^0.4.1"
lodash.merge "^4.6.2"
- minimatch "^3.0.4"
+ minimatch "^3.1.2"
natural-compare "^1.4.0"
- optionator "^0.9.1"
- progress "^2.0.0"
- regexpp "^3.1.0"
- semver "^7.2.1"
- strip-ansi "^6.0.0"
- strip-json-comments "^3.1.0"
- table "^6.0.9"
+ optionator "^0.9.3"
+ strip-ansi "^6.0.1"
text-table "^0.2.0"
- v8-compile-cache "^2.0.3"
-espree@^7.3.0, espree@^7.3.1:
- version "7.3.1"
- resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6"
- integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==
+espree@^9.6.0, espree@^9.6.1:
+ version "9.6.1"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
+ integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
dependencies:
- acorn "^7.4.0"
- acorn-jsx "^5.3.1"
- eslint-visitor-keys "^1.3.0"
+ acorn "^8.9.0"
+ acorn-jsx "^5.3.2"
+ eslint-visitor-keys "^3.4.1"
esprima@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-esquery@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
- integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
+esquery@^1.4.2:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7"
+ integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==
dependencies:
estraverse "^5.1.0"
@@ -2104,11 +1953,6 @@ esrecurse@^4.3.0:
dependencies:
estraverse "^5.2.0"
-estraverse@^4.1.1:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
- integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
-
estraverse@^5.1.0, estraverse@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
@@ -2338,6 +2182,13 @@ fast-levenshtein@^2.0.6:
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+fastq@^1.6.0:
+ version "1.17.1"
+ resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47"
+ integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==
+ dependencies:
+ reusify "^1.0.4"
+
file-entry-cache@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
@@ -2500,11 +2351,12 @@ flagged-respawn@^1.0.0:
integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==
flat-cache@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
- integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee"
+ integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==
dependencies:
- flatted "^3.1.0"
+ flatted "^3.2.9"
+ keyv "^4.5.3"
rimraf "^3.0.2"
flat@^5.0.2:
@@ -2512,10 +2364,10 @@ flat@^5.0.2:
resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241"
integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
-flatted@^3.1.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469"
- integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==
+flatted@^3.2.9:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.2.tgz#adba1448a9841bec72b42c532ea23dbbedef1a27"
+ integrity sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==
flush-write-stream@^1.0.2:
version "1.1.1"
@@ -2613,11 +2465,6 @@ function-bind@^1.1.1:
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
-functional-red-black-tree@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
- integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
-
gaze@^0.5.1:
version "0.5.2"
resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f"
@@ -2738,14 +2585,6 @@ get-value@^3.0.0, get-value@^3.0.1:
dependencies:
isobject "^3.0.1"
-get-view@^0.1.1, get-view@^0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/get-view/-/get-view-0.1.3.tgz#3660ac058ba13df9749cabcaa6bcb96d41aa0ea0"
- integrity sha1-NmCsBYuhPfl0nKvKpry5bUGqDqA=
- dependencies:
- isobject "^3.0.0"
- match-file "^0.2.1"
-
getobject@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/getobject/-/getobject-0.1.0.tgz#047a449789fa160d018f5486ed91320b6ec7885c"
@@ -2870,7 +2709,14 @@ glob-parent@^3.1.0:
is-glob "^3.1.0"
path-dirname "^1.0.0"
-glob-parent@^5.1.2, glob-parent@~5.1.2:
+glob-parent@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
+ integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
+ dependencies:
+ is-glob "^4.0.3"
+
+glob-parent@~5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
@@ -3048,10 +2894,10 @@ global-prefix@^3.0.0:
kind-of "^6.0.2"
which "^1.3.1"
-globals@^13.6.0, globals@^13.9.0:
- version "13.9.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb"
- integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==
+globals@^13.19.0:
+ version "13.24.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171"
+ integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==
dependencies:
type-fest "^0.20.2"
@@ -3098,6 +2944,11 @@ graceful-fs@~1.2.0:
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364"
integrity sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=
+graphemer@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
+ integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
+
gray-matter@^2.0.2, gray-matter@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-2.1.1.tgz#3042d9adec2a1ded6a7707a9ed2380f8a17a430e"
@@ -3119,18 +2970,6 @@ gray-matter@^3.0.2:
kind-of "^5.0.2"
strip-bom-string "^1.0.0"
-group-array@^0.3.1:
- version "0.3.4"
- resolved "https://registry.yarnpkg.com/group-array/-/group-array-0.3.4.tgz#7ce02db67169ef2db472f1323c255ea5661b3748"
- integrity sha512-YAmNsgsi1uQ7Ai3T4FFkMoskqbLEUPRajAmrn8FclwZQQnV98NLrNWjQ3n2+i1pANxdO3n6wsNEkKq5XrYy0Ow==
- dependencies:
- arr-flatten "^1.0.1"
- for-own "^0.1.4"
- get-value "^2.0.6"
- kind-of "^3.1.0"
- split-string "^1.0.1"
- union-value "^1.0.1"
-
gulp-cli@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.3.0.tgz#ec0d380e29e52aa45e47977f0d32e18fd161122f"
@@ -3401,7 +3240,7 @@ helper-apidocs@^0.5.1:
relative "^3.0.2"
template-bind-helpers "^0.2.0"
-helper-cache@^0.7.0, helper-cache@^0.7.1, helper-cache@^0.7.2:
+helper-cache@^0.7.0, helper-cache@^0.7.1:
version "0.7.2"
resolved "https://registry.yarnpkg.com/helper-cache/-/helper-cache-0.7.2.tgz#024562c4b4b8b2ab2ab531d00be16ec496518b90"
integrity sha1-AkVixLS4sqsqtTHQC+FuxJZRi5A=
@@ -3587,12 +3426,12 @@ html-tag@^2.0.0:
is-self-closing "^1.0.1"
kind-of "^6.0.0"
-ignore@^4.0.6:
- version "4.0.6"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
- integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
+ignore@^5.2.0:
+ version "5.3.2"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5"
+ integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
-import-fresh@^3.0.0, import-fresh@^3.2.1:
+import-fresh@^3.2.1:
version "3.3.0"
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
@@ -3605,7 +3444,7 @@ imurmurhash@^0.1.4:
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
-inflection@^1.12.0, inflection@^1.7.0:
+inflection@^1.7.0:
version "1.13.1"
resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.13.1.tgz#c5cadd80888a90cf84c2e96e340d7edc85d5f0cb"
integrity sha512-dldYtl2WlN0QDkIDtg8+xFwOS2Tbmp12t1cHa5/YClU6ZQjTFm7B66UcVbh9NQB+HvT5BAd2t5+yKsBkw5pcqA==
@@ -3683,7 +3522,7 @@ is-accessor-descriptor@^1.0.0:
dependencies:
kind-of "^6.0.0"
-is-arguments@^1.0.2, is-arguments@^1.0.4:
+is-arguments@^1.0.4:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9"
integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==
@@ -3842,6 +3681,13 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
dependencies:
is-extglob "^2.1.1"
+is-glob@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+ integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
+ dependencies:
+ is-extglob "^2.1.1"
+
is-match@^0.4.0:
version "0.4.1"
resolved "https://registry.yarnpkg.com/is-match/-/is-match-0.4.1.tgz#fb5f6c6709a1543b7c7efa7d9530e5b776f61f83"
@@ -3891,6 +3737,11 @@ is-number@^7.0.0:
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+is-path-inside@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
+ integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
+
is-plain-obj@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"
@@ -4003,16 +3854,6 @@ is-utf8@^0.2.0, is-utf8@^0.2.1:
resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
-is-valid-app@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/is-valid-app/-/is-valid-app-0.1.2.tgz#2f67cbb3baf64d659c70d043fc91139b5a8b9590"
- integrity sha1-L2fLs7r2TWWccNBD/JETm1qLlZA=
- dependencies:
- debug "^2.2.0"
- is-registered "^0.1.5"
- is-valid-instance "^0.1.0"
- lazy-cache "^2.0.1"
-
is-valid-app@^0.2.0, is-valid-app@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-valid-app/-/is-valid-app-0.2.1.tgz#65cf195bbd71bd776cb161991c684248d65dff89"
@@ -4043,14 +3884,6 @@ is-valid-glob@^1.0.0:
resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa"
integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=
-is-valid-instance@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/is-valid-instance/-/is-valid-instance-0.1.0.tgz#7ad5c6a3886dfdf7d9cc78049ceff2171a9907b3"
- integrity sha1-etXGo4ht/ffZzHgEnO/yFxqZB7M=
- dependencies:
- isobject "^2.1.0"
- pascalcase "^0.1.1"
-
is-valid-instance@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/is-valid-instance/-/is-valid-instance-0.2.0.tgz#e1a9ff1106b8cbae0007ea6a20f89d546a2a5a0f"
@@ -4144,17 +3977,12 @@ js-comments@^0.5.2, js-comments@^0.5.4:
relative "^3.0.0"
write "^0.2.0"
-js-tokens@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
- integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-
js-yaml-lite@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/js-yaml-lite/-/js-yaml-lite-0.1.1.tgz#9a813e305de40789c1a64a462ff8c145ddef737c"
integrity sha1-moE+MF3kB4nBpkpGL/jBRd3vc3w=
-js-yaml@^3.10.0, js-yaml@^3.13.1, js-yaml@^3.8.1:
+js-yaml@^3.10.0, js-yaml@^3.8.1:
version "3.14.1"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
@@ -4169,16 +3997,16 @@ js-yaml@^4.1.0:
dependencies:
argparse "^2.0.1"
+json-buffer@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
+ integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
+
json-schema-traverse@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
-json-schema-traverse@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
- integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
-
json-stable-stringify-without-jsonify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
@@ -4189,10 +4017,12 @@ just-debounce@^1.0.0:
resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.1.0.tgz#2f81a3ad4121a76bc7cb45dbf704c0d76a8e5ddf"
integrity sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==
-just-extend@^6.2.0:
- version "6.2.0"
- resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-6.2.0.tgz#b816abfb3d67ee860482e7401564672558163947"
- integrity sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==
+keyv@^4.5.3:
+ version "4.5.4"
+ resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
+ integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
+ dependencies:
+ json-buffer "3.0.1"
kind-of@^0.1.0, kind-of@^0.1.2:
version "0.1.2"
@@ -4211,7 +4041,7 @@ kind-of@^2.0.0, kind-of@^2.0.1:
dependencies:
is-buffer "^1.0.2"
-kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.0.4, kind-of@^3.1.0, kind-of@^3.2.0, kind-of@^3.2.2:
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.0.4, kind-of@^3.1.0, kind-of@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
@@ -4243,16 +4073,6 @@ last-run@^1.1.0:
default-resolution "^2.0.0"
es6-weak-map "^2.0.1"
-layouts@^0.12.1:
- version "0.12.1"
- resolved "https://registry.yarnpkg.com/layouts/-/layouts-0.12.1.tgz#6b99b3f1aa53e5e78c90ec75d4f491a6e0f57043"
- integrity sha1-a5mz8apT5eeMkOx11PSRpuD1cEM=
- dependencies:
- delimiter-regex "^1.3.1"
- "falsey" "^0.3.0"
- get-view "^0.1.1"
- lazy-cache "^2.0.1"
-
layouts@^0.9.0:
version "0.9.0"
resolved "https://registry.yarnpkg.com/layouts/-/layouts-0.9.0.tgz#29ced985f16a0131581ea10ddff1aa019453ae09"
@@ -4379,18 +4199,6 @@ list-item@^1.1.1:
is-number "^2.1.0"
repeat-string "^1.5.2"
-load-helpers@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/load-helpers/-/load-helpers-0.3.1.tgz#99a8ba07362901827c8e62c95b0b0b1fe9830549"
- integrity sha1-mai6BzYpAYJ8jmLJWwsLH+mDBUk=
- dependencies:
- component-emitter "^1.2.1"
- extend-shallow "^2.0.1"
- is-valid-glob "^0.3.0"
- lazy-cache "^2.0.1"
- matched "^0.4.3"
- resolve-dir "^0.1.0"
-
load-json-file@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
@@ -4563,11 +4371,6 @@ lodash.clonedeep@3.0.1:
lodash._baseclone "^3.0.0"
lodash._bindcallback "^3.0.0"
-lodash.clonedeep@^4.5.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
- integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
-
lodash.escape@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698"
@@ -4575,11 +4378,6 @@ lodash.escape@^3.0.0:
dependencies:
lodash._root "^3.0.0"
-lodash.get@^4.4.2:
- version "4.4.2"
- resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
- integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==
-
lodash.isarguments@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
@@ -4647,11 +4445,6 @@ lodash.templatesettings@^4.0.0:
dependencies:
lodash._reinterpolate "^3.0.0"
-lodash.truncate@^4.4.2:
- version "4.4.2"
- resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
- integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=
-
lodash@^3.10.1, lodash@^3.5.0, lodash@^3.6.0, lodash@^3.7.0:
version "3.10.1"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
@@ -4777,13 +4570,6 @@ lru-cache@2:
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952"
integrity sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=
-lru-cache@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
- integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
- dependencies:
- yallist "^4.0.0"
-
make-iterator@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-0.1.1.tgz#873d27b8198a465a81483b6f5d16da4e863ecf5b"
@@ -4927,15 +4713,6 @@ markdown-utils@^0.7.0, markdown-utils@^0.7.1, markdown-utils@^0.7.3:
list-item "^1.1.1"
to-gfm-code-block "^0.1.1"
-match-file@^0.2.1:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/match-file/-/match-file-0.2.2.tgz#26e6bcf1b390a661f6126faf8ac501e33eccfae9"
- integrity sha1-Jua88bOQpmH2Em+visUB4z7M+uk=
- dependencies:
- is-glob "^3.1.0"
- isobject "^3.0.0"
- micromatch "^2.3.11"
-
match-file@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/match-file/-/match-file-1.0.0.tgz#3496169751607b22f91a0153f879ce6deae9a968"
@@ -4955,7 +4732,7 @@ matchdep@^2.0.0:
resolve "^1.4.0"
stack-trace "0.0.10"
-matched@^0.4.1, matched@^0.4.3, matched@^0.4.4:
+matched@^0.4.1, matched@^0.4.4:
version "0.4.4"
resolved "https://registry.yarnpkg.com/matched/-/matched-0.4.4.tgz#56d7b7eb18033f0cf9bc52eb2090fac7dc1e89fa"
integrity sha1-Vte36xgDPwz5vFLrIJD6x9weifo=
@@ -5012,7 +4789,7 @@ merge-value@^1.0.0:
mixin-deep "^1.2.0"
set-value "^2.0.0"
-micromatch@^2.1.0, micromatch@^2.1.5, micromatch@^2.2.0, micromatch@^2.3.11, micromatch@^2.3.7, micromatch@^2.3.8:
+micromatch@^2.1.0, micromatch@^2.1.5, micromatch@^2.2.0, micromatch@^2.3.7, micromatch@^2.3.8:
version "2.3.11"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=
@@ -5113,6 +4890,13 @@ minimatch@^2.0.1:
dependencies:
brace-expansion "^1.0.0"
+minimatch@^3.0.5, minimatch@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
+ integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+ dependencies:
+ brace-expansion "^1.1.7"
+
minimatch@^5.0.1, minimatch@^5.1.6:
version "5.1.6"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96"
@@ -5204,11 +4988,6 @@ ms@2.0.0:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
-ms@2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
- integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-
ms@^2.1.1, ms@^2.1.3:
version "2.1.3"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
@@ -5280,17 +5059,6 @@ next-tick@~1.0.0:
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=
-nise@^5.1.5:
- version "5.1.7"
- resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.7.tgz#03ca96539efb306612eb60a8c5d6beeb208e27e5"
- integrity sha512-wWtNUhkT7k58uvWTB/Gy26eA/EJKtPZFVAhEilN5UYVmmGRYOURbejRUyKm0Uu9XVEW7K5nBOZfR8VMB4QR2RQ==
- dependencies:
- "@sinonjs/commons" "^3.0.0"
- "@sinonjs/fake-timers" "^11.2.2"
- "@sinonjs/text-encoding" "^0.7.2"
- just-extend "^6.2.0"
- path-to-regexp "^6.2.1"
-
no-case@^2.2.0:
version "2.3.2"
resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"
@@ -5541,32 +5309,17 @@ option-cache@^1.3.0, option-cache@^1.4.0:
set-value "^0.2.0"
to-flags "^0.1.0"
-option-cache@^3.4.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/option-cache/-/option-cache-3.5.0.tgz#cb765155ba2a861c1109ff26e2a20eaa06612b2b"
- integrity sha1-y3ZRVboqhhwRCf8m4qIOqgZhKys=
- dependencies:
- arr-flatten "^1.0.3"
- collection-visit "^1.0.0"
- component-emitter "^1.2.1"
- get-value "^2.0.6"
- has-value "^0.3.1"
- kind-of "^3.2.2"
- lazy-cache "^2.0.2"
- set-value "^0.4.3"
- to-object-path "^0.3.0"
-
-optionator@^0.9.1:
- version "0.9.1"
- resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
- integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
+optionator@^0.9.3:
+ version "0.9.4"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734"
+ integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==
dependencies:
deep-is "^0.1.3"
fast-levenshtein "^2.0.6"
levn "^0.4.1"
prelude-ls "^1.2.1"
type-check "^0.4.0"
- word-wrap "^1.2.3"
+ word-wrap "^1.2.5"
ora@^2.1.0:
version "2.1.0"
@@ -5632,11 +5385,6 @@ pad-right@^0.2.2:
dependencies:
repeat-string "^1.5.2"
-paginationator@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/paginationator/-/paginationator-0.1.4.tgz#84786dd3850aae1f11bbb911b0c1e0851b538106"
- integrity sha1-hHht04UKrh8Ru7kRsMHghRtTgQY=
-
parent-module@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
@@ -5843,18 +5591,13 @@ path-root@^0.1.1:
dependencies:
path-root-regex "^0.1.0"
-path-to-regexp@^1.0.3, path-to-regexp@^1.2.1:
+path-to-regexp@^1.0.3:
version "1.8.0"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a"
integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==
dependencies:
isarray "0.0.1"
-path-to-regexp@^6.2.1:
- version "6.2.1"
- resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz#d54934d6798eb9e5ef14e7af7962c945906918e5"
- integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==
-
path-type@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
@@ -5980,11 +5723,6 @@ process-nextick-args@^2.0.0, process-nextick-args@~2.0.0:
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
-progress@^2.0.0:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
- integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
-
project-name@^0.2.6:
version "0.2.6"
resolved "https://registry.yarnpkg.com/project-name/-/project-name-0.2.6.tgz#3e4f781fe1ee94b0786a9bae53506376c379af69"
@@ -6016,6 +5754,11 @@ punycode@^2.1.0:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
+queue-microtask@^1.2.2:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
+ integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+
randomatic@^3.0.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed"
@@ -6187,11 +5930,6 @@ regexp.prototype.flags@^1.2.0:
call-bind "^1.0.2"
define-properties "^1.1.3"
-regexpp@^3.1.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
- integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
-
relative-dest@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/relative-dest/-/relative-dest-0.1.0.tgz#ba055b4c2a021f71de92a582eb766dd7b3b0c618"
@@ -6300,11 +6038,6 @@ require-directory@^2.1.1:
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
-require-from-string@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
- integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
-
require-main-filename@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
@@ -6385,17 +6118,10 @@ rethrow@^0.1.0:
resolved "https://registry.yarnpkg.com/rethrow/-/rethrow-0.1.0.tgz#7364b1ef6862696882594a88b66d5af8cfaf5e58"
integrity sha1-c2Sx72hiaWiCWUqItm1a+M+vXlg=
-rethrow@^0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/rethrow/-/rethrow-0.2.3.tgz#c5528f190e89ec7535889452a1be68996b5f6616"
- integrity sha1-xVKPGQ6J7HU1iJRSob5omWtfZhY=
- dependencies:
- ansi-bgred "^0.1.1"
- ansi-red "^0.1.1"
- ansi-yellow "^0.1.1"
- extend-shallow "^1.1.4"
- lazy-cache "^0.2.3"
- right-align "^0.1.3"
+reusify@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
+ integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
right-align@^0.1.3:
version "0.1.3"
@@ -6427,6 +6153,13 @@ rimraf@^3.0.2:
dependencies:
glob "^7.1.3"
+run-parallel@^1.1.9:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+ integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+ dependencies:
+ queue-microtask "^1.2.2"
+
safe-buffer@^5.1.0, safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
@@ -6476,13 +6209,6 @@ semver-greatest-satisfied-range@^1.1.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
-semver@^7.2.1:
- version "7.3.5"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
- integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
- dependencies:
- lru-cache "^6.0.0"
-
serialize-javascript@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2"
@@ -6534,15 +6260,6 @@ set-value@^0.2.0:
isobject "^1.0.0"
noncharacters "^1.1.0"
-set-value@^0.3.3:
- version "0.3.3"
- resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.3.3.tgz#b81223681638a1088fd88a435b8a9d32dae8d9ba"
- integrity sha1-uBIjaBY4oQiP2IpDW4qdMtro2bo=
- dependencies:
- extend-shallow "^2.0.1"
- isobject "^2.0.0"
- to-object-path "^0.2.0"
-
set-value@^0.4.0, set-value@^0.4.3:
version "0.4.3"
resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1"
@@ -6642,27 +6359,6 @@ simple-get@^2.5.1:
once "^1.3.1"
simple-concat "^1.0.0"
-sinon@^17.0.1:
- version "17.0.1"
- resolved "https://registry.yarnpkg.com/sinon/-/sinon-17.0.1.tgz#26b8ef719261bf8df43f925924cccc96748e407a"
- integrity sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==
- dependencies:
- "@sinonjs/commons" "^3.0.0"
- "@sinonjs/fake-timers" "^11.2.2"
- "@sinonjs/samsam" "^8.0.0"
- diff "^5.1.0"
- nise "^5.1.5"
- supports-color "^7.2.0"
-
-slice-ansi@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
- integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
- dependencies:
- ansi-styles "^4.0.0"
- astral-regex "^2.0.0"
- is-fullwidth-code-point "^3.0.0"
-
snapdragon-node@^2.0.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
@@ -6765,13 +6461,6 @@ spdx-license-ids@^3.0.0:
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f"
integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==
-split-string@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/split-string/-/split-string-1.0.1.tgz#bcbab3f4152acee3a0d6ab2479c0d2879c3db3ce"
- integrity sha1-vLqz9BUqzuOg1qskecDSh5w9s84=
- dependencies:
- extend-shallow "^2.0.1"
-
split-string@^3.0.1, split-string@^3.0.2:
version "3.1.0"
resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
@@ -6910,6 +6599,13 @@ strip-ansi@^6.0.0:
dependencies:
ansi-regex "^5.0.0"
+strip-ansi@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
+
strip-bom-string@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92"
@@ -6942,7 +6638,7 @@ strip-indent@^1.0.1:
dependencies:
get-stdin "^4.0.1"
-strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
+strip-json-comments@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
@@ -6969,7 +6665,7 @@ supports-color@^5.3.0:
dependencies:
has-flag "^3.0.0"
-supports-color@^7.1.0, supports-color@^7.2.0:
+supports-color@^7.1.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
@@ -6991,18 +6687,6 @@ sver-compat@^1.5.0:
es6-iterator "^2.0.1"
es6-symbol "^3.1.1"
-table@^6.0.9:
- version "6.7.1"
- resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2"
- integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==
- dependencies:
- ajv "^8.0.1"
- lodash.clonedeep "^4.5.0"
- lodash.truncate "^4.4.2"
- slice-ansi "^4.0.0"
- string-width "^4.2.0"
- strip-ansi "^6.0.0"
-
template-bind-helpers@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/template-bind-helpers/-/template-bind-helpers-0.1.2.tgz#dcb7376db2681c43dd74bc3a73f522400e1b727e"
@@ -7015,16 +6699,6 @@ template-bind-helpers@^0.2.0:
dependencies:
isobject "^2.0.0"
-template-error@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/template-error/-/template-error-0.1.2.tgz#18c9f600d90f2f3dfba0833e37f7cb6f413542d4"
- integrity sha1-GMn2ANkPLz37oIM+N/fLb0E1QtQ=
- dependencies:
- engine "^0.1.5"
- kind-of "^2.0.1"
- lazy-cache "^0.2.3"
- rethrow "^0.2.3"
-
template-helper-apidocs@^0.4.4:
version "0.4.4"
resolved "https://registry.yarnpkg.com/template-helper-apidocs/-/template-helper-apidocs-0.4.4.tgz#8f558ff973b9496bc89feefa124b43e5aa4b7448"
@@ -7167,49 +6841,10 @@ template@^0.14.3:
relative "^3.0.0"
template-utils "^0.6.2"
-templates@^1.2.9:
- version "1.2.9"
- resolved "https://registry.yarnpkg.com/templates/-/templates-1.2.9.tgz#d8b0de71d69331af755cb09533b4ecc2da649801"
- integrity sha1-2LDecdaTMa91XLCVM7TswtpkmAE=
- dependencies:
- array-sort "^0.1.2"
- async-each "^1.0.1"
- base "^0.11.1"
- base-data "^0.6.0"
- base-engines "^0.2.0"
- base-helpers "^0.2.0"
- base-option "^0.8.4"
- base-plugins "^0.4.13"
- base-routes "^0.2.2"
- debug "^2.6.0"
- deep-bind "^0.3.0"
- define-property "^0.2.5"
- engine-base "^0.1.2"
- export-files "^2.1.1"
- extend-shallow "^2.0.1"
- "falsey" "^0.3.0"
- get-value "^2.0.6"
- get-view "^0.1.3"
- group-array "^0.3.1"
- has-glob "^1.0.0"
- has-value "^0.3.1"
- inflection "^1.12.0"
- is-valid-app "^0.2.1"
- layouts "^0.12.1"
- lazy-cache "^2.0.2"
- match-file "^0.2.1"
- mixin-deep "^1.1.3"
- paginationator "^0.1.4"
- pascalcase "^0.1.1"
- set-value "^0.4.0"
- template-error "^0.1.2"
- vinyl-item "^1.0.0"
- vinyl-view "^2.0.0"
-
text-table@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
- integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
+ integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
through2-filter@^3.0.0:
version "3.0.0"
@@ -7297,14 +6932,6 @@ to-gfm-code-block@^0.1.1:
resolved "https://registry.yarnpkg.com/to-gfm-code-block/-/to-gfm-code-block-0.1.1.tgz#25d045a5fae553189e9637b590900da732d8aa82"
integrity sha1-JdBFpfrlUxielje1kJANpzLYqoI=
-to-object-path@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.2.0.tgz#1634e1b52a88ba00e3949619fc0081dc9a3b07ca"
- integrity sha1-FjThtSqIugDjlJYZ/ACB3Jo7B8o=
- dependencies:
- arr-flatten "^1.0.1"
- is-arguments "^1.0.2"
-
to-object-path@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
@@ -7384,11 +7011,6 @@ type-check@^0.4.0, type-check@~0.4.0:
dependencies:
prelude-ls "^1.2.1"
-type-detect@4.0.8, type-detect@^4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
- integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
-
type-fest@^0.20.2:
version "0.20.2"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
@@ -7467,7 +7089,7 @@ union-value@^0.2.3:
is-extendable "^0.1.1"
set-value "^0.4.3"
-union-value@^1.0.0, union-value@^1.0.1:
+union-value@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
@@ -7592,11 +7214,6 @@ uuid@^9.0.1:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30"
integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==
-v8-compile-cache@^2.0.3:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
- integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
-
v8flags@^2.0.10:
version "2.1.1"
resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4"
@@ -7882,22 +7499,6 @@ vinyl-fs@^3.0.0:
vinyl "^2.0.0"
vinyl-sourcemap "^1.1.0"
-vinyl-item@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/vinyl-item/-/vinyl-item-1.0.0.tgz#e4188fab795154de9e74588eaad3df4ba5151692"
- integrity sha1-5BiPq3lRVN6edFiOqtPfS6UVFpI=
- dependencies:
- base "^0.11.1"
- base-option "^0.8.4"
- base-plugins "^0.4.13"
- clone "^2.1.0"
- clone-stats "^1.0.0"
- define-property "^0.2.5"
- extend-shallow "^2.0.1"
- isobject "^3.0.0"
- lazy-cache "^2.0.2"
- vinyl "^2.0.1"
-
vinyl-sourcemap@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16"
@@ -7911,19 +7512,6 @@ vinyl-sourcemap@^1.1.0:
remove-bom-buffer "^3.0.0"
vinyl "^2.0.0"
-vinyl-view@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/vinyl-view/-/vinyl-view-2.0.1.tgz#46a4d99fa8688bf37912868f912665a15b66816a"
- integrity sha1-RqTZn6hoi/N5EoaPkSZloVtmgWo=
- dependencies:
- arr-union "^3.1.0"
- define-property "^0.2.5"
- engine-base "^0.1.2"
- extend-shallow "^2.0.1"
- isobject "^3.0.0"
- lazy-cache "^2.0.2"
- vinyl-item "^1.0.0"
-
vinyl@^0.4.0, vinyl@^0.4.6:
version "0.4.6"
resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847"
@@ -7989,6 +7577,11 @@ word-wrap@^1.1.0, word-wrap@^1.2.3:
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
+word-wrap@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
+ integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
+
wordwrap@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
@@ -8050,11 +7643,6 @@ y18n@^5.0.5:
resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
-yallist@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
- integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
-
yargs-parser@^20.2.2, yargs-parser@^20.2.9:
version "20.2.9"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"