Upgrade handlebars (#8675)

* Upgrade Handlebars to 4.3.0

* Upgrade Handlebars to the latest version
This commit is contained in:
Robin Ward 2020-01-07 15:37:37 -05:00 committed by GitHub
parent b51b2ccf61
commit abff3716ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 815 additions and 512 deletions

View File

@ -1,5 +1,6 @@
import { get } from "@ember/object";
import Helper from "@ember/component/helper";
import RawHandlebars from "discourse-common/lib/raw-handlebars";
export function makeArray(obj) {
if (obj === null || obj === undefined) {
@ -88,5 +89,5 @@ export function registerUnbound(name, fn) {
_helpers[name] = Helper.extend({
compute: (params, args) => fn(...params, args)
});
Handlebars.registerHelper(name, func);
RawHandlebars.registerHelper(name, func);
}

View File

@ -1,14 +1,23 @@
import { get } from "@ember/object";
export function registerRawHelpers(hbs, handlebarsClass) {
hbs.helper = function() {};
hbs.helpers = Object.create(handlebarsClass.helpers);
if (!hbs.helpers) {
hbs.helpers = Object.create(handlebarsClass.helpers);
}
hbs.helpers["get"] = function(context, options) {
var firstContext = options.contexts[0];
var val = firstContext[context];
if (!context || !options.contexts) {
return;
}
if (context.indexOf("controller.") === 0) {
if (typeof context !== "string") {
return context;
}
let firstContext = options.contexts[0];
let val = firstContext[context];
if (context.toString().indexOf("controller.") === 0) {
context = context.slice(context.indexOf(".") + 1);
}

View File

@ -1,6 +1,7 @@
import { rawConnectorsFor } from "discourse/lib/plugin-connectors";
import RawHandlebars from "discourse-common/lib/raw-handlebars";
Handlebars.registerHelper("raw-plugin-outlet", function(args) {
RawHandlebars.registerHelper("raw-plugin-outlet", function(args) {
const connectors = rawConnectorsFor(args.hash.name);
if (connectors.length) {
const output = connectors.map(c => c.template({ context: this }));

View File

@ -6,6 +6,7 @@ pre-commit:
run: bundle exec rubocop {staged_files}
eslint:
glob: "*.{js,es6}"
exclude: 'vendor/*'
run: yarn eslint --ext .es6 -f compact {staged_files}
yaml-syntax:
glob: "*.{yaml,yml}"

View File

@ -11,8 +11,9 @@
"bootbox": "3.2.0",
"bootstrap": "v3.4.1",
"chart.js": "2.9.3",
"eslint-plugin-lodash": "^6.0.0",
"favcount": "https://github.com/chrishunt/favcount",
"handlebars": "^4.1.2",
"handlebars": "^4.3.0",
"highlight.js": "https://github.com/highlightjs/highlight.js",
"htmlparser": "https://github.com/tautologistics/node-htmlparser",
"intersection-observer": "^0.5.1",

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,7 @@
/**!
@license
handlebars v4.1.2
handlebars v4.5.3
Copyright (C) 2011-2017 by Yehuda Katz
@ -95,7 +95,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__(20);
var _handlebarsSafeString = __webpack_require__(32);
var _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);
@ -107,11 +107,11 @@ return /******/ (function(modules) { // webpackBootstrap
var Utils = _interopRequireWildcard(_handlebarsUtils);
var _handlebarsRuntime = __webpack_require__(21);
var _handlebarsRuntime = __webpack_require__(33);
var runtime = _interopRequireWildcard(_handlebarsRuntime);
var _handlebarsNoConflict = __webpack_require__(33);
var _handlebarsNoConflict = __webpack_require__(38);
var _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);
@ -201,17 +201,19 @@ return /******/ (function(modules) { // webpackBootstrap
var _helpers = __webpack_require__(9);
var _decorators = __webpack_require__(17);
var _decorators = __webpack_require__(29);
var _logger = __webpack_require__(19);
var _logger = __webpack_require__(31);
var _logger2 = _interopRequireDefault(_logger);
var VERSION = '4.1.2';
var VERSION = '4.5.3';
exports.VERSION = VERSION;
var COMPILER_REVISION = 7;
var COMPILER_REVISION = 8;
exports.COMPILER_REVISION = COMPILER_REVISION;
var LAST_COMPATIBLE_COMPILER_REVISION = 7;
exports.LAST_COMPATIBLE_COMPILER_REVISION = LAST_COMPATIBLE_COMPILER_REVISION;
var REVISION_CHANGES = {
1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it
2: '== 1.0.0-rc.3',
@ -219,7 +221,8 @@ return /******/ (function(modules) { // webpackBootstrap
4: '== 1.x.x',
5: '== 2.0.0-alpha.x',
6: '>= 2.0.0-beta.1',
7: '>= 4.0.0'
7: '>= 4.0.0 <4.3.0',
8: '>= 4.3.0'
};
exports.REVISION_CHANGES = REVISION_CHANGES;
@ -303,6 +306,7 @@ return /******/ (function(modules) { // webpackBootstrap
exports.createFrame = createFrame;
exports.blockParams = blockParams;
exports.appendContextPath = appendContextPath;
var escape = {
'&': '&amp;',
'<': '&lt;',
@ -427,15 +431,20 @@ return /******/ (function(modules) { // webpackBootstrap
exports.__esModule = true;
var errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];
var errorProps = ['description', 'fileName', 'lineNumber', 'endLineNumber', 'message', 'name', 'number', 'stack'];
function Exception(message, node) {
var loc = node && node.loc,
line = undefined,
column = undefined;
endLineNumber = undefined,
column = undefined,
endColumn = undefined;
if (loc) {
line = loc.start.line;
endLineNumber = loc.end.line;
column = loc.start.column;
endColumn = loc.end.column;
message += ' - ' + line + ':' + column;
}
@ -455,6 +464,7 @@ return /******/ (function(modules) { // webpackBootstrap
try {
if (loc) {
this.lineNumber = line;
this.endLineNumber = endLineNumber;
// Work around issue under safari where we can't directly set the column value
/* istanbul ignore next */
@ -463,8 +473,13 @@ return /******/ (function(modules) { // webpackBootstrap
value: column,
enumerable: true
});
Object.defineProperty(this, 'endColumn', {
value: endColumn,
enumerable: true
});
} else {
this.column = column;
this.endColumn = endColumn;
}
}
} catch (nop) {
@ -520,6 +535,7 @@ return /******/ (function(modules) { // webpackBootstrap
exports.__esModule = true;
exports.registerDefaultHelpers = registerDefaultHelpers;
exports.moveHelperToHooks = moveHelperToHooks;
var _helpersBlockHelperMissing = __webpack_require__(10);
@ -529,23 +545,23 @@ return /******/ (function(modules) { // webpackBootstrap
var _helpersEach2 = _interopRequireDefault(_helpersEach);
var _helpersHelperMissing = __webpack_require__(12);
var _helpersHelperMissing = __webpack_require__(24);
var _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);
var _helpersIf = __webpack_require__(13);
var _helpersIf = __webpack_require__(25);
var _helpersIf2 = _interopRequireDefault(_helpersIf);
var _helpersLog = __webpack_require__(14);
var _helpersLog = __webpack_require__(26);
var _helpersLog2 = _interopRequireDefault(_helpersLog);
var _helpersLookup = __webpack_require__(15);
var _helpersLookup = __webpack_require__(27);
var _helpersLookup2 = _interopRequireDefault(_helpersLookup);
var _helpersWith = __webpack_require__(16);
var _helpersWith = __webpack_require__(28);
var _helpersWith2 = _interopRequireDefault(_helpersWith);
@ -559,6 +575,15 @@ return /******/ (function(modules) { // webpackBootstrap
_helpersWith2['default'](instance);
}
function moveHelperToHooks(instance, helperName, keepHelper) {
if (instance.helpers[helperName]) {
instance.hooks[helperName] = instance.helpers[helperName];
if (!keepHelper) {
delete instance.helpers[helperName];
}
}
}
/***/ }),
/* 10 */
/***/ (function(module, exports, __webpack_require__) {
@ -606,7 +631,9 @@ return /******/ (function(modules) { // webpackBootstrap
/* 11 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
/* WEBPACK VAR INJECTION */(function(global) {'use strict';
var _Object$keys = __webpack_require__(12)['default'];
var _interopRequireDefault = __webpack_require__(2)['default'];
@ -668,11 +695,21 @@ return /******/ (function(modules) { // webpackBootstrap
execIteration(i, i, i === context.length - 1);
}
}
} else if (global.Symbol && context[global.Symbol.iterator]) {
var newContext = [];
var iterator = context[global.Symbol.iterator]();
for (var it = iterator.next(); !it.done; it = iterator.next()) {
newContext.push(it.value);
}
context = newContext;
for (var j = context.length; i < j; i++) {
execIteration(i, i, i === context.length - 1);
}
} else {
var priorKey = undefined;
(function () {
var priorKey = undefined;
for (var key in context) {
if (context.hasOwnProperty(key)) {
_Object$keys(context).forEach(function (key) {
// We're running the iterations one step out of sync so we can detect
// the last iteration without have to scan the object twice and create
// an itermediate keys array.
@ -681,11 +718,11 @@ return /******/ (function(modules) { // webpackBootstrap
}
priorKey = key;
i++;
});
if (priorKey !== undefined) {
execIteration(priorKey, i - 1, true);
}
}
if (priorKey !== undefined) {
execIteration(priorKey, i - 1, true);
}
})();
}
}
@ -698,9 +735,184 @@ return /******/ (function(modules) { // webpackBootstrap
};
module.exports = exports['default'];
/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
/***/ }),
/* 12 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(13), __esModule: true };
/***/ }),
/* 13 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(14);
module.exports = __webpack_require__(20).Object.keys;
/***/ }),
/* 14 */
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.14 Object.keys(O)
var toObject = __webpack_require__(15);
__webpack_require__(17)('keys', function($keys){
return function keys(it){
return $keys(toObject(it));
};
});
/***/ }),
/* 15 */
/***/ (function(module, exports, __webpack_require__) {
// 7.1.13 ToObject(argument)
var defined = __webpack_require__(16);
module.exports = function(it){
return Object(defined(it));
};
/***/ }),
/* 16 */
/***/ (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;
};
/***/ }),
/* 17 */
/***/ (function(module, exports, __webpack_require__) {
// most Object methods by ES6 should accept primitives
var $export = __webpack_require__(18)
, core = __webpack_require__(20)
, fails = __webpack_require__(23);
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);
};
/***/ }),
/* 18 */
/***/ (function(module, exports, __webpack_require__) {
var global = __webpack_require__(19)
, core = __webpack_require__(20)
, ctx = __webpack_require__(21)
, PROTOTYPE = 'prototype';
var $export = function(type, name, source){
var IS_FORCED = type & $export.F
, IS_GLOBAL = type & $export.G
, IS_STATIC = type & $export.S
, IS_PROTO = type & $export.P
, IS_BIND = type & $export.B
, IS_WRAP = type & $export.W
, exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
, target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
, key, own, out;
if(IS_GLOBAL)source = name;
for(key in source){
// contains in native
own = !IS_FORCED && target && key in target;
if(own && key in exports)continue;
// export native or passed
out = own ? target[key] : source[key];
// prevent global pollution for namespaces
exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
// bind timers to global for call from export context
: IS_BIND && own ? ctx(out, global)
// wrap global constructors for prevent change them in library
: IS_WRAP && target[key] == out ? (function(C){
var F = function(param){
return this instanceof C ? new C(param) : C(param);
};
F[PROTOTYPE] = C[PROTOTYPE];
return F;
// make static versions for prototype methods
})(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;
}
};
// type bitmap
$export.F = 1; // forced
$export.G = 2; // global
$export.S = 4; // static
$export.P = 8; // proto
$export.B = 16; // bind
$export.W = 32; // wrap
module.exports = $export;
/***/ }),
/* 19 */
/***/ (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
/***/ }),
/* 20 */
/***/ (function(module, exports) {
var core = module.exports = {version: '1.2.6'};
if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
/***/ }),
/* 21 */
/***/ (function(module, exports, __webpack_require__) {
// optional / simple context binding
var aFunction = __webpack_require__(22);
module.exports = function(fn, that, length){
aFunction(fn);
if(that === undefined)return fn;
switch(length){
case 1: return function(a){
return fn.call(that, a);
};
case 2: return function(a, b){
return fn.call(that, a, b);
};
case 3: return function(a, b, c){
return fn.call(that, a, b, c);
};
}
return function(/* ...args */){
return fn.apply(that, arguments);
};
};
/***/ }),
/* 22 */
/***/ (function(module, exports) {
module.exports = function(it){
if(typeof it != 'function')throw TypeError(it + ' is not a function!');
return it;
};
/***/ }),
/* 23 */
/***/ (function(module, exports) {
module.exports = function(exec){
try {
return !!exec();
} catch(e){
return true;
}
};
/***/ }),
/* 24 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
@ -728,17 +940,26 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports['default'];
/***/ }),
/* 13 */
/* 25 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
var _interopRequireDefault = __webpack_require__(2)['default'];
exports.__esModule = true;
var _utils = __webpack_require__(4);
var _exception = __webpack_require__(5);
var _exception2 = _interopRequireDefault(_exception);
exports['default'] = function (instance) {
instance.registerHelper('if', function (conditional, options) {
if (arguments.length != 2) {
throw new _exception2['default']('#if requires exactly one argument');
}
if (_utils.isFunction(conditional)) {
conditional = conditional.call(this);
}
@ -754,6 +975,9 @@ return /******/ (function(modules) { // webpackBootstrap
});
instance.registerHelper('unless', function (conditional, options) {
if (arguments.length != 2) {
throw new _exception2['default']('#unless requires exactly one argument');
}
return instance.helpers['if'].call(this, conditional, { fn: options.inverse, inverse: options.fn, hash: options.hash });
});
};
@ -761,7 +985,7 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports['default'];
/***/ }),
/* 14 */
/* 26 */
/***/ (function(module, exports) {
'use strict';
@ -791,39 +1015,49 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports['default'];
/***/ }),
/* 15 */
/* 27 */
/***/ (function(module, exports) {
'use strict';
exports.__esModule = true;
var dangerousPropertyRegex = /^(constructor|__defineGetter__|__defineSetter__|__lookupGetter__|__proto__)$/;
exports.dangerousPropertyRegex = dangerousPropertyRegex;
exports['default'] = function (instance) {
instance.registerHelper('lookup', function (obj, field) {
if (!obj) {
return obj;
}
if (field === 'constructor' && !obj.propertyIsEnumerable(field)) {
if (dangerousPropertyRegex.test(String(field)) && !Object.prototype.propertyIsEnumerable.call(obj, field)) {
return undefined;
}
return obj[field];
});
};
module.exports = exports['default'];
/***/ }),
/* 16 */
/* 28 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
var _interopRequireDefault = __webpack_require__(2)['default'];
exports.__esModule = true;
var _utils = __webpack_require__(4);
var _exception = __webpack_require__(5);
var _exception2 = _interopRequireDefault(_exception);
exports['default'] = function (instance) {
instance.registerHelper('with', function (context, options) {
if (arguments.length != 2) {
throw new _exception2['default']('#with requires exactly one argument');
}
if (_utils.isFunction(context)) {
context = context.call(this);
}
@ -850,7 +1084,7 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports['default'];
/***/ }),
/* 17 */
/* 29 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
@ -860,7 +1094,7 @@ return /******/ (function(modules) { // webpackBootstrap
exports.__esModule = true;
exports.registerDefaultDecorators = registerDefaultDecorators;
var _decoratorsInline = __webpack_require__(18);
var _decoratorsInline = __webpack_require__(30);
var _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);
@ -869,7 +1103,7 @@ return /******/ (function(modules) { // webpackBootstrap
}
/***/ }),
/* 18 */
/* 30 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
@ -902,7 +1136,7 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports['default'];
/***/ }),
/* 19 */
/* 31 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
@ -953,7 +1187,7 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports['default'];
/***/ }),
/* 20 */
/* 32 */
/***/ (function(module, exports) {
// Build out our basic SafeString type
@ -972,12 +1206,12 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = exports['default'];
/***/ }),
/* 21 */
/* 33 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
var _Object$seal = __webpack_require__(22)['default'];
var _Object$seal = __webpack_require__(34)['default'];
var _interopRequireWildcard = __webpack_require__(1)['default'];
@ -1001,23 +1235,28 @@ return /******/ (function(modules) { // webpackBootstrap
var _base = __webpack_require__(3);
var _helpers = __webpack_require__(9);
function checkRevision(compilerInfo) {
var compilerRevision = compilerInfo && compilerInfo[0] || 1,
currentRevision = _base.COMPILER_REVISION;
if (compilerRevision !== currentRevision) {
if (compilerRevision < currentRevision) {
var runtimeVersions = _base.REVISION_CHANGES[currentRevision],
compilerVersions = _base.REVISION_CHANGES[compilerRevision];
throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');
} else {
// Use the embedded version info since the runtime doesn't know about this revision yet
throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');
}
if (compilerRevision >= _base.LAST_COMPATIBLE_COMPILER_REVISION && compilerRevision <= _base.COMPILER_REVISION) {
return;
}
if (compilerRevision < _base.LAST_COMPATIBLE_COMPILER_REVISION) {
var runtimeVersions = _base.REVISION_CHANGES[currentRevision],
compilerVersions = _base.REVISION_CHANGES[compilerRevision];
throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');
} else {
// Use the embedded version info since the runtime doesn't know about this revision yet
throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');
}
}
function template(templateSpec, env) {
/* istanbul ignore next */
if (!env) {
throw new _exception2['default']('No environment passed to template');
@ -1029,9 +1268,12 @@ return /******/ (function(modules) { // webpackBootstrap
templateSpec.main.decorator = templateSpec.main_d;
// Note: Using env.VM references rather than local var references throughout this section to allow
// for external users to override these as psuedo-supported APIs.
// for external users to override these as pseudo-supported APIs.
env.VM.checkRevision(templateSpec.compiler);
// backwards compatibility for precompiled templates with compiler-version 7 (<4.3.0)
var templateWasPrecompiledWithCompilerV7 = templateSpec.compiler && templateSpec.compiler[0] === 7;
function invokePartialWrapper(partial, context, options) {
if (options.hash) {
context = Utils.extend({}, context, options.hash);
@ -1039,13 +1281,15 @@ return /******/ (function(modules) { // webpackBootstrap
options.ids[0] = true;
}
}
partial = env.VM.resolvePartial.call(this, partial, context, options);
var result = env.VM.invokePartial.call(this, partial, context, options);
var optionsWithHooks = Utils.extend({}, options, { hooks: this.hooks });
var result = env.VM.invokePartial.call(this, partial, context, optionsWithHooks);
if (result == null && env.compile) {
options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);
result = options.partials[options.name](context, options);
result = options.partials[options.name](context, optionsWithHooks);
}
if (result != null) {
if (options.indent) {
@ -1067,9 +1311,9 @@ return /******/ (function(modules) { // webpackBootstrap
// Just add water
var container = {
strict: function strict(obj, name) {
if (!(name in obj)) {
throw new _exception2['default']('"' + name + '" not defined in ' + obj);
strict: function strict(obj, name, loc) {
if (!obj || !(name in obj)) {
throw new _exception2['default']('"' + name + '" not defined in ' + obj, { loc: loc });
}
return obj[name];
},
@ -1112,15 +1356,6 @@ return /******/ (function(modules) { // webpackBootstrap
}
return value;
},
merge: function merge(param, common) {
var obj = param || common;
if (param && common && param !== common) {
obj = Utils.extend({}, common, param);
}
return obj;
},
// An empty object to use as replacement for null-contexts
nullContext: _Object$seal({}),
@ -1157,18 +1392,25 @@ return /******/ (function(modules) { // webpackBootstrap
ret._setup = function (options) {
if (!options.partial) {
container.helpers = container.merge(options.helpers, env.helpers);
container.helpers = Utils.extend({}, env.helpers, options.helpers);
if (templateSpec.usePartial) {
container.partials = container.merge(options.partials, env.partials);
container.partials = Utils.extend({}, env.partials, options.partials);
}
if (templateSpec.usePartial || templateSpec.useDecorators) {
container.decorators = container.merge(options.decorators, env.decorators);
container.decorators = Utils.extend({}, env.decorators, options.decorators);
}
container.hooks = {};
var keepHelperInHelpers = options.allowCallsToHelperMissing || templateWasPrecompiledWithCompilerV7;
_helpers.moveHelperToHooks(container, 'helperMissing', keepHelperInHelpers);
_helpers.moveHelperToHooks(container, 'blockHelperMissing', keepHelperInHelpers);
} else {
container.helpers = options.helpers;
container.partials = options.partials;
container.decorators = options.decorators;
container.hooks = options.hooks;
}
};
@ -1205,6 +1447,10 @@ return /******/ (function(modules) { // webpackBootstrap
return prog;
}
/**
* This is currently part of the official API, therefore implementation details should not be changed.
*/
function resolvePartial(partial, context, options) {
if (!partial) {
if (options.name === '@partial-block') {
@ -1282,33 +1528,33 @@ return /******/ (function(modules) { // webpackBootstrap
}
/***/ }),
/* 22 */
/* 34 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(23), __esModule: true };
module.exports = { "default": __webpack_require__(35), __esModule: true };
/***/ }),
/* 23 */
/* 35 */
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__(24);
module.exports = __webpack_require__(29).Object.seal;
__webpack_require__(36);
module.exports = __webpack_require__(20).Object.seal;
/***/ }),
/* 24 */
/* 36 */
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.17 Object.seal(O)
var isObject = __webpack_require__(25);
var isObject = __webpack_require__(37);
__webpack_require__(26)('seal', function($seal){
__webpack_require__(17)('seal', function($seal){
return function seal(it){
return $seal && isObject(it) ? $seal(it) : it;
};
});
/***/ }),
/* 25 */
/* 37 */
/***/ (function(module, exports) {
module.exports = function(it){
@ -1316,135 +1562,7 @@ return /******/ (function(modules) { // webpackBootstrap
};
/***/ }),
/* 26 */
/***/ (function(module, exports, __webpack_require__) {
// most Object methods by ES6 should accept primitives
var $export = __webpack_require__(27)
, core = __webpack_require__(29)
, fails = __webpack_require__(32);
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);
};
/***/ }),
/* 27 */
/***/ (function(module, exports, __webpack_require__) {
var global = __webpack_require__(28)
, core = __webpack_require__(29)
, ctx = __webpack_require__(30)
, PROTOTYPE = 'prototype';
var $export = function(type, name, source){
var IS_FORCED = type & $export.F
, IS_GLOBAL = type & $export.G
, IS_STATIC = type & $export.S
, IS_PROTO = type & $export.P
, IS_BIND = type & $export.B
, IS_WRAP = type & $export.W
, exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
, target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
, key, own, out;
if(IS_GLOBAL)source = name;
for(key in source){
// contains in native
own = !IS_FORCED && target && key in target;
if(own && key in exports)continue;
// export native or passed
out = own ? target[key] : source[key];
// prevent global pollution for namespaces
exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
// bind timers to global for call from export context
: IS_BIND && own ? ctx(out, global)
// wrap global constructors for prevent change them in library
: IS_WRAP && target[key] == out ? (function(C){
var F = function(param){
return this instanceof C ? new C(param) : C(param);
};
F[PROTOTYPE] = C[PROTOTYPE];
return F;
// make static versions for prototype methods
})(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;
}
};
// type bitmap
$export.F = 1; // forced
$export.G = 2; // global
$export.S = 4; // static
$export.P = 8; // proto
$export.B = 16; // bind
$export.W = 32; // wrap
module.exports = $export;
/***/ }),
/* 28 */
/***/ (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
/***/ }),
/* 29 */
/***/ (function(module, exports) {
var core = module.exports = {version: '1.2.6'};
if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
/***/ }),
/* 30 */
/***/ (function(module, exports, __webpack_require__) {
// optional / simple context binding
var aFunction = __webpack_require__(31);
module.exports = function(fn, that, length){
aFunction(fn);
if(that === undefined)return fn;
switch(length){
case 1: return function(a){
return fn.call(that, a);
};
case 2: return function(a, b){
return fn.call(that, a, b);
};
case 3: return function(a, b, c){
return fn.call(that, a, b, c);
};
}
return function(/* ...args */){
return fn.apply(that, arguments);
};
};
/***/ }),
/* 31 */
/***/ (function(module, exports) {
module.exports = function(it){
if(typeof it != 'function')throw TypeError(it + ' is not a function!');
return it;
};
/***/ }),
/* 32 */
/***/ (function(module, exports) {
module.exports = function(exec){
try {
return !!exec();
} catch(e){
return true;
}
};
/***/ }),
/* 33 */
/* 38 */
/***/ (function(module, exports) {
/* WEBPACK VAR INJECTION */(function(global) {/* global window */

View File

@ -563,10 +563,10 @@ commander@2.12.2:
resolved "https://registry.yarnpkg.com/commander/-/commander-2.12.2.tgz#0f5946c427ed9ec0d91a46bb9def53e54650e555"
integrity sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==
commander@~2.17.1:
version "2.17.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==
commander@~2.20.3:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
component-emitter@^1.2.1:
version "1.2.1"
@ -736,6 +736,13 @@ eslint-config-discourse@1.1.0:
eslint "^4.19"
prettier "^1.19.1"
eslint-plugin-lodash@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-lodash/-/eslint-plugin-lodash-6.0.0.tgz#70fa487ab632e62627ecf01ad3e85c228e3ab9d3"
integrity sha512-iuxToisjIYAJdxWtW8OamFyc3yAsGCjU5WokvuBfTc/k5XdWOp9fAmzw+aFjj520/QXspCc8//xJpqkhYUj4qw==
dependencies:
lodash "^4.17.15"
eslint-scope@3.7.1:
version "3.7.1"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
@ -1124,10 +1131,10 @@ graceful-fs@^4.1.2:
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02"
integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==
handlebars@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67"
integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==
handlebars@^4.3.0:
version "4.5.3"
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482"
integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==
dependencies:
neo-async "^2.6.0"
optimist "^0.6.1"
@ -1547,7 +1554,7 @@ linkify-it@^2.0.0:
semver "5.3.0"
uglify-js "2.7.5"
lodash@4.17.15, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0:
lodash@4.17.15, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0:
version "4.17.15"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
@ -1773,9 +1780,9 @@ natural-compare@^1.4.0:
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
neo-async@^2.6.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835"
integrity sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==
version "2.6.1"
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
nice-try@^1.0.4:
version "1.0.5"
@ -2494,11 +2501,11 @@ uglify-js@2.7.5:
yargs "~3.10.0"
uglify-js@^3.1.4:
version "3.4.9"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3"
integrity sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==
version "3.7.4"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.4.tgz#e6d83a1aa32ff448bd1679359ab13d8db0fe0743"
integrity sha512-tinYWE8X1QfCHxS1lBS8yiDekyhSXOO6R66yNOCdUJeojxxw+PX2BHAz/BWyW7PQ7pkiWVxJfIEbiDxyLWvUGg==
dependencies:
commander "~2.17.1"
commander "~2.20.3"
source-map "~0.6.1"
uglify-to-browserify@~1.0.0: