async executeSerial(input) {
    return await this._extensions.reduce(async (throughput, p) => {
      let tp = await throughput
      if (typeof p.response === 'function') {
        tp = await p.response(tp)
      } else if (Array.isArray(tp)) {
        tp.push(p.response)
      }
      return tp
    }, input)
  }
/**
   * Execute (if callback) or return (if object) the response for each extension registered to this extension point in serial,
   * feeding the result from the last response as input to the next.
   * @param {*} input Input to be provided as a parameter to the 1st callback
   * @returns {Promise.<*>} Result of the last extension that was called
   */
Execute (if callback) or return (if object) the response for each extension registered to this extension point in serial,
feeding the result from the last response as input to the next.
@param {*} input Input to be provided as a parameter to the 1st callback
@returns {Promise.<*>} Result of the last extension that was called
Execute ( if callback ) or return ( if object ) the response for each extension registered to this extension point in serial feeding the result from the last response as input to the next . @param { * } input Input to be provided as a parameter to the 1st callback @returns { Promise . < * > } Result of the last extension that was called
async executeSerial(input) {
    return await this._extensions.reduce(async (throughput, p) => {
      let tp = await throughput
      if (typeof p.response === 'function') {
        tp = await p.response(tp)
      } else if (Array.isArray(tp)) {
        tp.push(p.response)
      }
      return tp
    }, input)
  }
async executeSerial ( input ) { return await this . _extensions . reduce ( async ( throughput , p ) => { let tp = await throughput if ( typeof p . response === 'function' ) { tp = await p . response ( tp ) } else if ( Array . isArray ( tp ) ) { tp . push ( p . response ) } return tp } , input ) }
Execute (if callback) or return (if object) the response for each extension registered to this extension point in serial,
 feeding the result from the last response as input to the next.
Execute ( if callback ) or return ( if object ) the response for each extension registered to this extension point in serial feeding the result from the last response as input to the next .