PageSourceSearch

https://my.rapidmail.com/js/main/rs/heartbeat/Heartbeat.min.js?v=1790248978

js rapidmail.com collected 2026-09-26 02:18:04 UTC 2,185 bytes, 1 lines download raw bytes

1RS.declare("RS.heartbeat.Heartbeat",{singleton:!0,isBeating:!1,microseconds:6e4,isBeatActive:!1,skippedBeats:0,readyStack:{},isStarting:!1,heartbeatData:{},doHeartbeat:function(){var e=this;if(e.isBeatActive)return RS.util.Logger.debug("Beat is still running, skipped beats: "+e.skippedBeats),void e.skippedBeats++;e.lastHeartbeatStarted=Date.now(),e.isBeatActive=!0,e.skippedBeats=0;var t=e.heartbeatData;return"object"!==$.type(t)?(RS.util.Logger.warn("Heartbeat data was not an object when trying to execute heartbeat."),$.Deferred().reject()):(t=JSON.stringify(t),RS.isEmpty(t,!1)?(RS.util.Logger.warn("Stringified heartbeat data empty when trying to execute heartbeat."),$.Deferred().reject()):$.ajax({url:$.rs.controller.getScriptUrl("ajax_heartbeat"),method:"post",data:t,contentType:"application/json",processData:!1}).always(function(){e.isBeatActive=!1,e.lastHearbeatFinished=Date.now(),RS.util.Logger.debug("Heartbeat completed, took: "+(e.lastHearbeatFinished-e.lastHeartbeatStarted))}).then(function(t){e.onHeartbeatCompleted.call(e,t.data)}).fail(function(){RS.util.Logger.error("Heartbeat has failed, stopping..."),e.stop()}))},onHeartbeatCompleted:function(t){var e=this;$.each(t,function(a,i){$.each(e.readyStack[a]||[],function(t,e){e.call(e,i,a)})})},onReady:function(t,e){var a=this;a.readyStack[t]||(a.readyStack[t]=[]),a.readyStack[t].push(e)},start:function(){var t=this;(t.isBeating||t.isStarting)&&$.error("Heartbeat is already started"),RS.util.Logger.log("Started heartbeat with "+t.microseconds+"ms interval"),t.isStarting=!0,t.isBeating=!0,t.doHeartbeat().always(function(){t.isStarting=!1}).then(function(){t.isBeating&&(t.interval=setInterval($.proxy(t.doHeartbeat,t),t.microseconds)),t.fireEvent("start")}).fail(function(){RS.util.Logger.log("Initial heartbeat has failed"),t.stop()})},setInterval:function(t){RS.util.Logger.debug("Updating heartbeat interval to "+t+"ms");var e=this.isBeating;this.stop(),this.microseconds=t,e&&this.start()},setData:function(t,e){this.heartbeatData[t]=e},stop:function(){var t=this;t.isBeating&&(RS.util.Logger.log("Stopping heartbeat"),clearInterval(t.interval),t.interval=null,t.isBeating=!1,t.fireEvent("stop"))}});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.