This file is indexed.

/usr/share/mopidy/mopidy/frontends/http/data/mopidy.min.js is in mopidy 0.17.0-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

1
function Mopidy(e){if(!(this instanceof Mopidy))return new Mopidy(e);this._settings=this._configure(e||{}),this._console=this._getConsole(),this._backoffDelay=this._settings.backoffDelayMin,this._pendingRequests={},this._webSocket=null,bane.createEventEmitter(this),this._delegateEvents(),this._settings.autoConnect&&this.connect()}(typeof define=="function"&&define.amd&&function(e){define("bane",e)}||typeof module=="object"&&function(e){module.exports=e()}||function(e){this.bane=e()})(function(){"use strict";function t(e,t,n){var r,i=n.length;if(i>0){for(r=0;r<i;++r)n[r](e,t);return}setTimeout(function(){throw t.message=e+" listener threw error: "+t.message,t},0)}function n(e){if(typeof e!="function")throw new TypeError("Listener is not function");return e}function r(e){return e.supervisors||(e.supervisors=[]),e.supervisors}function i(e,t){return e.listeners||(e.listeners={}),t&&!e.listeners[t]&&(e.listeners[t]=[]),t?e.listeners[t]:e.listeners}function s(e){return e.errbacks||(e.errbacks=[]),e.errbacks}function o(o){function u(e,n,r){try{n.listener.apply(n.thisp||o,r)}catch(i){t(e,i,s(o))}}return o=o||{},o.on=function(e,t,s){if(typeof e=="function")return r(this).push({listener:e,thisp:t});i(this,e).push({listener:n(t),thisp:s})},o.off=function(e,t){var n,o,u,a;if(!e){n=r(this),n.splice(0,n.length),o=i(this);for(u in o)o.hasOwnProperty(u)&&(n=i(this,u),n.splice(0,n.length));n=s(this),n.splice(0,n.length);return}typeof e=="function"?(n=r(this),t=e):n=i(this,e);if(!t){n.splice(0,n.length);return}for(u=0,a=n.length;u<a;++u)if(n[u].listener===t){n.splice(u,1);return}},o.once=function(e,t,n){var r=function(){o.off(e,r),t.apply(this,arguments)};o.on(e,r,n)},o.bind=function(e,t){var n,r,i;if(!t)for(n in e)typeof e[n]=="function"&&this.on(n,e[n],e);else for(r=0,i=t.length;r<i;++r){if(typeof e[t[r]]!="function")throw new Error("No such method "+t[r]);this.on(t[r],e[t[r]],e)}return e},o.emit=function(t){var n=r(this),s=e.call(arguments),o,a;for(o=0,a=n.length;o<a;++o)u(t,n[o],s);n=i(this,t).slice(),s=e.call(arguments,1);for(o=0,a=n.length;o<a;++o)u(t,n[o],s)},o.errback=function(e){this.errbacks||(this.errbacks=[]),this.errbacks.push(n(e))},o}var e=Array.prototype.slice;return{createEventEmitter:o}}),typeof window!="undefined"&&(window.define=function(e){try{delete window.define}catch(t){window.define=void 0}window.when=e()},window.define.amd={}),function(e,t){"use strict";e(function(e){function n(e,t,n,r){return i(e).then(t,n,r)}function r(e,t){this._message=e,this.inspect=t}function i(e){return u(function(t){t(e)})}function s(e){return n(e,l)}function o(){function r(r,s,o){e.resolve=e.resolver.resolve=function(e){return n?i(e):(n=!0,r(e),t)},e.reject=e.resolver.reject=function(e){return n?i(l(e)):(n=!0,s(e),t)},e.notify=e.resolver.notify=function(e){return o(e),e}}var e,t,n;return e={promise:R,resolve:R,reject:R,notify:R,resolver:{resolve:R,reject:R,notify:R}},e.promise=t=u(r),e}function u(e){return a(e,I.PromiseStatus&&I.PromiseStatus())}function a(e,t){function u(e,t,n,r){function o(i){i._message(e,t,n,r)}s?s.push(o):U(function(){o(i)})}function a(){return i?i.inspect():A()}function f(e){if(!s)return;i=p(e),m(s,i),s=R,t&&g(i,t)}function c(e){f(l(e))}function d(e){s&&m(s,h(e))}var n,i,s=[];n=new r(u,a),n._status=t;try{e(f,c,d)}catch(o){c(o)}return n}function f(e){return c(new d(e),function(){return k(e)})}function l(e){return c(new v(e),function(){return L(e)})}function c(e,t){return new r(function(t,n,r){try{r(e[t].apply(e,n))}catch(i){r(l(i))}},t)}function h(e){return new r(function(t,n,r,i){var s=n[2];try{i(typeof s=="function"?s(e):e)}catch(o){i(o)}})}function p(e){return e instanceof r?e:e===Object(e)&&"then"in e?u(function(t,n,r){U(function(){try{var i=e.then;typeof i=="function"?_(i,e,t,n,r):t(f(e))}catch(s){n(s)}})}):f(e)}function d(e){this.value=e}function v(e){this.reason=e}function m(e,t){U(function(){var n,r=0;while(n=e[r++])n(t)})}function g(e,t){function n(){t.fulfilled()}function r(e){t.rejected(e)}e.then(n,r)}function y(e){return e&&typeof e.then=="function"}function b(e,t,r,i,s){return n(e,function(e){function o(r,i,s){function d(e){c(e)}function v(e){l(e)}var o,u,a,f,l,c,h,p;h=e.length>>>0,o=Math.max(0,Math.min(t,h)),a=[],u=h-o+1,f=[];if(!o)r(a);else{c=function(e){f.push(e),--u||(l=c=V,i(f))},l=function(e){a.push(e),--o||(l=c=V,r(a))};for(p=0;p<h;++p)p in e&&n(e[p],v,d,s)}}return u(o).then(r,i,s)})}function w(e,t,n,r){function i(e){return t?t(e[0]):e[0]}return b(e,1,i,n,r)}function E(e,t,n,r){return N(e,V).then(t,n,r)}function S(){return N(arguments,V)}function x(e){return N(e,k,L)}function T(e,t){return N(e,t)}function N(e,t,r){return n(e,function(e){function i(i,s,o){function c(e,a){n(e,t,r).then(function(e){u[a]=e,o(e),--f||i(u)},s)}var u,a,f,l;f=a=e.length>>>0,u=[];if(!f){i(u);return}for(l=0;l<a;l++)l in e?c(e[l],l):--f}return a(i)})}function C(e,t){var r=_(M,arguments,1);return n(e,function(e){var i;return i=e.length,r[0]=function(e,r,s){return n(e,function(e){return n(r,function(n){return t(e,n,s,i)})})},O.apply(e,r)})}function k(e){return{state:"fulfilled",value:e}}function L(e){return{state:"rejected",reason:e}}function A(){return{state:"pending"}}function U(e){P.push(e)===1&&D(z)}function z(){var e,t=0;while(e=P[t++])e();P=[]}function V(e){return e}n.promise=u,n.resolve=i,n.reject=s,n.defer=o,n.join=S,n.all=E,n.map=T,n.reduce=C,n.settle=x,n.any=w,n.some=b,n.isPromise=y,n.isPromiseLike=y,r.prototype={then:function(e,t,n){var r,i;return r=arguments,i=this._message,a(function(e,t,n){i("when",r,e,n)},this._status&&this._status.observed())},otherwise:function(e){return this.then(R,e)},ensure:function(e){function t(){return i(e())}return this.then(t,t).yield(this)},yield:function(e){return this.then(function(){return e})},tap:function(e){return this.then(e).yield(this)},spread:function(e){return this.then(function(t){return E(t,function(t){return e.apply(R,t)})})},always:function(e,t){return this.then(e,e,t)}},d.prototype.when=function(e){return typeof e=="function"?e(this.value):this.value},v.prototype.when=function(e,t){if(typeof t=="function")return t(this.reason);throw this.reason};var O,M,_,D,P,H,B,j,F,I,q,R;q=e,P=[],H=t.setTimeout,I=typeof console!="undefined"?console:n;if(typeof setImmediate=="function")D=setImmediate.bind(t);else if(typeof MessageChannel!="undefined"){var W=new MessageChannel;W.port1.onmessage=z,D=function(){W.port2.postMessage(0)}}else if(typeof process=="object"&&process.nextTick)D=process.nextTick;else try{D=q("vertx").runOnLoop||q("vertx").runOnContext}catch(X){D=function(e){H(e,0)}}return B=Function.prototype,j=B.call,_=B.bind?j.bind(j):function(e,t){return e.apply(t,M.call(arguments,2))},F=[],M=F.slice,O=F.reduce||function(e){var t,n,r,i,s;s=0,t=Object(this),i=t.length>>>0,n=arguments;if(n.length<=1)for(;;){if(s in t){r=t[s++];break}if(++s>=i)throw new TypeError}else r=n[1];for(;s<i;++s)s in t&&(r=e(r,t[s],s,t));return r},n})}(typeof define=="function"&&define.amd?define:function(e){module.exports=e(require)},this);if(typeof module=="object"&&typeof require=="function")var bane=require("bane"),websocket=require("faye-websocket"),when=require("when");typeof module=="object"&&typeof require=="function"?Mopidy.WebSocket=websocket.Client:Mopidy.WebSocket=window.WebSocket,Mopidy.prototype._configure=function(e){var t=typeof document!="undefined"&&document.location.host||"localhost";return e.webSocketUrl=e.webSocketUrl||"ws://"+t+"/mopidy/ws/",e.autoConnect!==!1&&(e.autoConnect=!0),e.backoffDelayMin=e.backoffDelayMin||1e3,e.backoffDelayMax=e.backoffDelayMax||64e3,e},Mopidy.prototype._getConsole=function(){var e=typeof e!="undefined"&&e||{};return e.log=e.log||function(){},e.warn=e.warn||function(){},e.error=e.error||function(){},e},Mopidy.prototype._delegateEvents=function(){this.off("websocket:close"),this.off("websocket:error"),this.off("websocket:incomingMessage"),this.off("websocket:open"),this.off("state:offline"),this.on("websocket:close",this._cleanup),this.on("websocket:error",this._handleWebSocketError),this.on("websocket:incomingMessage",this._handleMessage),this.on("websocket:open",this._resetBackoffDelay),this.on("websocket:open",this._getApiSpec),this.on("state:offline",this._reconnect)},Mopidy.prototype.connect=function(){if(this._webSocket){if(this._webSocket.readyState===Mopidy.WebSocket.OPEN)return;this._webSocket.close()}this._webSocket=this._settings.webSocket||new Mopidy.WebSocket(this._settings.webSocketUrl),this._webSocket.onclose=function(e){this.emit("websocket:close",e)}.bind(this),this._webSocket.onerror=function(e){this.emit("websocket:error",e)}.bind(this),this._webSocket.onopen=function(){this.emit("websocket:open")}.bind(this),this._webSocket.onmessage=function(e){this.emit("websocket:incomingMessage",e)}.bind(this)},Mopidy.prototype._cleanup=function(e){Object.keys(this._pendingRequests).forEach(function(t){var n=this._pendingRequests[t];delete this._pendingRequests[t],n.reject({message:"WebSocket closed",closeEvent:e})}.bind(this)),this.emit("state:offline")},Mopidy.prototype._reconnect=function(){this.emit("reconnectionPending",{timeToAttempt:this._backoffDelay}),setTimeout(function(){this.emit("reconnecting"),this.connect()}.bind(this),this._backoffDelay),this._backoffDelay=this._backoffDelay*2,this._backoffDelay>this._settings.backoffDelayMax&&(this._backoffDelay=this._settings.backoffDelayMax)},Mopidy.prototype._resetBackoffDelay=function(){this._backoffDelay=this._settings.backoffDelayMin},Mopidy.prototype.close=function(){this.off("state:offline",this._reconnect),this._webSocket.close()},Mopidy.prototype._handleWebSocketError=function(e){this._console.warn("WebSocket error:",e.stack||e)},Mopidy.prototype._send=function(e){var t=when.defer();switch(this._webSocket.readyState){case Mopidy.WebSocket.CONNECTING:t.resolver.reject({message:"WebSocket is still connecting"});break;case Mopidy.WebSocket.CLOSING:t.resolver.reject({message:"WebSocket is closing"});break;case Mopidy.WebSocket.CLOSED:t.resolver.reject({message:"WebSocket is closed"});break;default:e.jsonrpc="2.0",e.id=this._nextRequestId(),this._pendingRequests[e.id]=t.resolver,this._webSocket.send(JSON.stringify(e)),this.emit("websocket:outgoingMessage",e)}return t.promise},Mopidy.prototype._nextRequestId=function(){var e=-1;return function(){return e+=1,e}}(),Mopidy.prototype._handleMessage=function(e){try{var t=JSON.parse(e.data);t.hasOwnProperty("id")?this._handleResponse(t):t.hasOwnProperty("event")?this._handleEvent(t):this._console.warn("Unknown message type received. Message was: "+e.data)}catch(n){if(!(n instanceof SyntaxError))throw n;this._console.warn("WebSocket message parsing failed. Message was: "+e.data)}},Mopidy.prototype._handleResponse=function(e){if(!this._pendingRequests.hasOwnProperty(e.id)){this._console.warn("Unexpected response received. Message was:",e);return}var t=this._pendingRequests[e.id];delete this._pendingRequests[e.id],e.hasOwnProperty("result")?t.resolve(e.result):e.hasOwnProperty("error")?(t.reject(e.error),this._console.warn("Server returned error:",e.error)):(t.reject({message:"Response without 'result' or 'error' received",data:{response:e}}),this._console.warn("Response without 'result' or 'error' received. Message was:",e))},Mopidy.prototype._handleEvent=function(e){var t=e.event,n=e;delete n.event,this.emit("event:"+this._snakeToCamel(t),n)},Mopidy.prototype._getApiSpec=function(){return this._send({method:"core.describe"}).then(this._createApi.bind(this),this._handleWebSocketError).then(null,this._handleWebSocketError)},Mopidy.prototype._createApi=function(e){var t=function(e){return function(){var t=Array.prototype.slice.call(arguments);return this._send({method:e,params:t})}.bind(this)}.bind(this),n=function(e){var t=e.split(".");return t.length>=1&&t[0]==="core"&&(t=t.slice(1)),t},r=function(e){var t=this;return e.forEach(function(e){e=this._snakeToCamel(e),t[e]=t[e]||{},t=t[e]}.bind(this)),t}.bind(this),i=function(i){var s=n(i),o=this._snakeToCamel(s.slice(-1)[0]),u=r(s.slice(0,-1));u[o]=t(i),u[o].description=e[i].description,u[o].params=e[i].params}.bind(this);Object.keys(e).forEach(i),this.emit("state:online")},Mopidy.prototype._snakeToCamel=function(e){return e.replace(/(_[a-z])/g,function(e){return e.toUpperCase().replace("_","")})},typeof exports=="object"&&(exports.Mopidy=Mopidy);