This is an automated email from the ASF dual-hosted git repository.
dhavaljrajpara pushed a commit to branch ranger-2.9
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/ranger-2.9 by this push:
new 48a655b33 RANGER-5638 : ranger: Upgrade handlebars to 4.7.9 (#1061)
48a655b33 is described below
commit 48a655b33d6db5763fb372c58b4194c065d1e552
Author: Dhaval Rajpara <[email protected]>
AuthorDate: Fri Jul 10 14:26:00 2026 +0530
RANGER-5638 : ranger: Upgrade handlebars to 4.7.9 (#1061)
---
.../require-handlebars-plugin/js/Handlebars.js | 1226 ++++++++++++++++----
1 file changed, 1021 insertions(+), 205 deletions(-)
diff --git
a/security-admin/src/main/webapp/libs/bower/require-handlebars-plugin/js/Handlebars.js
b/security-admin/src/main/webapp/libs/bower/require-handlebars-plugin/js/Handlebars.js
index 1b2e9e08e..547aef1f1 100644
---
a/security-admin/src/main/webapp/libs/bower/require-handlebars-plugin/js/Handlebars.js
+++
b/security-admin/src/main/webapp/libs/bower/require-handlebars-plugin/js/Handlebars.js
@@ -1,7 +1,7 @@
/**!
@license
- handlebars v4.7.7
+ handlebars v4.7.9
Copyright (C) 2011-2019 by Yehuda Katz
@@ -92,23 +92,23 @@ return /******/ (function(modules) { // webpackBootstrap
// Compiler imports
- var _handlebarsCompilerAst = __webpack_require__(45);
+ var _handlebarsCompilerAst = __webpack_require__(83);
var _handlebarsCompilerAst2 = _interopRequireDefault(_handlebarsCompilerAst);
- var _handlebarsCompilerBase = __webpack_require__(46);
+ var _handlebarsCompilerBase = __webpack_require__(84);
- var _handlebarsCompilerCompiler = __webpack_require__(51);
+ var _handlebarsCompilerCompiler = __webpack_require__(89);
- var _handlebarsCompilerJavascriptCompiler = __webpack_require__(52);
+ var _handlebarsCompilerJavascriptCompiler = __webpack_require__(90);
var _handlebarsCompilerJavascriptCompiler2 =
_interopRequireDefault(_handlebarsCompilerJavascriptCompiler);
- var _handlebarsCompilerVisitor = __webpack_require__(49);
+ var _handlebarsCompilerVisitor = __webpack_require__(87);
var _handlebarsCompilerVisitor2 =
_interopRequireDefault(_handlebarsCompilerVisitor);
- var _handlebarsNoConflict = __webpack_require__(44);
+ var _handlebarsNoConflict = __webpack_require__(82);
var _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);
@@ -178,7 +178,7 @@ return /******/ (function(modules) { // webpackBootstrap
// Each of these augment the Handlebars object. No need to setup here.
// (This is done to easily share code between commonjs and browse envs)
- var _handlebarsSafeString = __webpack_require__(37);
+ var _handlebarsSafeString = __webpack_require__(76);
var _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);
@@ -190,11 +190,11 @@ return /******/ (function(modules) { // webpackBootstrap
var Utils = _interopRequireWildcard(_handlebarsUtils);
- var _handlebarsRuntime = __webpack_require__(38);
+ var _handlebarsRuntime = __webpack_require__(77);
var runtime = _interopRequireWildcard(_handlebarsRuntime);
- var _handlebarsNoConflict = __webpack_require__(44);
+ var _handlebarsNoConflict = __webpack_require__(82);
var _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);
@@ -270,15 +270,15 @@ return /******/ (function(modules) { // webpackBootstrap
var _helpers = __webpack_require__(10);
- var _decorators = __webpack_require__(30);
+ var _decorators = __webpack_require__(70);
- var _logger = __webpack_require__(32);
+ var _logger = __webpack_require__(72);
var _logger2 = _interopRequireDefault(_logger);
- var _internalProtoAccess = __webpack_require__(33);
+ var _internalProtoAccess = __webpack_require__(73);
- var VERSION = '4.7.7';
+ var VERSION = '4.7.9';
exports.VERSION = VERSION;
var COMPILER_REVISION = 8;
exports.COMPILER_REVISION = COMPILER_REVISION;
@@ -621,23 +621,23 @@ return /******/ (function(modules) { // webpackBootstrap
var _helpersEach2 = _interopRequireDefault(_helpersEach);
- var _helpersHelperMissing = __webpack_require__(25);
+ var _helpersHelperMissing = __webpack_require__(65);
var _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);
- var _helpersIf = __webpack_require__(26);
+ var _helpersIf = __webpack_require__(66);
var _helpersIf2 = _interopRequireDefault(_helpersIf);
- var _helpersLog = __webpack_require__(27);
+ var _helpersLog = __webpack_require__(67);
var _helpersLog2 = _interopRequireDefault(_helpersLog);
- var _helpersLookup = __webpack_require__(28);
+ var _helpersLookup = __webpack_require__(68);
var _helpersLookup2 = _interopRequireDefault(_helpersLookup);
- var _helpersWith = __webpack_require__(29);
+ var _helpersWith = __webpack_require__(69);
var _helpersWith2 = _interopRequireDefault(_helpersWith);
@@ -655,7 +655,8 @@ return /******/ (function(modules) { // webpackBootstrap
if (instance.helpers[helperName]) {
instance.hooks[helperName] = instance.helpers[helperName];
if (!keepHelper) {
- delete instance.helpers[helperName];
+ // Using delete is slow
+ instance.helpers[helperName] = undefined;
}
}
}
@@ -707,9 +708,15 @@ return /******/ (function(modules) { // webpackBootstrap
/* 12 */
/***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(global) {'use strict';
+ 'use strict';
+
+ var _Symbol = __webpack_require__(13)['default'];
+
+ var _Symbol$iterator = __webpack_require__(43)['default'];
+
+ var _getIterator = __webpack_require__(55)['default'];
- var _Object$keys = __webpack_require__(13)['default'];
+ var _Object$keys = __webpack_require__(60)['default'];
var _interopRequireDefault = __webpack_require__(1)['default'];
@@ -771,9 +778,9 @@ return /******/ (function(modules) { // webpackBootstrap
execIteration(i, i, i === context.length - 1);
}
}
- } else if (global.Symbol && context[global.Symbol.iterator]) {
+ } else if (typeof _Symbol === 'function' && context[_Symbol$iterator])
{
var newContext = [];
- var iterator = context[global.Symbol.iterator]();
+ var iterator = _getIterator(context);
for (var it = iterator.next(); !it.done; it = iterator.next()) {
newContext.push(it.value);
}
@@ -811,7 +818,6 @@ return /******/ (function(modules) { // webpackBootstrap
};
module.exports = exports['default'];
- /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
/***/ }),
/* 13 */
@@ -824,61 +830,285 @@ return /******/ (function(modules) { // webpackBootstrap
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(15);
- module.exports = __webpack_require__(21).Object.keys;
+ __webpack_require__(42);
+ module.exports = __webpack_require__(21).Symbol;
/***/ }),
/* 15 */
/***/ (function(module, exports, __webpack_require__) {
- // 19.1.2.14 Object.keys(O)
- var toObject = __webpack_require__(16);
+ 'use strict';
+ // ECMAScript 6 symbols shim
+ var $ = __webpack_require__(9)
+ , global = __webpack_require__(16)
+ , has = __webpack_require__(17)
+ , DESCRIPTORS = __webpack_require__(18)
+ , $export = __webpack_require__(20)
+ , redefine = __webpack_require__(24)
+ , $fails = __webpack_require__(19)
+ , shared = __webpack_require__(27)
+ , setToStringTag = __webpack_require__(28)
+ , uid = __webpack_require__(30)
+ , wks = __webpack_require__(29)
+ , keyOf = __webpack_require__(31)
+ , $names = __webpack_require__(36)
+ , enumKeys = __webpack_require__(37)
+ , isArray = __webpack_require__(38)
+ , anObject = __webpack_require__(39)
+ , toIObject = __webpack_require__(32)
+ , createDesc = __webpack_require__(26)
+ , getDesc = $.getDesc
+ , setDesc = $.setDesc
+ , _create = $.create
+ , getNames = $names.get
+ , $Symbol = global.Symbol
+ , $JSON = global.JSON
+ , _stringify = $JSON && $JSON.stringify
+ , setter = false
+ , HIDDEN = wks('_hidden')
+ , isEnum = $.isEnum
+ , SymbolRegistry = shared('symbol-registry')
+ , AllSymbols = shared('symbols')
+ , useNative = typeof $Symbol == 'function'
+ , ObjectProto = Object.prototype;
+
+ // fallback for old Android,
https://code.google.com/p/v8/issues/detail?id=687
+ var setSymbolDesc = DESCRIPTORS && $fails(function(){
+ return _create(setDesc({}, 'a', {
+ get: function(){ return setDesc(this, 'a', {value: 7}).a; }
+ })).a != 7;
+ }) ? function(it, key, D){
+ var protoDesc = getDesc(ObjectProto, key);
+ if(protoDesc)delete ObjectProto[key];
+ setDesc(it, key, D);
+ if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc);
+ } : setDesc;
+
+ var wrap = function(tag){
+ var sym = AllSymbols[tag] = _create($Symbol.prototype);
+ sym._k = tag;
+ DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, {
+ configurable: true,
+ set: function(value){
+ if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] =
false;
+ setSymbolDesc(this, tag, createDesc(1, value));
+ }
+ });
+ return sym;
+ };
- __webpack_require__(18)('keys', function($keys){
- return function keys(it){
- return $keys(toObject(it));
+ var isSymbol = function(it){
+ return typeof it == 'symbol';
+ };
+
+ var $defineProperty = function defineProperty(it, key, D){
+ if(D && has(AllSymbols, key)){
+ if(!D.enumerable){
+ if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {}));
+ it[HIDDEN][key] = true;
+ } else {
+ if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;
+ D = _create(D, {enumerable: createDesc(0, false)});
+ } return setSymbolDesc(it, key, D);
+ } return setDesc(it, key, D);
+ };
+ var $defineProperties = function defineProperties(it, P){
+ anObject(it);
+ var keys = enumKeys(P = toIObject(P))
+ , i = 0
+ , l = keys.length
+ , key;
+ while(l > i)$defineProperty(it, key = keys[i++], P[key]);
+ return it;
+ };
+ var $create = function create(it, P){
+ return P === undefined ? _create(it) : $defineProperties(_create(it), P);
+ };
+ var $propertyIsEnumerable = function propertyIsEnumerable(key){
+ var E = isEnum.call(this, key);
+ return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN)
&& this[HIDDEN][key]
+ ? E : true;
+ };
+ var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
+ var D = getDesc(it = toIObject(it), key);
+ if(D && has(AllSymbols, key) && !(has(it, HIDDEN) &&
it[HIDDEN][key]))D.enumerable = true;
+ return D;
+ };
+ var $getOwnPropertyNames = function getOwnPropertyNames(it){
+ var names = getNames(toIObject(it))
+ , result = []
+ , i = 0
+ , key;
+ while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key !=
HIDDEN)result.push(key);
+ return result;
+ };
+ var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
+ var names = getNames(toIObject(it))
+ , result = []
+ , i = 0
+ , key;
+ while(names.length > i)if(has(AllSymbols, key =
names[i++]))result.push(AllSymbols[key]);
+ return result;
+ };
+ var $stringify = function stringify(it){
+ if(it === undefined || isSymbol(it))return; // IE8 returns string on
undefined
+ var args = [it]
+ , i = 1
+ , $$ = arguments
+ , replacer, $replacer;
+ while($$.length > i)args.push($$[i++]);
+ replacer = args[1];
+ if(typeof replacer == 'function')$replacer = replacer;
+ if($replacer || !isArray(replacer))replacer = function(key, value){
+ if($replacer)value = $replacer.call(this, key, value);
+ if(!isSymbol(value))return value;
};
+ args[1] = replacer;
+ return _stringify.apply($JSON, args);
+ };
+ var buggyJSON = $fails(function(){
+ var S = $Symbol();
+ // MS Edge converts symbol values to JSON as {}
+ // WebKit converts symbol values to JSON as null
+ // V8 throws on boxed symbols
+ return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' ||
_stringify(Object(S)) != '{}';
});
+ // 19.4.1.1 Symbol([description])
+ if(!useNative){
+ $Symbol = function Symbol(){
+ if(isSymbol(this))throw TypeError('Symbol is not a constructor');
+ return wrap(uid(arguments.length > 0 ? arguments[0] : undefined));
+ };
+ redefine($Symbol.prototype, 'toString', function toString(){
+ return this._k;
+ });
+
+ isSymbol = function(it){
+ return it instanceof $Symbol;
+ };
+
+ $.create = $create;
+ $.isEnum = $propertyIsEnumerable;
+ $.getDesc = $getOwnPropertyDescriptor;
+ $.setDesc = $defineProperty;
+ $.setDescs = $defineProperties;
+ $.getNames = $names.get = $getOwnPropertyNames;
+ $.getSymbols = $getOwnPropertySymbols;
+
+ if(DESCRIPTORS && !__webpack_require__(41)){
+ redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable,
true);
+ }
+ }
+
+ var symbolStatics = {
+ // 19.4.2.1 Symbol.for(key)
+ 'for': function(key){
+ return has(SymbolRegistry, key += '')
+ ? SymbolRegistry[key]
+ : SymbolRegistry[key] = $Symbol(key);
+ },
+ // 19.4.2.5 Symbol.keyFor(sym)
+ keyFor: function keyFor(key){
+ return keyOf(SymbolRegistry, key);
+ },
+ useSetter: function(){ setter = true; },
+ useSimple: function(){ setter = false; }
+ };
+ // 19.4.2.2 Symbol.hasInstance
+ // 19.4.2.3 Symbol.isConcatSpreadable
+ // 19.4.2.4 Symbol.iterator
+ // 19.4.2.6 Symbol.match
+ // 19.4.2.8 Symbol.replace
+ // 19.4.2.9 Symbol.search
+ // 19.4.2.10 Symbol.species
+ // 19.4.2.11 Symbol.split
+ // 19.4.2.12 Symbol.toPrimitive
+ // 19.4.2.13 Symbol.toStringTag
+ // 19.4.2.14 Symbol.unscopables
+ $.each.call((
+ 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +
+ 'species,split,toPrimitive,toStringTag,unscopables'
+ ).split(','), function(it){
+ var sym = wks(it);
+ symbolStatics[it] = useNative ? sym : wrap(sym);
+ });
+
+ setter = true;
+
+ $export($export.G + $export.W, {Symbol: $Symbol});
+
+ $export($export.S, 'Symbol', symbolStatics);
+
+ $export($export.S + $export.F * !useNative, 'Object', {
+ // 19.1.2.2 Object.create(O [, Properties])
+ create: $create,
+ // 19.1.2.4 Object.defineProperty(O, P, Attributes)
+ defineProperty: $defineProperty,
+ // 19.1.2.3 Object.defineProperties(O, Properties)
+ defineProperties: $defineProperties,
+ // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
+ getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
+ // 19.1.2.7 Object.getOwnPropertyNames(O)
+ getOwnPropertyNames: $getOwnPropertyNames,
+ // 19.1.2.8 Object.getOwnPropertySymbols(O)
+ getOwnPropertySymbols: $getOwnPropertySymbols
+ });
+
+ // 24.3.2 JSON.stringify(value [, replacer [, space]])
+ $JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON',
{stringify: $stringify});
+
+ // 19.4.3.5 Symbol.prototype[@@toStringTag]
+ setToStringTag($Symbol, 'Symbol');
+ // 20.2.1.9 Math[@@toStringTag]
+ setToStringTag(Math, 'Math', true);
+ // 24.3.3 JSON[@@toStringTag]
+ setToStringTag(global.JSON, 'JSON', true);
+
/***/ }),
/* 16 */
-/***/ (function(module, exports, __webpack_require__) {
+/***/ (function(module, exports) {
- // 7.1.13 ToObject(argument)
- var defined = __webpack_require__(17);
- module.exports = function(it){
- return Object(defined(it));
- };
+ // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+ var global = module.exports = typeof window != 'undefined' && window.Math ==
Math
+ ? window : typeof self != 'undefined' && self.Math == Math ? self :
Function('return this')();
+ if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
/***/ }),
/* 17 */
/***/ (function(module, exports) {
- // 7.2.1 RequireObjectCoercible(argument)
- module.exports = function(it){
- if(it == undefined)throw TypeError("Can't call method on " + it);
- return it;
+ var hasOwnProperty = {}.hasOwnProperty;
+ module.exports = function(it, key){
+ return hasOwnProperty.call(it, key);
};
/***/ }),
/* 18 */
/***/ (function(module, exports, __webpack_require__) {
- // most Object methods by ES6 should accept primitives
- var $export = __webpack_require__(19)
- , core = __webpack_require__(21)
- , fails = __webpack_require__(24);
- module.exports = function(KEY, exec){
- var fn = (core.Object || {})[KEY] || Object[KEY]
- , exp = {};
- exp[KEY] = exec(fn);
- $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object',
exp);
- };
+ // Thank's IE8 for his funny defineProperty
+ module.exports = !__webpack_require__(19)(function(){
+ return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a !=
7;
+ });
/***/ }),
/* 19 */
+/***/ (function(module, exports) {
+
+ module.exports = function(exec){
+ try {
+ return !!exec();
+ } catch(e){
+ return true;
+ }
+ };
+
+/***/ }),
+/* 20 */
/***/ (function(module, exports, __webpack_require__) {
- var global = __webpack_require__(20)
+ var global = __webpack_require__(16)
, core = __webpack_require__(21)
, ctx = __webpack_require__(22)
, PROTOTYPE = 'prototype';
@@ -925,15 +1155,6 @@ return /******/ (function(modules) { // webpackBootstrap
$export.W = 32; // wrap
module.exports = $export;
-/***/ }),
-/* 20 */
-/***/ (function(module, exports) {
-
- // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
- var global = module.exports = typeof window != 'undefined' && window.Math ==
Math
- ? window : typeof self != 'undefined' && self.Math == Math ? self :
Function('return this')();
- if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
-
/***/ }),
/* 21 */
/***/ (function(module, exports) {
@@ -977,18 +1198,559 @@ return /******/ (function(modules) { // webpackBootstrap
/***/ }),
/* 24 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ module.exports = __webpack_require__(25);
+
+/***/ }),
+/* 25 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ var $ = __webpack_require__(9)
+ , createDesc = __webpack_require__(26);
+ module.exports = __webpack_require__(18) ? function(object, key, value){
+ return $.setDesc(object, key, createDesc(1, value));
+ } : function(object, key, value){
+ object[key] = value;
+ return object;
+ };
+
+/***/ }),
+/* 26 */
/***/ (function(module, exports) {
- module.exports = function(exec){
+ module.exports = function(bitmap, value){
+ return {
+ enumerable : !(bitmap & 1),
+ configurable: !(bitmap & 2),
+ writable : !(bitmap & 4),
+ value : value
+ };
+ };
+
+/***/ }),
+/* 27 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ var global = __webpack_require__(16)
+ , SHARED = '__core-js_shared__'
+ , store = global[SHARED] || (global[SHARED] = {});
+ module.exports = function(key){
+ return store[key] || (store[key] = {});
+ };
+
+/***/ }),
+/* 28 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ var def = __webpack_require__(9).setDesc
+ , has = __webpack_require__(17)
+ , TAG = __webpack_require__(29)('toStringTag');
+
+ module.exports = function(it, tag, stat){
+ if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG,
{configurable: true, value: tag});
+ };
+
+/***/ }),
+/* 29 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ var store = __webpack_require__(27)('wks')
+ , uid = __webpack_require__(30)
+ , Symbol = __webpack_require__(16).Symbol;
+ module.exports = function(name){
+ return store[name] || (store[name] =
+ Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));
+ };
+
+/***/ }),
+/* 30 */
+/***/ (function(module, exports) {
+
+ var id = 0
+ , px = Math.random();
+ module.exports = function(key){
+ return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id +
px).toString(36));
+ };
+
+/***/ }),
+/* 31 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ var $ = __webpack_require__(9)
+ , toIObject = __webpack_require__(32);
+ module.exports = function(object, el){
+ var O = toIObject(object)
+ , keys = $.getKeys(O)
+ , length = keys.length
+ , index = 0
+ , key;
+ while(length > index)if(O[key = keys[index++]] === el)return key;
+ };
+
+/***/ }),
+/* 32 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ // to indexed object, toObject with fallback for non-array-like ES3 strings
+ var IObject = __webpack_require__(33)
+ , defined = __webpack_require__(35);
+ module.exports = function(it){
+ return IObject(defined(it));
+ };
+
+/***/ }),
+/* 33 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ // fallback for non-array-like ES3 and non-enumerable old V8 strings
+ var cof = __webpack_require__(34);
+ module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
+ return cof(it) == 'String' ? it.split('') : Object(it);
+ };
+
+/***/ }),
+/* 34 */
+/***/ (function(module, exports) {
+
+ var toString = {}.toString;
+
+ module.exports = function(it){
+ return toString.call(it).slice(8, -1);
+ };
+
+/***/ }),
+/* 35 */
+/***/ (function(module, exports) {
+
+ // 7.2.1 RequireObjectCoercible(argument)
+ module.exports = function(it){
+ if(it == undefined)throw TypeError("Can't call method on " + it);
+ return it;
+ };
+
+/***/ }),
+/* 36 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
+ var toIObject = __webpack_require__(32)
+ , getNames = __webpack_require__(9).getNames
+ , toString = {}.toString;
+
+ var windowNames = typeof window == 'object' && Object.getOwnPropertyNames
+ ? Object.getOwnPropertyNames(window) : [];
+
+ var getWindowNames = function(it){
try {
- return !!exec();
+ return getNames(it);
} catch(e){
- return true;
+ return windowNames.slice();
}
};
+ module.exports.get = function getOwnPropertyNames(it){
+ if(windowNames && toString.call(it) == '[object Window]')return
getWindowNames(it);
+ return getNames(toIObject(it));
+ };
+
/***/ }),
-/* 25 */
+/* 37 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ // all enumerable object keys, includes symbols
+ var $ = __webpack_require__(9);
+ module.exports = function(it){
+ var keys = $.getKeys(it)
+ , getSymbols = $.getSymbols;
+ if(getSymbols){
+ var symbols = getSymbols(it)
+ , isEnum = $.isEnum
+ , i = 0
+ , key;
+ while(symbols.length > i)if(isEnum.call(it, key =
symbols[i++]))keys.push(key);
+ }
+ return keys;
+ };
+
+/***/ }),
+/* 38 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ // 7.2.2 IsArray(argument)
+ var cof = __webpack_require__(34);
+ module.exports = Array.isArray || function(arg){
+ return cof(arg) == 'Array';
+ };
+
+/***/ }),
+/* 39 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ var isObject = __webpack_require__(40);
+ module.exports = function(it){
+ if(!isObject(it))throw TypeError(it + ' is not an object!');
+ return it;
+ };
+
+/***/ }),
+/* 40 */
+/***/ (function(module, exports) {
+
+ module.exports = function(it){
+ return typeof it === 'object' ? it !== null : typeof it === 'function';
+ };
+
+/***/ }),
+/* 41 */
+/***/ (function(module, exports) {
+
+ module.exports = true;
+
+/***/ }),
+/* 42 */
+/***/ (function(module, exports) {
+
+
+
+/***/ }),
+/* 43 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ module.exports = { "default": __webpack_require__(44), __esModule: true };
+
+/***/ }),
+/* 44 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ __webpack_require__(45);
+ __webpack_require__(51);
+ module.exports = __webpack_require__(29)('iterator');
+
+/***/ }),
+/* 45 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $at = __webpack_require__(46)(true);
+
+ // 21.1.3.27 String.prototype[@@iterator]()
+ __webpack_require__(48)(String, 'String', function(iterated){
+ this._t = String(iterated); // target
+ this._i = 0; // next index
+ // 21.1.5.2.1 %StringIteratorPrototype%.next()
+ }, function(){
+ var O = this._t
+ , index = this._i
+ , point;
+ if(index >= O.length)return {value: undefined, done: true};
+ point = $at(O, index);
+ this._i += point.length;
+ return {value: point, done: false};
+ });
+
+/***/ }),
+/* 46 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ var toInteger = __webpack_require__(47)
+ , defined = __webpack_require__(35);
+ // true -> String#at
+ // false -> String#codePointAt
+ module.exports = function(TO_STRING){
+ return function(that, pos){
+ var s = String(defined(that))
+ , i = toInteger(pos)
+ , l = s.length
+ , a, b;
+ if(i < 0 || i >= l)return TO_STRING ? '' : undefined;
+ a = s.charCodeAt(i);
+ return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i +
1)) < 0xdc00 || b > 0xdfff
+ ? TO_STRING ? s.charAt(i) : a
+ : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) +
0x10000;
+ };
+ };
+
+/***/ }),
+/* 47 */
+/***/ (function(module, exports) {
+
+ // 7.1.4 ToInteger
+ var ceil = Math.ceil
+ , floor = Math.floor;
+ module.exports = function(it){
+ return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
+ };
+
+/***/ }),
+/* 48 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var LIBRARY = __webpack_require__(41)
+ , $export = __webpack_require__(20)
+ , redefine = __webpack_require__(24)
+ , hide = __webpack_require__(25)
+ , has = __webpack_require__(17)
+ , Iterators = __webpack_require__(49)
+ , $iterCreate = __webpack_require__(50)
+ , setToStringTag = __webpack_require__(28)
+ , getProto = __webpack_require__(9).getProto
+ , ITERATOR = __webpack_require__(29)('iterator')
+ , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy
iterators w/o `next`
+ , FF_ITERATOR = '@@iterator'
+ , KEYS = 'keys'
+ , VALUES = 'values';
+
+ var returnThis = function(){ return this; };
+
+ module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET,
FORCED){
+ $iterCreate(Constructor, NAME, next);
+ var getMethod = function(kind){
+ if(!BUGGY && kind in proto)return proto[kind];
+ switch(kind){
+ case KEYS: return function keys(){ return new Constructor(this, kind);
};
+ case VALUES: return function values(){ return new Constructor(this,
kind); };
+ } return function entries(){ return new Constructor(this, kind); };
+ };
+ var TAG = NAME + ' Iterator'
+ , DEF_VALUES = DEFAULT == VALUES
+ , VALUES_BUG = false
+ , proto = Base.prototype
+ , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT &&
proto[DEFAULT]
+ , $default = $native || getMethod(DEFAULT)
+ , methods, key;
+ // Fix native
+ if($native){
+ var IteratorPrototype = getProto($default.call(new Base));
+ // Set @@toStringTag to native iterators
+ setToStringTag(IteratorPrototype, TAG, true);
+ // FF fix
+ if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR,
returnThis);
+ // fix Array#{values, @@iterator}.name in V8 / FF
+ if(DEF_VALUES && $native.name !== VALUES){
+ VALUES_BUG = true;
+ $default = function values(){ return $native.call(this); };
+ }
+ }
+ // Define iterator
+ if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){
+ hide(proto, ITERATOR, $default);
+ }
+ // Plug for library
+ Iterators[NAME] = $default;
+ Iterators[TAG] = returnThis;
+ if(DEFAULT){
+ methods = {
+ values: DEF_VALUES ? $default : getMethod(VALUES),
+ keys: IS_SET ? $default : getMethod(KEYS),
+ entries: !DEF_VALUES ? $default : getMethod('entries')
+ };
+ if(FORCED)for(key in methods){
+ if(!(key in proto))redefine(proto, key, methods[key]);
+ } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME,
methods);
+ }
+ return methods;
+ };
+
+/***/ }),
+/* 49 */
+/***/ (function(module, exports) {
+
+ module.exports = {};
+
+/***/ }),
+/* 50 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var $ = __webpack_require__(9)
+ , descriptor = __webpack_require__(26)
+ , setToStringTag = __webpack_require__(28)
+ , IteratorPrototype = {};
+
+ // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
+ __webpack_require__(25)(IteratorPrototype,
__webpack_require__(29)('iterator'), function(){ return this; });
+
+ module.exports = function(Constructor, NAME, next){
+ Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1,
next)});
+ setToStringTag(Constructor, NAME + ' Iterator');
+ };
+
+/***/ }),
+/* 51 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ __webpack_require__(52);
+ var Iterators = __webpack_require__(49);
+ Iterators.NodeList = Iterators.HTMLCollection = Iterators.Array;
+
+/***/ }),
+/* 52 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var addToUnscopables = __webpack_require__(53)
+ , step = __webpack_require__(54)
+ , Iterators = __webpack_require__(49)
+ , toIObject = __webpack_require__(32);
+
+ // 22.1.3.4 Array.prototype.entries()
+ // 22.1.3.13 Array.prototype.keys()
+ // 22.1.3.29 Array.prototype.values()
+ // 22.1.3.30 Array.prototype[@@iterator]()
+ module.exports = __webpack_require__(48)(Array, 'Array', function(iterated,
kind){
+ this._t = toIObject(iterated); // target
+ this._i = 0; // next index
+ this._k = kind; // kind
+ // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
+ }, function(){
+ var O = this._t
+ , kind = this._k
+ , index = this._i++;
+ if(!O || index >= O.length){
+ this._t = undefined;
+ return step(1);
+ }
+ if(kind == 'keys' )return step(0, index);
+ if(kind == 'values')return step(0, O[index]);
+ return step(0, [index, O[index]]);
+ }, 'values');
+
+ // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
+ Iterators.Arguments = Iterators.Array;
+
+ addToUnscopables('keys');
+ addToUnscopables('values');
+ addToUnscopables('entries');
+
+/***/ }),
+/* 53 */
+/***/ (function(module, exports) {
+
+ module.exports = function(){ /* empty */ };
+
+/***/ }),
+/* 54 */
+/***/ (function(module, exports) {
+
+ module.exports = function(done, value){
+ return {value: value, done: !!done};
+ };
+
+/***/ }),
+/* 55 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ module.exports = { "default": __webpack_require__(56), __esModule: true };
+
+/***/ }),
+/* 56 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ __webpack_require__(51);
+ __webpack_require__(45);
+ module.exports = __webpack_require__(57);
+
+/***/ }),
+/* 57 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ var anObject = __webpack_require__(39)
+ , get = __webpack_require__(58);
+ module.exports = __webpack_require__(21).getIterator = function(it){
+ var iterFn = get(it);
+ if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!');
+ return anObject(iterFn.call(it));
+ };
+
+/***/ }),
+/* 58 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ var classof = __webpack_require__(59)
+ , ITERATOR = __webpack_require__(29)('iterator')
+ , Iterators = __webpack_require__(49);
+ module.exports = __webpack_require__(21).getIteratorMethod = function(it){
+ if(it != undefined)return it[ITERATOR]
+ || it['@@iterator']
+ || Iterators[classof(it)];
+ };
+
+/***/ }),
+/* 59 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ // getting tag from 19.1.3.6 Object.prototype.toString()
+ var cof = __webpack_require__(34)
+ , TAG = __webpack_require__(29)('toStringTag')
+ // ES3 wrong here
+ , ARG = cof(function(){ return arguments; }()) == 'Arguments';
+
+ module.exports = function(it){
+ var O, T, B;
+ return it === undefined ? 'Undefined' : it === null ? 'Null'
+ // @@toStringTag case
+ : typeof (T = (O = Object(it))[TAG]) == 'string' ? T
+ // builtinTag case
+ : ARG ? cof(O)
+ // ES3 arguments fallback
+ : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ?
'Arguments' : B;
+ };
+
+/***/ }),
+/* 60 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ module.exports = { "default": __webpack_require__(61), __esModule: true };
+
+/***/ }),
+/* 61 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ __webpack_require__(62);
+ module.exports = __webpack_require__(21).Object.keys;
+
+/***/ }),
+/* 62 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ // 19.1.2.14 Object.keys(O)
+ var toObject = __webpack_require__(63);
+
+ __webpack_require__(64)('keys', function($keys){
+ return function keys(it){
+ return $keys(toObject(it));
+ };
+ });
+
+/***/ }),
+/* 63 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ // 7.1.13 ToObject(argument)
+ var defined = __webpack_require__(35);
+ module.exports = function(it){
+ return Object(defined(it));
+ };
+
+/***/ }),
+/* 64 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ // most Object methods by ES6 should accept primitives
+ var $export = __webpack_require__(20)
+ , core = __webpack_require__(21)
+ , fails = __webpack_require__(19);
+ module.exports = function(KEY, exec){
+ var fn = (core.Object || {})[KEY] || Object[KEY]
+ , exp = {};
+ exp[KEY] = exec(fn);
+ $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object',
exp);
+ };
+
+/***/ }),
+/* 65 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
@@ -1016,7 +1778,7 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports['default'];
/***/ }),
-/* 26 */
+/* 66 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
@@ -1065,7 +1827,7 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports['default'];
/***/ }),
-/* 27 */
+/* 67 */
/***/ (function(module, exports) {
'use strict';
@@ -1095,7 +1857,7 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports['default'];
/***/ }),
-/* 28 */
+/* 68 */
/***/ (function(module, exports) {
'use strict';
@@ -1115,7 +1877,7 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports['default'];
/***/ }),
-/* 29 */
+/* 69 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
@@ -1161,7 +1923,7 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports['default'];
/***/ }),
-/* 30 */
+/* 70 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
@@ -1171,7 +1933,7 @@ return /******/ (function(modules) { // webpackBootstrap
exports.__esModule = true;
exports.registerDefaultDecorators = registerDefaultDecorators;
- var _decoratorsInline = __webpack_require__(31);
+ var _decoratorsInline = __webpack_require__(71);
var _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);
@@ -1180,7 +1942,7 @@ return /******/ (function(modules) { // webpackBootstrap
}
/***/ }),
-/* 31 */
+/* 71 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
@@ -1213,7 +1975,7 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports['default'];
/***/ }),
-/* 32 */
+/* 72 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
@@ -1264,48 +2026,53 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports['default'];
/***/ }),
-/* 33 */
+/* 73 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
- var _Object$create = __webpack_require__(34)['default'];
+ var _Object$create = __webpack_require__(74)['default'];
- var _Object$keys = __webpack_require__(13)['default'];
+ var _Object$keys = __webpack_require__(60)['default'];
- var _interopRequireWildcard = __webpack_require__(3)['default'];
+ var _interopRequireDefault = __webpack_require__(1)['default'];
exports.__esModule = true;
exports.createProtoAccessControl = createProtoAccessControl;
exports.resultIsAllowed = resultIsAllowed;
exports.resetLoggedProperties = resetLoggedProperties;
- var _createNewLookupObject = __webpack_require__(36);
+ var _utils = __webpack_require__(5);
- var _logger = __webpack_require__(32);
+ var _logger = __webpack_require__(72);
- var logger = _interopRequireWildcard(_logger);
+ var _logger2 = _interopRequireDefault(_logger);
var loggedProperties = _Object$create(null);
function createProtoAccessControl(runtimeOptions) {
- var defaultMethodWhiteList = _Object$create(null);
- defaultMethodWhiteList['constructor'] = false;
- defaultMethodWhiteList['__defineGetter__'] = false;
- defaultMethodWhiteList['__defineSetter__'] = false;
- defaultMethodWhiteList['__lookupGetter__'] = false;
-
- var defaultPropertyWhiteList = _Object$create(null);
+ // Create an object with "null"-prototype to avoid truthy results on
+ // prototype properties.
+ var propertyWhiteList = _Object$create(null);
// eslint-disable-next-line no-proto
- defaultPropertyWhiteList['__proto__'] = false;
+ propertyWhiteList['__proto__'] = false;
+ _utils.extend(propertyWhiteList, runtimeOptions.allowedProtoProperties);
+
+ var methodWhiteList = _Object$create(null);
+ methodWhiteList['constructor'] = false;
+ methodWhiteList['__defineGetter__'] = false;
+ methodWhiteList['__defineSetter__'] = false;
+ methodWhiteList['__lookupGetter__'] = false;
+ methodWhiteList['__lookupSetter__'] = false;
+ _utils.extend(methodWhiteList, runtimeOptions.allowedProtoMethods);
return {
properties: {
- whitelist:
_createNewLookupObject.createNewLookupObject(defaultPropertyWhiteList,
runtimeOptions.allowedProtoProperties),
+ whitelist: propertyWhiteList,
defaultValue: runtimeOptions.allowProtoPropertiesByDefault
},
methods: {
- whitelist:
_createNewLookupObject.createNewLookupObject(defaultMethodWhiteList,
runtimeOptions.allowedProtoMethods),
+ whitelist: methodWhiteList,
defaultValue: runtimeOptions.allowProtoMethodsByDefault
}
};
@@ -1333,7 +2100,7 @@ return /******/ (function(modules) { // webpackBootstrap
function logUnexpecedPropertyAccessOnce(propertyName) {
if (loggedProperties[propertyName] !== true) {
loggedProperties[propertyName] = true;
- logger.log('error', 'Handlebars: Access has been denied to resolve the
property "' + propertyName + '" because it is not an "own property" of its
parent.\n' + 'You can add a runtime option to disable the check or this
warning:\n' + 'See
https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access
for details');
+ _logger2['default'].log('error', 'Handlebars: Access has been denied to
resolve the property "' + propertyName + '" because it is not an "own property"
of its parent.\n' + 'You can add a runtime option to disable the check or this
warning:\n' + 'See
https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access
for details');
}
}
@@ -1344,13 +2111,13 @@ return /******/ (function(modules) { // webpackBootstrap
}
/***/ }),
-/* 34 */
+/* 74 */
/***/ (function(module, exports, __webpack_require__) {
- module.exports = { "default": __webpack_require__(35), __esModule: true };
+ module.exports = { "default": __webpack_require__(75), __esModule: true };
/***/ }),
-/* 35 */
+/* 75 */
/***/ (function(module, exports, __webpack_require__) {
var $ = __webpack_require__(9);
@@ -1359,35 +2126,7 @@ return /******/ (function(modules) { // webpackBootstrap
};
/***/ }),
-/* 36 */
-/***/ (function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- var _Object$create = __webpack_require__(34)['default'];
-
- exports.__esModule = true;
- exports.createNewLookupObject = createNewLookupObject;
-
- var _utils = __webpack_require__(5);
-
- /**
- * Create a new object with "null"-prototype to avoid truthy results on
prototype properties.
- * The resulting object can be used with "object[property]" to check if a
property exists
- * @param {...object} sources a varargs parameter of source objects that
will be merged
- * @returns {object}
- */
-
- function createNewLookupObject() {
- for (var _len = arguments.length, sources = Array(_len), _key = 0; _key <
_len; _key++) {
- sources[_key] = arguments[_key];
- }
-
- return _utils.extend.apply(undefined,
[_Object$create(null)].concat(sources));
- }
-
-/***/ }),
-/* 37 */
+/* 76 */
/***/ (function(module, exports) {
// Build out our basic SafeString type
@@ -1406,14 +2145,14 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports['default'];
/***/ }),
-/* 38 */
+/* 77 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
- var _Object$seal = __webpack_require__(39)['default'];
+ var _Object$seal = __webpack_require__(78)['default'];
- var _Object$keys = __webpack_require__(13)['default'];
+ var _Object$keys = __webpack_require__(60)['default'];
var _interopRequireWildcard = __webpack_require__(3)['default'];
@@ -1439,9 +2178,9 @@ return /******/ (function(modules) { // webpackBootstrap
var _helpers = __webpack_require__(10);
- var _internalWrapHelper = __webpack_require__(43);
+ var _internalWrapHelper = __webpack_require__(81);
- var _internalProtoAccess = __webpack_require__(33);
+ var _internalProtoAccess = __webpack_require__(73);
function checkRevision(compilerInfo) {
var compilerRevision = compilerInfo && compilerInfo[0] || 1,
@@ -1488,16 +2227,14 @@ return /******/ (function(modules) { // webpackBootstrap
}
partial = env.VM.resolvePartial.call(this, partial, context, options);
- var extendedOptions = Utils.extend({}, options, {
- hooks: this.hooks,
- protoAccessControl: this.protoAccessControl
- });
+ options.hooks = this.hooks;
+ options.protoAccessControl = this.protoAccessControl;
- var result = env.VM.invokePartial.call(this, partial, context,
extendedOptions);
+ var result = env.VM.invokePartial.call(this, partial, context, options);
if (result == null && env.compile) {
options.partials[options.name] = env.compile(partial,
templateSpec.compilerOptions, env);
- result = options.partials[options.name](context, extendedOptions);
+ result = options.partials[options.name](context, options);
}
if (result != null) {
if (options.indent) {
@@ -1546,7 +2283,7 @@ return /******/ (function(modules) { // webpackBootstrap
for (var i = 0; i < len; i++) {
var result = depths[i] && container.lookupProperty(depths[i], name);
if (result != null) {
- return depths[i][name];
+ return result;
}
}
},
@@ -1628,8 +2365,9 @@ return /******/ (function(modules) { // webpackBootstrap
ret._setup = function (options) {
if (!options.partial) {
- var mergedHelpers = Utils.extend({}, env.helpers, options.helpers);
- wrapHelpersToPassLookupProperty(mergedHelpers, container);
+ var mergedHelpers = {};
+ addHelpers(mergedHelpers, env.helpers, container);
+ addHelpers(mergedHelpers, options.helpers, container);
container.helpers = mergedHelpers;
if (templateSpec.usePartial) {
@@ -1695,21 +2433,21 @@ return /******/ (function(modules) { // webpackBootstrap
function resolvePartial(partial, context, options) {
if (!partial) {
if (options.name === '@partial-block') {
- partial = options.data['partial-block'];
+ partial = lookupOwnProperty(options.data, 'partial-block');
} else {
- partial = options.partials[options.name];
+ partial = lookupOwnProperty(options.partials, options.name);
}
} else if (!partial.call && !options.name) {
// This is a dynamic partial that returned a string
options.name = partial;
- partial = options.partials[partial];
+ partial = lookupOwnProperty(options.partials, partial);
}
return partial;
}
function invokePartial(partial, context, options) {
// Use the current closure context to save the partial-block if this
partial
- var currentPartialBlock = options.data && options.data['partial-block'];
+ var currentPartialBlock = lookupOwnProperty(options.data, 'partial-block');
options.partial = true;
if (options.ids) {
options.data.contextPath = options.ids[0] || options.data.contextPath;
@@ -1751,6 +2489,12 @@ return /******/ (function(modules) { // webpackBootstrap
return '';
}
+ function lookupOwnProperty(obj, name) {
+ if (obj && Object.prototype.hasOwnProperty.call(obj, name)) {
+ return obj[name];
+ }
+ }
+
function initData(context, data) {
if (!data || !('root' in data)) {
data = data ? _base.createFrame(data) : {};
@@ -1768,9 +2512,10 @@ return /******/ (function(modules) { // webpackBootstrap
return prog;
}
- function wrapHelpersToPassLookupProperty(mergedHelpers, container) {
- _Object$keys(mergedHelpers).forEach(function (helperName) {
- var helper = mergedHelpers[helperName];
+ function addHelpers(mergedHelpers, helpers, container) {
+ if (!helpers) return;
+ _Object$keys(helpers).forEach(function (helperName) {
+ var helper = helpers[helperName];
mergedHelpers[helperName] = passLookupPropertyOption(helper, container);
});
}
@@ -1778,46 +2523,39 @@ return /******/ (function(modules) { // webpackBootstrap
function passLookupPropertyOption(helper, container) {
var lookupProperty = container.lookupProperty;
return _internalWrapHelper.wrapHelper(helper, function (options) {
- return Utils.extend({ lookupProperty: lookupProperty }, options);
+ options.lookupProperty = lookupProperty;
+ return options;
});
}
/***/ }),
-/* 39 */
+/* 78 */
/***/ (function(module, exports, __webpack_require__) {
- module.exports = { "default": __webpack_require__(40), __esModule: true };
+ module.exports = { "default": __webpack_require__(79), __esModule: true };
/***/ }),
-/* 40 */
+/* 79 */
/***/ (function(module, exports, __webpack_require__) {
- __webpack_require__(41);
+ __webpack_require__(80);
module.exports = __webpack_require__(21).Object.seal;
/***/ }),
-/* 41 */
+/* 80 */
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.17 Object.seal(O)
- var isObject = __webpack_require__(42);
+ var isObject = __webpack_require__(40);
- __webpack_require__(18)('seal', function($seal){
+ __webpack_require__(64)('seal', function($seal){
return function seal(it){
return $seal && isObject(it) ? $seal(it) : it;
};
});
/***/ }),
-/* 42 */
-/***/ (function(module, exports) {
-
- module.exports = function(it){
- return typeof it === 'object' ? it !== null : typeof it === 'function';
- };
-
-/***/ }),
-/* 43 */
+/* 81 */
/***/ (function(module, exports) {
'use strict';
@@ -1840,31 +2578,41 @@ return /******/ (function(modules) { // webpackBootstrap
}
/***/ }),
-/* 44 */
+/* 82 */
/***/ (function(module, exports) {
- /* WEBPACK VAR INJECTION */(function(global) {'use strict';
+ /* global globalThis */
+ 'use strict';
exports.__esModule = true;
exports['default'] = function (Handlebars) {
/* istanbul ignore next */
- var root = typeof global !== 'undefined' ? global : window,
- $Handlebars = root.Handlebars;
+ // https://mathiasbynens.be/notes/globalthis
+ (function () {
+ if (typeof globalThis === 'object') return;
+ Object.prototype.__defineGetter__('__magic__', function () {
+ return this;
+ });
+ __magic__.globalThis = __magic__; // eslint-disable-line no-undef
+ delete Object.prototype.__magic__;
+ })();
+
+ var $Handlebars = globalThis.Handlebars;
+
/* istanbul ignore next */
Handlebars.noConflict = function () {
- if (root.Handlebars === Handlebars) {
- root.Handlebars = $Handlebars;
+ if (globalThis.Handlebars === Handlebars) {
+ globalThis.Handlebars = $Handlebars;
}
return Handlebars;
};
};
module.exports = exports['default'];
- /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
/***/ }),
-/* 45 */
+/* 83 */
/***/ (function(module, exports) {
'use strict';
@@ -1899,11 +2647,13 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports['default'];
/***/ }),
-/* 46 */
+/* 84 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
+ var _Object$keys = __webpack_require__(60)['default'];
+
var _interopRequireDefault = __webpack_require__(1)['default'];
var _interopRequireWildcard = __webpack_require__(3)['default'];
@@ -1912,18 +2662,22 @@ return /******/ (function(modules) { // webpackBootstrap
exports.parseWithoutProcessing = parseWithoutProcessing;
exports.parse = parse;
- var _parser = __webpack_require__(47);
+ var _parser = __webpack_require__(85);
var _parser2 = _interopRequireDefault(_parser);
- var _whitespaceControl = __webpack_require__(48);
+ var _whitespaceControl = __webpack_require__(86);
var _whitespaceControl2 = _interopRequireDefault(_whitespaceControl);
- var _helpers = __webpack_require__(50);
+ var _helpers = __webpack_require__(88);
var Helpers = _interopRequireWildcard(_helpers);
+ var _exception = __webpack_require__(6);
+
+ var _exception2 = _interopRequireDefault(_exception);
+
var _utils = __webpack_require__(5);
exports.parser = _parser2['default'];
@@ -1934,6 +2688,9 @@ return /******/ (function(modules) { // webpackBootstrap
function parseWithoutProcessing(input, options) {
// Just return if an already-compiled AST was passed in.
if (input.type === 'Program') {
+ // When a pre-parsed AST is passed in, validate all node values to
prevent
+ // code injection via type-confused literals.
+ validateInputAst(input);
return input;
}
@@ -1956,8 +2713,60 @@ return /******/ (function(modules) { // webpackBootstrap
return strip.accept(ast);
}
+ function validateInputAst(ast) {
+ validateAstNode(ast);
+ }
+
+ function validateAstNode(node) {
+ if (node == null) {
+ return;
+ }
+
+ if (Array.isArray(node)) {
+ node.forEach(validateAstNode);
+ return;
+ }
+
+ if (typeof node !== 'object') {
+ return;
+ }
+
+ if (node.type === 'PathExpression') {
+ if (!isValidDepth(node.depth)) {
+ throw new _exception2['default']('Invalid AST: PathExpression.depth
must be an integer');
+ }
+ if (!Array.isArray(node.parts)) {
+ throw new _exception2['default']('Invalid AST: PathExpression.parts
must be an array');
+ }
+ for (var i = 0; i < node.parts.length; i++) {
+ if (typeof node.parts[i] !== 'string') {
+ throw new _exception2['default']('Invalid AST: PathExpression.parts
must only contain strings');
+ }
+ }
+ } else if (node.type === 'NumberLiteral') {
+ if (typeof node.value !== 'number' || !isFinite(node.value)) {
+ throw new _exception2['default']('Invalid AST: NumberLiteral.value
must be a number');
+ }
+ } else if (node.type === 'BooleanLiteral') {
+ if (typeof node.value !== 'boolean') {
+ throw new _exception2['default']('Invalid AST: BooleanLiteral.value
must be a boolean');
+ }
+ }
+
+ _Object$keys(node).forEach(function (propertyName) {
+ if (propertyName === 'loc') {
+ return;
+ }
+ validateAstNode(node[propertyName]);
+ });
+ }
+
+ function isValidDepth(depth) {
+ return typeof depth === 'number' && isFinite(depth) && Math.floor(depth)
=== depth && depth >= 0;
+ }
+
/***/ }),
-/* 47 */
+/* 85 */
/***/ (function(module, exports) {
// File ignored in coverage tests via setting in .istanbul.yml
@@ -2698,7 +3507,7 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports["default"];
/***/ }),
-/* 48 */
+/* 86 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
@@ -2707,7 +3516,7 @@ return /******/ (function(modules) { // webpackBootstrap
exports.__esModule = true;
- var _visitor = __webpack_require__(49);
+ var _visitor = __webpack_require__(87);
var _visitor2 = _interopRequireDefault(_visitor);
@@ -2922,7 +3731,7 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports['default'];
/***/ }),
-/* 49 */
+/* 87 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
@@ -3065,7 +3874,7 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports['default'];
/***/ }),
-/* 50 */
+/* 88 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
@@ -3296,14 +4105,14 @@ return /******/ (function(modules) { // webpackBootstrap
}
/***/ }),
-/* 51 */
+/* 89 */
/***/ (function(module, exports, __webpack_require__) {
/* eslint-disable new-cap */
'use strict';
- var _Object$create = __webpack_require__(34)['default'];
+ var _Object$create = __webpack_require__(74)['default'];
var _interopRequireDefault = __webpack_require__(1)['default'];
@@ -3318,7 +4127,7 @@ return /******/ (function(modules) { // webpackBootstrap
var _utils = __webpack_require__(5);
- var _ast = __webpack_require__(45);
+ var _ast = __webpack_require__(83);
var _ast2 = _interopRequireDefault(_ast);
@@ -3867,12 +4676,12 @@ return /******/ (function(modules) { // webpackBootstrap
}
/***/ }),
-/* 52 */
+/* 90 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
- var _Object$keys = __webpack_require__(13)['default'];
+ var _Object$keys = __webpack_require__(60)['default'];
var _interopRequireDefault = __webpack_require__(1)['default'];
@@ -3886,7 +4695,7 @@ return /******/ (function(modules) { // webpackBootstrap
var _utils = __webpack_require__(5);
- var _codeGen = __webpack_require__(53);
+ var _codeGen = __webpack_require__(91);
var _codeGen2 = _interopRequireDefault(_codeGen);
@@ -4031,12 +4840,10 @@ return /******/ (function(modules) { // webpackBootstrap
var decorators = _context.decorators;
for (i = 0, l = programs.length; i < l; i++) {
- if (programs[i]) {
- ret[i] = programs[i];
- if (decorators[i]) {
- ret[i + '_d'] = decorators[i];
- ret.useDecorators = true;
- }
+ ret[i] = programs[i];
+ if (decorators[i]) {
+ ret[i + '_d'] = decorators[i];
+ ret.useDecorators = true;
}
}
@@ -4362,20 +5169,21 @@ return /******/ (function(modules) { // webpackBootstrap
this.resolvePath('data', parts, 0, true, strict);
},
- resolvePath: function resolvePath(type, parts, i, falsy, strict) {
+ resolvePath: function resolvePath(type, parts, startPartIndex, falsy,
strict) {
// istanbul ignore next
var _this2 = this;
if (this.options.strict || this.options.assumeObjects) {
- this.push(strictLookup(this.options.strict && strict, this, parts,
type));
+ this.push(strictLookup(this.options.strict && strict, this, parts,
startPartIndex, type));
return;
}
var len = parts.length;
- for (; i < len; i++) {
+
+ var _loop = function (i) {
/* eslint-disable no-loop-func */
- this.replaceStack(function (current) {
+ _this2.replaceStack(function (current) {
var lookup = _this2.nameLookup(current, parts[i], type);
// We want to ensure that zero and false are handled properly if the
context (falsy flag)
// needs to have the special handling for these values.
@@ -4387,6 +5195,10 @@ return /******/ (function(modules) { // webpackBootstrap
}
});
/* eslint-enable no-loop-func */
+ };
+
+ for (var i = startPartIndex; i < len; i++) {
+ _loop(i);
}
},
@@ -4504,7 +5316,12 @@ return /******/ (function(modules) { // webpackBootstrap
var foundDecorator = this.nameLookup('decorators', name, 'decorator'),
options = this.setupHelperArgs(name, paramSize);
- this.decorators.push(['fn = ',
this.decorators.functionCall(foundDecorator, '', ['fn', 'props', 'container',
options]), ' || fn;']);
+ // Store the resolved decorator in a variable and verify it is a
function before
+ // calling it. Without this, unregistered decorators can cause an
unhandled TypeError
+ // (calling undefined), which crashes the process — enabling Denial of
Service.
+ this.decorators.push(['var decorator = ', foundDecorator, ';']);
+ this.decorators.push(['if (typeof decorator !== "function") { throw new
Error(', this.quotedString('Missing decorator: "' + name + '"'), '); }']);
+ this.decorators.push(['fn = ', this.decorators.functionCall('decorator',
'', ['fn', 'props', 'container', options]), ' || fn;']);
},
// [invokeHelper]
@@ -4687,8 +5504,8 @@ return /******/ (function(modules) { // webpackBootstrap
var existing = this.matchExistingProgram(child);
if (existing == null) {
- this.context.programs.push(''); // Placeholder to prevent name
conflicts for nested children
- var index = this.context.programs.length;
+ // Placeholder to prevent name conflicts for nested children
+ var index = this.context.programs.push('') - 1;
child.index = index;
child.name = 'program' + index;
this.context.programs[index] = compiler.compile(child, options,
this.context, !this.precompile);
@@ -5008,20 +5825,19 @@ return /******/ (function(modules) { // webpackBootstrap
return !JavaScriptCompiler.RESERVED_WORDS[name] &&
/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(name);
};
- function strictLookup(requireTerminal, compiler, parts, type) {
+ function strictLookup(requireTerminal, compiler, parts, startPartIndex,
type) {
var stack = compiler.popStack(),
- i = 0,
len = parts.length;
if (requireTerminal) {
len--;
}
- for (; i < len; i++) {
+ for (var i = startPartIndex; i < len; i++) {
stack = compiler.nameLookup(stack, parts[i], type);
}
if (requireTerminal) {
- return [compiler.aliasable('container.strict'), '(', stack, ', ',
compiler.quotedString(parts[i]), ', ',
JSON.stringify(compiler.source.currentLocation), ' )'];
+ return [compiler.aliasable('container.strict'), '(', stack, ', ',
compiler.quotedString(parts[len]), ', ',
JSON.stringify(compiler.source.currentLocation), ' )'];
} else {
return stack;
}
@@ -5031,13 +5847,13 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports['default'];
/***/ }),
-/* 53 */
+/* 91 */
/***/ (function(module, exports, __webpack_require__) {
- /* global define */
+ /* global define, require */
'use strict';
- var _Object$keys = __webpack_require__(13)['default'];
+ var _Object$keys = __webpack_require__(60)['default'];
exports.__esModule = true;
@@ -5048,7 +5864,7 @@ return /******/ (function(modules) { // webpackBootstrap
try {
/* istanbul ignore next */
if (false) {
- // We don't support this in AMD environments. For these environments, we
asusme that
+ // We don't support this in AMD environments. For these environments, we
assume that
// they are running on the browser and thus have no need for the
source-map library.
var SourceMap = require('source-map');
SourceNode = SourceMap.SourceNode;