ambient-display 1.1.16 → 1.1.18

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 (101) hide show
  1. package/build/client/_app/immutable/assets/3.VTEzhx9-.css +1 -0
  2. package/build/client/_app/immutable/assets/3.VTEzhx9-.css.br +0 -0
  3. package/build/client/_app/immutable/assets/3.VTEzhx9-.css.gz +0 -0
  4. package/build/client/_app/immutable/assets/_page.VTEzhx9-.css +1 -0
  5. package/build/client/_app/immutable/assets/_page.VTEzhx9-.css.br +0 -0
  6. package/build/client/_app/immutable/assets/_page.VTEzhx9-.css.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{B-DtXKX3.js → BFU9wwXC.js} +2 -2
  8. package/build/client/_app/immutable/chunks/BFU9wwXC.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/BFU9wwXC.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/{-6v_nyr3.js → BQ2eCqC3.js} +1 -1
  11. package/build/client/_app/immutable/chunks/BQ2eCqC3.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/BQ2eCqC3.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/D5aAvvqP.js +2 -0
  14. package/build/client/_app/immutable/chunks/D5aAvvqP.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/D5aAvvqP.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/{D1JCCJf3.js → DiaFwogD.js} +1 -1
  17. package/build/client/_app/immutable/chunks/DiaFwogD.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/DiaFwogD.js.gz +0 -0
  19. package/build/client/_app/immutable/entry/{app.Dw9QiwYt.js → app.DBhY8_4y.js} +2 -2
  20. package/build/client/_app/immutable/entry/app.DBhY8_4y.js.br +0 -0
  21. package/build/client/_app/immutable/entry/app.DBhY8_4y.js.gz +0 -0
  22. package/build/client/_app/immutable/entry/start.DwC31x2f.js +1 -0
  23. package/build/client/_app/immutable/entry/start.DwC31x2f.js.br +2 -0
  24. package/build/client/_app/immutable/entry/start.DwC31x2f.js.gz +0 -0
  25. package/build/client/_app/immutable/nodes/0.BXpO8PDa.js +2 -0
  26. package/build/client/_app/immutable/nodes/0.BXpO8PDa.js.br +0 -0
  27. package/build/client/_app/immutable/nodes/0.BXpO8PDa.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/{1.ENhX25AD.js → 1.ByCIm58b.js} +1 -1
  29. package/build/client/_app/immutable/nodes/1.ByCIm58b.js.br +0 -0
  30. package/build/client/_app/immutable/nodes/1.ByCIm58b.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/{2.BCvH_-7k.js → 2.DxFkPkVM.js} +1 -1
  32. package/build/client/_app/immutable/nodes/2.DxFkPkVM.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/2.DxFkPkVM.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/3.DHrglKgJ.js +1 -0
  35. package/build/client/_app/immutable/nodes/3.DHrglKgJ.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/3.DHrglKgJ.js.gz +0 -0
  37. package/build/client/_app/version.json +1 -1
  38. package/build/client/_app/version.json.br +0 -0
  39. package/build/client/_app/version.json.gz +0 -0
  40. package/build/server/chunks/{0-CPnhpTjC.js → 0-BvYWjFDA.js} +3 -3
  41. package/build/server/chunks/{0-CPnhpTjC.js.map → 0-BvYWjFDA.js.map} +1 -1
  42. package/build/server/chunks/{1-75N2Qxv9.js → 1-Nhr7ZMI3.js} +2 -2
  43. package/build/server/chunks/{1-75N2Qxv9.js.map → 1-Nhr7ZMI3.js.map} +1 -1
  44. package/build/server/chunks/{2-B3ii1avX.js → 2-cxDj5MEl.js} +3 -3
  45. package/build/server/chunks/{2-B3ii1avX.js.map → 2-cxDj5MEl.js.map} +1 -1
  46. package/build/server/chunks/3-Bd5ZeRiN.js +9 -0
  47. package/build/server/chunks/{3-Cz5Rp48l.js.map → 3-Bd5ZeRiN.js.map} +1 -1
  48. package/build/server/chunks/{LoadingIndicator-BjVqwEwa.js → LoadingIndicator-BgSuwc17.js} +2 -2
  49. package/build/server/chunks/{LoadingIndicator-BjVqwEwa.js.map → LoadingIndicator-BgSuwc17.js.map} +1 -1
  50. package/build/server/chunks/{LoadingIndicator.svelte_svelte_type_style_lang-CzuFb3Rb.js → LoadingIndicator.svelte_svelte_type_style_lang-DpRiqnJg.js} +4 -1
  51. package/build/server/chunks/LoadingIndicator.svelte_svelte_type_style_lang-DpRiqnJg.js.map +1 -0
  52. package/build/server/chunks/{PlayingTracker-DagWUwKl.js → PlayingTracker-DuFebO2_.js} +2 -2
  53. package/build/server/chunks/{PlayingTracker-DagWUwKl.js.map → PlayingTracker-DuFebO2_.js.map} +1 -1
  54. package/build/server/chunks/{_layout.svelte-D_Vfu08M.js → _layout.svelte-CADTy4fg.js} +3 -3
  55. package/build/server/chunks/{_layout.svelte-D_Vfu08M.js.map → _layout.svelte-CADTy4fg.js.map} +1 -1
  56. package/build/server/chunks/{_page.svelte-Csehl0cs.js → _page.svelte-B1q4zDaO.js} +9 -9
  57. package/build/server/chunks/_page.svelte-B1q4zDaO.js.map +1 -0
  58. package/build/server/chunks/{_page.svelte-CY_oFa2x.js → _page.svelte-CYugZxLe.js} +3 -3
  59. package/build/server/chunks/{_page.svelte-CY_oFa2x.js.map → _page.svelte-CYugZxLe.js.map} +1 -1
  60. package/build/server/index.js +1 -1
  61. package/build/server/index.js.map +1 -1
  62. package/build/server/manifest.js +5 -5
  63. package/build/server/manifest.js.map +1 -1
  64. package/package.json +2 -1
  65. package/server/api/index.js +4 -0
  66. package/server/index.js +8 -1
  67. package/server/spotify/index.js +4 -0
  68. package/server/spotify/sdk.js +7 -0
  69. package/build/client/_app/immutable/assets/3.BvcZlbFP.css +0 -1
  70. package/build/client/_app/immutable/assets/3.BvcZlbFP.css.br +0 -0
  71. package/build/client/_app/immutable/assets/3.BvcZlbFP.css.gz +0 -0
  72. package/build/client/_app/immutable/assets/_page.BvcZlbFP.css +0 -1
  73. package/build/client/_app/immutable/assets/_page.BvcZlbFP.css.br +0 -0
  74. package/build/client/_app/immutable/assets/_page.BvcZlbFP.css.gz +0 -0
  75. package/build/client/_app/immutable/chunks/-6v_nyr3.js.br +0 -0
  76. package/build/client/_app/immutable/chunks/-6v_nyr3.js.gz +0 -0
  77. package/build/client/_app/immutable/chunks/B-DtXKX3.js.br +0 -0
  78. package/build/client/_app/immutable/chunks/B-DtXKX3.js.gz +0 -0
  79. package/build/client/_app/immutable/chunks/D1JCCJf3.js.br +0 -0
  80. package/build/client/_app/immutable/chunks/D1JCCJf3.js.gz +0 -0
  81. package/build/client/_app/immutable/chunks/DGTGMr-5.js +0 -2
  82. package/build/client/_app/immutable/chunks/DGTGMr-5.js.br +0 -0
  83. package/build/client/_app/immutable/chunks/DGTGMr-5.js.gz +0 -0
  84. package/build/client/_app/immutable/entry/app.Dw9QiwYt.js.br +0 -0
  85. package/build/client/_app/immutable/entry/app.Dw9QiwYt.js.gz +0 -0
  86. package/build/client/_app/immutable/entry/start.C213Gs6Z.js +0 -1
  87. package/build/client/_app/immutable/entry/start.C213Gs6Z.js.br +0 -2
  88. package/build/client/_app/immutable/entry/start.C213Gs6Z.js.gz +0 -0
  89. package/build/client/_app/immutable/nodes/0.BZsTTCpd.js +0 -2
  90. package/build/client/_app/immutable/nodes/0.BZsTTCpd.js.br +0 -0
  91. package/build/client/_app/immutable/nodes/0.BZsTTCpd.js.gz +0 -0
  92. package/build/client/_app/immutable/nodes/1.ENhX25AD.js.br +0 -0
  93. package/build/client/_app/immutable/nodes/1.ENhX25AD.js.gz +0 -0
  94. package/build/client/_app/immutable/nodes/2.BCvH_-7k.js.br +0 -0
  95. package/build/client/_app/immutable/nodes/2.BCvH_-7k.js.gz +0 -0
  96. package/build/client/_app/immutable/nodes/3.CkzNUk9P.js +0 -1
  97. package/build/client/_app/immutable/nodes/3.CkzNUk9P.js.br +0 -0
  98. package/build/client/_app/immutable/nodes/3.CkzNUk9P.js.gz +0 -0
  99. package/build/server/chunks/3-Cz5Rp48l.js +0 -9
  100. package/build/server/chunks/LoadingIndicator.svelte_svelte_type_style_lang-CzuFb3Rb.js.map +0 -1
  101. package/build/server/chunks/_page.svelte-Csehl0cs.js.map +0 -1
@@ -10,12 +10,12 @@ return {
10
10
  assets: new Set(["favicon.ico","favicon.png","icons/144.favicon.png","icons/168.favicon.png","icons/192.favicon.png","icons/48.favicon.png","icons/72.favicon.png","icons/96.favicon.png","manifest.json"]),
11
11
  mimeTypes: {".png":"image/png",".json":"application/json"},
12
12
  _: {
13
- client: {start:"_app/immutable/entry/start.C213Gs6Z.js",app:"_app/immutable/entry/app.Dw9QiwYt.js",imports:["_app/immutable/entry/start.C213Gs6Z.js","_app/immutable/chunks/B-DtXKX3.js","_app/immutable/chunks/CDVeMiAl.js","_app/immutable/chunks/ynvIH2CR.js","_app/immutable/entry/app.Dw9QiwYt.js","_app/immutable/chunks/CDVeMiAl.js","_app/immutable/chunks/qSIFE6bv.js","_app/immutable/chunks/CvUX3i4L.js","_app/immutable/chunks/DnG2xkSB.js","_app/immutable/chunks/ynvIH2CR.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
13
+ client: {start:"_app/immutable/entry/start.DwC31x2f.js",app:"_app/immutable/entry/app.DBhY8_4y.js",imports:["_app/immutable/entry/start.DwC31x2f.js","_app/immutable/chunks/BFU9wwXC.js","_app/immutable/chunks/CDVeMiAl.js","_app/immutable/chunks/ynvIH2CR.js","_app/immutable/entry/app.DBhY8_4y.js","_app/immutable/chunks/CDVeMiAl.js","_app/immutable/chunks/qSIFE6bv.js","_app/immutable/chunks/CvUX3i4L.js","_app/immutable/chunks/DnG2xkSB.js","_app/immutable/chunks/ynvIH2CR.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
14
14
  nodes: [
15
- __memo(() => import('./chunks/0-CPnhpTjC.js')),
16
- __memo(() => import('./chunks/1-75N2Qxv9.js')),
17
- __memo(() => import('./chunks/2-B3ii1avX.js')),
18
- __memo(() => import('./chunks/3-Cz5Rp48l.js'))
15
+ __memo(() => import('./chunks/0-BvYWjFDA.js')),
16
+ __memo(() => import('./chunks/1-Nhr7ZMI3.js')),
17
+ __memo(() => import('./chunks/2-cxDj5MEl.js')),
18
+ __memo(() => import('./chunks/3-Bd5ZeRiN.js'))
19
19
  ],
20
20
  routes: [
21
21
  {
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"favicon.ico\",\"favicon.png\",\"icons/144.favicon.png\",\"icons/168.favicon.png\",\"icons/192.favicon.png\",\"icons/48.favicon.png\",\"icons/72.favicon.png\",\"icons/96.favicon.png\",\"manifest.json\"]),\n\tmimeTypes: {\".png\":\"image/png\",\".json\":\"application/json\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.C213Gs6Z.js\",app:\"_app/immutable/entry/app.Dw9QiwYt.js\",imports:[\"_app/immutable/entry/start.C213Gs6Z.js\",\"_app/immutable/chunks/B-DtXKX3.js\",\"_app/immutable/chunks/CDVeMiAl.js\",\"_app/immutable/chunks/ynvIH2CR.js\",\"_app/immutable/entry/app.Dw9QiwYt.js\",\"_app/immutable/chunks/CDVeMiAl.js\",\"_app/immutable/chunks/qSIFE6bv.js\",\"_app/immutable/chunks/CvUX3i4L.js\",\"_app/immutable/chunks/DnG2xkSB.js\",\"_app/immutable/chunks/ynvIH2CR.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js'))\n\t\t],\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 2 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/player\",\n\t\t\t\tpattern: /^\\/player\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 3 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"AAAY,MAAC,QAAQ,GAAG,CAAC,MAAM;AAC/B,SAAS,MAAM,CAAC,EAAE,EAAE;AACpB,CAAC,IAAI,KAAK;AACV,CAAC,OAAO,MAAM,KAAK,MAAM,KAAK,GAAG,EAAE,EAAE,CAAC;AACtC;;AAEA,OAAO;AACP,CAAC,MAAM,EAAE,MAAM;AACf,CAAC,OAAO,EAAE,MAAM;AAChB,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,uBAAuB,CAAC,uBAAuB,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;AAC5M,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC;AAC3D,CAAC,CAAC,EAAE;AACJ,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,wCAAwC,CAAC,GAAG,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAC,wCAAwC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,sCAAsC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC;AACrhB,EAAE,KAAK,EAAE;AACT,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC;AACtC,GAAG;AACH,EAAE,MAAM,EAAE;AACV,GAAG;AACH,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,SAAS;AACjB,IAAI,OAAO,EAAE,eAAe;AAC5B,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd;AACA,GAAG;AACH,EAAE,kBAAkB,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;AACjC,EAAE,QAAQ,EAAE,YAAY;AACxB;AACA,GAAG,OAAO,IAAI;AACd,GAAG;AACH,EAAE,aAAa,EAAE;AACjB;AACA;AACA,CAAC;;AAEW,MAAC,WAAW,GAAG,IAAI,GAAG,CAAC,EAAE;;AAEzB,MAAC,IAAI,GAAG;;;;"}
1
+ {"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"favicon.ico\",\"favicon.png\",\"icons/144.favicon.png\",\"icons/168.favicon.png\",\"icons/192.favicon.png\",\"icons/48.favicon.png\",\"icons/72.favicon.png\",\"icons/96.favicon.png\",\"manifest.json\"]),\n\tmimeTypes: {\".png\":\"image/png\",\".json\":\"application/json\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.DwC31x2f.js\",app:\"_app/immutable/entry/app.DBhY8_4y.js\",imports:[\"_app/immutable/entry/start.DwC31x2f.js\",\"_app/immutable/chunks/BFU9wwXC.js\",\"_app/immutable/chunks/CDVeMiAl.js\",\"_app/immutable/chunks/ynvIH2CR.js\",\"_app/immutable/entry/app.DBhY8_4y.js\",\"_app/immutable/chunks/CDVeMiAl.js\",\"_app/immutable/chunks/qSIFE6bv.js\",\"_app/immutable/chunks/CvUX3i4L.js\",\"_app/immutable/chunks/DnG2xkSB.js\",\"_app/immutable/chunks/ynvIH2CR.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js'))\n\t\t],\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 2 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/player\",\n\t\t\t\tpattern: /^\\/player\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 3 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"AAAY,MAAC,QAAQ,GAAG,CAAC,MAAM;AAC/B,SAAS,MAAM,CAAC,EAAE,EAAE;AACpB,CAAC,IAAI,KAAK;AACV,CAAC,OAAO,MAAM,KAAK,MAAM,KAAK,GAAG,EAAE,EAAE,CAAC;AACtC;;AAEA,OAAO;AACP,CAAC,MAAM,EAAE,MAAM;AACf,CAAC,OAAO,EAAE,MAAM;AAChB,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,uBAAuB,CAAC,uBAAuB,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;AAC5M,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC;AAC3D,CAAC,CAAC,EAAE;AACJ,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,wCAAwC,CAAC,GAAG,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAC,wCAAwC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,sCAAsC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC;AACrhB,EAAE,KAAK,EAAE;AACT,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC;AACtC,GAAG;AACH,EAAE,MAAM,EAAE;AACV,GAAG;AACH,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,SAAS;AACjB,IAAI,OAAO,EAAE,eAAe;AAC5B,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd;AACA,GAAG;AACH,EAAE,kBAAkB,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;AACjC,EAAE,QAAQ,EAAE,YAAY;AACxB;AACA,GAAG,OAAO,IAAI;AACd,GAAG;AACH,EAAE,aAAa,EAAE;AACjB;AACA;AACA,CAAC;;AAEW,MAAC,WAAW,GAAG,IAAI,GAAG,CAAC,EAAE;;AAEzB,MAAC,IAAI,GAAG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ambient-display",
3
- "version": "1.1.16",
3
+ "version": "1.1.18",
4
4
  "description": "Like a spotify jam but much worse, but also much better. If you need it, you'll love it.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -61,6 +61,7 @@
61
61
  "detect-rpi": "^1.5.0",
62
62
  "dotenv": "^16.4.7",
63
63
  "express": "^4.21.1",
64
+ "express-list-endpoints": "^7.1.1",
64
65
  "node-fetch": "^3.3.2",
65
66
  "node-vibrant": "3.1.6",
66
67
  "normalize.css": "^8.0.1",
@@ -162,6 +162,10 @@ const run = (io, sdk, opts = {}, verbose = false) => {
162
162
  );
163
163
 
164
164
  app.get('/health', (req, res) => res.json({ success: true, authenticated: !!req.sdk }));
165
+ app.get('/reauthenticate', (req, res) => {
166
+ sdk.current = null;
167
+ res.json({ success: true });
168
+ });
165
169
 
166
170
  if (options.centralisedPolling) {
167
171
  io.on('connect', (socket) => {
package/server/index.js CHANGED
@@ -4,6 +4,7 @@ import express from 'express';
4
4
  import cors from 'cors';
5
5
  import { createServer } from 'node:http';
6
6
  import { Server } from 'socket.io';
7
+ import listEndpoints from 'express-list-endpoints';
7
8
 
8
9
  import { ERROR, EVENT } from './constants.js';
9
10
  import * as Types from './types/options.js';
@@ -114,7 +115,7 @@ const sdkProtect = (req, res, next) => {
114
115
 
115
116
  // Mount the spotify sub app
116
117
  const spotify = await SpotifyRoutes(sdk, OPTIONS);
117
- app.use('/spotify', spotify);
118
+ app.use(OPTIONS.spotify.routePrefix, spotify);
118
119
 
119
120
  // Mount the api sub app
120
121
  app.use('/api', sdkProtect, ApiRoutes(io, sdk, OPTIONS.api ?? {}));
@@ -155,6 +156,12 @@ export default {
155
156
  inject,
156
157
  server,
157
158
  start() {
159
+ if (OPTIONS.verbose) {
160
+ const endpoints = listEndpoints(app);
161
+
162
+ console.log(endpoints);
163
+ }
164
+
158
165
  server.listen(OPTIONS.port, () => {
159
166
  console.log(`App running on port ${URL}`);
160
167
  events.system('start');
@@ -22,6 +22,10 @@ const run = async (sdk, options) => {
22
22
  // First check if there is previous auth that is valid
23
23
  const refreshedAuth = await initialisePreviousAuth(options.spotify);
24
24
 
25
+ if (options.verbose) {
26
+ console.log('Result of refreshed auth', refreshedAuth);
27
+ }
28
+
25
29
  // If there is, initialise it while also persisting the auth
26
30
  if (refreshedAuth) {
27
31
  await persistSdk(refreshedAuth, options);
@@ -146,8 +146,15 @@ export function initiateSdk(accessTokenData, opts) {
146
146
 
147
147
  return new SpotifyApi(
148
148
  new FixedAccessTokenStrategy(client_id, accessTokenData, async (_client_id, token) => {
149
+ if (opts.verbose) {
150
+ console.log('Refreshing token');
151
+ log.info('Refreshing token');
152
+ }
153
+
149
154
  const refreshedToken = await refreshAuth(client_id, client_secret, token);
150
155
 
156
+ log.info('Refreshed token', refreshedToken);
157
+
151
158
  await persistSdk(refreshedToken, opts);
152
159
 
153
160
  return refreshedToken;
@@ -1 +0,0 @@
1
- .page.svelte-16as94f{display:grid;grid-template-rows:auto 1fr auto;gap:var(--spacing-large);width:100vw;height:100dvh;transition-duration:.5s;transition-property:background-color}.top.svelte-16as94f{display:flex;justify-content:center;align-items:center;padding:var(--spacing-large)}.middle.svelte-16as94f{min-height:0;display:grid;grid-template-columns:1fr}.middle-image.svelte-16as94f{display:grid;grid-template-columns:1fr;grid-template-rows:1fr;min-height:0;padding:var(--spacing-x-large)}@media (orientation: landscape){.middle-image.svelte-16as94f{padding:var(--spacing-large)}}.middle-image.svelte-16as94f span:where(.svelte-16as94f){grid-column:1;grid-row:1;min-height:0}.middle-image.svelte-16as94f img{width:100%;height:100%;min-height:0;min-width:0;object-fit:contain}.context.svelte-16as94f{display:flex;flex-direction:column;align-items:center}.bottom.svelte-16as94f{display:grid;grid-template-columns:1fr auto;gap:var(--spacing-large);justify-content:space-between;align-items:flex-start;padding:var(--spacing-large)}.bottom.svelte-16as94f .badge:where(.svelte-16as94f){display:grid;grid-template-columns:1fr 50px;gap:var(--spacing-small);align-items:center;padding:var(--spacing-small);border-radius:var(--border-radius-normal);min-width:150px}.bottom.svelte-16as94f .badge-qr:where(.svelte-16as94f){line-height:0}.bottom.svelte-16as94f .left:where(.svelte-16as94f){display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-small);flex:1;min-width:0}.bottom.svelte-16as94f .left:where(.svelte-16as94f) .title:where(.svelte-16as94f){width:100%;line-height:1.2;margin-bottom:-.1em}.bottom.svelte-16as94f .right:where(.svelte-16as94f){display:flex;flex-direction:column;align-items:flex-end;align-self:flex-end;gap:var(--spacing-small)}.empty.svelte-16as94f{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);padding:var(--spacing-normal);border-radius:var(--border-radius-normal);white-space:nowrap}
@@ -1 +0,0 @@
1
- .page.svelte-16as94f{display:grid;grid-template-rows:auto 1fr auto;gap:var(--spacing-large);width:100vw;height:100dvh;transition-duration:.5s;transition-property:background-color}.top.svelte-16as94f{display:flex;justify-content:center;align-items:center;padding:var(--spacing-large)}.middle.svelte-16as94f{min-height:0;display:grid;grid-template-columns:1fr}.middle-image.svelte-16as94f{display:grid;grid-template-columns:1fr;grid-template-rows:1fr;min-height:0;padding:var(--spacing-x-large)}@media (orientation: landscape){.middle-image.svelte-16as94f{padding:var(--spacing-large)}}.middle-image.svelte-16as94f span:where(.svelte-16as94f){grid-column:1;grid-row:1;min-height:0}.middle-image.svelte-16as94f img{width:100%;height:100%;min-height:0;min-width:0;object-fit:contain}.context.svelte-16as94f{display:flex;flex-direction:column;align-items:center}.bottom.svelte-16as94f{display:grid;grid-template-columns:1fr auto;gap:var(--spacing-large);justify-content:space-between;align-items:flex-start;padding:var(--spacing-large)}.bottom.svelte-16as94f .badge:where(.svelte-16as94f){display:grid;grid-template-columns:1fr 50px;gap:var(--spacing-small);align-items:center;padding:var(--spacing-small);border-radius:var(--border-radius-normal);min-width:150px}.bottom.svelte-16as94f .badge-qr:where(.svelte-16as94f){line-height:0}.bottom.svelte-16as94f .left:where(.svelte-16as94f){display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-small);flex:1;min-width:0}.bottom.svelte-16as94f .left:where(.svelte-16as94f) .title:where(.svelte-16as94f){width:100%;line-height:1.2;margin-bottom:-.1em}.bottom.svelte-16as94f .right:where(.svelte-16as94f){display:flex;flex-direction:column;align-items:flex-end;align-self:flex-end;gap:var(--spacing-small)}.empty.svelte-16as94f{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);padding:var(--spacing-normal);border-radius:var(--border-radius-normal);white-space:nowrap}
@@ -1,2 +0,0 @@
1
- import{q as We,Y as te,h as T,as as wt,ap as Et,C as At,d as kt,o as Ce,a6 as Tt,W as Ot,X as Ne,Z as F,i as I,ay as Rt,_ as je,f as ze,H as St,aC as Je,T as Ct,a1 as Nt,M as Be,aH as se,P as Le,aI as _e,aJ as Pe,aK as Bt,aB as Lt,aL as Pt,g as xt,aM as me,aN as qt,ar as It,aO as Xe,aP as Dt,aQ as Mt,R as Ut,aR as Vt,aS as Ft,aT as H,aU as $,x as Ht}from"./CDVeMiAl.js";import{k as $t,l as Kt,e as Yt,o as Wt,p as jt,t as zt,a as Jt}from"./qSIFE6bv.js";import{b as Xt}from"./CvUX3i4L.js";function Qt(s,e){if(e){const t=document.body;s.autofocus=!0,We(()=>{document.activeElement===t&&s.focus()})}}let re=null;function ur(s,e){return e}function Gt(s,e,t,r){for(var i=[],n=e.length,o=0;o<n;o++)Bt(e[o].e,i,!0);var a=n>0&&i.length===0&&t!==null;if(a){var c=t.parentNode;Lt(c),c.append(t),r.clear(),L(s,e[0].prev,e[n-1].next)}Pt(i,()=>{for(var u=0;u<n;u++){var l=e[u];a||(r.delete(l.k),L(s,l.prev,l.next)),xt(l.e,!a)}})}function lr(s,e,t,r,i,n=null){var o=s,a={flags:e,items:new Map,first:null},c=(e&Xe)!==0;if(c){var u=s;o=T?te(wt(u)):u.appendChild(Et())}T&&At();var l=null,_=!1,f=Tt(()=>{var v=t();return Ct(v)?v:v==null?[]:Je(v)});kt(()=>{var v=Ce(f),g=v.length;if(_&&g===0)return;_=g===0;let m=!1;if(T){var A=o.data===Ot;A!==(g===0)&&(o=Ne(),te(o),F(!1),m=!0)}if(T){for(var b=null,k,p=0;p<g;p++){if(I.nodeType===8&&I.data===Rt){o=I,m=!0,F(!1);break}var h=v[p],d=r(h,p);k=Qe(I,a,b,null,h,d,p,i,e,t),a.items.set(d,k),b=k}g>0&&te(Ne())}T||Zt(v,a,o,i,e,r,t),n!==null&&(g===0?l?je(l):l=ze(()=>n(o)):l!==null&&St(l,()=>{l=null})),m&&F(!0),Ce(f)}),T&&(o=I)}function Zt(s,e,t,r,i,n,o){var ke,Te,Oe,Re;var a=(i&Dt)!==0,c=(i&(me|_e))!==0,u=s.length,l=e.items,_=e.first,f=_,v,g=null,m,A=[],b=[],k,p,h,d;if(a)for(d=0;d<u;d+=1)k=s[d],p=n(k,d),h=l.get(p),h!==void 0&&((ke=h.a)==null||ke.measure(),(m??(m=new Set)).add(h));for(d=0;d<u;d+=1){if(k=s[d],p=n(k,d),h=l.get(p),h===void 0){var B=f?f.e.nodes_start:t;g=Qe(B,e,g,g===null?e.first:g.next,k,p,d,r,i,o),l.set(p,g),A=[],b=[],f=g.next;continue}if(c&&es(h,k,d,i),(h.e.f&se)!==0&&(je(h.e),a&&((Te=h.a)==null||Te.unfix(),(m??(m=new Set)).delete(h))),h!==f){if(v!==void 0&&v.has(h)){if(A.length<b.length){var w=b[0],S;g=w.prev;var K=A[0],Z=A[A.length-1];for(S=0;S<A.length;S+=1)xe(A[S],w,t);for(S=0;S<b.length;S+=1)v.delete(b[S]);L(e,K.prev,Z.next),L(e,g,K),L(e,Z,w),f=w,g=Z,d-=1,A=[],b=[]}else v.delete(h),xe(h,f,t),L(e,h.prev,h.next),L(e,h,g===null?e.first:g.next),L(e,g,h),g=h;continue}for(A=[],b=[];f!==null&&f.k!==p;)(f.e.f&se)===0&&(v??(v=new Set)).add(f),b.push(f),f=f.next;if(f===null)continue;h=f}A.push(h),g=h,f=h.next}if(f!==null||v!==void 0){for(var q=v===void 0?[]:Je(v);f!==null;)(f.e.f&se)===0&&q.push(f),f=f.next;var ee=q.length;if(ee>0){var bt=(i&Xe)!==0&&u===0?t:null;if(a){for(d=0;d<ee;d+=1)(Oe=q[d].a)==null||Oe.measure();for(d=0;d<ee;d+=1)(Re=q[d].a)==null||Re.fix()}Gt(e,q,bt,l)}}a&&We(()=>{var Se;if(m!==void 0)for(h of m)(Se=h.a)==null||Se.apply()}),Le.first=e.first&&e.first.e,Le.last=g&&g.e}function es(s,e,t,r){(r&me)!==0&&Pe(s.v,e),(r&_e)!==0?Pe(s.i,t):s.i=t}function Qe(s,e,t,r,i,n,o,a,c,u){var l=re,_=(c&me)!==0,f=(c&qt)===0,v=_?f?Nt(i):Be(i):i,g=(c&_e)===0?o:Be(o),m={i:g,v,k:n,a:null,e:null,prev:t,next:r};re=m;try{return m.e=ze(()=>a(s,v,g,u),T),m.e.prev=t&&t.e,m.e.next=r&&r.e,t===null?e.first=m:(t.next=m,t.e.next=m.e),r!==null&&(r.prev=m,r.e.prev=m.e),m}finally{re=l}}function xe(s,e,t){for(var r=s.next?s.next.e.nodes_start:t,i=e?e.e.nodes_start:t,n=s.e.nodes_start;n!==r;){var o=It(n);i.before(n),n=o}}function L(s,e,t){e===null?s.first=t:(e.next=t,e.e.next=t&&t.e),t!==null&&(t.prev=e,t.e.prev=e&&e.e)}function Ge(s){var e,t,r="";if(typeof s=="string"||typeof s=="number")r+=s;else if(typeof s=="object")if(Array.isArray(s)){var i=s.length;for(e=0;e<i;e++)s[e]&&(t=Ge(s[e]))&&(r&&(r+=" "),r+=t)}else for(t in s)s[t]&&(r&&(r+=" "),r+=t);return r}function ts(){for(var s,e,t=0,r="",i=arguments.length;t<i;t++)(s=arguments[t])&&(e=Ge(s))&&(r&&(r+=" "),r+=e);return r}function ss(s){return typeof s=="object"?ts(s):s??""}const qe=[...`
2
- \r\f \v\uFEFF`];function rs(s,e,t){var r=s==null?"":""+s;if(e&&(r=r?r+" "+e:e),t){for(var i in t)if(t[i])r=r?r+" "+i:i;else if(r.length)for(var n=i.length,o=0;(o=r.indexOf(i,o))>=0;){var a=o+n;(o===0||qe.includes(r[o-1]))&&(a===r.length||qe.includes(r[a]))?r=(o===0?"":r.substring(0,o))+r.substring(a+1):o=a}}return r===""?null:r}function Ie(s,e=!1){var t=e?" !important;":";",r="";for(var i in s){var n=s[i];n!=null&&n!==""&&(r+=" "+i+": "+n+t)}return r}function ie(s){return s[0]!=="-"||s[1]!=="-"?s.toLowerCase():s}function is(s,e){if(e){var t="",r,i;if(Array.isArray(e)?(r=e[0],i=e[1]):r=e,s){s=String(s).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var n=!1,o=0,a=!1,c=[];r&&c.push(...Object.keys(r).map(ie)),i&&c.push(...Object.keys(i).map(ie));var u=0,l=-1;const m=s.length;for(var _=0;_<m;_++){var f=s[_];if(a?f==="/"&&s[_-1]==="*"&&(a=!1):n?n===f&&(n=!1):f==="/"&&s[_+1]==="*"?a=!0:f==='"'||f==="'"?n=f:f==="("?o++:f===")"&&o--,!a&&n===!1&&o===0){if(f===":"&&l===-1)l=_;else if(f===";"||_===m-1){if(l!==-1){var v=ie(s.substring(u,l).trim());if(!c.includes(v)){f!==";"&&_++;var g=s.substring(u,_).trim();t+=" "+g+";"}}u=_+1,l=-1}}}}return r&&(t+=Ie(r)),i&&(t+=Ie(i,!0)),t=t.trim(),t===""?null:t}return s==null?null:String(s)}function Ze(s,e,t,r,i,n){var o=s.__className;if(T||o!==t){var a=rs(t,r,n);(!T||a!==s.getAttribute("class"))&&(a==null?s.removeAttribute("class"):e?s.className=a:s.setAttribute("class",a)),s.__className=t}else if(n&&i!==n)for(var c in n){var u=!!n[c];(i==null||u!==!!i[c])&&s.classList.toggle(c,u)}return n}function ne(s,e={},t,r){for(var i in t){var n=t[i];e[i]!==n&&(t[i]==null?s.style.removeProperty(i):s.style.setProperty(i,n,r))}}function ns(s,e,t,r){var i=s.__style;if(T||i!==e){var n=is(e,r);(!T||n!==s.getAttribute("style"))&&(n==null?s.removeAttribute("style"):s.style.cssText=n),s.__style=e}else r&&(Array.isArray(r)?(ne(s,t==null?void 0:t[0],r[0]),ne(s,t==null?void 0:t[1],r[1],"important")):ne(s,t,r));return r}const D=Symbol("class"),M=Symbol("style"),et=Symbol("is custom element"),tt=Symbol("is html");function os(s,e){e?s.hasAttribute("selected")||s.setAttribute("selected",""):s.removeAttribute("selected")}function De(s,e,t,r){var i=st(s);T&&(i[e]=s.getAttribute(e),e==="src"||e==="srcset"||e==="href"&&s.nodeName==="LINK")||i[e]!==(i[e]=t)&&(e==="loading"&&(s[Ft]=t),t==null?s.removeAttribute(e):typeof t!="string"&&rt(s).includes(e)?s[e]=t:s.setAttribute(e,t))}function dr(s,e,t,r,i=!1){var n=st(s),o=n[et],a=!n[tt];let c=T&&o;c&&F(!1);var u=e||{},l=s.tagName==="OPTION";for(var _ in e)_ in t||(t[_]=null);t.class?t.class=ss(t.class):t[D]&&(t.class=null),t[M]&&(t.style??(t.style=null));var f=rt(s);for(const p in t){let h=t[p];if(l&&p==="value"&&h==null){s.value=s.__value="",u[p]=h;continue}if(p==="class"){var v=s.namespaceURI==="http://www.w3.org/1999/xhtml";Ze(s,v,h,r,e==null?void 0:e[D],t[D]),u[p]=h,u[D]=t[D];continue}if(p==="style"){ns(s,h,e==null?void 0:e[M],t[M]),u[p]=h,u[M]=t[M];continue}var g=u[p];if(h!==g){u[p]=h;var m=p[0]+p[1];if(m!=="$$")if(m==="on"){const d={},B="$$"+p;let w=p.slice(2);var A=jt(w);if($t(w)&&(w=w.slice(0,-7),d.capture=!0),!A&&g){if(h!=null)continue;s.removeEventListener(w,u[B],d),u[B]=null}if(h!=null)if(A)s[`__${w}`]=h,Yt([w]);else{let S=function(K){u[p].call(this,K)};u[B]=Kt(w,s,S,d)}else A&&(s[`__${w}`]=void 0)}else if(p==="style")De(s,p,h);else if(p==="autofocus")Qt(s,!!h);else if(!o&&(p==="__value"||p==="value"&&h!=null))s.value=s.__value=h;else if(p==="selected"&&l)os(s,h);else{var b=p;a||(b=Wt(b));var k=b==="defaultValue"||b==="defaultChecked";if(h==null&&!o&&!k)if(n[p]=null,b==="value"||b==="checked"){let d=s;const B=e===void 0;if(b==="value"){let w=d.defaultValue;d.removeAttribute(b),d.defaultValue=w,d.value=d.__value=B?w:null}else{let w=d.defaultChecked;d.removeAttribute(b),d.defaultChecked=w,d.checked=B?w:!1}}else s.removeAttribute(p);else k||f.includes(b)&&(o||typeof h!="string")?s[b]=h:typeof h!="function"&&De(s,b,h)}}}return c&&F(!0),u}function st(s){return s.__attributes??(s.__attributes={[et]:s.nodeName.includes("-"),[tt]:s.namespaceURI===Mt})}var Me=new Map;function rt(s){var e=Me.get(s.nodeName);if(e)return e;Me.set(s.nodeName,e=[]);for(var t,r=s,i=Element.prototype;i!==r;){t=Vt(r);for(var n in t)t[n].set&&e.push(n);r=Ut(r)}return e}const oe=H([]);let Ue=0;const it={...oe,addItem(s){const e=Ue+1;return oe.update(t=>[...t,{id:e,...s}]),Ue=e,()=>it.removeItem(e)},removeItem(s){oe.update(e=>{const t=e.slice();return t.splice(t.findIndex(r=>r.id===s),1),t})}},as=H(!1),pr=H(!1),cs=H(!1),nt=H({}),hs=$([nt],([s])=>[s==null?void 0:s.protocol,s==null?void 0:s.origin].join("")),fs=$([nt],([s])=>s.port),Ve=s=>Object.values(s).length>0,ot=$([as,hs,fs],([s,e,t])=>{const r=`${typeof window<"u"?window.location.protocol:"http:"}//${e}:${t}`;return{full:r,naked:[e,t].join(":"),get(i){return`${r}${i}`},endpoint:s||!e?"":`${e}:${t}`,server(i){return`${this.endpoint}${i}`}}}),yr=$([ot],([s])=>{const e=async(t,r={},i={})=>{try{const n=new URL([s.endpoint.startsWith("http")?"":window.location.origin,s.endpoint,"/api",t].join(""));i.method==="POST"&&Ve(r)?i.body=JSON.stringify(r):Ve(r)&&(n.search=new URLSearchParams(r).toString());const o=await fetch(n,i),a=await o.json();if(o.status!==200)throw new Error(a);return a}catch(n){throw it.addItem({message:"Api Error",type:"error"}),n}};return{health(){return e("/health")},info(){return e("/info")},search(t){return e("/search",{q:t})},artist(t){return e(`/artist/${t}`)},album(t){return e(`/album/${t}`)},addTrack(t,r){return e("/add",{uri:t,name:r})},play(){return e("/play")},pause(){return e("/pause")},skipForward(){return e("/skipForward")},skipBackward(){return e("/skipBackward")}}}),N=Object.create(null);N.open="0";N.close="1";N.ping="2";N.pong="3";N.message="4";N.upgrade="5";N.noop="6";const j=Object.create(null);Object.keys(N).forEach(s=>{j[N[s]]=s});const ue={type:"error",data:"parser error"},at=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",ct=typeof ArrayBuffer=="function",ht=s=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(s):s&&s.buffer instanceof ArrayBuffer,ve=({type:s,data:e},t,r)=>at&&e instanceof Blob?t?r(e):Fe(e,r):ct&&(e instanceof ArrayBuffer||ht(e))?t?r(e):Fe(new Blob([e]),r):r(N[s]+(e||"")),Fe=(s,e)=>{const t=new FileReader;return t.onload=function(){const r=t.result.split(",")[1];e("b"+(r||""))},t.readAsDataURL(s)};function He(s){return s instanceof Uint8Array?s:s instanceof ArrayBuffer?new Uint8Array(s):new Uint8Array(s.buffer,s.byteOffset,s.byteLength)}let ae;function us(s,e){if(at&&s.data instanceof Blob)return s.data.arrayBuffer().then(He).then(e);if(ct&&(s.data instanceof ArrayBuffer||ht(s.data)))return e(He(s.data));ve(s,!1,t=>{ae||(ae=new TextEncoder),e(ae.encode(t))})}const $e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",V=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let s=0;s<$e.length;s++)V[$e.charCodeAt(s)]=s;const ls=s=>{let e=s.length*.75,t=s.length,r,i=0,n,o,a,c;s[s.length-1]==="="&&(e--,s[s.length-2]==="="&&e--);const u=new ArrayBuffer(e),l=new Uint8Array(u);for(r=0;r<t;r+=4)n=V[s.charCodeAt(r)],o=V[s.charCodeAt(r+1)],a=V[s.charCodeAt(r+2)],c=V[s.charCodeAt(r+3)],l[i++]=n<<2|o>>4,l[i++]=(o&15)<<4|a>>2,l[i++]=(a&3)<<6|c&63;return u},ds=typeof ArrayBuffer=="function",be=(s,e)=>{if(typeof s!="string")return{type:"message",data:ft(s,e)};const t=s.charAt(0);return t==="b"?{type:"message",data:ps(s.substring(1),e)}:j[t]?s.length>1?{type:j[t],data:s.substring(1)}:{type:j[t]}:ue},ps=(s,e)=>{if(ds){const t=ls(s);return ft(t,e)}else return{base64:!0,data:s}},ft=(s,e)=>{switch(e){case"blob":return s instanceof Blob?s:new Blob([s]);case"arraybuffer":default:return s instanceof ArrayBuffer?s:s.buffer}},ut="",ys=(s,e)=>{const t=s.length,r=new Array(t);let i=0;s.forEach((n,o)=>{ve(n,!1,a=>{r[o]=a,++i===t&&e(r.join(ut))})})},gs=(s,e)=>{const t=s.split(ut),r=[];for(let i=0;i<t.length;i++){const n=be(t[i],e);if(r.push(n),n.type==="error")break}return r};function _s(){return new TransformStream({transform(s,e){us(s,t=>{const r=t.length;let i;if(r<126)i=new Uint8Array(1),new DataView(i.buffer).setUint8(0,r);else if(r<65536){i=new Uint8Array(3);const n=new DataView(i.buffer);n.setUint8(0,126),n.setUint16(1,r)}else{i=new Uint8Array(9);const n=new DataView(i.buffer);n.setUint8(0,127),n.setBigUint64(1,BigInt(r))}s.data&&typeof s.data!="string"&&(i[0]|=128),e.enqueue(i),e.enqueue(t)})}})}let ce;function Y(s){return s.reduce((e,t)=>e+t.length,0)}function W(s,e){if(s[0].length===e)return s.shift();const t=new Uint8Array(e);let r=0;for(let i=0;i<e;i++)t[i]=s[0][r++],r===s[0].length&&(s.shift(),r=0);return s.length&&r<s[0].length&&(s[0]=s[0].slice(r)),t}function ms(s,e){ce||(ce=new TextDecoder);const t=[];let r=0,i=-1,n=!1;return new TransformStream({transform(o,a){for(t.push(o);;){if(r===0){if(Y(t)<1)break;const c=W(t,1);n=(c[0]&128)===128,i=c[0]&127,i<126?r=3:i===126?r=1:r=2}else if(r===1){if(Y(t)<2)break;const c=W(t,2);i=new DataView(c.buffer,c.byteOffset,c.length).getUint16(0),r=3}else if(r===2){if(Y(t)<8)break;const c=W(t,8),u=new DataView(c.buffer,c.byteOffset,c.length),l=u.getUint32(0);if(l>Math.pow(2,21)-1){a.enqueue(ue);break}i=l*Math.pow(2,32)+u.getUint32(4),r=3}else{if(Y(t)<i)break;const c=W(t,i);a.enqueue(be(n?c:ce.decode(c),e)),r=0}if(i===0||i>s){a.enqueue(ue);break}}}})}const lt=4;function E(s){if(s)return vs(s)}function vs(s){for(var e in E.prototype)s[e]=E.prototype[e];return s}E.prototype.on=E.prototype.addEventListener=function(s,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+s]=this._callbacks["$"+s]||[]).push(e),this};E.prototype.once=function(s,e){function t(){this.off(s,t),e.apply(this,arguments)}return t.fn=e,this.on(s,t),this};E.prototype.off=E.prototype.removeListener=E.prototype.removeAllListeners=E.prototype.removeEventListener=function(s,e){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var t=this._callbacks["$"+s];if(!t)return this;if(arguments.length==1)return delete this._callbacks["$"+s],this;for(var r,i=0;i<t.length;i++)if(r=t[i],r===e||r.fn===e){t.splice(i,1);break}return t.length===0&&delete this._callbacks["$"+s],this};E.prototype.emit=function(s){this._callbacks=this._callbacks||{};for(var e=new Array(arguments.length-1),t=this._callbacks["$"+s],r=1;r<arguments.length;r++)e[r-1]=arguments[r];if(t){t=t.slice(0);for(var r=0,i=t.length;r<i;++r)t[r].apply(this,e)}return this};E.prototype.emitReserved=E.prototype.emit;E.prototype.listeners=function(s){return this._callbacks=this._callbacks||{},this._callbacks["$"+s]||[]};E.prototype.hasListeners=function(s){return!!this.listeners(s).length};const Q=typeof Promise=="function"&&typeof Promise.resolve=="function"?e=>Promise.resolve().then(e):(e,t)=>t(e,0),O=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),bs="arraybuffer";function dt(s,...e){return e.reduce((t,r)=>(s.hasOwnProperty(r)&&(t[r]=s[r]),t),{})}const ws=O.setTimeout,Es=O.clearTimeout;function G(s,e){e.useNativeTimers?(s.setTimeoutFn=ws.bind(O),s.clearTimeoutFn=Es.bind(O)):(s.setTimeoutFn=O.setTimeout.bind(O),s.clearTimeoutFn=O.clearTimeout.bind(O))}const As=1.33;function ks(s){return typeof s=="string"?Ts(s):Math.ceil((s.byteLength||s.size)*As)}function Ts(s){let e=0,t=0;for(let r=0,i=s.length;r<i;r++)e=s.charCodeAt(r),e<128?t+=1:e<2048?t+=2:e<55296||e>=57344?t+=3:(r++,t+=4);return t}function pt(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function Os(s){let e="";for(let t in s)s.hasOwnProperty(t)&&(e.length&&(e+="&"),e+=encodeURIComponent(t)+"="+encodeURIComponent(s[t]));return e}function Rs(s){let e={},t=s.split("&");for(let r=0,i=t.length;r<i;r++){let n=t[r].split("=");e[decodeURIComponent(n[0])]=decodeURIComponent(n[1])}return e}class Ss extends Error{constructor(e,t,r){super(e),this.description=t,this.context=r,this.type="TransportError"}}class we extends E{constructor(e){super(),this.writable=!1,G(this,e),this.opts=e,this.query=e.query,this.socket=e.socket,this.supportsBinary=!e.forceBase64}onError(e,t,r){return super.emitReserved("error",new Ss(e,t,r)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(e){this.readyState==="open"&&this.write(e)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(e){const t=be(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){super.emitReserved("packet",e)}onClose(e){this.readyState="closed",super.emitReserved("close",e)}pause(e){}createUri(e,t={}){return e+"://"+this._hostname()+this._port()+this.opts.path+this._query(t)}_hostname(){const e=this.opts.hostname;return e.indexOf(":")===-1?e:"["+e+"]"}_port(){return this.opts.port&&(this.opts.secure&&+(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(e){const t=Os(e);return t.length?"?"+t:""}}class Cs extends we{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(e){this.readyState="pausing";const t=()=>{this.readyState="paused",e()};if(this._polling||!this.writable){let r=0;this._polling&&(r++,this.once("pollComplete",function(){--r||t()})),this.writable||(r++,this.once("drain",function(){--r||t()}))}else t()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(e){const t=r=>{if(this.readyState==="opening"&&r.type==="open"&&this.onOpen(),r.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(r)};gs(e,this.socket.binaryType).forEach(t),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const e=()=>{this.write([{type:"close"}])};this.readyState==="open"?e():this.once("open",e)}write(e){this.writable=!1,ys(e,t=>{this.doWrite(t,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const e=this.opts.secure?"https":"http",t=this.query||{};return this.opts.timestampRequests!==!1&&(t[this.opts.timestampParam]=pt()),!this.supportsBinary&&!t.sid&&(t.b64=1),this.createUri(e,t)}}let yt=!1;try{yt=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const Ns=yt;function Bs(){}class Ls extends Cs{constructor(e){if(super(e),typeof location<"u"){const t=location.protocol==="https:";let r=location.port;r||(r=t?"443":"80"),this.xd=typeof location<"u"&&e.hostname!==location.hostname||r!==e.port}}doWrite(e,t){const r=this.request({method:"POST",data:e});r.on("success",t),r.on("error",(i,n)=>{this.onError("xhr post error",i,n)})}doPoll(){const e=this.request();e.on("data",this.onData.bind(this)),e.on("error",(t,r)=>{this.onError("xhr poll error",t,r)}),this.pollXhr=e}}class C extends E{constructor(e,t,r){super(),this.createRequest=e,G(this,r),this._opts=r,this._method=r.method||"GET",this._uri=t,this._data=r.data!==void 0?r.data:null,this._create()}_create(){var e;const t=dt(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");t.xdomain=!!this._opts.xd;const r=this._xhr=this.createRequest(t);try{r.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){r.setDisableHeaderCheck&&r.setDisableHeaderCheck(!0);for(let i in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(i)&&r.setRequestHeader(i,this._opts.extraHeaders[i])}}catch{}if(this._method==="POST")try{r.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{r.setRequestHeader("Accept","*/*")}catch{}(e=this._opts.cookieJar)===null||e===void 0||e.addCookies(r),"withCredentials"in r&&(r.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(r.timeout=this._opts.requestTimeout),r.onreadystatechange=()=>{var i;r.readyState===3&&((i=this._opts.cookieJar)===null||i===void 0||i.parseCookies(r.getResponseHeader("set-cookie"))),r.readyState===4&&(r.status===200||r.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof r.status=="number"?r.status:0)},0))},r.send(this._data)}catch(i){this.setTimeoutFn(()=>{this._onError(i)},0);return}typeof document<"u"&&(this._index=C.requestsCount++,C.requests[this._index]=this)}_onError(e){this.emitReserved("error",e,this._xhr),this._cleanup(!0)}_cleanup(e){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=Bs,e)try{this._xhr.abort()}catch{}typeof document<"u"&&delete C.requests[this._index],this._xhr=null}}_onLoad(){const e=this._xhr.responseText;e!==null&&(this.emitReserved("data",e),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}C.requestsCount=0;C.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",Ke);else if(typeof addEventListener=="function"){const s="onpagehide"in O?"pagehide":"unload";addEventListener(s,Ke,!1)}}function Ke(){for(let s in C.requests)C.requests.hasOwnProperty(s)&&C.requests[s].abort()}const Ps=function(){const s=gt({xdomain:!1});return s&&s.responseType!==null}();class xs extends Ls{constructor(e){super(e);const t=e&&e.forceBase64;this.supportsBinary=Ps&&!t}request(e={}){return Object.assign(e,{xd:this.xd},this.opts),new C(gt,this.uri(),e)}}function gt(s){const e=s.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!e||Ns))return new XMLHttpRequest}catch{}if(!e)try{return new O[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const _t=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class qs extends we{get name(){return"websocket"}doOpen(){const e=this.uri(),t=this.opts.protocols,r=_t?{}:dt(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(e,t,r)}catch(i){return this.emitReserved("error",i)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:"websocket connection closed",context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError("websocket error",e)}write(e){this.writable=!1;for(let t=0;t<e.length;t++){const r=e[t],i=t===e.length-1;ve(r,this.supportsBinary,n=>{try{this.doWrite(r,n)}catch{}i&&Q(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const e=this.opts.secure?"wss":"ws",t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=pt()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}}const he=O.WebSocket||O.MozWebSocket;class Is extends qs{createSocket(e,t,r){return _t?new he(e,t,r):t?new he(e,t):new he(e)}doWrite(e,t){this.ws.send(t)}}class Ds extends we{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(e){return this.emitReserved("error",e)}this._transport.closed.then(()=>{this.onClose()}).catch(e=>{this.onError("webtransport error",e)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(e=>{const t=ms(Number.MAX_SAFE_INTEGER,this.socket.binaryType),r=e.readable.pipeThrough(t).getReader(),i=_s();i.readable.pipeTo(e.writable),this._writer=i.writable.getWriter();const n=()=>{r.read().then(({done:a,value:c})=>{a||(this.onPacket(c),n())}).catch(a=>{})};n();const o={type:"open"};this.query.sid&&(o.data=`{"sid":"${this.query.sid}"}`),this._writer.write(o).then(()=>this.onOpen())})})}write(e){this.writable=!1;for(let t=0;t<e.length;t++){const r=e[t],i=t===e.length-1;this._writer.write(r).then(()=>{i&&Q(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var e;(e=this._transport)===null||e===void 0||e.close()}}const Ms={websocket:Is,webtransport:Ds,polling:xs},Us=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,Vs=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function le(s){if(s.length>8e3)throw"URI too long";const e=s,t=s.indexOf("["),r=s.indexOf("]");t!=-1&&r!=-1&&(s=s.substring(0,t)+s.substring(t,r).replace(/:/g,";")+s.substring(r,s.length));let i=Us.exec(s||""),n={},o=14;for(;o--;)n[Vs[o]]=i[o]||"";return t!=-1&&r!=-1&&(n.source=e,n.host=n.host.substring(1,n.host.length-1).replace(/;/g,":"),n.authority=n.authority.replace("[","").replace("]","").replace(/;/g,":"),n.ipv6uri=!0),n.pathNames=Fs(n,n.path),n.queryKey=Hs(n,n.query),n}function Fs(s,e){const t=/\/{2,9}/g,r=e.replace(t,"/").split("/");return(e.slice(0,1)=="/"||e.length===0)&&r.splice(0,1),e.slice(-1)=="/"&&r.splice(r.length-1,1),r}function Hs(s,e){const t={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(r,i,n){i&&(t[i]=n)}),t}const de=typeof addEventListener=="function"&&typeof removeEventListener=="function",z=[];de&&addEventListener("offline",()=>{z.forEach(s=>s())},!1);class P extends E{constructor(e,t){if(super(),this.binaryType=bs,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,e&&typeof e=="object"&&(t=e,e=null),e){const r=le(e);t.hostname=r.host,t.secure=r.protocol==="https"||r.protocol==="wss",t.port=r.port,r.query&&(t.query=r.query)}else t.host&&(t.hostname=le(t.host).host);G(this,t),this.secure=t.secure!=null?t.secure:typeof location<"u"&&location.protocol==="https:",t.hostname&&!t.port&&(t.port=this.secure?"443":"80"),this.hostname=t.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=t.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},t.transports.forEach(r=>{const i=r.prototype.name;this.transports.push(i),this._transportsByName[i]=r}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},t),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=Rs(this.opts.query)),de&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},z.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(e){const t=Object.assign({},this.opts.query);t.EIO=lt,t.transport=e,this.id&&(t.sid=this.id);const r=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new this._transportsByName[e](r)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const e=this.opts.rememberUpgrade&&P.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const t=this.createTransport(e);t.open(),this.setTransport(t)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",t=>this._onClose("transport close",t))}onOpen(){this.readyState="open",P.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(e){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",e),this.emitReserved("heartbeat"),e.type){case"open":this.onHandshake(JSON.parse(e.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const t=new Error("server error");t.code=e.data,this._onError(t);break;case"message":this.emitReserved("data",e.data),this.emitReserved("message",e.data);break}}onHandshake(e){this.emitReserved("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this._pingInterval=e.pingInterval,this._pingTimeout=e.pingTimeout,this._maxPayload=e.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const e=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+e,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},e),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const e=this._getWritablePackets();this.transport.send(e),this._prevBufferLen=e.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let t=1;for(let r=0;r<this.writeBuffer.length;r++){const i=this.writeBuffer[r].data;if(i&&(t+=ks(i)),r>0&&t>this._maxPayload)return this.writeBuffer.slice(0,r);t+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const e=Date.now()>this._pingTimeoutTime;return e&&(this._pingTimeoutTime=0,Q(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),e}write(e,t,r){return this._sendPacket("message",e,t,r),this}send(e,t,r){return this._sendPacket("message",e,t,r),this}_sendPacket(e,t,r,i){if(typeof t=="function"&&(i=t,t=void 0),typeof r=="function"&&(i=r,r=null),this.readyState==="closing"||this.readyState==="closed")return;r=r||{},r.compress=r.compress!==!1;const n={type:e,data:t,options:r};this.emitReserved("packetCreate",n),this.writeBuffer.push(n),i&&this.once("flush",i),this.flush()}close(){const e=()=>{this._onClose("forced close"),this.transport.close()},t=()=>{this.off("upgrade",t),this.off("upgradeError",t),e()},r=()=>{this.once("upgrade",t),this.once("upgradeError",t)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?r():e()}):this.upgrading?r():e()),this}_onError(e){if(P.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",e),this._onClose("transport error",e)}_onClose(e,t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),de&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const r=z.indexOf(this._offlineEventListener);r!==-1&&z.splice(r,1)}this.readyState="closed",this.id=null,this.emitReserved("close",e,t),this.writeBuffer=[],this._prevBufferLen=0}}}P.protocol=lt;class $s extends P{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let e=0;e<this._upgrades.length;e++)this._probe(this._upgrades[e])}_probe(e){let t=this.createTransport(e),r=!1;P.priorWebsocketSuccess=!1;const i=()=>{r||(t.send([{type:"ping",data:"probe"}]),t.once("packet",_=>{if(!r)if(_.type==="pong"&&_.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",t),!t)return;P.priorWebsocketSuccess=t.name==="websocket",this.transport.pause(()=>{r||this.readyState!=="closed"&&(l(),this.setTransport(t),t.send([{type:"upgrade"}]),this.emitReserved("upgrade",t),t=null,this.upgrading=!1,this.flush())})}else{const f=new Error("probe error");f.transport=t.name,this.emitReserved("upgradeError",f)}}))};function n(){r||(r=!0,l(),t.close(),t=null)}const o=_=>{const f=new Error("probe error: "+_);f.transport=t.name,n(),this.emitReserved("upgradeError",f)};function a(){o("transport closed")}function c(){o("socket closed")}function u(_){t&&_.name!==t.name&&n()}const l=()=>{t.removeListener("open",i),t.removeListener("error",o),t.removeListener("close",a),this.off("close",c),this.off("upgrading",u)};t.once("open",i),t.once("error",o),t.once("close",a),this.once("close",c),this.once("upgrading",u),this._upgrades.indexOf("webtransport")!==-1&&e!=="webtransport"?this.setTimeoutFn(()=>{r||t.open()},200):t.open()}onHandshake(e){this._upgrades=this._filterUpgrades(e.upgrades),super.onHandshake(e)}_filterUpgrades(e){const t=[];for(let r=0;r<e.length;r++)~this.transports.indexOf(e[r])&&t.push(e[r]);return t}}let Ks=class extends $s{constructor(e,t={}){const r=typeof e=="object"?e:t;(!r.transports||r.transports&&typeof r.transports[0]=="string")&&(r.transports=(r.transports||["polling","websocket","webtransport"]).map(i=>Ms[i]).filter(i=>!!i)),super(e,r)}};function Ys(s,e="",t){let r=s;t=t||typeof location<"u"&&location,s==null&&(s=t.protocol+"//"+t.host),typeof s=="string"&&(s.charAt(0)==="/"&&(s.charAt(1)==="/"?s=t.protocol+s:s=t.host+s),/^(https?|wss?):\/\//.test(s)||(typeof t<"u"?s=t.protocol+"//"+s:s="https://"+s),r=le(s)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";const n=r.host.indexOf(":")!==-1?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+n+":"+r.port+e,r.href=r.protocol+"://"+n+(t&&t.port===r.port?"":":"+r.port),r}const Ws=typeof ArrayBuffer=="function",js=s=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(s):s.buffer instanceof ArrayBuffer,mt=Object.prototype.toString,zs=typeof Blob=="function"||typeof Blob<"u"&&mt.call(Blob)==="[object BlobConstructor]",Js=typeof File=="function"||typeof File<"u"&&mt.call(File)==="[object FileConstructor]";function Ee(s){return Ws&&(s instanceof ArrayBuffer||js(s))||zs&&s instanceof Blob||Js&&s instanceof File}function J(s,e){if(!s||typeof s!="object")return!1;if(Array.isArray(s)){for(let t=0,r=s.length;t<r;t++)if(J(s[t]))return!0;return!1}if(Ee(s))return!0;if(s.toJSON&&typeof s.toJSON=="function"&&arguments.length===1)return J(s.toJSON(),!0);for(const t in s)if(Object.prototype.hasOwnProperty.call(s,t)&&J(s[t]))return!0;return!1}function Xs(s){const e=[],t=s.data,r=s;return r.data=pe(t,e),r.attachments=e.length,{packet:r,buffers:e}}function pe(s,e){if(!s)return s;if(Ee(s)){const t={_placeholder:!0,num:e.length};return e.push(s),t}else if(Array.isArray(s)){const t=new Array(s.length);for(let r=0;r<s.length;r++)t[r]=pe(s[r],e);return t}else if(typeof s=="object"&&!(s instanceof Date)){const t={};for(const r in s)Object.prototype.hasOwnProperty.call(s,r)&&(t[r]=pe(s[r],e));return t}return s}function Qs(s,e){return s.data=ye(s.data,e),delete s.attachments,s}function ye(s,e){if(!s)return s;if(s&&s._placeholder===!0){if(typeof s.num=="number"&&s.num>=0&&s.num<e.length)return e[s.num];throw new Error("illegal attachments")}else if(Array.isArray(s))for(let t=0;t<s.length;t++)s[t]=ye(s[t],e);else if(typeof s=="object")for(const t in s)Object.prototype.hasOwnProperty.call(s,t)&&(s[t]=ye(s[t],e));return s}const Gs=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],Zs=5;var y;(function(s){s[s.CONNECT=0]="CONNECT",s[s.DISCONNECT=1]="DISCONNECT",s[s.EVENT=2]="EVENT",s[s.ACK=3]="ACK",s[s.CONNECT_ERROR=4]="CONNECT_ERROR",s[s.BINARY_EVENT=5]="BINARY_EVENT",s[s.BINARY_ACK=6]="BINARY_ACK"})(y||(y={}));class er{constructor(e){this.replacer=e}encode(e){return(e.type===y.EVENT||e.type===y.ACK)&&J(e)?this.encodeAsBinary({type:e.type===y.EVENT?y.BINARY_EVENT:y.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id}):[this.encodeAsString(e)]}encodeAsString(e){let t=""+e.type;return(e.type===y.BINARY_EVENT||e.type===y.BINARY_ACK)&&(t+=e.attachments+"-"),e.nsp&&e.nsp!=="/"&&(t+=e.nsp+","),e.id!=null&&(t+=e.id),e.data!=null&&(t+=JSON.stringify(e.data,this.replacer)),t}encodeAsBinary(e){const t=Xs(e),r=this.encodeAsString(t.packet),i=t.buffers;return i.unshift(r),i}}function Ye(s){return Object.prototype.toString.call(s)==="[object Object]"}class Ae extends E{constructor(e){super(),this.reviver=e}add(e){let t;if(typeof e=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");t=this.decodeString(e);const r=t.type===y.BINARY_EVENT;r||t.type===y.BINARY_ACK?(t.type=r?y.EVENT:y.ACK,this.reconstructor=new tr(t),t.attachments===0&&super.emitReserved("decoded",t)):super.emitReserved("decoded",t)}else if(Ee(e)||e.base64)if(this.reconstructor)t=this.reconstructor.takeBinaryData(e),t&&(this.reconstructor=null,super.emitReserved("decoded",t));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+e)}decodeString(e){let t=0;const r={type:Number(e.charAt(0))};if(y[r.type]===void 0)throw new Error("unknown packet type "+r.type);if(r.type===y.BINARY_EVENT||r.type===y.BINARY_ACK){const n=t+1;for(;e.charAt(++t)!=="-"&&t!=e.length;);const o=e.substring(n,t);if(o!=Number(o)||e.charAt(t)!=="-")throw new Error("Illegal attachments");r.attachments=Number(o)}if(e.charAt(t+1)==="/"){const n=t+1;for(;++t&&!(e.charAt(t)===","||t===e.length););r.nsp=e.substring(n,t)}else r.nsp="/";const i=e.charAt(t+1);if(i!==""&&Number(i)==i){const n=t+1;for(;++t;){const o=e.charAt(t);if(o==null||Number(o)!=o){--t;break}if(t===e.length)break}r.id=Number(e.substring(n,t+1))}if(e.charAt(++t)){const n=this.tryParse(e.substr(t));if(Ae.isPayloadValid(r.type,n))r.data=n;else throw new Error("invalid payload")}return r}tryParse(e){try{return JSON.parse(e,this.reviver)}catch{return!1}}static isPayloadValid(e,t){switch(e){case y.CONNECT:return Ye(t);case y.DISCONNECT:return t===void 0;case y.CONNECT_ERROR:return typeof t=="string"||Ye(t);case y.EVENT:case y.BINARY_EVENT:return Array.isArray(t)&&(typeof t[0]=="number"||typeof t[0]=="string"&&Gs.indexOf(t[0])===-1);case y.ACK:case y.BINARY_ACK:return Array.isArray(t)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class tr{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){const t=Qs(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const sr=Object.freeze(Object.defineProperty({__proto__:null,Decoder:Ae,Encoder:er,get PacketType(){return y},protocol:Zs},Symbol.toStringTag,{value:"Module"}));function R(s,e,t){return s.on(e,t),function(){s.off(e,t)}}const rr=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class vt extends E{constructor(e,t,r){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=e,this.nsp=t,r&&r.auth&&(this.auth=r.auth),this._opts=Object.assign({},r),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const e=this.io;this.subs=[R(e,"open",this.onopen.bind(this)),R(e,"packet",this.onpacket.bind(this)),R(e,"error",this.onerror.bind(this)),R(e,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...e){return e.unshift("message"),this.emit.apply(this,e),this}emit(e,...t){var r,i,n;if(rr.hasOwnProperty(e))throw new Error('"'+e.toString()+'" is a reserved event name');if(t.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(t),this;const o={type:y.EVENT,data:t};if(o.options={},o.options.compress=this.flags.compress!==!1,typeof t[t.length-1]=="function"){const l=this.ids++,_=t.pop();this._registerAckCallback(l,_),o.id=l}const a=(i=(r=this.io.engine)===null||r===void 0?void 0:r.transport)===null||i===void 0?void 0:i.writable,c=this.connected&&!(!((n=this.io.engine)===null||n===void 0)&&n._hasPingExpired());return this.flags.volatile&&!a||(c?(this.notifyOutgoingListeners(o),this.packet(o)):this.sendBuffer.push(o)),this.flags={},this}_registerAckCallback(e,t){var r;const i=(r=this.flags.timeout)!==null&&r!==void 0?r:this._opts.ackTimeout;if(i===void 0){this.acks[e]=t;return}const n=this.io.setTimeoutFn(()=>{delete this.acks[e];for(let a=0;a<this.sendBuffer.length;a++)this.sendBuffer[a].id===e&&this.sendBuffer.splice(a,1);t.call(this,new Error("operation has timed out"))},i),o=(...a)=>{this.io.clearTimeoutFn(n),t.apply(this,a)};o.withError=!0,this.acks[e]=o}emitWithAck(e,...t){return new Promise((r,i)=>{const n=(o,a)=>o?i(o):r(a);n.withError=!0,t.push(n),this.emit(e,...t)})}_addToQueue(e){let t;typeof e[e.length-1]=="function"&&(t=e.pop());const r={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((i,...n)=>r!==this._queue[0]?void 0:(i!==null?r.tryCount>this._opts.retries&&(this._queue.shift(),t&&t(i)):(this._queue.shift(),t&&t(null,...n)),r.pending=!1,this._drainQueue())),this._queue.push(r),this._drainQueue()}_drainQueue(e=!1){if(!this.connected||this._queue.length===0)return;const t=this._queue[0];t.pending&&!e||(t.pending=!0,t.tryCount++,this.flags=t.flags,this.emit.apply(this,t.args))}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){typeof this.auth=="function"?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:y.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e,t){this.connected=!1,delete this.id,this.emitReserved("disconnect",e,t),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(e=>{if(!this.sendBuffer.some(r=>String(r.id)===e)){const r=this.acks[e];delete this.acks[e],r.withError&&r.call(this,new Error("socket has been disconnected"))}})}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case y.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case y.EVENT:case y.BINARY_EVENT:this.onevent(e);break;case y.ACK:case y.BINARY_ACK:this.onack(e);break;case y.DISCONNECT:this.ondisconnect();break;case y.CONNECT_ERROR:this.destroy();const r=new Error(e.data.message);r.data=e.data.data,this.emitReserved("connect_error",r);break}}onevent(e){const t=e.data||[];e.id!=null&&t.push(this.ack(e.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){const t=this._anyListeners.slice();for(const r of t)r.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&typeof e[e.length-1]=="string"&&(this._lastOffset=e[e.length-1])}ack(e){const t=this;let r=!1;return function(...i){r||(r=!0,t.packet({type:y.ACK,id:e,data:i}))}}onack(e){const t=this.acks[e.id];typeof t=="function"&&(delete this.acks[e.id],t.withError&&e.data.unshift(null),t.apply(this,e.data))}onconnect(e,t){this.id=e,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(e=>e()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:y.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){const t=this._anyListeners;for(let r=0;r<t.length;r++)if(e===t[r])return t.splice(r,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}prependAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}offAnyOutgoing(e){if(!this._anyOutgoingListeners)return this;if(e){const t=this._anyOutgoingListeners;for(let r=0;r<t.length;r++)if(e===t[r])return t.splice(r,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const t=this._anyOutgoingListeners.slice();for(const r of t)r.apply(this,e.data)}}}function x(s){s=s||{},this.ms=s.min||100,this.max=s.max||1e4,this.factor=s.factor||2,this.jitter=s.jitter>0&&s.jitter<=1?s.jitter:0,this.attempts=0}x.prototype.duration=function(){var s=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),t=Math.floor(e*this.jitter*s);s=(Math.floor(e*10)&1)==0?s-t:s+t}return Math.min(s,this.max)|0};x.prototype.reset=function(){this.attempts=0};x.prototype.setMin=function(s){this.ms=s};x.prototype.setMax=function(s){this.max=s};x.prototype.setJitter=function(s){this.jitter=s};class ge extends E{constructor(e,t){var r;super(),this.nsps={},this.subs=[],e&&typeof e=="object"&&(t=e,e=void 0),t=t||{},t.path=t.path||"/socket.io",this.opts=t,G(this,t),this.reconnection(t.reconnection!==!1),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor((r=t.randomizationFactor)!==null&&r!==void 0?r:.5),this.backoff=new x({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(t.timeout==null?2e4:t.timeout),this._readyState="closed",this.uri=e;const i=t.parser||sr;this.encoder=new i.Encoder,this.decoder=new i.Decoder,this._autoConnect=t.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,e||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(e){return e===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var t;return e===void 0?this._reconnectionDelay:(this._reconnectionDelay=e,(t=this.backoff)===null||t===void 0||t.setMin(e),this)}randomizationFactor(e){var t;return e===void 0?this._randomizationFactor:(this._randomizationFactor=e,(t=this.backoff)===null||t===void 0||t.setJitter(e),this)}reconnectionDelayMax(e){var t;return e===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,(t=this.backoff)===null||t===void 0||t.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(e){if(~this._readyState.indexOf("open"))return this;this.engine=new Ks(this.uri,this.opts);const t=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;const i=R(t,"open",function(){r.onopen(),e&&e()}),n=a=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",a),e?e(a):this.maybeReconnectOnOpen()},o=R(t,"error",n);if(this._timeout!==!1){const a=this._timeout,c=this.setTimeoutFn(()=>{i(),n(new Error("timeout")),t.close()},a);this.opts.autoUnref&&c.unref(),this.subs.push(()=>{this.clearTimeoutFn(c)})}return this.subs.push(i),this.subs.push(o),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const e=this.engine;this.subs.push(R(e,"ping",this.onping.bind(this)),R(e,"data",this.ondata.bind(this)),R(e,"error",this.onerror.bind(this)),R(e,"close",this.onclose.bind(this)),R(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){try{this.decoder.add(e)}catch(t){this.onclose("parse error",t)}}ondecoded(e){Q(()=>{this.emitReserved("packet",e)},this.setTimeoutFn)}onerror(e){this.emitReserved("error",e)}socket(e,t){let r=this.nsps[e];return r?this._autoConnect&&!r.active&&r.connect():(r=new vt(this,e,t),this.nsps[e]=r),r}_destroy(e){const t=Object.keys(this.nsps);for(const r of t)if(this.nsps[r].active)return;this._close()}_packet(e){const t=this.encoder.encode(e);for(let r=0;r<t.length;r++)this.engine.write(t[r],e.options)}cleanup(){this.subs.forEach(e=>e()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(e,t){var r;this.cleanup(),(r=this.engine)===null||r===void 0||r.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const t=this.backoff.duration();this._reconnecting=!0;const r=this.setTimeoutFn(()=>{e.skipReconnect||(this.emitReserved("reconnect_attempt",e.backoff.attempts),!e.skipReconnect&&e.open(i=>{i?(e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",i)):e.onreconnect()}))},t);this.opts.autoUnref&&r.unref(),this.subs.push(()=>{this.clearTimeoutFn(r)})}}onreconnect(){const e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}const U={};function X(s,e){typeof s=="object"&&(e=s,s=void 0),e=e||{};const t=Ys(s,e.path||"/socket.io"),r=t.source,i=t.id,n=t.path,o=U[i]&&n in U[i].nsps,a=e.forceNew||e["force new connection"]||e.multiplex===!1||o;let c;return a?c=new ge(r,e):(U[i]||(U[i]=new ge(r,e)),c=U[i]),t.query&&!e.query&&(e.query=t.queryKey),c.socket(t.path,e)}Object.assign(X,{Manager:ge,Socket:vt,io:X,connect:X});const fe={current:null},_r=$([ot,cs],([s,e])=>{if(!e)return null;const t=X(s.endpoint);return fe.current&&fe.current.disconnect(),fe.current=t,t});var mr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function vr(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}function ir(s){if(s.__esModule)return s;var e=s.default;if(typeof e=="function"){var t=function r(){return this instanceof r?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};t.prototype=e.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(s).forEach(function(r){var i=Object.getOwnPropertyDescriptor(s,r);Object.defineProperty(t,r,i.get?i:{enumerable:!0,get:function(){return s[r]}})}),t}const nr={},or=Object.freeze(Object.defineProperty({__proto__:null,default:nr},Symbol.toStringTag,{value:"Module"})),br=ir(or);var ar=zt('<div><div class="loading-icon svelte-1aqhn4j"></div> <div class="loading-icon svelte-1aqhn4j"></div> <div class="loading-icon svelte-1aqhn4j"></div></div>');function wr(s,e){const t=Xt(e,"floating",3,!1);var r=ar();let i;Ht(n=>i=Ze(r,1,"loading svelte-1aqhn4j",null,i,n),[()=>({floating:t()})]),Jt(s,r)}export{wr as L,ot as a,re as b,nt as c,dr as d,De as e,yr as f,vr as g,lr as h,ur as i,cs as j,pr as k,as as l,_r as m,mr as n,br as r,Ze as s,it as t};
@@ -1 +0,0 @@
1
- import{l as o,a as r}from"../chunks/B-DtXKX3.js";export{o as load_css,r as start};
@@ -1,2 +0,0 @@
1
- )�import{l as o,a as r}from"../chunks/B-DtXKX3.js";export{o as load_css,r as start};
2
- 
@@ -1,2 +0,0 @@
1
- import{g as p,i as dt,t as B,s as M,a as z,n as S,f as ct,c as vt,j as mt}from"../chunks/qSIFE6bv.js";import{d as ft,h as $,C as tt,f as ht,i as et,ar as ut,az as gt,ax as _t,Y as yt,as as wt,g as bt,v as D,z as g,B as x,aF as E,A as u,x as I,a6 as xt,y as H,aE as N,o as T,s as U,u as V,J as Y,I as G,w as W,aG as zt}from"../chunks/CDVeMiAl.js";import{a as j,s as K,b as q,i as L,r as Q,p as it,c as At}from"../chunks/CvUX3i4L.js";import{s as Ct}from"../chunks/EvVuwjft.js";import{e as k,a as rt,d as X,h as qt,t as J,c as kt,l as It,j as Lt,k as F,f as St,m as Zt,L as Mt}from"../chunks/DGTGMr-5.js";import{i as st}from"../chunks/C7I4vMbc.js";import{a as Tt,q as Dt,t as at,b as Ht,f as Pt,c as Rt}from"../chunks/D1JCCJf3.js";function jt(d,t,i,y,_){var v=d,o="",n;ft(()=>{if(o===(o=t()??"")){$&&tt();return}n!==void 0&&(bt(n),n=void 0),o!==""&&(n=ht(()=>{if($){et.data;for(var s=tt(),h=s;s!==null&&(s.nodeType!==8||s.data!=="");)h=s,s=ut(s);if(s===null)throw gt(),_t;p(et,h),v=yt(s);return}var l=o+"",m=dt(l);p(wt(m),m.lastChild),v.before(m)}))})}var Et=B(`<div class="content svelte-30zq06"><div class="options svelte-30zq06"><div class="options-left"><h1>This instance is not authenticated</h1> <p class="svelte-30zq06"> <a>Authenticate</a> or scan qr to authenticate via device</p></div> <div class="options-right"><span class="qr svelte-30zq06"></span></div> <div class="options-bottom svelte-30zq06"><p class="size-small-1 color-2 svelte-30zq06">Make sure that <em class="svelte-30zq06"> </em> is added as a Redirect URI in your
2
- spotify app dashboard</p></div></div></div>`);function Bt(d,t){D(t,!1);const[i,y]=K(),_=()=>j(rt,"$address",i);st();var v=Et(),o=g(v),n=g(o),s=x(g(n),2),h=g(s),l=x(h);E(),u(s),u(n);var m=x(n,2),b=g(m);Tt(b,(f,a)=>{var e;return(e=Dt)==null?void 0:e(f,a)},()=>({url:_().server("/spotify/start")})),u(m);var C=x(m,2),A=g(C),c=x(g(A)),r=g(c,!0);u(c),E(),u(A),u(C),u(o),u(v),I((f,a,e)=>{M(h,`${f??""} `),k(l,"href",a),M(r,e)},[()=>_().server("/spotify/start"),()=>_().server("/spotify/start"),()=>_().server("/spotify/token")],xt),z(d,v),H(),y()}function Ot(d){const t=d-1;return t*t*t+1}function Wt(d,{from:t,to:i},y={}){var{delay:_=0,duration:v=Z=>Math.sqrt(Z)*120,easing:o=Ot}=y,n=getComputedStyle(d),s=n.transform==="none"?"":n.transform,[h,l]=n.transformOrigin.split(" ").map(parseFloat);h/=d.clientWidth,l/=d.clientHeight;var m=Ft(d),b=d.clientWidth/i.width/m,C=d.clientHeight/i.height/m,A=t.left+t.width*h,c=t.top+t.height*l,r=i.left+i.width*h,f=i.top+i.height*l,a=(A-r)*b,e=(c-f)*C,w=t.width/i.width,P=t.height/i.height;return{delay:_,duration:typeof v=="function"?v(Math.sqrt(a*a+e*e)):v,easing:o,css:(Z,R)=>{var O=R*a,ot=R*e,nt=Z+R*w,lt=Z+R*P;return`transform: ${s} translate(${O}px, ${ot}px) scale(${nt}, ${lt});`}}}function Ft(d){if("currentCSSZoom"in d)return d.currentCSSZoom;for(var t=d,i=1;t!==null;)i*=+getComputedStyle(t).zoom,t=t.parentElement;return i}var Vt=S("<title> </title>"),Yt=S("<desc> </desc>"),Gt=S('<svg><!><!><path d="M256,176a80,80,0,1,0,80,80A80.09,80.09,0,0,0,256,176Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,256,288Z"></path><path d="M414.39,97.61A224,224,0,1,0,97.61,414.39,224,224,0,1,0,414.39,97.61ZM256,368A112,112,0,1,1,368,256,112.12,112.12,0,0,1,256,368Z"></path></svg>');function Jt(d,t){var r,f;D(t,!0);const i=N("iconCtx")??{};let y=q(t,"size",19,()=>i.size||"24"),_=q(t,"role",19,()=>i.role||"img"),v=q(t,"color",19,()=>i.color||"currentColor"),o=q(t,"ariaLabel",3,"disc"),n=Q(t,["$$slots","$$events","$$legacy","size","role","color","title","desc","ariaLabel"]),s=`${((r=t.title)==null?void 0:r.id)||""} ${((f=t.desc)==null?void 0:f.id)||""}`;const h=U(()=>{var a,e;return!!((a=t.title)!=null&&a.id||(e=t.desc)!=null&&e.id)});var l=Gt();let m;var b=g(l);{var C=a=>{var e=Vt(),w=g(e,!0);u(e),I(()=>{k(e,"id",t.title.id),M(w,t.title.title)}),z(a,e)};L(b,a=>{var e;(e=t.title)!=null&&e.id&&t.title.title&&a(C)})}var A=x(b);{var c=a=>{var e=Yt(),w=g(e,!0);u(e),I(()=>{k(e,"id",t.desc.id),M(w,t.desc.desc)}),z(a,e)};L(A,a=>{var e;(e=t.desc)!=null&&e.id&&t.desc.desc&&a(c)})}E(2),u(l),I(()=>m=X(l,m,{xmlns:"http://www.w3.org/2000/svg",...n,role:_(),width:y(),height:y(),fill:v(),"aria-label":o(),"aria-describedby":T(h)?s:void 0,viewBox:"0 0 512 512"})),z(d,l),H()}var Nt=S("<title> </title>"),Ut=S("<desc> </desc>"),Kt=S('<svg><!><!><path d="M256,56C145.72,56,56,145.72,56,256s89.72,200,200,200,200-89.72,200-200S366.28,56,256,56Zm0,82a26,26,0,1,1-26,26A26,26,0,0,1,256,138Zm48,226H216a16,16,0,0,1,0-32h28V244H228a16,16,0,0,1,0-32h32a16,16,0,0,1,16,16V332h28a16,16,0,0,1,0,32Z"></path></svg>');function Qt(d,t){var r,f;D(t,!0);const i=N("iconCtx")??{};let y=q(t,"size",19,()=>i.size||"24"),_=q(t,"role",19,()=>i.role||"img"),v=q(t,"color",19,()=>i.color||"currentColor"),o=q(t,"ariaLabel",3,"information circle"),n=Q(t,["$$slots","$$events","$$legacy","size","role","color","title","desc","ariaLabel"]),s=`${((r=t.title)==null?void 0:r.id)||""} ${((f=t.desc)==null?void 0:f.id)||""}`;const h=U(()=>{var a,e;return!!((a=t.title)!=null&&a.id||(e=t.desc)!=null&&e.id)});var l=Kt();let m;var b=g(l);{var C=a=>{var e=Nt(),w=g(e,!0);u(e),I(()=>{k(e,"id",t.title.id),M(w,t.title.title)}),z(a,e)};L(b,a=>{var e;(e=t.title)!=null&&e.id&&t.title.title&&a(C)})}var A=x(b);{var c=a=>{var e=Ut(),w=g(e,!0);u(e),I(()=>{k(e,"id",t.desc.id),M(w,t.desc.desc)}),z(a,e)};L(A,a=>{var e;(e=t.desc)!=null&&e.id&&t.desc.desc&&a(c)})}E(),u(l),I(()=>m=X(l,m,{xmlns:"http://www.w3.org/2000/svg",...n,role:_(),width:y(),height:y(),fill:v(),"aria-label":o(),"aria-describedby":T(h)?s:void 0,viewBox:"0 0 512 512"})),z(d,l),H()}var Xt=S("<title> </title>"),pt=S("<desc> </desc>"),$t=S('<svg><!><!><path d="M449.07,399.08,278.64,82.58c-12.08-22.44-44.26-22.44-56.35,0L51.87,399.08A32,32,0,0,0,80,446.25H420.89A32,32,0,0,0,449.07,399.08Zm-198.6-1.83a20,20,0,1,1,20-20A20,20,0,0,1,250.47,397.25ZM272.19,196.1l-5.74,122a16,16,0,0,1-32,0l-5.74-121.95v0a21.73,21.73,0,0,1,21.5-22.69h.21a21.74,21.74,0,0,1,21.73,22.7Z"></path></svg>');function te(d,t){var r,f;D(t,!0);const i=N("iconCtx")??{};let y=q(t,"size",19,()=>i.size||"24"),_=q(t,"role",19,()=>i.role||"img"),v=q(t,"color",19,()=>i.color||"currentColor"),o=q(t,"ariaLabel",3,"warning"),n=Q(t,["$$slots","$$events","$$legacy","size","role","color","title","desc","ariaLabel"]),s=`${((r=t.title)==null?void 0:r.id)||""} ${((f=t.desc)==null?void 0:f.id)||""}`;const h=U(()=>{var a,e;return!!((a=t.title)!=null&&a.id||(e=t.desc)!=null&&e.id)});var l=$t();let m;var b=g(l);{var C=a=>{var e=Xt(),w=g(e,!0);u(e),I(()=>{k(e,"id",t.title.id),M(w,t.title.title)}),z(a,e)};L(b,a=>{var e;(e=t.title)!=null&&e.id&&t.title.title&&a(C)})}var A=x(b);{var c=a=>{var e=pt(),w=g(e,!0);u(e),I(()=>{k(e,"id",t.desc.id),M(w,t.desc.desc)}),z(a,e)};L(A,a=>{var e;(e=t.desc)!=null&&e.id&&t.desc.desc&&a(c)})}E(),u(l),I(()=>m=X(l,m,{xmlns:"http://www.w3.org/2000/svg",...n,role:_(),width:y(),height:y(),fill:v(),"aria-label":o(),"aria-describedby":T(h)?s:void 0,viewBox:"0 0 512 512"})),z(d,l),H()}var ee=B('<div class="item bg-color-3 color-bg svelte-1wdzwm7"><div class="item-icon svelte-1wdzwm7"><!> <!> <!></div> <div class="item-message size-small-2 svelte-1wdzwm7"><!></div></div>');function ae(d,t){D(t,!0);const i=q(t,"type",3,"info"),y=q(t,"time",3,2500);let _=Y(0);V(()=>()=>clearTimeout(T(_)));function v(){G(_,it(window.setTimeout(()=>{t.onEnd(t.id)},y())))}var o=ee(),n=g(o),s=g(n);{var h=r=>{Jt(r,{})};L(s,r=>{i()==="track"&&r(h)})}var l=x(s,2);{var m=r=>{Qt(r,{})};L(l,r=>{i()==="info"&&r(m)})}var b=x(l,2);{var C=r=>{te(r,{})};L(b,r=>{i()==="error"&&r(C)})}u(n);var A=x(n,2),c=g(A);jt(c,()=>t.message),u(A),u(o),ct("introend",o,v),at(1,o,()=>Ht,()=>({y:-50})),at(2,o,()=>Pt),z(d,o),H()}var ie=B("<div><!></div>"),re=B('<div class="manager svelte-1r90u8r"></div>');function se(d,t){D(t,!1);const[i,y]=K(),_=()=>j(J,"$toastItems",i);st();var v=re();qt(v,13,_,o=>o.id,(o,n)=>{var s=ie(),h=g(s);ae(h,At({get onEnd(){return J.removeItem}},()=>T(n))),u(s),Rt(s,()=>Wt,null),z(o,s)}),u(v),z(d,v),H(),y()}var oe=B('<meta name="description" content="A frontend for social spotify-ing"> <meta property="og:title" content="Spotify Party"> <meta property="og:description" content="A frontend for social spotify-ing"> <meta property="og:type" content="website"> <meta property="og:url"> <meta property="og:image"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="Spotify Party"> <meta property="twitter:url"> <meta name="twitter:description" content="A frontend for social spotify-ing"> <meta name="twitter:image"> <meta name="theme-color" content="#0000000"> <link rel="icon" href="/favicon.ico"> <link rel="manifest" href="/manifest.json">',1),ne=B("<!> <!>",1);function ue(d,t){D(t,!0);const[i,y]=K(),_=()=>j(St,"$api",i),v=()=>j(Zt,"$socket",i),o=()=>j(F,"$authenticated",i),n=()=>j(rt,"$address",i);let s=Y(!0),h=Y(0);async function l(){clearTimeout(T(h));try{const{authenticated:c=!1}=await _().health();F.set(c)}catch{F.set(!1),G(h,it(window.setTimeout(()=>{l()},5e3)))}}V(()=>{var c,r;(c=v())==null||c.on("message",f=>{J.addItem(f),f.message.includes("spotify/reauthenticate")&&o()&&l()}),(r=v())==null||r.on("reload",f=>{window.location.reload()})}),V(()=>{kt.set(t.data.config),It.set(t.data.live),Lt.set(!0),l(),G(s,!1)});var m=vt();mt(c=>{var r=oe();zt.title="Spotify Party";var f=x(W(r),8),a=x(f,2),e=x(a,6),w=x(e,4);E(6),I((P,Z,R,O)=>{k(f,"content",P),k(a,"content",Z),k(e,"content",R),k(w,"content",O)},[()=>n().get("/"),()=>n().get("/social.jpg"),()=>n().get("/"),()=>n().get("/social.jpg")]),z(c,r)});var b=W(m);{var C=c=>{Mt(c,{floating:!0})},A=(c,r)=>{{var f=e=>{Bt(e,{})},a=e=>{var w=ne(),P=W(w);se(P,{});var Z=x(P,2);Ct(Z,()=>t.children),z(e,w)};L(c,e=>{o()?e(a,!1):e(f)},r)}};L(b,c=>{T(s)?c(C):c(A,!1)})}z(d,m),H(),y()}export{ue as component};
@@ -1 +0,0 @@
1
- import{t as b,a as g,s as k}from"../chunks/qSIFE6bv.js";import{h as K,C as ua,D as fa,F as pa,G as ma,d as _a,H as ga,f as ka,i as ba,U as ha,v as ya,u as M,w as xa,y as wa,I as $,o as a,J as O,B as i,z as t,A as r,x as Ia,s as Q}from"../chunks/CDVeMiAl.js";import{i as z,s as La,p as Ta,a as R}from"../chunks/CvUX3i4L.js";import{t as qa,f as Aa,a as Pa,q as $a}from"../chunks/D1JCCJf3.js";import{L as za,s as Ea,c as Na,a as Ca}from"../chunks/DGTGMr-5.js";import{P as Da,I as Sa}from"../chunks/-6v_nyr3.js";function Ua(v,u,o){K&&ua();var f=v,h=ha,p,e=fa()?pa:ma;_a(()=>{e(h,h=u())&&(p&&ga(p),p=ka(()=>o(f)))}),K&&(f=ba)}const V=(v,u,o,f=!1)=>(v.addEventListener(u,o,f),()=>v.removeEventListener(u,o));var ja=b('<div class="empty bg-color-3 color-1 svelte-16as94f">No Track playing currently</div>'),Ba=b('<span class="svelte-16as94f"><!></span>'),Fa=b('<div class="badge bg-color-3 color-bg svelte-16as94f"><span class="headline-3">Add</span> <span class="badge-qr svelte-16as94f"></span></div>'),Ga=b('<div><div class="top svelte-16as94f"><div class="context color-1 svelte-16as94f"><span> </span> <span class="size-small-2"> </span></div></div> <div class="middle svelte-16as94f"><div class="middle-image svelte-16as94f"><!></div></div> <div class="bottom svelte-16as94f"><div class="left color-1 svelte-16as94f"><h1 class="title ellipsis svelte-16as94f"> </h1> <span class="headline-3"> </span></div> <div class="right svelte-16as94f"><!> <span class="size-small-1 color-3"> </span></div></div></div>'),Ha=b("<!> <!>",1);function Ra(v,u){ya(u,!0);const[o,f]=La(),h=()=>R(Na,"$config",o),p=()=>R(Ca,"$address",o);let e=O(null),W=Q(()=>!a(e)||"noTrack"in a(e)?"":"normalised"in a(e).context?a(e).context.normalised.title:"album"in a(e).track?a(e).track.album:"show"in a(e).track?a(e).track.show:""),X=Q(()=>{var s,n,x,w;if(!a(e)||"noTrack"in a(e))return"";if(!a(e).isPlaying)return"Paused";switch((s=a(e).context)==null?void 0:s.type){case"album":return[a(e).track.number,a(e).context.total].join(" – ");default:return((w=(x=(n=a(e))==null?void 0:n.context)==null?void 0:x.normalised)==null?void 0:w.subtitle)??""}}),c=null;async function E(){let s=null;try{return c==null||c(),c=null,s=await navigator.wakeLock.request("screen"),console.log("Screen locked"),()=>{}}catch(n){if(n.code===0&&!c)return c=V(window,"focus",E),c;console.log(n)}}let y=O(!0);function Y(){let s=0;const n=V(document,"mousemove",()=>{clearTimeout(s),$(y,!1),s=window.setTimeout(()=>{$(y,!0)},2e3)});return()=>{n(),clearTimeout(s)}}M(()=>{document.documentElement.classList.toggle("idle",a(y))}),M(()=>{E(),Y()});var N=Ha(),C=xa(N);Da(C,{get playing(){return a(e)},set playing(s){$(e,Ta(s))}});var aa=i(C,2);{var ea=s=>{za(s,{floating:!0})},sa=(s,n)=>{{var x=m=>{var _=ja();g(m,_)},w=m=>{var _=Ga();let D;var I=t(_),S=t(I),L=t(S),ta=t(L,!0);r(L);var U=i(L,2),ra=t(U,!0);r(U),r(S),r(I);var T=i(I,2),j=t(T),la=t(j);Ua(la,()=>a(e).track.normalised.image.full.url,d=>{var l=Ba(),P=t(l);Sa(P,{get full(){return a(e).track.normalised.image.full.url},get low(){return a(e).track.normalised.image.low.url}}),r(l),qa(3,l,()=>Aa),g(d,l)}),r(j),r(T);var B=i(T,2),q=t(B),A=t(q),na=t(A,!0);r(A);var F=i(A,2),ia=t(F,!0);r(F),r(q);var G=i(q,2),H=t(G);{var oa=d=>{var l=Fa(),P=i(t(l),2);Pa(P,(da,va)=>{var Z;return(Z=$a)==null?void 0:Z(da,va)},()=>({url:p().get("/")})),r(l),g(d,l)};z(H,d=>{var l;(l=h().api)!=null&&l.canAdd&&d(oa)})}var J=i(H,2),ca=t(J,!0);r(J),r(G),r(B),r(_),Ia(d=>{D=Ea(_,1,"page bg-color-bg svelte-16as94f",null,D,d),k(ta,a(W)),k(ra,a(X)),k(na,a(e).track.normalised.title),k(ia,a(e).track.normalised.subtitle),k(ca,p().naked)},[()=>({idle:a(y)})]),g(m,_)};z(s,m=>{"noTrack"in a(e)?m(x):m(w,!1)},n)}};z(aa,s=>{a(e)?s(sa,!1):s(ea)})}g(v,N),wa(),f()}export{Ra as component};
@@ -1,9 +0,0 @@
1
- const index = 3;
2
- let component_cache;
3
- const component = async () => component_cache ??= (await import('./_page.svelte-Csehl0cs.js')).default;
4
- const imports = ["_app/immutable/nodes/3.CkzNUk9P.js","_app/immutable/chunks/qSIFE6bv.js","_app/immutable/chunks/CDVeMiAl.js","_app/immutable/chunks/CvUX3i4L.js","_app/immutable/chunks/D1JCCJf3.js","_app/immutable/chunks/DGTGMr-5.js","_app/immutable/chunks/-6v_nyr3.js"];
5
- const stylesheets = ["_app/immutable/assets/3.BvcZlbFP.css","_app/immutable/assets/LoadingIndicator.D0m6rSKQ.css","_app/immutable/assets/PlayingTracker.BPTtFzSw.css"];
6
- const fonts = [];
7
-
8
- export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=3-Cz5Rp48l.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoadingIndicator.svelte_svelte_type_style_lang-CzuFb3Rb.js","sources":["../../../.svelte-kit/adapter-node/chunks/LoadingIndicator.svelte_svelte_type_style_lang.js"],"sourcesContent":["import { io } from \"socket.io-client\";\nimport { w as writable, d as derived } from \"./index2.js\";\nconst toastItemsStore = writable([]);\nlet itemsLength = 0;\nconst toastItems = {\n ...toastItemsStore,\n /**\n *\n * @param {ToastItem} item\n */\n addItem(item) {\n const id = itemsLength + 1;\n toastItemsStore.update((items) => [\n ...items,\n {\n id,\n ...item\n }\n ]);\n itemsLength = id;\n return () => toastItems.removeItem(id);\n },\n /**\n *\n * @param {number} itemId\n */\n removeItem(itemId) {\n toastItemsStore.update((items) => {\n const cacheItems = items.slice();\n cacheItems.splice(\n cacheItems.findIndex((item) => item.id === itemId),\n 1\n );\n return cacheItems;\n });\n }\n};\nconst liveData = writable(false);\nconst settled = writable(false);\nconst config = writable({});\nconst siteUrl = derived(\n [config],\n ([$config]) => [$config?.protocol, $config?.origin].join(\"\")\n);\nconst sitePort = derived([config], ([$config]) => $config.port);\nconst objectHasValues = (obj) => Object.values(obj).length > 0;\nconst address = derived(\n [liveData, siteUrl, sitePort],\n ([$liveData, $siteUrl, $sitePort]) => {\n const full = `${typeof window !== \"undefined\" ? window.location.protocol : \"http:\"}//${$siteUrl}:${$sitePort}`;\n return {\n full,\n naked: [$siteUrl, $sitePort].join(\":\"),\n /**\n *\n * @param {string} route\n * @returns {string}\n */\n get(route) {\n return `${full}${route}`;\n },\n endpoint: $liveData || !$siteUrl ? \"\" : `${$siteUrl}:${$sitePort}`,\n /**\n *\n * @param {string} route\n * @returns {string}\n */\n server(route) {\n return `${this.endpoint}${route}`;\n }\n };\n }\n);\nderived([address], ([$address]) => {\n const f = async (route, data = {}, opts = {}) => {\n try {\n const url = new URL(\n [\n $address.endpoint.startsWith(\"http\") ? \"\" : window.location.origin,\n $address.endpoint,\n \"/api\",\n route\n ].join(\"\")\n );\n if (opts.method === \"POST\" && objectHasValues(data)) {\n opts.body = JSON.stringify(data);\n } else if (objectHasValues(data)) {\n url.search = new URLSearchParams(data).toString();\n }\n const resp = await fetch(url, opts);\n const result = await resp.json();\n if (resp.status !== 200) {\n throw new Error(result);\n }\n return result;\n } catch (e) {\n toastItems.addItem({\n message: \"Api Error\",\n type: \"error\"\n });\n throw e;\n }\n };\n return {\n health() {\n return f(\"/health\");\n },\n info() {\n return f(\"/info\");\n },\n /**\n *\n * @param {string} q\n */\n search(q) {\n return f(\"/search\", { q });\n },\n /**\n *\n * @param {string} id\n */\n artist(id) {\n return f(`/artist/${id}`);\n },\n /**\n *\n * @param {string} id\n */\n album(id) {\n return f(`/album/${id}`);\n },\n /**\n *\n * @param {string} uri\n * @param {string} [name]\n */\n addTrack(uri, name) {\n return f(`/add`, { uri, name });\n },\n play() {\n return f(\"/play\");\n },\n pause() {\n return f(\"/pause\");\n },\n skipForward() {\n return f(\"/skipForward\");\n },\n skipBackward() {\n return f(\"/skipBackward\");\n }\n };\n});\nconst previous = {\n /** @type {Socket | null} */\n current: null\n};\nderived([address, settled], ([$address, $settled]) => {\n if (!$settled) {\n return null;\n }\n const i = io($address.endpoint);\n if (previous.current) {\n previous.current.disconnect();\n }\n previous.current = i;\n return i;\n});\nexport {\n address as a,\n config as c\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_page.svelte-Csehl0cs.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/player/_page.svelte.js"],"sourcesContent":["import { T as push, a5 as attr_class, Y as attr, W as pop, a3 as copy_payload, a4 as assign_payload, a1 as escape_html, Z as store_get, _ as unsubscribe_stores } from \"../../../chunks/index.js\";\nimport \"qrcode-svg\";\nimport { c as config, a as address } from \"../../../chunks/LoadingIndicator.svelte_svelte_type_style_lang.js\";\nimport { P as PlayingTracker } from \"../../../chunks/PlayingTracker.js\";\nimport { L as LoadingIndicator } from \"../../../chunks/LoadingIndicator.js\";\nfunction ImageLoad($$payload, $$props) {\n push();\n const { low } = $$props;\n const LOAD_STATE = { COMPLETE: 3 };\n let loadState = void 0;\n $$payload.out += `<span${attr_class(\"image svelte-1nicoyy\", void 0, {\n \"display\": loadState === LOAD_STATE.COMPLETE\n })}>`;\n {\n $$payload.out += \"<!--[!-->\";\n }\n $$payload.out += `<!--]--> `;\n {\n $$payload.out += \"<!--[-->\";\n $$payload.out += `<img class=\"low svelte-1nicoyy\"${attr(\"src\", low)} alt=\"\" onload=\"this.__e=event\">`;\n }\n $$payload.out += `<!--]--></span>`;\n pop();\n}\nfunction _page($$payload, $$props) {\n push();\n var $$store_subs;\n let playing = null;\n let title = (() => {\n if (!playing || \"noTrack\" in playing) {\n return \"\";\n }\n if (\"normalised\" in playing.context) {\n return playing.context.normalised.title;\n }\n if (\"album\" in playing.track) {\n return playing.track.album;\n }\n if (\"show\" in playing.track) {\n return playing.track.show;\n }\n return \"\";\n })();\n let subtitle = (() => {\n if (!playing || \"noTrack\" in playing) {\n return \"\";\n }\n if (!playing.isPlaying) {\n return \"Paused\";\n }\n switch (playing.context?.type) {\n case \"album\":\n return [playing.track.number, playing.context.total].join(\" – \");\n default:\n return playing?.context?.normalised?.subtitle ?? \"\";\n }\n })();\n let idle = true;\n let $$settled = true;\n let $$inner_payload;\n function $$render_inner($$payload2) {\n PlayingTracker($$payload2, {\n get playing() {\n return playing;\n },\n set playing($$value) {\n playing = $$value;\n $$settled = false;\n }\n });\n $$payload2.out += `<!----> `;\n if (!playing) {\n $$payload2.out += \"<!--[-->\";\n LoadingIndicator($$payload2, { floating: true });\n } else if (\"noTrack\" in playing) {\n $$payload2.out += \"<!--[1-->\";\n $$payload2.out += `<div class=\"empty bg-color-3 color-1 svelte-16as94f\">No Track playing currently</div>`;\n } else {\n $$payload2.out += \"<!--[!-->\";\n $$payload2.out += `<div${attr_class(\"page bg-color-bg svelte-16as94f\", void 0, { \"idle\": idle })}><div class=\"top svelte-16as94f\"><div class=\"context color-1 svelte-16as94f\"><span>${escape_html(title)}</span> <span class=\"size-small-2\">${escape_html(subtitle)}</span></div></div> <div class=\"middle svelte-16as94f\"><div class=\"middle-image svelte-16as94f\"><!---->`;\n {\n $$payload2.out += `<span class=\"svelte-16as94f\">`;\n ImageLoad($$payload2, {\n full: playing.track.normalised.image.full.url,\n low: playing.track.normalised.image.low.url\n });\n $$payload2.out += `<!----></span>`;\n }\n $$payload2.out += `<!----></div></div> <div class=\"bottom svelte-16as94f\"><div class=\"left color-1 svelte-16as94f\"><h1 class=\"title ellipsis svelte-16as94f\">${escape_html(playing.track.normalised.title)}</h1> <span class=\"headline-3\">${escape_html(playing.track.normalised.subtitle)}</span></div> <div class=\"right svelte-16as94f\">`;\n if (store_get($$store_subs ??= {}, \"$config\", config).api?.canAdd) {\n $$payload2.out += \"<!--[-->\";\n $$payload2.out += `<div class=\"badge bg-color-3 color-bg svelte-16as94f\"><span class=\"headline-3\">Add</span> <span class=\"badge-qr svelte-16as94f\"></span></div>`;\n } else {\n $$payload2.out += \"<!--[!-->\";\n }\n $$payload2.out += `<!--]--> <span class=\"size-small-1 color-3\">${escape_html(store_get($$store_subs ??= {}, \"$address\", address).naked)}</span></div></div></div>`;\n }\n $$payload2.out += `<!--]-->`;\n }\n do {\n $$settled = true;\n $$inner_payload = copy_payload($$payload);\n $$render_inner($$inner_payload);\n } while (!$$settled);\n assign_payload($$payload, $$inner_payload);\n if ($$store_subs) unsubscribe_stores($$store_subs);\n pop();\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}