New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

ngx-translate-messageformat-compiler

Package Overview
Dependencies
Maintainers
1
Versions
36
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ngx-translate-messageformat-compiler - npm Package Compare versions

Comparing version 4.3.0 to 4.4.0

dist/esm2015/index.js

376

dist/bundles/ngx-translate-messageformat-compiler.umd.js
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@ngx-translate/core'), require('messageformat')) :
typeof define === 'function' && define.amd ? define('ngx-translate-messageformat-compiler', ['exports', '@angular/core', '@ngx-translate/core', 'messageformat'], factory) :
(factory((global['ngx-translate-messageformat-compiler'] = {}),global.ng.core,global.core$1,global.messageformat));
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@ngx-translate/core'), require('messageformat')) :
typeof define === 'function' && define.amd ? define('ngx-translate-messageformat-compiler', ['exports', '@angular/core', '@ngx-translate/core', 'messageformat'], factory) :
(factory((global['ngx-translate-messageformat-compiler'] = {}),global.ng.core,global.core$1,global.messageformat));
}(this, (function (exports,core,core$1,MessageFormat) { 'use strict';
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
/* global Reflect, Promise */
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
function __extends(d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0
function __rest(s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)
t[p[i]] = s[p[i]];
return t;
}
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.
function __read(o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
/* global Reflect, Promise */
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b)
if (b.hasOwnProperty(p))
d[p] = b[p]; };
return extendStatics(d, b);
};
function __extends(d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}
catch (error) { e = { error: error }; }
finally {
var __assign = function () {
__assign = Object.assign || function __assign(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s)
if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
function __rest(s, e) {
var t = {};
for (var p in s)
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++)
if (e.indexOf(p[i]) < 0)
t[p[i]] = s[p[i]];
return t;
}
function __read(o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m)
return o;
var i = m.call(o), r, ar = [], e;
try {
if (r && !r.done && (m = i["return"])) m.call(i);
while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
ar.push(r.value);
}
finally { if (e) throw e.error; }
catch (error) {
e = { error: error };
}
finally {
try {
if (r && !r.done && (m = i["return"]))
m.call(i);
}
finally {
if (e)
throw e.error;
}
}
return ar;
}
return ar;
}
function __spread() {
for (var ar = [], i = 0; i < arguments.length; i++)
ar = ar.concat(__read(arguments[i]));
return ar;
}
function __spread() {
for (var ar = [], i = 0; i < arguments.length; i++)
ar = ar.concat(__read(arguments[i]));
return ar;
}
var MESSAGE_FORMAT_CONFIG = new core.InjectionToken("MESSAGE_FORMAT_CONFIG");
var defaultConfig = {
biDiSupport: false,
formatters: undefined,
locales: undefined,
strictNumberSign: false
};
var TranslateMessageFormatCompiler = /** @class */ (function (_super) {
__extends(TranslateMessageFormatCompiler, _super);
function TranslateMessageFormatCompiler(config) {
var _this = _super.call(this) || this;
config = Object.assign({}, defaultConfig, config);
_this.messageFormat = new MessageFormat(config.locales)
.addFormatters(config.formatters)
.setBiDiSupport(config.biDiSupport)
.setStrictNumberSign(config.strictNumberSign);
return _this;
}
TranslateMessageFormatCompiler.prototype.compile = function (value, lang) {
return this.messageFormat.compile(value, lang);
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
/** @type {?} */
var MESSAGE_FORMAT_CONFIG = new core.InjectionToken("MESSAGE_FORMAT_CONFIG");
/** @type {?} */
var defaultConfig = {
biDiSupport: false,
formatters: undefined,
locales: undefined,
strictNumberSign: false
};
TranslateMessageFormatCompiler.prototype.compileTranslations = function (translations, lang) {
return this.messageFormat.compile(translations, lang);
};
return TranslateMessageFormatCompiler;
}(core$1.TranslateCompiler));
TranslateMessageFormatCompiler.ctorParameters = function () { return [
{ type: undefined, decorators: [{ type: core.Optional }, { type: core.Inject, args: [MESSAGE_FORMAT_CONFIG,] },] },
]; };
var log = function () {
var message = [];
for (var _i = 0; _i < arguments.length; _i++) {
message[_i] = arguments[_i];
}
return console.log.apply(console, __spread([tag], message));
};
var tag = "[TranslateMessageFormatCompiler]";
var TranslateMessageFormatDebugCompiler = /** @class */ (function (_super) {
__extends(TranslateMessageFormatDebugCompiler, _super);
function TranslateMessageFormatDebugCompiler() {
return _super !== null && _super.apply(this, arguments) || this;
}
TranslateMessageFormatDebugCompiler.prototype.compile = function (value, lang) {
log("COMPILE (" + lang + ")", value);
var interpolationFn = _super.prototype.compile.call(this, value, lang);
return this.wrap(interpolationFn, value);
};
TranslateMessageFormatDebugCompiler.prototype.compileTranslations = function (value, lang) {
log("COMPILE (" + lang + ")", value);
var _a = _super.prototype.compileTranslations.call(this, value, lang), toString = _a.toString, interpolationFns = __rest(_a, ["toString"]);
return Object.assign({ toString: toString }, this.wrapRecursively(interpolationFns, value));
};
TranslateMessageFormatDebugCompiler.prototype.wrap = function (fn, reference) {
return function (params) {
log("INTERPOLATE", reference, params);
return fn(params);
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
/**
* This compiler expects ICU syntax and compiles the expressions with messageformat.js
*/
var TranslateMessageFormatCompiler = /** @class */ (function (_super) {
__extends(TranslateMessageFormatCompiler, _super);
function TranslateMessageFormatCompiler(config) {
var _this = _super.call(this) || this;
config = __assign({}, defaultConfig, config);
_this.messageFormat = new MessageFormat(config.locales)
.addFormatters(config.formatters)
.setBiDiSupport(config.biDiSupport)
.setStrictNumberSign(config.strictNumberSign);
return _this;
}
/**
* @param {?} value
* @param {?} lang
* @return {?}
*/
TranslateMessageFormatCompiler.prototype.compile = /**
* @param {?} value
* @param {?} lang
* @return {?}
*/
function (value, lang) {
return this.messageFormat.compile(value, lang);
};
/**
* @param {?} translations
* @param {?} lang
* @return {?}
*/
TranslateMessageFormatCompiler.prototype.compileTranslations = /**
* @param {?} translations
* @param {?} lang
* @return {?}
*/
function (translations, lang) {
return this.messageFormat.compile(translations, lang);
};
/** @nocollapse */
TranslateMessageFormatCompiler.ctorParameters = function () {
return [
{ type: undefined, decorators: [{ type: core.Optional }, { type: core.Inject, args: [MESSAGE_FORMAT_CONFIG,] }] }
];
};
return TranslateMessageFormatCompiler;
}(core$1.TranslateCompiler));
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
/* tslint:disable-next-line no-console */
/** @type {?} */
var log = function () {
var message = [];
for (var _i = 0; _i < arguments.length; _i++) {
message[_i] = arguments[_i];
}
return console.log.apply(console, __spread([tag], message));
};
TranslateMessageFormatDebugCompiler.prototype.wrapRecursively = function (obj, referenceObj) {
var _this = this;
return Object.keys(obj).reduce(function (acc, key) {
var value = obj[key];
var referenceValue = referenceObj[key];
return typeof value === "function"
? Object.assign({}, acc, (_b = {}, _b[key] = _this.wrap(value, referenceValue), _b)) : Object.assign({}, acc, (_c = {}, _c[key] = _this.wrapRecursively(value, referenceValue), _c));
var _b, _c;
}, {});
};
return TranslateMessageFormatDebugCompiler;
}(TranslateMessageFormatCompiler));
/** @type {?} */
var tag = "[TranslateMessageFormatCompiler]";
var TranslateMessageFormatDebugCompiler = /** @class */ (function (_super) {
__extends(TranslateMessageFormatDebugCompiler, _super);
function TranslateMessageFormatDebugCompiler() {
return _super !== null && _super.apply(this, arguments) || this;
}
/**
* @param {?} value
* @param {?} lang
* @return {?}
*/
TranslateMessageFormatDebugCompiler.prototype.compile = /**
* @param {?} value
* @param {?} lang
* @return {?}
*/
function (value, lang) {
log("COMPILE (" + lang + ")", value);
/** @type {?} */
var interpolationFn = _super.prototype.compile.call(this, value, lang);
return this.wrap(interpolationFn, value);
};
/**
* @param {?} value
* @param {?} lang
* @return {?}
*/
TranslateMessageFormatDebugCompiler.prototype.compileTranslations = /**
* @param {?} value
* @param {?} lang
* @return {?}
*/
function (value, lang) {
log("COMPILE (" + lang + ")", value);
var _a = _super.prototype.compileTranslations.call(this, value, lang), toString = _a.toString, interpolationFns = __rest(_a, ["toString"]);
return __assign({ toString: toString }, this.wrapRecursively(interpolationFns, value));
};
/**
* @param {?} fn
* @param {?} reference
* @return {?}
*/
TranslateMessageFormatDebugCompiler.prototype.wrap = /**
* @param {?} fn
* @param {?} reference
* @return {?}
*/
function (fn, reference) {
return function (params) {
log("INTERPOLATE", reference, params);
return fn(params);
};
};
/**
* @param {?} obj
* @param {?} referenceObj
* @return {?}
*/
TranslateMessageFormatDebugCompiler.prototype.wrapRecursively = /**
* @param {?} obj
* @param {?} referenceObj
* @return {?}
*/
function (obj, referenceObj) {
var _this = this;
return Object.keys(obj).reduce(function (acc, key) {
var _a, _b;
/** @type {?} */
var value = obj[key];
/** @type {?} */
var referenceValue = referenceObj[key];
return typeof value === "function"
? __assign({}, acc, (_a = {}, _a[key] = _this.wrap(value, referenceValue), _a)) : __assign({}, acc, (_b = {}, _b[key] = _this.wrapRecursively(value, referenceValue), _b));
}, {});
};
return TranslateMessageFormatDebugCompiler;
}(TranslateMessageFormatCompiler));
exports.TranslateMessageFormatCompiler = TranslateMessageFormatCompiler;
exports.TranslateMessageFormatDebugCompiler = TranslateMessageFormatDebugCompiler;
exports.MESSAGE_FORMAT_CONFIG = MESSAGE_FORMAT_CONFIG;
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
Object.defineProperty(exports, '__esModule', { value: true });
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
exports.TranslateMessageFormatCompiler = TranslateMessageFormatCompiler;
exports.TranslateMessageFormatDebugCompiler = TranslateMessageFormatDebugCompiler;
exports.MESSAGE_FORMAT_CONFIG = MESSAGE_FORMAT_CONFIG;
Object.defineProperty(exports, '__esModule', { value: true });
})));
//# sourceMappingURL=ngx-translate-messageformat-compiler.umd.js.map
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRyYW5zbGF0ZS1tZXNzYWdlZm9ybWF0LWNvbXBpbGVyLnVtZC5qcy5tYXAiLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy90c2xpYi90c2xpYi5lczYuanMiLCJuZzovL25neC10cmFuc2xhdGUtbWVzc2FnZWZvcm1hdC1jb21waWxlci9tZXNzYWdlLWZvcm1hdC1jb25maWcudHMiLCJuZzovL25neC10cmFuc2xhdGUtbWVzc2FnZWZvcm1hdC1jb21waWxlci90cmFuc2xhdGUtbWVzc2FnZS1mb3JtYXQtY29tcGlsZXIudHMiLCJuZzovL25neC10cmFuc2xhdGUtbWVzc2FnZWZvcm1hdC1jb21waWxlci90cmFuc2xhdGUtbWVzc2FnZS1mb3JtYXQtZGVidWctY29tcGlsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG5MaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdCB1c2VcclxudGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGVcclxuTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuXHJcblRISVMgQ09ERSBJUyBQUk9WSURFRCBPTiBBTiAqQVMgSVMqIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTllcclxuS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBBTlkgSU1QTElFRFxyXG5XQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLFxyXG5NRVJDSEFOVEFCTElUWSBPUiBOT04tSU5GUklOR0VNRU5ULlxyXG5cclxuU2VlIHRoZSBBcGFjaGUgVmVyc2lvbiAyLjAgTGljZW5zZSBmb3Igc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXHJcbmFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UgKi9cclxuXHJcbnZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikge1xyXG4gICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxyXG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcclxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcclxuICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XHJcbiAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XHJcbiAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19hc3NpZ24gPSBmdW5jdGlvbigpIHtcclxuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiBfX2Fzc2lnbih0KSB7XHJcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XHJcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSkgdFtwXSA9IHNbcF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIGlmIChlLmluZGV4T2YocFtpXSkgPCAwKVxyXG4gICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgIHJldHVybiB0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xyXG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XHJcbiAgICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xyXG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcGFyYW0ocGFyYW1JbmRleCwgZGVjb3JhdG9yKSB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwga2V5KSB7IGRlY29yYXRvcih0YXJnZXQsIGtleSwgcGFyYW1JbmRleCk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHJlc3VsdC52YWx1ZSk7IH0pLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcclxuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XHJcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xyXG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxyXG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHBvcnRTdGFyKG0sIGV4cG9ydHMpIHtcclxuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKCFleHBvcnRzLmhhc093blByb3BlcnR5KHApKSBleHBvcnRzW3BdID0gbVtwXTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fdmFsdWVzKG8pIHtcclxuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXSwgaSA9IDA7XHJcbiAgICBpZiAobSkgcmV0dXJuIG0uY2FsbChvKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbmV4dDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwO1xyXG4gICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogbyAmJiBvW2krK10sIGRvbmU6ICFvIH07XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVhZChvLCBuKSB7XHJcbiAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07XHJcbiAgICBpZiAoIW0pIHJldHVybiBvO1xyXG4gICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGVycm9yKSB7IGUgPSB7IGVycm9yOiBlcnJvciB9OyB9XHJcbiAgICBmaW5hbGx5IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVtcInJldHVyblwiXSkpIG0uY2FsbChpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmluYWxseSB7IGlmIChlKSB0aHJvdyBlLmVycm9yOyB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZCgpIHtcclxuICAgIGZvciAodmFyIGFyID0gW10sIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIGFyID0gYXIuY29uY2F0KF9fcmVhZChhcmd1bWVudHNbaV0pKTtcclxuICAgIHJldHVybiBhcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXQodikge1xyXG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBfX2F3YWl0ID8gKHRoaXMudiA9IHYsIHRoaXMpIDogbmV3IF9fYXdhaXQodik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jR2VuZXJhdG9yKHRoaXNBcmcsIF9hcmd1bWVudHMsIGdlbmVyYXRvcikge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBnID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pLCBpLCBxID0gW107XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaWYgKGdbbl0pIGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAocikgeyByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsgfVxyXG4gICAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XHJcbiAgICB2YXIgaSwgcDtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaVtuXSA9IG9bbl0gPyBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBuID09PSBcInJldHVyblwiIH0gOiBmID8gZih2KSA6IHY7IH0gOiBmOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jVmFsdWVzKG8pIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgbSA9IG9bU3ltYm9sLmFzeW5jSXRlcmF0b3JdLCBpO1xyXG4gICAgcmV0dXJuIG0gPyBtLmNhbGwobykgOiAobyA9IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKSwgaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGkpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlbbl0gPSBvW25dICYmIGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7IHYgPSBvW25dKHYpLCBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB2LmRvbmUsIHYudmFsdWUpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgZCwgdikgeyBQcm9taXNlLnJlc29sdmUodikudGhlbihmdW5jdGlvbih2KSB7IHJlc29sdmUoeyB2YWx1ZTogdiwgZG9uZTogZCB9KTsgfSwgcmVqZWN0KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3QoY29va2VkLCByYXcpIHtcclxuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XHJcbiAgICByZXR1cm4gY29va2VkO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0U3Rhcihtb2QpIHtcclxuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XHJcbiAgICB2YXIgcmVzdWx0ID0ge307XHJcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgcmVzdWx0W2tdID0gbW9kW2tdO1xyXG4gICAgcmVzdWx0LmRlZmF1bHQgPSBtb2Q7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0KG1vZCkge1xyXG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBkZWZhdWx0OiBtb2QgfTtcclxufVxyXG4iLCJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCBjb25zdCBNRVNTQUdFX0ZPUk1BVF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48TWVzc2FnZUZvcm1hdENvbmZpZz4oXG4gIFwiTUVTU0FHRV9GT1JNQVRfQ09ORklHXCJcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZUZvcm1hdENvbmZpZyB7XG4gIGJpRGlTdXBwb3J0PzogYm9vbGVhbjtcbiAgZm9ybWF0dGVycz86IHtcbiAgICBbbmFtZTogc3RyaW5nXTogKHZhbDogYW55LCBsYzogc3RyaW5nLCBhcmc/OiBzdHJpbmcpID0+IHN0cmluZztcbiAgfTtcbiAgbG9jYWxlcz86IHN0cmluZyB8IHN0cmluZ1tdO1xuICBzdHJpY3ROdW1iZXJTaWduPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRDb25maWc6IE1lc3NhZ2VGb3JtYXRDb25maWcgPSB7XG4gIGJpRGlTdXBwb3J0OiBmYWxzZSxcbiAgZm9ybWF0dGVyczogdW5kZWZpbmVkLFxuICBsb2NhbGVzOiB1bmRlZmluZWQsXG4gIHN0cmljdE51bWJlclNpZ246IGZhbHNlXG59O1xuIiwiaW1wb3J0IHsgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVDb21waWxlciB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgKiBhcyBNZXNzYWdlRm9ybWF0IGZyb20gXCJtZXNzYWdlZm9ybWF0XCI7XG5cbmltcG9ydCB7XG4gIGRlZmF1bHRDb25maWcsXG4gIE1FU1NBR0VfRk9STUFUX0NPTkZJRyxcbiAgTWVzc2FnZUZvcm1hdENvbmZpZ1xufSBmcm9tIFwiLi9tZXNzYWdlLWZvcm1hdC1jb25maWdcIjtcblxuLyoqXG4gKiBUaGlzIGNvbXBpbGVyIGV4cGVjdHMgSUNVIHN5bnRheCBhbmQgY29tcGlsZXMgdGhlIGV4cHJlc3Npb25zIHdpdGggbWVzc2FnZWZvcm1hdC5qc1xuICovXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlTWVzc2FnZUZvcm1hdENvbXBpbGVyIGV4dGVuZHMgVHJhbnNsYXRlQ29tcGlsZXIge1xuICBwcml2YXRlIG1lc3NhZ2VGb3JtYXQ6IE1lc3NhZ2VGb3JtYXQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KE1FU1NBR0VfRk9STUFUX0NPTkZJRylcbiAgICBjb25maWc/OiBNZXNzYWdlRm9ybWF0Q29uZmlnXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgICBjb25maWcgPSB7IC4uLmRlZmF1bHRDb25maWcsIC4uLmNvbmZpZyB9O1xuXG4gICAgdGhpcy5tZXNzYWdlRm9ybWF0ID0gbmV3IE1lc3NhZ2VGb3JtYXQoY29uZmlnLmxvY2FsZXMpXG4gICAgICAuYWRkRm9ybWF0dGVycyhjb25maWcuZm9ybWF0dGVycylcbiAgICAgIC5zZXRCaURpU3VwcG9ydChjb25maWcuYmlEaVN1cHBvcnQpXG4gICAgICAuc2V0U3RyaWN0TnVtYmVyU2lnbihjb25maWcuc3RyaWN0TnVtYmVyU2lnbik7XG4gIH1cblxuICBwdWJsaWMgY29tcGlsZSh2YWx1ZTogc3RyaW5nLCBsYW5nOiBzdHJpbmcpOiAocGFyYW1zOiBhbnkpID0+IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZUZvcm1hdC5jb21waWxlKHZhbHVlLCBsYW5nKTtcbiAgfVxuXG4gIHB1YmxpYyBjb21waWxlVHJhbnNsYXRpb25zKHRyYW5zbGF0aW9uczogYW55LCBsYW5nOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLm1lc3NhZ2VGb3JtYXQuY29tcGlsZSh0cmFuc2xhdGlvbnMsIGxhbmcpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBUcmFuc2xhdGVNZXNzYWdlRm9ybWF0Q29tcGlsZXIgfSBmcm9tIFwiLi90cmFuc2xhdGUtbWVzc2FnZS1mb3JtYXQtY29tcGlsZXJcIjtcblxuLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGUgKi9cbmNvbnN0IGxvZyA9ICguLi5tZXNzYWdlOiBzdHJpbmdbXSkgPT4gY29uc29sZS5sb2codGFnLCAuLi5tZXNzYWdlKTtcbmNvbnN0IHRhZyA9IFwiW1RyYW5zbGF0ZU1lc3NhZ2VGb3JtYXRDb21waWxlcl1cIjtcblxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZU1lc3NhZ2VGb3JtYXREZWJ1Z0NvbXBpbGVyIGV4dGVuZHMgVHJhbnNsYXRlTWVzc2FnZUZvcm1hdENvbXBpbGVyIHtcbiAgcHVibGljIGNvbXBpbGUodmFsdWU6IHN0cmluZywgbGFuZzogc3RyaW5nKTogKHBhcmFtczogYW55KSA9PiBzdHJpbmcge1xuICAgIGxvZyhgQ09NUElMRSAoJHtsYW5nfSlgLCB2YWx1ZSk7XG4gICAgY29uc3QgaW50ZXJwb2xhdGlvbkZuID0gc3VwZXIuY29tcGlsZSh2YWx1ZSwgbGFuZyk7XG5cbiAgICByZXR1cm4gdGhpcy53cmFwKGludGVycG9sYXRpb25GbiwgdmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGNvbXBpbGVUcmFuc2xhdGlvbnModmFsdWU6IGFueSwgbGFuZzogc3RyaW5nKTogYW55IHtcbiAgICBsb2coYENPTVBJTEUgKCR7bGFuZ30pYCwgdmFsdWUpO1xuICAgIGNvbnN0IHsgdG9TdHJpbmcsIC4uLmludGVycG9sYXRpb25GbnMgfSA9IHN1cGVyLmNvbXBpbGVUcmFuc2xhdGlvbnMoXG4gICAgICB2YWx1ZSxcbiAgICAgIGxhbmdcbiAgICApO1xuXG4gICAgcmV0dXJuIHsgdG9TdHJpbmcsIC4uLnRoaXMud3JhcFJlY3Vyc2l2ZWx5KGludGVycG9sYXRpb25GbnMsIHZhbHVlKSB9O1xuICB9XG5cbiAgcHJpdmF0ZSB3cmFwKFxuICAgIGZuOiAocGFyYW1zOiBhbnkpID0+IHN0cmluZyxcbiAgICByZWZlcmVuY2U6IHN0cmluZ1xuICApOiAocGFyYW1zOiBhbnkpID0+IHN0cmluZyB7XG4gICAgcmV0dXJuIChwYXJhbXM6IGFueSkgPT4ge1xuICAgICAgbG9nKFwiSU5URVJQT0xBVEVcIiwgcmVmZXJlbmNlLCBwYXJhbXMpO1xuICAgICAgcmV0dXJuIGZuKHBhcmFtcyk7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgd3JhcFJlY3Vyc2l2ZWx5KG9iajogYW55LCByZWZlcmVuY2VPYmo6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikucmVkdWNlKChhY2M6IGFueSwga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gb2JqW2tleV07XG4gICAgICBjb25zdCByZWZlcmVuY2VWYWx1ZSA9IHJlZmVyZW5jZU9ialtrZXldO1xuXG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgPyB7IC4uLmFjYywgW2tleV06IHRoaXMud3JhcCh2YWx1ZSwgcmVmZXJlbmNlVmFsdWUpIH1cbiAgICAgICAgOiB7IC4uLmFjYywgW2tleV06IHRoaXMud3JhcFJlY3Vyc2l2ZWx5KHZhbHVlLCByZWZlcmVuY2VWYWx1ZSkgfTtcbiAgICB9LCB7fSk7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJJbmplY3Rpb25Ub2tlbiIsInRzbGliXzEuX19leHRlbmRzIiwiT3B0aW9uYWwiLCJJbmplY3QiLCJUcmFuc2xhdGVDb21waWxlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0lBQUE7Ozs7Ozs7Ozs7Ozs7O0lBY0E7SUFFQSxJQUFJLGFBQWEsR0FBRyxVQUFTLENBQUMsRUFBRSxDQUFDO1FBQzdCLGFBQWEsR0FBRyxNQUFNLENBQUMsY0FBYzthQUNoQyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsWUFBWSxLQUFLLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM1RSxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUFFLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7b0JBQUUsQ0FBQyxDQUFDLENBQUMs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

@@ -1,2 +0,2 @@

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@ngx-translate/core"),require("messageformat")):"function"==typeof define&&define.amd?define("ngx-translate-messageformat-compiler",["exports","@angular/core","@ngx-translate/core","messageformat"],e):e(t["ngx-translate-messageformat-compiler"]={},t.ng.core,t.core$1,t.messageformat)}(this,function(t,e,r,o){"use strict";var n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])};function i(t,e){function r(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}function a(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var o,n,a=r.call(t),i=[];try{for(;(void 0===e||0<e--)&&!(o=a.next()).done;)i.push(o.value)}catch(s){n={error:s}}finally{try{o&&!o.done&&(r=a["return"])&&r.call(a)}finally{if(n)throw n.error}}return i}var s=new e.InjectionToken("MESSAGE_FORMAT_CONFIG"),c={biDiSupport:!1,formatters:undefined,locales:undefined,strictNumberSign:!1},p=function(r){function t(t){var e=r.call(this)||this;return t=Object.assign({},c,t),e.messageFormat=new o(t.locales).addFormatters(t.formatters).setBiDiSupport(t.biDiSupport).setStrictNumberSign(t.strictNumberSign),e}return i(t,r),t.prototype.compile=function(t,e){return this.messageFormat.compile(t,e)},t.prototype.compileTranslations=function(t,e){return this.messageFormat.compile(t,e)},t}(r.TranslateCompiler);p.ctorParameters=function(){return[{type:undefined,decorators:[{type:e.Optional},{type:e.Inject,args:[s]}]}]};var u=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return console.log.apply(console,function(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(a(arguments[e]));return t}([l],t))},l="[TranslateMessageFormatCompiler]",f=function(a){function t(){return null!==a&&a.apply(this,arguments)||this}return i(t,a),t.prototype.compile=function(t,e){u("COMPILE ("+e+")",t);var r=a.prototype.compile.call(this,t,e);return this.wrap(r,t)},t.prototype.compileTranslations=function(t,e){u("COMPILE ("+e+")",t);var r=a.prototype.compileTranslations.call(this,t,e),o=r.toString,n=function(t,e){var r={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(t);n<o.length;n++)e.indexOf(o[n])<0&&(r[o[n]]=t[o[n]])}return r}(r,["toString"]);return Object.assign({toString:o},this.wrapRecursively(n,t))},t.prototype.wrap=function(e,r){return function(t){return u("INTERPOLATE",r,t),e(t)}},t.prototype.wrapRecursively=function(i,s){var c=this;return Object.keys(i).reduce(function(t,e){var r,o,n=i[e],a=s[e];return"function"==typeof n?Object.assign({},t,((r={})[e]=c.wrap(n,a),r)):Object.assign({},t,((o={})[e]=c.wrapRecursively(n,a),o))},{})},t}(p);t.TranslateMessageFormatCompiler=p,t.TranslateMessageFormatDebugCompiler=f,t.MESSAGE_FORMAT_CONFIG=s,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=ngx-translate-messageformat-compiler.umd.min.js.map
!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@angular/core"),require("@ngx-translate/core"),require("messageformat")):"function"==typeof define&&define.amd?define("ngx-translate-messageformat-compiler",["exports","@angular/core","@ngx-translate/core","messageformat"],r):r(t["ngx-translate-messageformat-compiler"]={},t.ng.core,t.core$1,t.messageformat)}(this,function(t,r,e,o){"use strict";var n=function(t,r){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)r.hasOwnProperty(e)&&(t[e]=r[e])})(t,r)};function a(t,r){function e(){this.constructor=t}n(t,r),t.prototype=null===r?Object.create(r):(e.prototype=r.prototype,new e)}var u=function(){return(u=Object.assign||function(t){for(var r,e=1,o=arguments.length;e<o;e++)for(var n in r=arguments[e])Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n]);return t}).apply(this,arguments)};function i(t,r){var e="function"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var o,n,a=e.call(t),i=[];try{for(;(void 0===r||0<r--)&&!(o=a.next()).done;)i.push(o.value)}catch(c){n={error:c}}finally{try{o&&!o.done&&(e=a["return"])&&e.call(a)}finally{if(n)throw n.error}}return i}var c=new r.InjectionToken("MESSAGE_FORMAT_CONFIG"),s={biDiSupport:!1,formatters:undefined,locales:undefined,strictNumberSign:!1},p=function(e){function t(t){var r=e.call(this)||this;return t=u({},s,t),r.messageFormat=new o(t.locales).addFormatters(t.formatters).setBiDiSupport(t.biDiSupport).setStrictNumberSign(t.strictNumberSign),r}return a(t,e),t.prototype.compile=function(t,r){return this.messageFormat.compile(t,r)},t.prototype.compileTranslations=function(t,r){return this.messageFormat.compile(t,r)},t.ctorParameters=function(){return[{type:undefined,decorators:[{type:r.Optional},{type:r.Inject,args:[c]}]}]},t}(e.TranslateCompiler),l=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return console.log.apply(console,function e(){for(var t=[],r=0;r<arguments.length;r++)t=t.concat(i(arguments[r]));return t}([f],t))},f="[TranslateMessageFormatCompiler]",m=function(i){function t(){return null!==i&&i.apply(this,arguments)||this}return a(t,i),t.prototype.compile=function(t,r){l("COMPILE ("+r+")",t);var e=i.prototype.compile.call(this,t,r);return this.wrap(e,t)},t.prototype.compileTranslations=function(t,r){l("COMPILE ("+r+")",t);var e=i.prototype.compileTranslations.call(this,t,r),o=e.toString,n=function a(t,r){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&r.indexOf(o)<0&&(e[o]=t[o]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(t);n<o.length;n++)r.indexOf(o[n])<0&&(e[o[n]]=t[o[n]])}return e}(e,["toString"]);return u({toString:o},this.wrapRecursively(n,t))},t.prototype.wrap=function(r,e){return function(t){return l("INTERPOLATE",e,t),r(t)}},t.prototype.wrapRecursively=function(i,c){var s=this;return Object.keys(i).reduce(function(t,r){var e,o,n=i[r],a=c[r];return u({},t,"function"==typeof n?((e={})[r]=s.wrap(n,a),e):((o={})[r]=s.wrapRecursively(n,a),o))},{})},t}(p);t.TranslateMessageFormatCompiler=p,t.TranslateMessageFormatDebugCompiler=m,t.MESSAGE_FORMAT_CONFIG=c,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=ngx-translate-messageformat-compiler.umd.min.js.map

@@ -1,131 +0,9 @@

import { InjectionToken, Inject, Optional } from '@angular/core';
import { TranslateCompiler } from '@ngx-translate/core';
import * as MessageFormat from 'messageformat';
import { __rest } from 'tslib';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
const MESSAGE_FORMAT_CONFIG = new InjectionToken("MESSAGE_FORMAT_CONFIG");
/**
* @record
*/
const defaultConfig = {
biDiSupport: false,
formatters: undefined,
locales: undefined,
strictNumberSign: false
};
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* This compiler expects ICU syntax and compiles the expressions with messageformat.js
*/
class TranslateMessageFormatCompiler extends TranslateCompiler {
/**
* @param {?=} config
*/
constructor(config) {
super();
config = Object.assign({}, defaultConfig, config);
this.messageFormat = new MessageFormat(config.locales)
.addFormatters(config.formatters)
.setBiDiSupport(config.biDiSupport)
.setStrictNumberSign(config.strictNumberSign);
}
/**
* @param {?} value
* @param {?} lang
* @return {?}
*/
compile(value, lang) {
return this.messageFormat.compile(value, lang);
}
/**
* @param {?} translations
* @param {?} lang
* @return {?}
*/
compileTranslations(translations, lang) {
return this.messageFormat.compile(translations, lang);
}
}
/** @nocollapse */
TranslateMessageFormatCompiler.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MESSAGE_FORMAT_CONFIG,] },] },
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/* tslint:disable-next-line no-console */
const log = (...message) => console.log(tag, ...message);
const tag = "[TranslateMessageFormatCompiler]";
class TranslateMessageFormatDebugCompiler extends TranslateMessageFormatCompiler {
/**
* @param {?} value
* @param {?} lang
* @return {?}
*/
compile(value, lang) {
log(`COMPILE (${lang})`, value);
const /** @type {?} */ interpolationFn = super.compile(value, lang);
return this.wrap(interpolationFn, value);
}
/**
* @param {?} value
* @param {?} lang
* @return {?}
*/
compileTranslations(value, lang) {
log(`COMPILE (${lang})`, value);
const _a = super.compileTranslations(value, lang), { toString } = _a, interpolationFns = __rest(_a, ["toString"]);
return Object.assign({ toString }, this.wrapRecursively(interpolationFns, value));
}
/**
* @param {?} fn
* @param {?} reference
* @return {?}
*/
wrap(fn, reference) {
return (params) => {
log("INTERPOLATE", reference, params);
return fn(params);
};
}
/**
* @param {?} obj
* @param {?} referenceObj
* @return {?}
*/
wrapRecursively(obj, referenceObj) {
return Object.keys(obj).reduce((acc, key) => {
const /** @type {?} */ value = obj[key];
const /** @type {?} */ referenceValue = referenceObj[key];
return typeof value === "function"
? Object.assign({}, acc, { [key]: this.wrap(value, referenceValue) }) : Object.assign({}, acc, { [key]: this.wrapRecursively(value, referenceValue) });
}, {});
}
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* Generated bundle index. Do not edit.
*/
export { TranslateMessageFormatCompiler, TranslateMessageFormatDebugCompiler, MESSAGE_FORMAT_CONFIG };
//# sourceMappingURL=ngx-translate-messageformat-compiler.js.map
export { TranslateMessageFormatCompiler, TranslateMessageFormatDebugCompiler, MESSAGE_FORMAT_CONFIG } from './index';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRyYW5zbGF0ZS1tZXNzYWdlZm9ybWF0LWNvbXBpbGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXRyYW5zbGF0ZS1tZXNzYWdlZm9ybWF0LWNvbXBpbGVyLyIsInNvdXJjZXMiOlsibmd4LXRyYW5zbGF0ZS1tZXNzYWdlZm9ybWF0LWNvbXBpbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSwyR0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19

@@ -1,78 +0,9 @@

import { __rest, __extends, __spread } from 'tslib';
import { InjectionToken, Inject, Optional } from '@angular/core';
import { TranslateCompiler } from '@ngx-translate/core';
import * as MessageFormat from 'messageformat';
var MESSAGE_FORMAT_CONFIG = new InjectionToken("MESSAGE_FORMAT_CONFIG");
var defaultConfig = {
biDiSupport: false,
formatters: undefined,
locales: undefined,
strictNumberSign: false
};
var TranslateMessageFormatCompiler = /** @class */ (function (_super) {
__extends(TranslateMessageFormatCompiler, _super);
function TranslateMessageFormatCompiler(config) {
var _this = _super.call(this) || this;
config = Object.assign({}, defaultConfig, config);
_this.messageFormat = new MessageFormat(config.locales)
.addFormatters(config.formatters)
.setBiDiSupport(config.biDiSupport)
.setStrictNumberSign(config.strictNumberSign);
return _this;
}
TranslateMessageFormatCompiler.prototype.compile = function (value, lang) {
return this.messageFormat.compile(value, lang);
};
TranslateMessageFormatCompiler.prototype.compileTranslations = function (translations, lang) {
return this.messageFormat.compile(translations, lang);
};
return TranslateMessageFormatCompiler;
}(TranslateCompiler));
TranslateMessageFormatCompiler.ctorParameters = function () { return [
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MESSAGE_FORMAT_CONFIG,] },] },
]; };
var log = function () {
var message = [];
for (var _i = 0; _i < arguments.length; _i++) {
message[_i] = arguments[_i];
}
return console.log.apply(console, __spread([tag], message));
};
var tag = "[TranslateMessageFormatCompiler]";
var TranslateMessageFormatDebugCompiler = /** @class */ (function (_super) {
__extends(TranslateMessageFormatDebugCompiler, _super);
function TranslateMessageFormatDebugCompiler() {
return _super !== null && _super.apply(this, arguments) || this;
}
TranslateMessageFormatDebugCompiler.prototype.compile = function (value, lang) {
log("COMPILE (" + lang + ")", value);
var interpolationFn = _super.prototype.compile.call(this, value, lang);
return this.wrap(interpolationFn, value);
};
TranslateMessageFormatDebugCompiler.prototype.compileTranslations = function (value, lang) {
log("COMPILE (" + lang + ")", value);
var _a = _super.prototype.compileTranslations.call(this, value, lang), toString = _a.toString, interpolationFns = __rest(_a, ["toString"]);
return Object.assign({ toString: toString }, this.wrapRecursively(interpolationFns, value));
};
TranslateMessageFormatDebugCompiler.prototype.wrap = function (fn, reference) {
return function (params) {
log("INTERPOLATE", reference, params);
return fn(params);
};
};
TranslateMessageFormatDebugCompiler.prototype.wrapRecursively = function (obj, referenceObj) {
var _this = this;
return Object.keys(obj).reduce(function (acc, key) {
var value = obj[key];
var referenceValue = referenceObj[key];
return typeof value === "function"
? Object.assign({}, acc, (_b = {}, _b[key] = _this.wrap(value, referenceValue), _b)) : Object.assign({}, acc, (_c = {}, _c[key] = _this.wrapRecursively(value, referenceValue), _c));
var _b, _c;
}, {});
};
return TranslateMessageFormatDebugCompiler;
}(TranslateMessageFormatCompiler));
export { TranslateMessageFormatCompiler, TranslateMessageFormatDebugCompiler, MESSAGE_FORMAT_CONFIG };
//# sourceMappingURL=ngx-translate-messageformat-compiler.js.map
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
/**
* Generated bundle index. Do not edit.
*/
export { TranslateMessageFormatCompiler, TranslateMessageFormatDebugCompiler, MESSAGE_FORMAT_CONFIG } from './index';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRyYW5zbGF0ZS1tZXNzYWdlZm9ybWF0LWNvbXBpbGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXRyYW5zbGF0ZS1tZXNzYWdlZm9ybWF0LWNvbXBpbGVyLyIsInNvdXJjZXMiOlsibmd4LXRyYW5zbGF0ZS1tZXNzYWdlZm9ybWF0LWNvbXBpbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSwyR0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
{
"$schema": "./node_modules/ng-packagr/package.schema.json",
"name": "ngx-translate-messageformat-compiler",
"version": "4.3.0",
"version": "4.4.0",
"description": "Compiler for ngx-translate that uses messageformat.js to compile translations using ICU syntax for handling pluralization and gender",

@@ -29,41 +29,45 @@ "repository": {

"main": "bundles/ngx-translate-messageformat-compiler.umd.js",
"module": "esm5/ngx-translate-messageformat-compiler.js",
"module": "fesm5/ngx-translate-messageformat-compiler.js",
"typings": "ngx-translate-messageformat-compiler.d.ts",
"peerDependencies": {
"@angular/core": "^6.0.0",
"@ngx-translate/core": "^10.0.0",
"messageformat": "^2.0.0"
"@angular/core": "^6.0.0 || ^7.0.0",
"@ngx-translate/core": "^10.0.0 || ^11.0.0",
"messageformat": ">=2.0.0 <=2.0.2 || >2.0.4 <3.0.0"
},
"devDependencies": {
"@angular/compiler": "^6.0.0",
"@angular/compiler-cli": "^6.0.0",
"@angular/core": "^6.0.0",
"@ngx-translate/core": "^10.0.0",
"@types/jasmine": "2.8.7",
"jasmine-core": "^3.1.0",
"karma": "^2.0.2",
"@angular/compiler": "^7.0.0",
"@angular/compiler-cli": "^7.0.0",
"@angular/core": "^7.0.0",
"@ngx-translate/core": "^11.0.0",
"@types/jasmine": "2.8.9",
"jasmine-core": "^3.2.1",
"karma": "^3.0.0",
"karma-chrome-launcher": "^2.2.0",
"karma-jasmine": "^1.1.0",
"karma-webpack": "^3.0.0",
"messageformat": "^2.0.2",
"ng-packagr": "^2.4.2",
"karma-webpack": ">=4.0.0-rc.0 <=5.0.0",
"messageformat": "2.0.2",
"ng-packagr": "^4.4.0",
"npm-run-all": "^4.1.3",
"prettier": "^1.12.1",
"prettier": "^1.14.3",
"reflect-metadata": "^0.1.10",
"rimraf": "^2.6.2",
"rxjs": "^6.1.0",
"rxjs": "^6.3.3",
"tar": "^4.4.6",
"ts-loader": "^4.2.0",
"tsickle": "^0.27.5",
"tslib": "^1.9.0",
"tslint": "^5.7.0",
"tslint-config-prettier": "^1.12.0",
"tslint-loader": "^3.5.3",
"typescript": "~2.7.0",
"webpack": "^4.6.0",
"webpack-cli": "^2.1.2",
"ts-loader": "^5.2.2",
"tsickle": "^0.33.0",
"tslib": "^1.9.3",
"tslint": "^5.11.0",
"tslint-config-prettier": "^1.15.0",
"typescript": "~3.1.1",
"webpack": "^4.22.0",
"webpack-cli": "^3.1.2",
"zone.js": "^0.8.17"
},
"es2015": "esm2015/ngx-translate-messageformat-compiler.js",
"es2015": "fesm2015/ngx-translate-messageformat-compiler.js",
"esm5": "esm5/ngx-translate-messageformat-compiler.js",
"esm2015": "esm2015/ngx-translate-messageformat-compiler.js",
"fesm5": "fesm5/ngx-translate-messageformat-compiler.js",
"fesm2015": "fesm2015/ngx-translate-messageformat-compiler.js",
"metadata": "ngx-translate-messageformat-compiler.metadata.json",
"sideEffects": false,
"dependencies": {

@@ -70,0 +74,0 @@ "tslib": "^1.9.0"

@@ -5,2 +5,6 @@ # ngx-translate-messageformat-compiler

**[Example App](https://stackblitz.com/edit/ngx-translate-messageformat-compiler-example)** (StackBlitz)
## Table of Contents
* [Installation](#installation)

@@ -24,2 +28,4 @@ * [Setup](#setup)

Something to be aware of if you deploy to strict production environments: [Fundamentally, messageformat is a compiler that turns ICU MessageFormat input into JavaScript.](https://messageformat.github.io/messageformat/page-build) This means it uses `new Function` under the hood which necessicates allowing `unsafe-eval` for the [`script-src`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src) Content Security Policy (CSP).
## Setup

@@ -72,2 +78,3 @@

biDiSupport: false,
formatters: undefined,
locales: undefined,

@@ -74,0 +81,0 @@ strictNumberSign: false

@@ -5,4 +5,4 @@ import { TranslateMessageFormatCompiler } from "./translate-message-format-compiler";

compileTranslations(value: any, lang: string): any;
private wrap(fn, reference);
private wrapRecursively(obj, referenceObj);
private wrap;
private wrapRecursively;
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc