403Webshell
Server IP : 85.158.181.41  /  Your IP : 216.73.217.12
Web Server : Apache
System : Linux cloud9-vm129 6.1.178+1-ph #ph SMP PREEMPT_DYNAMIC Wed Jul 29 09:00:54 UTC 2026 x86_64
User : moncbefd ( 1024)
PHP Version : 7.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/moncbefd/www.moneta.at/JSEngine/build/libs/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/moncbefd/www.moneta.at/JSEngine/build/libs/hooks.js
'use strict';

/* --------------------------------------------------------------
 hooks.js 2018-04-12
 Gambio GmbH
 http://www.gambio.de
 Copyright (c) 2016 Gambio GmbH
 Released under the GNU General Public License (Version 2)
 [http://www.gnu.org/licenses/gpl-2.0.html]
 --------------------------------------------------------------
 */

jse.libs.hooks = jse.libs.hooks || {};

(function (exports) {
    // Prefix for hook collection keys provided by the shop system
    var KEY_PREFIX = 'GX';

    // Hook collection keys mapping
    var keys = {
        shop: {
            cart: {
                add: KEY_PREFIX + '_SHOP_CART_ADD',
                change: KEY_PREFIX + '_SHOP_CART_CHANGE',
                checkout: KEY_PREFIX + '_SHOP_CART_CHECKOUT'
            },
            product: {
                listing: {
                    hover: KEY_PREFIX + '_SHOP_PRODUCT_LISTING'
                }
            }
        }
    };

    // Hook collection
    var hooks = new Map();

    /**
     * Add a hook
     * @param {string} key Hook collection key
     * @param {Function} hook Hook function, that returns a Promise
     */
    function add(key, hook) {
        if (!hooks.has(key)) {
            hooks.set(key, new Set());
        }

        hooks.get(key).add(hook);
    }

    /**
     * Execute the promises within given time window
     * @param {Promise[]} promises
     * @param {Number} timeout Timeout (ms)
     * @return {Promise} Promise that is resolved by fulfillment of all promises
     * or rejected by exceeding the timeout window
     */
    function executeWithinTimeoutWindow(promises, timeout) {
        return new Promise(function (resolve) {
            var isFinished = false;

            Promise.all(promises).then(function (results) {
                isFinished = true;
                resolve(results);
            });

            setTimeout(function () {
                if (!isFinished) {
                    resolve();
                }
            }, timeout);
        });
    }

    /**
     * Perform all hooks
     * @param {string} key Hook collection key
     * @param {*} [parameters] Execution context parameters
     * @param {Number} [timeout] Timeout window (ms) for execution (0 for no timeout)
     * @return {Promise}
     */
    function execute(key, parameters) {
        var timeout = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;

        var promises = [];

        if (!hooks.has(key) || !hooks.get(key).size) {
            return Promise.resolve();
        }

        var _iteratorNormalCompletion = true;
        var _didIteratorError = false;
        var _iteratorError = undefined;

        try {
            for (var _iterator = hooks.get(key).values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
                var hook = _step.value;

                promises.push(hook(parameters));
            }
        } catch (err) {
            _didIteratorError = true;
            _iteratorError = err;
        } finally {
            try {
                if (!_iteratorNormalCompletion && _iterator.return) {
                    _iterator.return();
                }
            } finally {
                if (_didIteratorError) {
                    throw _iteratorError;
                }
            }
        }

        hooks.get(key).clear();

        if (Number.isInteger(timeout) && timeout > 0) {
            return executeWithinTimeoutWindow(promises, timeout);
        }

        return Promise.all(promises);
    }

    // Public properties and methods
    exports.keys = keys;
    exports.add = add;
    exports.execute = execute;
})(jse.libs.hooks);
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhvb2tzLmpzIl0sIm5hbWVzIjpbImpzZSIsImxpYnMiLCJob29rcyIsIktFWV9QUkVGSVgiLCJrZXlzIiwic2hvcCIsImNhcnQiLCJhZGQiLCJjaGFuZ2UiLCJjaGVja291dCIsInByb2R1Y3QiLCJsaXN0aW5nIiwiaG92ZXIiLCJNYXAiLCJrZXkiLCJob29rIiwiaGFzIiwic2V0IiwiU2V0IiwiZ2V0IiwiZXhlY3V0ZVdpdGhpblRpbWVvdXRXaW5kb3ciLCJwcm9taXNlcyIsInRpbWVvdXQiLCJQcm9taXNlIiwiaXNGaW5pc2hlZCIsImFsbCIsInRoZW4iLCJyZXNvbHZlIiwicmVzdWx0cyIsInNldFRpbWVvdXQiLCJleGVjdXRlIiwicGFyYW1ldGVycyIsInNpemUiLCJ2YWx1ZXMiLCJwdXNoIiwiY2xlYXIiLCJOdW1iZXIiLCJpc0ludGVnZXIiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7Ozs7O0FBVUFBLElBQUlDLElBQUosQ0FBU0MsS0FBVCxHQUFpQkYsSUFBSUMsSUFBSixDQUFTQyxLQUFULElBQWtCLEVBQW5DOztBQUVBLENBQUMsbUJBQVc7QUFDUjtBQUNBLFFBQU1DLGFBQWEsSUFBbkI7O0FBRUE7QUFDQSxRQUFNQyxPQUFPO0FBQ1RDLGNBQU07QUFDRkMsa0JBQU07QUFDRkMscUJBQVFKLFVBQVIsbUJBREU7QUFFRkssd0JBQVdMLFVBQVgsc0JBRkU7QUFHRk0sMEJBQWFOLFVBQWI7QUFIRSxhQURKO0FBTUZPLHFCQUFTO0FBQ0xDLHlCQUFTO0FBQ0xDLDJCQUFVVCxVQUFWO0FBREs7QUFESjtBQU5QO0FBREcsS0FBYjs7QUFlQTtBQUNBLFFBQU1ELFFBQVEsSUFBSVcsR0FBSixFQUFkOztBQUVBOzs7OztBQUtBLGFBQVNOLEdBQVQsQ0FBYU8sR0FBYixFQUFrQkMsSUFBbEIsRUFBd0I7QUFDcEIsWUFBSSxDQUFDYixNQUFNYyxHQUFOLENBQVVGLEdBQVYsQ0FBTCxFQUFxQjtBQUNqQlosa0JBQU1lLEdBQU4sQ0FBVUgsR0FBVixFQUFlLElBQUlJLEdBQUosRUFBZjtBQUNIOztBQUVEaEIsY0FBTWlCLEdBQU4sQ0FBVUwsR0FBVixFQUFlUCxHQUFmLENBQW1CUSxJQUFuQjtBQUNIOztBQUVEOzs7Ozs7O0FBT0EsYUFBU0ssMEJBQVQsQ0FBb0NDLFFBQXBDLEVBQThDQyxPQUE5QyxFQUF1RDtBQUNuRCxlQUFPLElBQUlDLE9BQUosQ0FBWSxtQkFBVztBQUMxQixnQkFBSUMsYUFBYSxLQUFqQjs7QUFFQUQsb0JBQVFFLEdBQVIsQ0FBWUosUUFBWixFQUFzQkssSUFBdEIsQ0FBMkIsbUJBQVc7QUFDbENGLDZCQUFhLElBQWI7QUFDQUcsd0JBQVFDLE9BQVI7QUFDSCxhQUhEOztBQUtBQyx1QkFBVyxZQUFNO0FBQ2Isb0JBQUksQ0FBQ0wsVUFBTCxFQUFpQjtBQUNiRztBQUNIO0FBQ0osYUFKRCxFQUlHTCxPQUpIO0FBS0gsU0FiTSxDQUFQO0FBY0g7O0FBRUQ7Ozs7Ozs7QUFPQSxhQUFTUSxPQUFULENBQWlCaEIsR0FBakIsRUFBc0JpQixVQUF0QixFQUErQztBQUFBLFlBQWJULE9BQWEsdUVBQUgsQ0FBRzs7QUFDM0MsWUFBTUQsV0FBVyxFQUFqQjs7QUFFQSxZQUFJLENBQUNuQixNQUFNYyxHQUFOLENBQVVGLEdBQVYsQ0FBRCxJQUFtQixDQUFDWixNQUFNaUIsR0FBTixDQUFVTCxHQUFWLEVBQWVrQixJQUF2QyxFQUE2QztBQUN6QyxtQkFBT1QsUUFBUUksT0FBUixFQUFQO0FBQ0g7O0FBTDBDO0FBQUE7QUFBQTs7QUFBQTtBQU8zQyxpQ0FBbUJ6QixNQUFNaUIsR0FBTixDQUFVTCxHQUFWLEVBQWVtQixNQUFmLEVBQW5CLDhIQUE0QztBQUFBLG9CQUFqQ2xCLElBQWlDOztBQUN4Q00seUJBQVNhLElBQVQsQ0FBY25CLEtBQUtnQixVQUFMLENBQWQ7QUFDSDtBQVQwQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQVczQzdCLGNBQU1pQixHQUFOLENBQVVMLEdBQVYsRUFBZXFCLEtBQWY7O0FBRUEsWUFBSUMsT0FBT0MsU0FBUCxDQUFpQmYsT0FBakIsS0FBNkJBLFVBQVUsQ0FBM0MsRUFBOEM7QUFDMUMsbUJBQU9GLDJCQUEyQkMsUUFBM0IsRUFBcUNDLE9BQXJDLENBQVA7QUFDSDs7QUFFRCxlQUFPQyxRQUFRRSxHQUFSLENBQVlKLFFBQVosQ0FBUDtBQUNIOztBQUVEO0FBQ0FpQixZQUFRbEMsSUFBUixHQUFlQSxJQUFmO0FBQ0FrQyxZQUFRL0IsR0FBUixHQUFjQSxHQUFkO0FBQ0ErQixZQUFRUixPQUFSLEdBQWtCQSxPQUFsQjtBQUNILENBM0ZELEVBMkZHOUIsSUFBSUMsSUFBSixDQUFTQyxLQTNGWiIsImZpbGUiOiJob29rcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gaG9va3MuanMgMjAxOC0wNC0xMlxuIEdhbWJpbyBHbWJIXG4gaHR0cDovL3d3dy5nYW1iaW8uZGVcbiBDb3B5cmlnaHQgKGMpIDIwMTYgR2FtYmlvIEdtYkhcbiBSZWxlYXNlZCB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKFZlcnNpb24gMilcbiBbaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0yLjAuaHRtbF1cbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmpzZS5saWJzLmhvb2tzID0ganNlLmxpYnMuaG9va3MgfHwge307XG5cbihleHBvcnRzID0+IHtcbiAgICAvLyBQcmVmaXggZm9yIGhvb2sgY29sbGVjdGlvbiBrZXlzIHByb3ZpZGVkIGJ5IHRoZSBzaG9wIHN5c3RlbVxuICAgIGNvbnN0IEtFWV9QUkVGSVggPSAnR1gnO1xuXG4gICAgLy8gSG9vayBjb2xsZWN0aW9uIGtleXMgbWFwcGluZ1xuICAgIGNvbnN0IGtleXMgPSB7XG4gICAgICAgIHNob3A6IHtcbiAgICAgICAgICAgIGNhcnQ6IHtcbiAgICAgICAgICAgICAgICBhZGQ6IGAke0tFWV9QUkVGSVh9X1NIT1BfQ0FSVF9BRERgLFxuICAgICAgICAgICAgICAgIGNoYW5nZTogYCR7S0VZX1BSRUZJWH1fU0hPUF9DQVJUX0NIQU5HRWAsXG4gICAgICAgICAgICAgICAgY2hlY2tvdXQ6IGAke0tFWV9QUkVGSVh9X1NIT1BfQ0FSVF9DSEVDS09VVGAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHJvZHVjdDoge1xuICAgICAgICAgICAgICAgIGxpc3Rpbmc6IHtcbiAgICAgICAgICAgICAgICAgICAgaG92ZXI6IGAke0tFWV9QUkVGSVh9X1NIT1BfUFJPRFVDVF9MSVNUSU5HYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9O1xuXG4gICAgLy8gSG9vayBjb2xsZWN0aW9uXG4gICAgY29uc3QgaG9va3MgPSBuZXcgTWFwKCk7XG5cbiAgICAvKipcbiAgICAgKiBBZGQgYSBob29rXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBIb29rIGNvbGxlY3Rpb24ga2V5XG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaG9vayBIb29rIGZ1bmN0aW9uLCB0aGF0IHJldHVybnMgYSBQcm9taXNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gYWRkKGtleSwgaG9vaykge1xuICAgICAgICBpZiAoIWhvb2tzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICBob29rcy5zZXQoa2V5LCBuZXcgU2V0KCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaG9va3MuZ2V0KGtleSkuYWRkKGhvb2spO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4ZWN1dGUgdGhlIHByb21pc2VzIHdpdGhpbiBnaXZlbiB0aW1lIHdpbmRvd1xuICAgICAqIEBwYXJhbSB7UHJvbWlzZVtdfSBwcm9taXNlc1xuICAgICAqIEBwYXJhbSB7TnVtYmVyfSB0aW1lb3V0IFRpbWVvdXQgKG1zKVxuICAgICAqIEByZXR1cm4ge1Byb21pc2V9IFByb21pc2UgdGhhdCBpcyByZXNvbHZlZCBieSBmdWxmaWxsbWVudCBvZiBhbGwgcHJvbWlzZXNcbiAgICAgKiBvciByZWplY3RlZCBieSBleGNlZWRpbmcgdGhlIHRpbWVvdXQgd2luZG93XG4gICAgICovXG4gICAgZnVuY3Rpb24gZXhlY3V0ZVdpdGhpblRpbWVvdXRXaW5kb3cocHJvbWlzZXMsIHRpbWVvdXQpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICAgICAgbGV0IGlzRmluaXNoZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgUHJvbWlzZS5hbGwocHJvbWlzZXMpLnRoZW4ocmVzdWx0cyA9PiB7XG4gICAgICAgICAgICAgICAgaXNGaW5pc2hlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHRzKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzRmluaXNoZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHRpbWVvdXQpO1xuICAgICAgICB9KVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcmZvcm0gYWxsIGhvb2tzXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBIb29rIGNvbGxlY3Rpb24ga2V5XG4gICAgICogQHBhcmFtIHsqfSBbcGFyYW1ldGVyc10gRXhlY3V0aW9uIGNvbnRleHQgcGFyYW1ldGVyc1xuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBbdGltZW91dF0gVGltZW91dCB3aW5kb3cgKG1zKSBmb3IgZXhlY3V0aW9uICgwIGZvciBubyB0aW1lb3V0KVxuICAgICAqIEByZXR1cm4ge1Byb21pc2V9XG4gICAgICovXG4gICAgZnVuY3Rpb24gZXhlY3V0ZShrZXksIHBhcmFtZXRlcnMsIHRpbWVvdXQgPSAwKSB7XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gW107XG5cbiAgICAgICAgaWYgKCFob29rcy5oYXMoa2V5KSB8fCAhaG9va3MuZ2V0KGtleSkuc2l6ZSkge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBob29rIG9mIGhvb2tzLmdldChrZXkpLnZhbHVlcygpKSB7XG4gICAgICAgICAgICBwcm9taXNlcy5wdXNoKGhvb2socGFyYW1ldGVycykpO1xuICAgICAgICB9XG5cbiAgICAgICAgaG9va3MuZ2V0KGtleSkuY2xlYXIoKTtcblxuICAgICAgICBpZiAoTnVtYmVyLmlzSW50ZWdlcih0aW1lb3V0KSAmJiB0aW1lb3V0ID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGVXaXRoaW5UaW1lb3V0V2luZG93KHByb21pc2VzLCB0aW1lb3V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgfVxuXG4gICAgLy8gUHVibGljIHByb3BlcnRpZXMgYW5kIG1ldGhvZHNcbiAgICBleHBvcnRzLmtleXMgPSBrZXlzO1xuICAgIGV4cG9ydHMuYWRkID0gYWRkO1xuICAgIGV4cG9ydHMuZXhlY3V0ZSA9IGV4ZWN1dGU7XG59KShqc2UubGlicy5ob29rcyk7Il19

Youez - 2016 - github.com/yon3zu
LinuXploit