javascript-ampache 1.0.8 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +50 -47
  2. package/dist/base.d.ts +6 -0
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.m.js +1 -1
  6. package/dist/index.m.js.map +1 -1
  7. package/dist/index.modern.mjs +1 -1
  8. package/dist/index.modern.mjs.map +1 -1
  9. package/dist/index.umd.js +1 -1
  10. package/dist/index.umd.js.map +1 -1
  11. package/package.json +38 -38
  12. package/src/albums/index.ts +86 -86
  13. package/src/albums/types.ts +38 -32
  14. package/src/artists/index.ts +88 -88
  15. package/src/artists/types.ts +38 -32
  16. package/src/auth/index.ts +103 -103
  17. package/src/auth/types.ts +25 -25
  18. package/src/base.ts +134 -97
  19. package/src/bookmarks/index.ts +115 -122
  20. package/src/bookmarks/types.ts +15 -9
  21. package/src/catalogs/index.ts +130 -119
  22. package/src/catalogs/types.ts +27 -15
  23. package/src/genres/index.ts +39 -40
  24. package/src/genres/types.ts +23 -17
  25. package/src/index.ts +63 -26
  26. package/src/labels/index.ts +43 -44
  27. package/src/labels/types.ts +20 -14
  28. package/src/licenses/index.ts +43 -44
  29. package/src/licenses/types.ts +14 -8
  30. package/src/live-streams/index.ts +104 -107
  31. package/src/live-streams/types.ts +16 -10
  32. package/src/playlists/index.ts +264 -269
  33. package/src/playlists/types.ts +20 -14
  34. package/src/podcasts/index.ts +174 -177
  35. package/src/podcasts/types.ts +85 -67
  36. package/src/preferences/index.ts +114 -116
  37. package/src/preferences/types.ts +18 -12
  38. package/src/shares/index.ts +100 -96
  39. package/src/shares/types.ts +25 -19
  40. package/src/shouts/index.ts +18 -22
  41. package/src/shouts/types.ts +9 -9
  42. package/src/songs/index.ts +208 -203
  43. package/src/songs/types.ts +77 -65
  44. package/src/system/index.ts +689 -572
  45. package/src/system/types.ts +33 -19
  46. package/src/users/index.ts +227 -245
  47. package/src/users/types.ts +38 -32
  48. package/src/utils.ts +25 -25
  49. package/src/videos/index.ts +49 -53
  50. package/src/videos/types.ts +42 -30
package/README.md CHANGED
@@ -1,47 +1,50 @@
1
- # javascript-ampache
2
-
3
- A JS client for the Ampache API written in Typescript.
4
-
5
- ## Installation
6
-
7
- ```bash
8
- npm install javascript-ampache
9
- ```
10
-
11
- ## Usage
12
-
13
- Import `javascript-ampache` module in your project and initialize it with the URL to your server e.g. http://music.com.au
14
-
15
- ```js
16
- import AmpacheAPI from 'javascript-ampache';
17
-
18
- const API = new AmpacheAPI({ url: 'http://pathToYourAmpacheServer', sessionKey: yourSessionAuthKey }); // debug: true - will log the final GET to console
19
-
20
- // either set the session key at time of instantiation or set/update with:
21
- API.setSessionKey(yourSessionAuthKey);
22
-
23
- let allUsers = API.users();
24
-
25
- let thisAlbum = API.album({ filter: 123 });
26
-
27
- let results = API.advancedSearch({
28
- type: "album",
29
- operator: "and",
30
- random: 1,
31
- limit: 20,
32
- rules: [
33
- ['title', 0, 'monkey'], // Title contains 'monkey'
34
- ['myrating', 2, 4] // Rating is 4 stars
35
- ]
36
- });
37
- ```
38
-
39
- ## Build
40
- ```bash
41
- npm run build
42
- ```
43
-
44
- ### Special thanks
45
- https://lyamkin.com/blog/how-to-build-api-client-library-in-js/ & https://github.com/ilyamkin/dev-to-js
46
-
47
-
1
+ # javascript-ampache
2
+
3
+ A JS client for the Ampache API written in Typescript.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install javascript-ampache
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ Import `javascript-ampache` module in your project and initialize it with the URL to your server e.g. http://music.com.au
14
+
15
+ ```js
16
+ import AmpacheAPI from "javascript-ampache";
17
+
18
+ const API = new AmpacheAPI({
19
+ url: "http://pathToYourAmpacheServer",
20
+ sessionKey: yourSessionAuthKey,
21
+ }); // debug: true - will log the final GET to console
22
+
23
+ // either set the session key at time of instantiation or set/update with:
24
+ API.setSessionKey(yourSessionAuthKey);
25
+
26
+ let allUsers = API.users();
27
+
28
+ let thisAlbum = API.album({ filter: 123 });
29
+
30
+ let results = API.advancedSearch({
31
+ type: "album",
32
+ operator: "and",
33
+ random: 1,
34
+ limit: 20,
35
+ rules: [
36
+ ["title", 0, "monkey"], // Title contains 'monkey'
37
+ ["myrating", 2, 4], // Rating is 4 stars
38
+ ],
39
+ });
40
+ ```
41
+
42
+ ## Build
43
+
44
+ ```bash
45
+ npm run build
46
+ ```
47
+
48
+ ### Special thanks
49
+
50
+ https://lyamkin.com/blog/how-to-build-api-client-library-in-js/ & https://github.com/ilyamkin/dev-to-js
package/dist/base.d.ts CHANGED
@@ -35,5 +35,11 @@ export declare abstract class Base {
35
35
  protected request<T>(endpoint: string): Promise<T>;
36
36
  protected binary<T>(endpoint: string): Promise<Blob>;
37
37
  setSessionKey(sessionKey: string): void;
38
+ /**
39
+ * Construct and return a URL
40
+ * @param endpoint
41
+ * @param [params]
42
+ */
43
+ rawURL(endpoint: string, params?: {}): string;
38
44
  }
39
45
  export {};
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- function e(e,r){e.prototype=Object.create(r.prototype),e.prototype.constructor=e,t(e,r)}function t(e,r){return t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},t(e,r)}var r=Object.prototype.hasOwnProperty;function n(e){try{return encodeURIComponent(e)}catch(e){return null}}var s=function(e,t){t=t||"";var s,o,i=[];for(o in"string"!=typeof t&&(t="?"),e)if(r.call(e,o)){if((s=e[o])||null!=s&&!isNaN(s)||(s=""),o=n(o),s=n(s),null===o||null===s)continue;i.push(o+"="+s)}return i.length?t+i.join("&"):""},o={__proto__:null,default:function(e,t){return t=t||{},new Promise(function(r,n){var s=new XMLHttpRequest,o=[],i=[],u={},a=function(){return{ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(s.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return i},get:function(e){return u[e.toLowerCase()]},has:function(e){return e.toLowerCase()in u}}}};for(var c in s.open(t.method||"get",e,!0),s.onload=function(){s.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(e,t,r){o.push(t=t.toLowerCase()),i.push([t,r]),u[t]=u[t]?u[t]+","+r:r}),r(a())},s.onerror=n,s.withCredentials="include"==t.credentials,t.headers)s.setRequestHeader(c,t.headers[c]);s.send(t.body||null)})}},i=self.fetch||(self.fetch=o.default||o),u=/*#__PURE__*/function(){function e(e){this.sessionKey=void 0,this.url=void 0,this.version="6.3.0",this.debug=void 0,this.sessionKey=e.sessionKey||null,this.url=e.url,this.debug=e.debug||!1}var t=e.prototype;return t.request=function(e){var t=this.url+"/server/json.server.php?action="+e+"&version="+this.version;return this.debug&&console.debug("javascript-ampache query URL %c"+t+"&auth="+this.sessionKey,"color: black; font-style: italic; background-color: orange;padding: 2px"),i(t,{method:"GET",headers:{Authorization:"Bearer "+this.sessionKey}}).then(function(e){if(e.ok)return e.json();throw new Error(e.statusText)})},t.binary=function(e){var t=this.url+"/server/json.server.php?action="+e+"&version="+this.version;return this.debug&&console.debug("javascript-ampache query URL %c"+t+"&auth="+this.sessionKey,"color: black; font-style: italic; background-color: orange;padding: 2px"),i(t,{method:"GET",headers:{Authorization:"Bearer "+this.sessionKey}}).then(function(e){return e.blob()}).then(function(e){return e})},t.setSessionKey=function(e){this.sessionKey=e},e}(),a=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.albums=function(e){try{var t="albums";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.album?e.album:e})}catch(e){return Promise.reject(e)}},n.album=function(e){var t="album";return t+=s(e,"&"),this.request(t)},n.artistAlbums=function(e){try{var t="artist_albums";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.album?e.album:e})}catch(e){return Promise.reject(e)}},n.genreAlbums=function(e){try{var t="genre_albums";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.album?e.album:e})}catch(e){return Promise.reject(e)}},r}(u),c=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.artists=function(e){try{var t="artists";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.artist?e.artist:e})}catch(e){return Promise.reject(e)}},n.artist=function(e){var t="artist";return t+=s(e,"&"),this.request(t)},n.genreArtists=function(e){try{var t="genre_artists";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.artist?e.artist:e})}catch(e){return Promise.reject(e)}},n.labelArtists=function(e){try{var t="label_artists";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.artist?e.artist:e})}catch(e){return Promise.reject(e)}},r}(u);const h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l="ARRAYBUFFER not supported by this environment",f="UINT8ARRAY not supported by this environment";function p(e,t,r,n){let s,o,i;const u=t||[0],a=(r=r||0)>>>3,c=-1===n?3:0;for(s=0;s<e.length;s+=1)i=s+a,o=i>>>2,u.length<=o&&u.push(0),u[o]|=e[s]<<8*(c+n*(i%4));return{value:u,binLen:8*e.length+r}}function v(e,t,r){switch(t){case"UTF8":case"UTF16BE":case"UTF16LE":break;default:throw new Error("encoding must be UTF8, UTF16BE, or UTF16LE")}switch(e){case"HEX":return function(e,t,n){return function(e,t,r,n){let s,o,i,u;if(0!=e.length%2)throw new Error("String of HEX type must be in byte increments");const a=t||[0],c=(r=r||0)>>>3,h=-1===n?3:0;for(s=0;s<e.length;s+=2){if(o=parseInt(e.substr(s,2),16),isNaN(o))throw new Error("String of HEX type contains invalid characters");for(u=(s>>>1)+c,i=u>>>2;a.length<=i;)a.push(0);a[i]|=o<<8*(h+n*(u%4))}return{value:a,binLen:4*e.length+r}}(e,t,n,r)};case"TEXT":return function(e,n,s){return function(e,t,r,n,s){let o,i,u,a,c,h,l,f,p=0;const v=r||[0],d=(n=n||0)>>>3;if("UTF8"===t)for(l=-1===s?3:0,u=0;u<e.length;u+=1)for(o=e.charCodeAt(u),i=[],128>o?i.push(o):2048>o?(i.push(192|o>>>6),i.push(128|63&o)):55296>o||57344<=o?i.push(224|o>>>12,128|o>>>6&63,128|63&o):(u+=1,o=65536+((1023&o)<<10|1023&e.charCodeAt(u)),i.push(240|o>>>18,128|o>>>12&63,128|o>>>6&63,128|63&o)),a=0;a<i.length;a+=1){for(h=p+d,c=h>>>2;v.length<=c;)v.push(0);v[c]|=i[a]<<8*(l+s*(h%4)),p+=1}else for(l=-1===s?2:0,f="UTF16LE"===t&&1!==s||"UTF16LE"!==t&&1===s,u=0;u<e.length;u+=1){for(o=e.charCodeAt(u),!0===f&&(a=255&o,o=a<<8|o>>>8),h=p+d,c=h>>>2;v.length<=c;)v.push(0);v[c]|=o<<8*(l+s*(h%4)),p+=2}return{value:v,binLen:8*p+n}}(e,t,n,s,r)};case"B64":return function(e,t,n){return function(e,t,r,n){let s,o,i,u,a,c,l,f=0;const p=t||[0],v=(r=r||0)>>>3,d=-1===n?3:0,m=e.indexOf("=");if(-1===e.search(/^[a-zA-Z0-9=+/]+$/))throw new Error("Invalid character in base-64 string");if(e=e.replace(/=/g,""),-1!==m&&m<e.length)throw new Error("Invalid '=' found in base-64 string");for(o=0;o<e.length;o+=4){for(a=e.substr(o,4),u=0,i=0;i<a.length;i+=1)s=h.indexOf(a.charAt(i)),u|=s<<18-6*i;for(i=0;i<a.length-1;i+=1){for(l=f+v,c=l>>>2;p.length<=c;)p.push(0);p[c]|=(u>>>16-8*i&255)<<8*(d+n*(l%4)),f+=1}}return{value:p,binLen:8*f+r}}(e,t,n,r)};case"BYTES":return function(e,t,n){return function(e,t,r,n){let s,o,i,u;const a=t||[0],c=(r=r||0)>>>3,h=-1===n?3:0;for(o=0;o<e.length;o+=1)s=e.charCodeAt(o),u=o+c,i=u>>>2,a.length<=i&&a.push(0),a[i]|=s<<8*(h+n*(u%4));return{value:a,binLen:8*e.length+r}}(e,t,n,r)};case"ARRAYBUFFER":try{new ArrayBuffer(0)}catch(e){throw new Error(l)}return function(e,t,n){return function(e,t,r,n){return p(new Uint8Array(e),t,r,n)}(e,t,n,r)};case"UINT8ARRAY":try{new Uint8Array(0)}catch(e){throw new Error(f)}return function(e,t,n){return p(e,t,n,r)};default:throw new Error("format must be HEX, TEXT, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY")}}function d(e,t,r,n){switch(e){case"HEX":return function(e){return function(e,t,r,n){const s="0123456789abcdef";let o,i,u="";const a=t/8,c=-1===r?3:0;for(o=0;o<a;o+=1)i=e[o>>>2]>>>8*(c+r*(o%4)),u+=s.charAt(i>>>4&15)+s.charAt(15&i);return n.outputUpper?u.toUpperCase():u}(e,t,r,n)};case"B64":return function(e){return function(e,t,r,n){let s,o,i,u,a,c="";const l=t/8,f=-1===r?3:0;for(s=0;s<l;s+=3)for(u=s+1<l?e[s+1>>>2]:0,a=s+2<l?e[s+2>>>2]:0,i=(e[s>>>2]>>>8*(f+r*(s%4))&255)<<16|(u>>>8*(f+r*((s+1)%4))&255)<<8|a>>>8*(f+r*((s+2)%4))&255,o=0;o<4;o+=1)c+=8*s+6*o<=t?h.charAt(i>>>6*(3-o)&63):n.b64Pad;return c}(e,t,r,n)};case"BYTES":return function(e){return function(e,t,r){let n,s,o="";const i=t/8,u=-1===r?3:0;for(n=0;n<i;n+=1)s=e[n>>>2]>>>8*(u+r*(n%4))&255,o+=String.fromCharCode(s);return o}(e,t,r)};case"ARRAYBUFFER":try{new ArrayBuffer(0)}catch(e){throw new Error(l)}return function(e){return function(e,t,r){let n;const s=t/8,o=new ArrayBuffer(s),i=new Uint8Array(o),u=-1===r?3:0;for(n=0;n<s;n+=1)i[n]=e[n>>>2]>>>8*(u+r*(n%4))&255;return o}(e,t,r)};case"UINT8ARRAY":try{new Uint8Array(0)}catch(e){throw new Error(f)}return function(e){return function(e,t,r){let n;const s=t/8,o=-1===r?3:0,i=new Uint8Array(s);for(n=0;n<s;n+=1)i[n]=e[n>>>2]>>>8*(o+r*(n%4))&255;return i}(e,t,r)};default:throw new Error("format must be HEX, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY")}}const m=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],y=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428],g=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];function P(e){const t={outputUpper:!1,b64Pad:"=",outputLen:-1},r=e||{},n="Output length must be a multiple of 8";if(t.outputUpper=r.outputUpper||!1,r.b64Pad&&(t.b64Pad=r.b64Pad),r.outputLen){if(r.outputLen%8!=0)throw new Error(n);t.outputLen=r.outputLen}else if(r.shakeLen){if(r.shakeLen%8!=0)throw new Error(n);t.outputLen=r.shakeLen}if("boolean"!=typeof t.outputUpper)throw new Error("Invalid outputUpper formatting option");if("string"!=typeof t.b64Pad)throw new Error("Invalid b64Pad formatting option");return t}class q{constructor(e,t,r){const n=r||{};if(this.t=t,this.i=n.encoding||"UTF8",this.numRounds=n.numRounds||1,isNaN(this.numRounds)||this.numRounds!==parseInt(this.numRounds,10)||1>this.numRounds)throw new Error("numRounds must a integer >= 1");this.o=e,this.h=[],this.u=0,this.l=!1,this.A=0,this.p=!1,this.U=[],this.R=[]}update(e){let t,r=0;const n=this.T>>>5,s=this.F(e,this.h,this.u),o=s.binLen,i=s.value,u=o>>>5;for(t=0;t<u;t+=n)r+this.T<=o&&(this.m=this.g(i.slice(t,t+n),this.m),r+=this.T);return this.A+=r,this.h=i.slice(r>>>5),this.u=o%this.T,this.l=!0,this}getHash(e,t){let r,n,s=this.H;const o=P(t);if(this.B){if(-1===o.outputLen)throw new Error("Output length must be specified in options");s=o.outputLen}const i=d(e,s,this.v,o);if(this.p&&this.C)return i(this.C(o));for(n=this.Y(this.h.slice(),this.u,this.A,this.S(this.m),s),r=1;r<this.numRounds;r+=1)this.B&&s%32!=0&&(n[n.length-1]&=16777215>>>24-s%32),n=this.Y(n,s,0,this.I(this.o),s);return i(n)}setHMACKey(e,t,r){if(!this.L)throw new Error("Variant does not support HMAC");if(this.l)throw new Error("Cannot set MAC key after calling update");const n=v(t,(r||{}).encoding||"UTF8",this.v);this.M(n(e))}M(e){const t=this.T>>>3,r=t/4-1;let n;if(1!==this.numRounds)throw new Error("Cannot set numRounds with MAC");if(this.p)throw new Error("MAC key already set");for(t<e.binLen/8&&(e.value=this.Y(e.value,e.binLen,0,this.I(this.o),this.H));e.value.length<=r;)e.value.push(0);for(n=0;n<=r;n+=1)this.U[n]=909522486^e.value[n],this.R[n]=1549556828^e.value[n];this.m=this.g(this.U,this.m),this.A=this.T,this.p=!0}getHMAC(e,t){const r=P(t);return d(e,this.H,this.v,r)(this.N())}N(){let e;if(!this.p)throw new Error("Cannot call getHMAC without first setting MAC key");const t=this.Y(this.h.slice(),this.u,this.A,this.S(this.m),this.H);return e=this.g(this.R,this.I(this.o)),e=this.Y(t,this.H,this.T,e,this.H),e}}function _(e,t){return e>>>t|e<<32-t}function b(e,t){return e>>>t}function w(e,t,r){return e&t^~e&r}function A(e,t,r){return e&t^e&r^t&r}function j(e){return _(e,2)^_(e,13)^_(e,22)}function E(e,t){const r=(65535&e)+(65535&t);return(65535&(e>>>16)+(t>>>16)+(r>>>16))<<16|65535&r}function R(e,t,r,n){const s=(65535&e)+(65535&t)+(65535&r)+(65535&n);return(65535&(e>>>16)+(t>>>16)+(r>>>16)+(n>>>16)+(s>>>16))<<16|65535&s}function T(e,t,r,n,s){const o=(65535&e)+(65535&t)+(65535&r)+(65535&n)+(65535&s);return(65535&(e>>>16)+(t>>>16)+(r>>>16)+(n>>>16)+(s>>>16)+(o>>>16))<<16|65535&o}function U(e){return _(e,7)^_(e,18)^b(e,3)}function k(e){return _(e,6)^_(e,11)^_(e,25)}function S(e){let t;return t="SHA-224"==e?y.slice():g.slice(),t}function C(e,t){let r,n,s,o,i,u,a,c,h,l,f;const p=[];for(r=t[0],n=t[1],s=t[2],o=t[3],i=t[4],u=t[5],a=t[6],c=t[7],f=0;f<64;f+=1)p[f]=f<16?e[f]:R(_(v=p[f-2],17)^_(v,19)^b(v,10),p[f-7],U(p[f-15]),p[f-16]),h=T(c,k(i),w(i,u,a),m[f],p[f]),l=E(j(r),A(r,n,s)),c=a,a=u,u=i,i=E(o,h),o=s,s=n,n=r,r=E(h,l);var v;return t[0]=E(r,t[0]),t[1]=E(n,t[1]),t[2]=E(s,t[2]),t[3]=E(o,t[3]),t[4]=E(i,t[4]),t[5]=E(u,t[5]),t[6]=E(a,t[6]),t[7]=E(c,t[7]),t}class L extends q{constructor(e,t,r){if("SHA-224"!==e&&"SHA-256"!==e)throw new Error("Chosen SHA variant is not supported");super(e,t,r);const n=r||{};this.C=this.N,this.L=!0,this.v=-1,this.F=v(this.t,this.i,this.v),this.g=C,this.S=function(e){return e.slice()},this.I=S,this.Y=function(t,r,n,s){return function(e,t,r,n,s){let o,i;const u=15+(t+65>>>9<<4),a=t+r;for(;e.length<=u;)e.push(0);for(e[t>>>5]|=128<<24-t%32,e[u]=4294967295&a,e[u-1]=a/4294967296|0,o=0;o<e.length;o+=16)n=C(e.slice(o,o+16),n);return i="SHA-224"===s?[n[0],n[1],n[2],n[3],n[4],n[5],n[6]]:n,i}(t,r,n,s,e)},this.m=S(e),this.T=512,this.H="SHA-224"===e?224:256,this.B=!1,n.hmacKey&&this.M(function(e,t,r,n){const s="hmacKey must include a value and format";if(!t)throw new Error(s);if(void 0===t.value||!t.format)throw new Error(s);return v(t.format,t.encoding||"UTF8",r)(t.value)}(0,n.hmacKey,this.v))}}var H,F=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.handshake=function(e){var t=this;e.timestamp||(e.timestamp=Math.floor((new Date).getTime()/1e3)),e.version&&(this.version=e.version),e.user||delete e.timestamp;var r=this.url+"/server/json.server.php?action=handshake";return r+=s(e,"&"),i(r).then(function(e){return e.json()}).then(function(e){return e.auth&&(t.sessionKey=e.auth),e})},n.ping=function(e){var t="ping";return t+=s(e,"&"),this.request(t)},n.goodbye=function(e){var t="goodbye";return t+=s(e,"&"),this.request(t)},n.lostPassword=function(e){var t="lost_password";return t+=s(e,"&"),this.request(t)},n.encryptPassword=function(e){var t=r(e.password);return r(e.time+t);function r(e){var t=new L("SHA-256","TEXT",{encoding:"UTF8"});return t.update(e),t.getHash("HEX")}},r}(u),B=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.bookmark=function(e){try{var t="bookmark";return t+=s(e,"&"),Promise.resolve(this.request(t))}catch(e){return Promise.reject(e)}},n.bookmarks=function(e){try{var t="bookmarks";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.bookmark?e.bookmark:e})}catch(e){return Promise.reject(e)}},n.getBookmark=function(e){var t="get_bookmark";return t+=s(e,"&"),this.request(t)},n.bookmarkCreate=function(e){var t="bookmark_create";return t+=s(e,"&"),this.request(t)},n.bookmarkEdit=function(e){var t="bookmark_edit";return t+=s(e,"&"),this.request(t)},n.bookmarkDelete=function(e){var t="bookmark_delete";return t+=s(e,"&"),this.request(t)},r}(u),Y=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.catalogs=function(e){try{var t="catalogs";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.catalog?e.catalog:e})}catch(e){return Promise.reject(e)}},n.catalog=function(e){var t="catalog";return t+=s(e,"&"),this.request(t)},n.catalogAction=function(e){var t="catalog_action";return t+=s(e,"&"),this.request(t)},n.catalogFile=function(e){var t="catalog_file";return t+=s(e,"&"),this.request(t)},n.catalogAdd=function(e){var t="catalog_add";return t+=s(e,"&"),this.request(t)},n.catalogDelete=function(e){var t="catalog_delete";return t+=s(e,"&"),this.request(t)},r}(u),I=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.genres=function(e){try{var t="genres";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.genre?e.genre:e})}catch(e){return Promise.reject(e)}},n.genre=function(e){try{var t="genre";return t+=s(e,"&"),Promise.resolve(this.request(t))}catch(e){return Promise.reject(e)}},r}(u),O=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.labels=function(e){try{var t="labels";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.label?e.label:e})}catch(e){return Promise.reject(e)}},n.label=function(e){var t="label";return t+=s(e,"&"),this.request(t)},r}(u),x=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.licenses=function(e){try{var t="licenses";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.license?e.license:e})}catch(e){return Promise.reject(e)}},n.license=function(e){var t="license";return t+=s(e,"&"),this.request(t)},r}(u),N=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.liveStreams=function(e){try{var t="live_streams";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.live_stream?e.live_stream:e})}catch(e){return Promise.reject(e)}},n.liveStream=function(e){var t="live_stream";return t+=s(e,"&"),this.request(t)},n.liveStreamCreate=function(e){var t="live_stream_create";return t+=s(e,"&"),this.request(t)},n.liveStreamEdit=function(e){var t="live_stream_edit";return t+=s(e,"&"),this.request(t)},n.liveStreamDelete=function(e){var t="live_stream_delete";return t+=s(e,"&"),this.request(t)},r}(u),K=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.playlists=function(e){try{var t="playlists";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.playlist?e.playlist:e})}catch(e){return Promise.reject(e)}},n.smartlists=function(e){try{var t="playlists";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){var t=e.playlist?e.playlist:e;return Array.isArray(t)&&(t=t.filter(function(e){return e.id.toString().match(/^smart_/)})),t})}catch(e){return Promise.reject(e)}},n.playlist=function(e){var t="playlist";return t+=s(e,"&"),this.request(t)},n.userPlaylists=function(e){try{var t="user_playlists";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.playlist?e.playlist:e})}catch(e){return Promise.reject(e)}},n.userSmartlists=function(e){try{var t="user_smartlists";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.playlist?e.playlist:e})}catch(e){return Promise.reject(e)}},n.playlistCreate=function(e){var t="playlist_create";return t+=s(e,"&"),this.request(t)},n.playlistAdd=function(e){var t="playlist_add";return t+=s(e,"&"),this.request(t)},n.playlistEdit=function(e){var t="playlist_edit";return t+=s(e,"&"),this.request(t)},n.playlistDelete=function(e){var t="playlist_delete";return t+=s(e,"&"),this.request(t)},n.playlistAddSong=function(e){var t="playlist_add_song";return t+=s(e,"&"),this.request(t)},n.playlistRemoveSong=function(e){var t="playlist_remove_song";return t+=s(e,"&"),this.request(t)},n.playlistGenerate=function(e){try{var t="playlist_generate";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.song?e.song:e})}catch(e){return Promise.reject(e)}},r}(u),M=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.podcasts=function(e){try{var t="podcasts";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.podcast?e.podcast:e})}catch(e){return Promise.reject(e)}},n.podcast=function(e){try{var t="podcast";return t+=s(e,"&"),Promise.resolve(this.request(t))}catch(e){return Promise.reject(e)}},n.podcastCreate=function(e){var t="podcast_create";return t+=s(e,"&"),this.request(t)},n.podcastEdit=function(e){var t="podcast_edit";return t+=s(e,"&"),this.request(t)},n.podcastDelete=function(e){var t="podcast_delete";return t+=s(e,"&"),this.request(t)},n.podcastEpisodes=function(e){try{var t="podcast_episodes";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.podcast_episode?e.podcast_episode:e})}catch(e){return Promise.reject(e)}},n.podcastEpisode=function(e){var t="podcast_episode";return t+=s(e,"&"),this.request(t)},n.podcastEpisodeDelete=function(e){var t="podcast_episode_delete";return t+=s(e,"&"),this.request(t)},n.updatePodcast=function(e){var t="update_podcast";return t+=s(e,"&"),this.request(t)},n.deletedPodcastEpisodes=function(e){try{var t="deleted_podcast_episodes";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.deleted_podcast_episode?e.deleted_podcast_episode:e})}catch(e){return Promise.reject(e)}},r}(u),D=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.systemPreferences=function(){try{return Promise.resolve(this.request("system_preferences")).then(function(e){return e.preference?e.preference:e})}catch(e){return Promise.reject(e)}},n.systemPreference=function(e){try{var t="system_preference";return t+=s(e,"&"),Promise.resolve(this.request(t))}catch(e){return Promise.reject(e)}},n.userPreferences=function(){try{return Promise.resolve(this.request("user_preferences")).then(function(e){return e.preference?e.preference:e})}catch(e){return Promise.reject(e)}},n.userPreference=function(e){try{var t="user_preference";return t+=s(e,"&"),Promise.resolve(this.request(t))}catch(e){return Promise.reject(e)}},n.preferenceCreate=function(e){var t="preference_create";return t+=s(e,"&"),this.request(t)},n.preferenceEdit=function(e){var t="preference_edit";return t+=s(e,"&"),this.request(t)},n.preferenceDelete=function(e){var t="preference_delete";return t+=s(e,"&"),this.request(t)},r}(u),X=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.shares=function(e){try{var t="shares";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.share?e.share:e})}catch(e){return Promise.reject(e)}},n.share=function(e){var t="share";return t+=s(e,"&"),this.request(t)},n.shareCreate=function(e){var t="share_create";return t+=s(e,"&"),this.request(t)},n.shareEdit=function(e){var t="share_edit";return t+=s(e,"&"),this.request(t)},n.shareDelete=function(e){var t="share_delete";return t+=s(e,"&"),this.request(t)},r}(u),z=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}return e(r,t),r.prototype.last_shouts=function(e){try{var t="last_shouts";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.shout?e.shout:e})}catch(e){return Promise.reject(e)}},r}(u),G=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.songs=function(e){try{var t="songs";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.song?e.song:e})}catch(e){return Promise.reject(e)}},n.song=function(e){var t="song";return t+=s(e,"&"),this.request(t)},n.artistSongs=function(e){try{var t="artist_songs";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.song?e.song:e})}catch(e){return Promise.reject(e)}},n.albumSongs=function(e){try{var t="album_songs";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.song?e.song:e})}catch(e){return Promise.reject(e)}},n.genreSongs=function(e){try{var t="genre_songs";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.song?e.song:e})}catch(e){return Promise.reject(e)}},n.playlistSongs=function(e){try{var t="playlist_songs";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.song?e.song:e})}catch(e){return Promise.reject(e)}},n.licenseSongs=function(e){try{var t="license_songs";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.song?e.song:e})}catch(e){return Promise.reject(e)}},n.songDelete=function(e){var t="song_delete";return t+=s(e,"&"),this.request(t)},n.urlToSong=function(e){var t="url_to_song";return e.url=encodeURIComponent(e.url),t+=s(e,"&"),this.request(t)},n.searchSongs=function(e){try{var t="search_songs";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.song?e.song:e})}catch(e){return Promise.reject(e)}},n.deletedSongs=function(e){try{var t="deleted_songs";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.deleted_song?e.deleted_song:e})}catch(e){return Promise.reject(e)}},r}(u),V=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.systemUpdate=function(){return this.request("system_update")},n.getIndexes=function(e){try{var t,r=this,n="get_indexes";switch(n+=s(e,"&"),e.type){case"song":return Promise.resolve(r.request(n)).then(function(e){return(t=e).song?t.song:t});case"album":return Promise.resolve(r.request(n)).then(function(e){return(t=e).album?t.album:t});case"artist":case"album_artist":return Promise.resolve(r.request(n)).then(function(e){return(t=e).artist?t.artist:t});case"playlist":return Promise.resolve(r.request(n)).then(function(e){return(t=e).playlist?t.playlist:t});case"podcast":return Promise.resolve(r.request(n)).then(function(e){return(t=e).podcast?t.podcast:t});case"podcast_episode":return Promise.resolve(r.request(n)).then(function(e){return(t=e).podcast_episode?t.podcast_episode:t});case"live_stream":return Promise.resolve(r.request(n)).then(function(e){return(t=e).live_stream?t.live_stream:t});default:return Promise.resolve(!1)}}catch(e){return Promise.reject(e)}},n.list=function(e){try{var t="list";return t+=s(e,"&"),Promise.resolve(this.request(t))}catch(e){return Promise.reject(e)}},n.index=function(e){try{var t="index";return t+=s(e,"&"),Promise.resolve(this.request(t))}catch(e){return Promise.reject(e)}},n.browse=function(e){try{var t="browse";return t+=s(e,"&"),Promise.resolve(this.request(t))}catch(e){return Promise.reject(e)}},n.getSimilar=function(e){try{var t,r="get_similar";switch(r+=s(e,"&"),e.type){case"song":return Promise.resolve(this.request(r)).then(function(e){return(t=e).song?t.song:t});case"artist":return Promise.resolve(this.request(r)).then(function(e){return(t=e).artist?t.artist:t});default:return Promise.resolve(!1)}}catch(e){return Promise.reject(e)}},n.stats=function(e){try{var t,r=this,n="stats";switch(n+=s(e,"&"),e.type){case"song":return Promise.resolve(r.request(n)).then(function(e){return(t=e).song?t.song:t});case"album":return Promise.resolve(r.request(n)).then(function(e){return(t=e).album?t.album:t});case"artist":return Promise.resolve(r.request(n)).then(function(e){return(t=e).artist?t.artist:t});case"video":return Promise.resolve(r.request(n)).then(function(e){return(t=e).video?t.video:t});case"playlist":return Promise.resolve(r.request(n)).then(function(e){return(t=e).playlist?t.playlist:t});case"podcast":return Promise.resolve(r.request(n)).then(function(e){return(t=e).podcast?t.podcast:t});case"podcast_episode":return Promise.resolve(r.request(n)).then(function(e){return(t=e).podcast_episode?t.podcast_episode:t});default:return Promise.resolve(!1)}}catch(e){return Promise.reject(e)}},n.rate=function(e){var t="rate";return t+=s(e,"&"),this.request(t)},n.flag=function(e){var t="flag";return t+=s(e,"&"),this.request(t)},n.recordPlay=function(e){var t="record_play";return t+=s(e,"&"),this.request(t)},n.scrobble=function(e){var t="scrobble";return t+=s(e,"&"),this.request(t)},n.updateFromTags=function(e){var t="update_from_tags";return t+=s(e,"&"),this.request(t)},n.updateArtistInfo=function(e){var t="update_artist_info";return t+=s(e,"&"),this.request(t)},n.updateArt=function(e){var t="update_art";return t+=s(e,"&"),this.request(t)},n.stream=function(e){var t="stream";return t+=s(e,"&"),this.binary(t)},n.download=function(e){var t="download";return t+=s(e,"&"),this.binary(t)},n.getArt=function(e){var t="get_art";return t+=s(e,"&"),this.binary(t)},n.localplay=function(e){var t="localplay";return t+=s(e,"&"),this.request(t)},n.localplaySongs=function(){return this.request("localplay_songs")},n.democratic=function(e){var t="democratic";return t+=s(e,"&"),this.request(t)},n.advancedSearch=function(e){try{for(var t,r=this,n="advanced_search",o=0;o<e.rules.length;o++){var i=e.rules[o],u=o+1;e["rule_"+u]=i[0],e["rule_"+u+"_operator"]=i[1],e["rule_"+u+"_input"]=i[2],"metadata"===i[0]&&(e["rule_"+u+"_subtype"]=i[3])}switch(delete e.rules,n+=s(e,"&"),e.type){case"song":return Promise.resolve(r.request(n)).then(function(e){return(t=e).song?t.song:t});case"album":return Promise.resolve(r.request(n)).then(function(e){return(t=e).album?t.album:t});case"artist":case"album_artist":case"song_artist":return Promise.resolve(r.request(n)).then(function(e){return(t=e).artist?t.artist:t});case"label":return Promise.resolve(r.request(n)).then(function(e){return(t=e).label?t.label:t});case"playlist":return Promise.resolve(r.request(n)).then(function(e){return(t=e).playlist?t.playlist:t});case"podcast":return Promise.resolve(r.request(n)).then(function(e){return(t=e).podcast?t.podcast:t});case"podcast_episode":return Promise.resolve(r.request(n)).then(function(e){return(t=e).podcast_episode?t.podcast_episode:t});case"genre":return Promise.resolve(r.request(n)).then(function(e){return(t=e).genre?t.genre:t});case"user":return Promise.resolve(r.request(n)).then(function(e){return(t=e).user?t.user:t});case"video":return Promise.resolve(r.request(n)).then(function(e){return(t=e).video?t.video:t});default:return Promise.resolve(!1)}}catch(e){return Promise.reject(e)}},r}(u),J=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.users=function(){try{return Promise.resolve(this.request("users")).then(function(e){return e.user?e.user:e})}catch(e){return Promise.reject(e)}},n.user=function(e){try{var t="user";return t+=s(e,"&"),Promise.resolve(this.request(t))}catch(e){return Promise.reject(e)}},n.userCreate=function(e){var t="user_create";return t+=s(e,"&"),this.request(t)},n.register=function(e){var t="register";return t+=s(e,"&"),this.request(t)},n.userUpdate=function(e){var t="user_update";return t+=s(e,"&"),this.request(t)},n.userEdit=function(e){var t="user_edit";return t+=s(e,"&"),this.request(t)},n.userDelete=function(e){var t="user_delete";return t+=s(e,"&"),this.request(t)},n.followers=function(e){try{var t="followers";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.user?e.user:e})}catch(e){return Promise.reject(e)}},n.following=function(e){try{var t="following";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.user?e.user:e})}catch(e){return Promise.reject(e)}},n.toggleFollow=function(e){var t="toggle_follow";return t+=s(e,"&"),this.request(t)},n.timeline=function(e){try{var t="timeline";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.activity?e.activity:e})}catch(e){return Promise.reject(e)}},n.friendsTimeline=function(e){try{var t="friends_timeline";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.activity?e.activity:e})}catch(e){return Promise.reject(e)}},r}(u),Z=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.videos=function(e){try{var t="videos";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.video?e.video:e})}catch(e){return Promise.reject(e)}},n.video=function(e){var t="video";return t+=s(e,"&"),this.request(t)},n.deletedVideos=function(e){try{var t="deleted_videos";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.deleted_video?e.deleted_video:e})}catch(e){return Promise.reject(e)}},r}(u),$=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}return e(r,t),r}(u);H=$,[a,c,F,B,Y,I,O,x,N,K,M,D,X,z,G,V,J,Z].forEach(function(e){Object.getOwnPropertyNames(e.prototype).forEach(function(t){Object.defineProperty(H.prototype,t,Object.getOwnPropertyDescriptor(e.prototype,t))})}),module.exports=$;
1
+ function e(e,r){e.prototype=Object.create(r.prototype),e.prototype.constructor=e,t(e,r)}function t(e,r){return t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},t(e,r)}var r=Object.prototype.hasOwnProperty;function n(e){try{return encodeURIComponent(e)}catch(e){return null}}var s=function(e,t){t=t||"";var s,o,i=[];for(o in"string"!=typeof t&&(t="?"),e)if(r.call(e,o)){if((s=e[o])||null!=s&&!isNaN(s)||(s=""),o=n(o),s=n(s),null===o||null===s)continue;i.push(o+"="+s)}return i.length?t+i.join("&"):""},o={__proto__:null,default:function(e,t){return t=t||{},new Promise(function(r,n){var s=new XMLHttpRequest,o=[],i=[],u={},a=function(){return{ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(s.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return i},get:function(e){return u[e.toLowerCase()]},has:function(e){return e.toLowerCase()in u}}}};for(var c in s.open(t.method||"get",e,!0),s.onload=function(){s.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(e,t,r){o.push(t=t.toLowerCase()),i.push([t,r]),u[t]=u[t]?u[t]+","+r:r}),r(a())},s.onerror=n,s.withCredentials="include"==t.credentials,t.headers)s.setRequestHeader(c,t.headers[c]);s.send(t.body||null)})}},i=self.fetch||(self.fetch=o.default||o),u=/*#__PURE__*/function(){function e(e){this.sessionKey=void 0,this.url=void 0,this.version="6.3.0",this.debug=void 0,this.sessionKey=e.sessionKey||null,this.url=e.url,this.debug=e.debug||!1}var t=e.prototype;return t.request=function(e){var t=this.url+"/server/json.server.php?action="+e+"&version="+this.version;return this.debug&&console.debug("javascript-ampache query URL %c"+t+"&auth="+this.sessionKey,"color: black; font-style: italic; background-color: orange;padding: 2px"),i(t,{method:"GET",headers:{Authorization:"Bearer "+this.sessionKey}}).then(function(e){if(e.ok)return e.json();throw new Error(e.statusText)})},t.binary=function(e){var t=this.url+"/server/json.server.php?action="+e+"&version="+this.version;return this.debug&&console.debug("javascript-ampache query URL %c"+t+"&auth="+this.sessionKey,"color: black; font-style: italic; background-color: orange;padding: 2px"),i(t,{method:"GET",headers:{Authorization:"Bearer "+this.sessionKey}}).then(function(e){return e.blob()}).then(function(e){return e})},t.setSessionKey=function(e){this.sessionKey=e},t.rawURL=function(e,t){var r=e;r+=s(t,"&");var n=this.url+"/server/json.server.php?action="+r+"&version="+this.version;return this.debug&&console.debug("javascript-ampache query URL %c"+n+"&auth="+this.sessionKey,"color: black; font-style: italic; background-color: orange;padding: 2px"),n},e}(),a=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.albums=function(e){try{var t="albums";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.album?e.album:e})}catch(e){return Promise.reject(e)}},n.album=function(e){var t="album";return t+=s(e,"&"),this.request(t)},n.artistAlbums=function(e){try{var t="artist_albums";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.album?e.album:e})}catch(e){return Promise.reject(e)}},n.genreAlbums=function(e){try{var t="genre_albums";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.album?e.album:e})}catch(e){return Promise.reject(e)}},r}(u),c=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.artists=function(e){try{var t="artists";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.artist?e.artist:e})}catch(e){return Promise.reject(e)}},n.artist=function(e){var t="artist";return t+=s(e,"&"),this.request(t)},n.genreArtists=function(e){try{var t="genre_artists";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.artist?e.artist:e})}catch(e){return Promise.reject(e)}},n.labelArtists=function(e){try{var t="label_artists";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.artist?e.artist:e})}catch(e){return Promise.reject(e)}},r}(u);const h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l="ARRAYBUFFER not supported by this environment",f="UINT8ARRAY not supported by this environment";function p(e,t,r,n){let s,o,i;const u=t||[0],a=(r=r||0)>>>3,c=-1===n?3:0;for(s=0;s<e.length;s+=1)i=s+a,o=i>>>2,u.length<=o&&u.push(0),u[o]|=e[s]<<8*(c+n*(i%4));return{value:u,binLen:8*e.length+r}}function v(e,t,r){switch(t){case"UTF8":case"UTF16BE":case"UTF16LE":break;default:throw new Error("encoding must be UTF8, UTF16BE, or UTF16LE")}switch(e){case"HEX":return function(e,t,n){return function(e,t,r,n){let s,o,i,u;if(0!=e.length%2)throw new Error("String of HEX type must be in byte increments");const a=t||[0],c=(r=r||0)>>>3,h=-1===n?3:0;for(s=0;s<e.length;s+=2){if(o=parseInt(e.substr(s,2),16),isNaN(o))throw new Error("String of HEX type contains invalid characters");for(u=(s>>>1)+c,i=u>>>2;a.length<=i;)a.push(0);a[i]|=o<<8*(h+n*(u%4))}return{value:a,binLen:4*e.length+r}}(e,t,n,r)};case"TEXT":return function(e,n,s){return function(e,t,r,n,s){let o,i,u,a,c,h,l,f,p=0;const v=r||[0],d=(n=n||0)>>>3;if("UTF8"===t)for(l=-1===s?3:0,u=0;u<e.length;u+=1)for(o=e.charCodeAt(u),i=[],128>o?i.push(o):2048>o?(i.push(192|o>>>6),i.push(128|63&o)):55296>o||57344<=o?i.push(224|o>>>12,128|o>>>6&63,128|63&o):(u+=1,o=65536+((1023&o)<<10|1023&e.charCodeAt(u)),i.push(240|o>>>18,128|o>>>12&63,128|o>>>6&63,128|63&o)),a=0;a<i.length;a+=1){for(h=p+d,c=h>>>2;v.length<=c;)v.push(0);v[c]|=i[a]<<8*(l+s*(h%4)),p+=1}else for(l=-1===s?2:0,f="UTF16LE"===t&&1!==s||"UTF16LE"!==t&&1===s,u=0;u<e.length;u+=1){for(o=e.charCodeAt(u),!0===f&&(a=255&o,o=a<<8|o>>>8),h=p+d,c=h>>>2;v.length<=c;)v.push(0);v[c]|=o<<8*(l+s*(h%4)),p+=2}return{value:v,binLen:8*p+n}}(e,t,n,s,r)};case"B64":return function(e,t,n){return function(e,t,r,n){let s,o,i,u,a,c,l,f=0;const p=t||[0],v=(r=r||0)>>>3,d=-1===n?3:0,m=e.indexOf("=");if(-1===e.search(/^[a-zA-Z0-9=+/]+$/))throw new Error("Invalid character in base-64 string");if(e=e.replace(/=/g,""),-1!==m&&m<e.length)throw new Error("Invalid '=' found in base-64 string");for(o=0;o<e.length;o+=4){for(a=e.substr(o,4),u=0,i=0;i<a.length;i+=1)s=h.indexOf(a.charAt(i)),u|=s<<18-6*i;for(i=0;i<a.length-1;i+=1){for(l=f+v,c=l>>>2;p.length<=c;)p.push(0);p[c]|=(u>>>16-8*i&255)<<8*(d+n*(l%4)),f+=1}}return{value:p,binLen:8*f+r}}(e,t,n,r)};case"BYTES":return function(e,t,n){return function(e,t,r,n){let s,o,i,u;const a=t||[0],c=(r=r||0)>>>3,h=-1===n?3:0;for(o=0;o<e.length;o+=1)s=e.charCodeAt(o),u=o+c,i=u>>>2,a.length<=i&&a.push(0),a[i]|=s<<8*(h+n*(u%4));return{value:a,binLen:8*e.length+r}}(e,t,n,r)};case"ARRAYBUFFER":try{new ArrayBuffer(0)}catch(e){throw new Error(l)}return function(e,t,n){return function(e,t,r,n){return p(new Uint8Array(e),t,r,n)}(e,t,n,r)};case"UINT8ARRAY":try{new Uint8Array(0)}catch(e){throw new Error(f)}return function(e,t,n){return p(e,t,n,r)};default:throw new Error("format must be HEX, TEXT, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY")}}function d(e,t,r,n){switch(e){case"HEX":return function(e){return function(e,t,r,n){const s="0123456789abcdef";let o,i,u="";const a=t/8,c=-1===r?3:0;for(o=0;o<a;o+=1)i=e[o>>>2]>>>8*(c+r*(o%4)),u+=s.charAt(i>>>4&15)+s.charAt(15&i);return n.outputUpper?u.toUpperCase():u}(e,t,r,n)};case"B64":return function(e){return function(e,t,r,n){let s,o,i,u,a,c="";const l=t/8,f=-1===r?3:0;for(s=0;s<l;s+=3)for(u=s+1<l?e[s+1>>>2]:0,a=s+2<l?e[s+2>>>2]:0,i=(e[s>>>2]>>>8*(f+r*(s%4))&255)<<16|(u>>>8*(f+r*((s+1)%4))&255)<<8|a>>>8*(f+r*((s+2)%4))&255,o=0;o<4;o+=1)c+=8*s+6*o<=t?h.charAt(i>>>6*(3-o)&63):n.b64Pad;return c}(e,t,r,n)};case"BYTES":return function(e){return function(e,t,r){let n,s,o="";const i=t/8,u=-1===r?3:0;for(n=0;n<i;n+=1)s=e[n>>>2]>>>8*(u+r*(n%4))&255,o+=String.fromCharCode(s);return o}(e,t,r)};case"ARRAYBUFFER":try{new ArrayBuffer(0)}catch(e){throw new Error(l)}return function(e){return function(e,t,r){let n;const s=t/8,o=new ArrayBuffer(s),i=new Uint8Array(o),u=-1===r?3:0;for(n=0;n<s;n+=1)i[n]=e[n>>>2]>>>8*(u+r*(n%4))&255;return o}(e,t,r)};case"UINT8ARRAY":try{new Uint8Array(0)}catch(e){throw new Error(f)}return function(e){return function(e,t,r){let n;const s=t/8,o=-1===r?3:0,i=new Uint8Array(s);for(n=0;n<s;n+=1)i[n]=e[n>>>2]>>>8*(o+r*(n%4))&255;return i}(e,t,r)};default:throw new Error("format must be HEX, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY")}}const m=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],y=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428],g=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];function P(e){const t={outputUpper:!1,b64Pad:"=",outputLen:-1},r=e||{},n="Output length must be a multiple of 8";if(t.outputUpper=r.outputUpper||!1,r.b64Pad&&(t.b64Pad=r.b64Pad),r.outputLen){if(r.outputLen%8!=0)throw new Error(n);t.outputLen=r.outputLen}else if(r.shakeLen){if(r.shakeLen%8!=0)throw new Error(n);t.outputLen=r.shakeLen}if("boolean"!=typeof t.outputUpper)throw new Error("Invalid outputUpper formatting option");if("string"!=typeof t.b64Pad)throw new Error("Invalid b64Pad formatting option");return t}class q{constructor(e,t,r){const n=r||{};if(this.t=t,this.i=n.encoding||"UTF8",this.numRounds=n.numRounds||1,isNaN(this.numRounds)||this.numRounds!==parseInt(this.numRounds,10)||1>this.numRounds)throw new Error("numRounds must a integer >= 1");this.o=e,this.h=[],this.u=0,this.l=!1,this.A=0,this.p=!1,this.U=[],this.R=[]}update(e){let t,r=0;const n=this.T>>>5,s=this.F(e,this.h,this.u),o=s.binLen,i=s.value,u=o>>>5;for(t=0;t<u;t+=n)r+this.T<=o&&(this.m=this.g(i.slice(t,t+n),this.m),r+=this.T);return this.A+=r,this.h=i.slice(r>>>5),this.u=o%this.T,this.l=!0,this}getHash(e,t){let r,n,s=this.H;const o=P(t);if(this.B){if(-1===o.outputLen)throw new Error("Output length must be specified in options");s=o.outputLen}const i=d(e,s,this.v,o);if(this.p&&this.C)return i(this.C(o));for(n=this.Y(this.h.slice(),this.u,this.A,this.S(this.m),s),r=1;r<this.numRounds;r+=1)this.B&&s%32!=0&&(n[n.length-1]&=16777215>>>24-s%32),n=this.Y(n,s,0,this.I(this.o),s);return i(n)}setHMACKey(e,t,r){if(!this.L)throw new Error("Variant does not support HMAC");if(this.l)throw new Error("Cannot set MAC key after calling update");const n=v(t,(r||{}).encoding||"UTF8",this.v);this.M(n(e))}M(e){const t=this.T>>>3,r=t/4-1;let n;if(1!==this.numRounds)throw new Error("Cannot set numRounds with MAC");if(this.p)throw new Error("MAC key already set");for(t<e.binLen/8&&(e.value=this.Y(e.value,e.binLen,0,this.I(this.o),this.H));e.value.length<=r;)e.value.push(0);for(n=0;n<=r;n+=1)this.U[n]=909522486^e.value[n],this.R[n]=1549556828^e.value[n];this.m=this.g(this.U,this.m),this.A=this.T,this.p=!0}getHMAC(e,t){const r=P(t);return d(e,this.H,this.v,r)(this.N())}N(){let e;if(!this.p)throw new Error("Cannot call getHMAC without first setting MAC key");const t=this.Y(this.h.slice(),this.u,this.A,this.S(this.m),this.H);return e=this.g(this.R,this.I(this.o)),e=this.Y(t,this.H,this.T,e,this.H),e}}function _(e,t){return e>>>t|e<<32-t}function b(e,t){return e>>>t}function w(e,t,r){return e&t^~e&r}function A(e,t,r){return e&t^e&r^t&r}function j(e){return _(e,2)^_(e,13)^_(e,22)}function E(e,t){const r=(65535&e)+(65535&t);return(65535&(e>>>16)+(t>>>16)+(r>>>16))<<16|65535&r}function R(e,t,r,n){const s=(65535&e)+(65535&t)+(65535&r)+(65535&n);return(65535&(e>>>16)+(t>>>16)+(r>>>16)+(n>>>16)+(s>>>16))<<16|65535&s}function T(e,t,r,n,s){const o=(65535&e)+(65535&t)+(65535&r)+(65535&n)+(65535&s);return(65535&(e>>>16)+(t>>>16)+(r>>>16)+(n>>>16)+(s>>>16)+(o>>>16))<<16|65535&o}function U(e){return _(e,7)^_(e,18)^b(e,3)}function k(e){return _(e,6)^_(e,11)^_(e,25)}function S(e){let t;return t="SHA-224"==e?y.slice():g.slice(),t}function C(e,t){let r,n,s,o,i,u,a,c,h,l,f;const p=[];for(r=t[0],n=t[1],s=t[2],o=t[3],i=t[4],u=t[5],a=t[6],c=t[7],f=0;f<64;f+=1)p[f]=f<16?e[f]:R(_(v=p[f-2],17)^_(v,19)^b(v,10),p[f-7],U(p[f-15]),p[f-16]),h=T(c,k(i),w(i,u,a),m[f],p[f]),l=E(j(r),A(r,n,s)),c=a,a=u,u=i,i=E(o,h),o=s,s=n,n=r,r=E(h,l);var v;return t[0]=E(r,t[0]),t[1]=E(n,t[1]),t[2]=E(s,t[2]),t[3]=E(o,t[3]),t[4]=E(i,t[4]),t[5]=E(u,t[5]),t[6]=E(a,t[6]),t[7]=E(c,t[7]),t}class L extends q{constructor(e,t,r){if("SHA-224"!==e&&"SHA-256"!==e)throw new Error("Chosen SHA variant is not supported");super(e,t,r);const n=r||{};this.C=this.N,this.L=!0,this.v=-1,this.F=v(this.t,this.i,this.v),this.g=C,this.S=function(e){return e.slice()},this.I=S,this.Y=function(t,r,n,s){return function(e,t,r,n,s){let o,i;const u=15+(t+65>>>9<<4),a=t+r;for(;e.length<=u;)e.push(0);for(e[t>>>5]|=128<<24-t%32,e[u]=4294967295&a,e[u-1]=a/4294967296|0,o=0;o<e.length;o+=16)n=C(e.slice(o,o+16),n);return i="SHA-224"===s?[n[0],n[1],n[2],n[3],n[4],n[5],n[6]]:n,i}(t,r,n,s,e)},this.m=S(e),this.T=512,this.H="SHA-224"===e?224:256,this.B=!1,n.hmacKey&&this.M(function(e,t,r,n){const s="hmacKey must include a value and format";if(!t)throw new Error(s);if(void 0===t.value||!t.format)throw new Error(s);return v(t.format,t.encoding||"UTF8",r)(t.value)}(0,n.hmacKey,this.v))}}var H,F=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.handshake=function(e){var t=this;e.timestamp||(e.timestamp=Math.floor((new Date).getTime()/1e3)),e.version&&(this.version=e.version),e.user||delete e.timestamp;var r=this.url+"/server/json.server.php?action=handshake";return r+=s(e,"&"),i(r).then(function(e){return e.json()}).then(function(e){return e.auth&&(t.sessionKey=e.auth),e})},n.ping=function(e){var t="ping";return t+=s(e,"&"),this.request(t)},n.goodbye=function(e){var t="goodbye";return t+=s(e,"&"),this.request(t)},n.lostPassword=function(e){var t="lost_password";return t+=s(e,"&"),this.request(t)},n.encryptPassword=function(e){var t=r(e.password);return r(e.time+t);function r(e){var t=new L("SHA-256","TEXT",{encoding:"UTF8"});return t.update(e),t.getHash("HEX")}},r}(u),B=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.bookmark=function(e){try{var t="bookmark";return t+=s(e,"&"),Promise.resolve(this.request(t))}catch(e){return Promise.reject(e)}},n.bookmarks=function(e){try{var t="bookmarks";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.bookmark?e.bookmark:e})}catch(e){return Promise.reject(e)}},n.getBookmark=function(e){var t="get_bookmark";return t+=s(e,"&"),this.request(t)},n.bookmarkCreate=function(e){var t="bookmark_create";return t+=s(e,"&"),this.request(t)},n.bookmarkEdit=function(e){var t="bookmark_edit";return t+=s(e,"&"),this.request(t)},n.bookmarkDelete=function(e){var t="bookmark_delete";return t+=s(e,"&"),this.request(t)},r}(u),Y=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.catalogs=function(e){try{var t="catalogs";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.catalog?e.catalog:e})}catch(e){return Promise.reject(e)}},n.catalog=function(e){var t="catalog";return t+=s(e,"&"),this.request(t)},n.catalogAction=function(e){var t="catalog_action";return t+=s(e,"&"),this.request(t)},n.catalogFile=function(e){var t="catalog_file";return t+=s(e,"&"),this.request(t)},n.catalogAdd=function(e){var t="catalog_add";return t+=s(e,"&"),this.request(t)},n.catalogDelete=function(e){var t="catalog_delete";return t+=s(e,"&"),this.request(t)},r}(u),I=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.genres=function(e){try{var t="genres";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.genre?e.genre:e})}catch(e){return Promise.reject(e)}},n.genre=function(e){try{var t="genre";return t+=s(e,"&"),Promise.resolve(this.request(t))}catch(e){return Promise.reject(e)}},r}(u),x=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.labels=function(e){try{var t="labels";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.label?e.label:e})}catch(e){return Promise.reject(e)}},n.label=function(e){var t="label";return t+=s(e,"&"),this.request(t)},r}(u),O=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.licenses=function(e){try{var t="licenses";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.license?e.license:e})}catch(e){return Promise.reject(e)}},n.license=function(e){var t="license";return t+=s(e,"&"),this.request(t)},r}(u),N=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.liveStreams=function(e){try{var t="live_streams";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.live_stream?e.live_stream:e})}catch(e){return Promise.reject(e)}},n.liveStream=function(e){var t="live_stream";return t+=s(e,"&"),this.request(t)},n.liveStreamCreate=function(e){var t="live_stream_create";return t+=s(e,"&"),this.request(t)},n.liveStreamEdit=function(e){var t="live_stream_edit";return t+=s(e,"&"),this.request(t)},n.liveStreamDelete=function(e){var t="live_stream_delete";return t+=s(e,"&"),this.request(t)},r}(u),K=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.playlists=function(e){try{var t="playlists";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.playlist?e.playlist:e})}catch(e){return Promise.reject(e)}},n.smartlists=function(e){try{var t="playlists";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){var t=e.playlist?e.playlist:e;return Array.isArray(t)&&(t=t.filter(function(e){return e.id.toString().match(/^smart_/)})),t})}catch(e){return Promise.reject(e)}},n.playlist=function(e){var t="playlist";return t+=s(e,"&"),this.request(t)},n.userPlaylists=function(e){try{var t="user_playlists";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.playlist?e.playlist:e})}catch(e){return Promise.reject(e)}},n.userSmartlists=function(e){try{var t="user_smartlists";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.playlist?e.playlist:e})}catch(e){return Promise.reject(e)}},n.playlistCreate=function(e){var t="playlist_create";return t+=s(e,"&"),this.request(t)},n.playlistAdd=function(e){var t="playlist_add";return t+=s(e,"&"),this.request(t)},n.playlistEdit=function(e){var t="playlist_edit";return t+=s(e,"&"),this.request(t)},n.playlistDelete=function(e){var t="playlist_delete";return t+=s(e,"&"),this.request(t)},n.playlistAddSong=function(e){var t="playlist_add_song";return t+=s(e,"&"),this.request(t)},n.playlistRemoveSong=function(e){var t="playlist_remove_song";return t+=s(e,"&"),this.request(t)},n.playlistGenerate=function(e){try{var t="playlist_generate";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.song?e.song:e})}catch(e){return Promise.reject(e)}},r}(u),M=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.podcasts=function(e){try{var t="podcasts";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.podcast?e.podcast:e})}catch(e){return Promise.reject(e)}},n.podcast=function(e){try{var t="podcast";return t+=s(e,"&"),Promise.resolve(this.request(t))}catch(e){return Promise.reject(e)}},n.podcastCreate=function(e){var t="podcast_create";return t+=s(e,"&"),this.request(t)},n.podcastEdit=function(e){var t="podcast_edit";return t+=s(e,"&"),this.request(t)},n.podcastDelete=function(e){var t="podcast_delete";return t+=s(e,"&"),this.request(t)},n.podcastEpisodes=function(e){try{var t="podcast_episodes";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.podcast_episode?e.podcast_episode:e})}catch(e){return Promise.reject(e)}},n.podcastEpisode=function(e){var t="podcast_episode";return t+=s(e,"&"),this.request(t)},n.podcastEpisodeDelete=function(e){var t="podcast_episode_delete";return t+=s(e,"&"),this.request(t)},n.updatePodcast=function(e){var t="update_podcast";return t+=s(e,"&"),this.request(t)},n.deletedPodcastEpisodes=function(e){try{var t="deleted_podcast_episodes";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.deleted_podcast_episode?e.deleted_podcast_episode:e})}catch(e){return Promise.reject(e)}},r}(u),D=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.systemPreferences=function(){try{return Promise.resolve(this.request("system_preferences")).then(function(e){return e.preference?e.preference:e})}catch(e){return Promise.reject(e)}},n.systemPreference=function(e){try{var t="system_preference";return t+=s(e,"&"),Promise.resolve(this.request(t))}catch(e){return Promise.reject(e)}},n.userPreferences=function(){try{return Promise.resolve(this.request("user_preferences")).then(function(e){return e.preference?e.preference:e})}catch(e){return Promise.reject(e)}},n.userPreference=function(e){try{var t="user_preference";return t+=s(e,"&"),Promise.resolve(this.request(t))}catch(e){return Promise.reject(e)}},n.preferenceCreate=function(e){var t="preference_create";return t+=s(e,"&"),this.request(t)},n.preferenceEdit=function(e){var t="preference_edit";return t+=s(e,"&"),this.request(t)},n.preferenceDelete=function(e){var t="preference_delete";return t+=s(e,"&"),this.request(t)},r}(u),X=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.shares=function(e){try{var t="shares";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.share?e.share:e})}catch(e){return Promise.reject(e)}},n.share=function(e){var t="share";return t+=s(e,"&"),this.request(t)},n.shareCreate=function(e){var t="share_create";return t+=s(e,"&"),this.request(t)},n.shareEdit=function(e){var t="share_edit";return t+=s(e,"&"),this.request(t)},n.shareDelete=function(e){var t="share_delete";return t+=s(e,"&"),this.request(t)},r}(u),z=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}return e(r,t),r.prototype.last_shouts=function(e){try{var t="last_shouts";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.shout?e.shout:e})}catch(e){return Promise.reject(e)}},r}(u),G=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.songs=function(e){try{var t="songs";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.song?e.song:e})}catch(e){return Promise.reject(e)}},n.song=function(e){var t="song";return t+=s(e,"&"),this.request(t)},n.artistSongs=function(e){try{var t="artist_songs";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.song?e.song:e})}catch(e){return Promise.reject(e)}},n.albumSongs=function(e){try{var t="album_songs";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.song?e.song:e})}catch(e){return Promise.reject(e)}},n.genreSongs=function(e){try{var t="genre_songs";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.song?e.song:e})}catch(e){return Promise.reject(e)}},n.playlistSongs=function(e){try{var t="playlist_songs";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.song?e.song:e})}catch(e){return Promise.reject(e)}},n.licenseSongs=function(e){try{var t="license_songs";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.song?e.song:e})}catch(e){return Promise.reject(e)}},n.songDelete=function(e){var t="song_delete";return t+=s(e,"&"),this.request(t)},n.urlToSong=function(e){var t="url_to_song";return e.url=encodeURIComponent(e.url),t+=s(e,"&"),this.request(t)},n.searchSongs=function(e){try{var t="search_songs";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.song?e.song:e})}catch(e){return Promise.reject(e)}},n.deletedSongs=function(e){try{var t="deleted_songs";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.deleted_song?e.deleted_song:e})}catch(e){return Promise.reject(e)}},r}(u),V=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.systemUpdate=function(){return this.request("system_update")},n.getIndexes=function(e){try{var t,r=this,n="get_indexes";switch(n+=s(e,"&"),e.type){case"song":return Promise.resolve(r.request(n)).then(function(e){return(t=e).song?t.song:t});case"album":return Promise.resolve(r.request(n)).then(function(e){return(t=e).album?t.album:t});case"artist":case"album_artist":return Promise.resolve(r.request(n)).then(function(e){return(t=e).artist?t.artist:t});case"playlist":return Promise.resolve(r.request(n)).then(function(e){return(t=e).playlist?t.playlist:t});case"podcast":return Promise.resolve(r.request(n)).then(function(e){return(t=e).podcast?t.podcast:t});case"podcast_episode":return Promise.resolve(r.request(n)).then(function(e){return(t=e).podcast_episode?t.podcast_episode:t});case"live_stream":return Promise.resolve(r.request(n)).then(function(e){return(t=e).live_stream?t.live_stream:t});default:return Promise.resolve(!1)}}catch(e){return Promise.reject(e)}},n.list=function(e){try{var t="list";return t+=s(e,"&"),Promise.resolve(this.request(t))}catch(e){return Promise.reject(e)}},n.index=function(e){try{var t="index";return t+=s(e,"&"),Promise.resolve(this.request(t))}catch(e){return Promise.reject(e)}},n.browse=function(e){try{var t="browse";return t+=s(e,"&"),Promise.resolve(this.request(t))}catch(e){return Promise.reject(e)}},n.getSimilar=function(e){try{var t,r="get_similar";switch(r+=s(e,"&"),e.type){case"song":return Promise.resolve(this.request(r)).then(function(e){return(t=e).song?t.song:t});case"artist":return Promise.resolve(this.request(r)).then(function(e){return(t=e).artist?t.artist:t});default:return Promise.resolve(!1)}}catch(e){return Promise.reject(e)}},n.stats=function(e){try{var t,r=this,n="stats";switch(n+=s(e,"&"),e.type){case"song":return Promise.resolve(r.request(n)).then(function(e){return(t=e).song?t.song:t});case"album":return Promise.resolve(r.request(n)).then(function(e){return(t=e).album?t.album:t});case"artist":return Promise.resolve(r.request(n)).then(function(e){return(t=e).artist?t.artist:t});case"video":return Promise.resolve(r.request(n)).then(function(e){return(t=e).video?t.video:t});case"playlist":return Promise.resolve(r.request(n)).then(function(e){return(t=e).playlist?t.playlist:t});case"podcast":return Promise.resolve(r.request(n)).then(function(e){return(t=e).podcast?t.podcast:t});case"podcast_episode":return Promise.resolve(r.request(n)).then(function(e){return(t=e).podcast_episode?t.podcast_episode:t});default:return Promise.resolve(!1)}}catch(e){return Promise.reject(e)}},n.rate=function(e){var t="rate";return t+=s(e,"&"),this.request(t)},n.flag=function(e){var t="flag";return t+=s(e,"&"),this.request(t)},n.recordPlay=function(e){var t="record_play";return t+=s(e,"&"),this.request(t)},n.scrobble=function(e){var t="scrobble";return t+=s(e,"&"),this.request(t)},n.updateFromTags=function(e){var t="update_from_tags";return t+=s(e,"&"),this.request(t)},n.updateArtistInfo=function(e){var t="update_artist_info";return t+=s(e,"&"),this.request(t)},n.updateArt=function(e){var t="update_art";return t+=s(e,"&"),this.request(t)},n.stream=function(e){var t="stream";return t+=s(e,"&"),this.binary(t)},n.download=function(e){var t="download";return t+=s(e,"&"),this.binary(t)},n.getArt=function(e){var t="get_art";return t+=s(e,"&"),this.binary(t)},n.localplay=function(e){var t="localplay";return t+=s(e,"&"),this.request(t)},n.localplaySongs=function(){return this.request("localplay_songs")},n.democratic=function(e){var t="democratic";return t+=s(e,"&"),this.request(t)},n.advancedSearch=function(e){try{for(var t,r=this,n="advanced_search",o=0;o<e.rules.length;o++){var i=e.rules[o],u=o+1;e["rule_"+u]=i[0],e["rule_"+u+"_operator"]=i[1],e["rule_"+u+"_input"]=i[2],"metadata"===i[0]&&(e["rule_"+u+"_subtype"]=i[3])}switch(delete e.rules,n+=s(e,"&"),e.type){case"song":return Promise.resolve(r.request(n)).then(function(e){return(t=e).song?t.song:t});case"album":return Promise.resolve(r.request(n)).then(function(e){return(t=e).album?t.album:t});case"artist":case"album_artist":case"song_artist":return Promise.resolve(r.request(n)).then(function(e){return(t=e).artist?t.artist:t});case"label":return Promise.resolve(r.request(n)).then(function(e){return(t=e).label?t.label:t});case"playlist":return Promise.resolve(r.request(n)).then(function(e){return(t=e).playlist?t.playlist:t});case"podcast":return Promise.resolve(r.request(n)).then(function(e){return(t=e).podcast?t.podcast:t});case"podcast_episode":return Promise.resolve(r.request(n)).then(function(e){return(t=e).podcast_episode?t.podcast_episode:t});case"genre":return Promise.resolve(r.request(n)).then(function(e){return(t=e).genre?t.genre:t});case"user":return Promise.resolve(r.request(n)).then(function(e){return(t=e).user?t.user:t});case"video":return Promise.resolve(r.request(n)).then(function(e){return(t=e).video?t.video:t});default:return Promise.resolve(!1)}}catch(e){return Promise.reject(e)}},r}(u),J=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.users=function(){try{return Promise.resolve(this.request("users")).then(function(e){return e.user?e.user:e})}catch(e){return Promise.reject(e)}},n.user=function(e){try{var t="user";return t+=s(e,"&"),Promise.resolve(this.request(t))}catch(e){return Promise.reject(e)}},n.userCreate=function(e){var t="user_create";return t+=s(e,"&"),this.request(t)},n.register=function(e){var t="register";return t+=s(e,"&"),this.request(t)},n.userUpdate=function(e){var t="user_update";return t+=s(e,"&"),this.request(t)},n.userEdit=function(e){var t="user_edit";return t+=s(e,"&"),this.request(t)},n.userDelete=function(e){var t="user_delete";return t+=s(e,"&"),this.request(t)},n.followers=function(e){try{var t="followers";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.user?e.user:e})}catch(e){return Promise.reject(e)}},n.following=function(e){try{var t="following";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.user?e.user:e})}catch(e){return Promise.reject(e)}},n.toggleFollow=function(e){var t="toggle_follow";return t+=s(e,"&"),this.request(t)},n.timeline=function(e){try{var t="timeline";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.activity?e.activity:e})}catch(e){return Promise.reject(e)}},n.friendsTimeline=function(e){try{var t="friends_timeline";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.activity?e.activity:e})}catch(e){return Promise.reject(e)}},r}(u),Z=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}e(r,t);var n=r.prototype;return n.videos=function(e){try{var t="videos";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.video?e.video:e})}catch(e){return Promise.reject(e)}},n.video=function(e){var t="video";return t+=s(e,"&"),this.request(t)},n.deletedVideos=function(e){try{var t="deleted_videos";return t+=s(e,"&"),Promise.resolve(this.request(t)).then(function(e){return e.deleted_video?e.deleted_video:e})}catch(e){return Promise.reject(e)}},r}(u),$=/*#__PURE__*/function(t){function r(){return t.apply(this,arguments)||this}return e(r,t),r}(u);H=$,[a,c,F,B,Y,I,x,O,N,K,M,D,X,z,G,V,J,Z].forEach(function(e){Object.getOwnPropertyNames(e.prototype).forEach(function(t){Object.defineProperty(H.prototype,t,Object.getOwnPropertyDescriptor(e.prototype,t))})}),module.exports=$;
2
2
  //# sourceMappingURL=index.js.map