ambient-display 1.1.13 → 1.1.15
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.
- package/build/client/_app/immutable/chunks/{jqhKT5WL.js → Bfhjek-f.js} +2 -2
- package/build/client/_app/immutable/chunks/Bfhjek-f.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bfhjek-f.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.BqIwniV2.js → app.BnYS1ESK.js} +2 -2
- package/build/client/_app/immutable/entry/app.BnYS1ESK.js.br +0 -0
- package/build/client/_app/immutable/entry/app.BnYS1ESK.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.GAUDqQZ9.js +1 -0
- package/build/client/_app/immutable/entry/start.GAUDqQZ9.js.br +2 -0
- package/build/client/_app/immutable/entry/start.GAUDqQZ9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.BvW6GQpn.js → 0.B1ZZMXc6.js} +2 -2
- package/build/client/_app/immutable/nodes/0.B1ZZMXc6.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.B1ZZMXc6.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.CGEOGhQ6.js → 1.CRiXPoo7.js} +1 -1
- package/build/client/_app/immutable/nodes/1.CRiXPoo7.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.CRiXPoo7.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/{0-Byw92AzS.js → 0-Bedes_cv.js} +2 -2
- package/build/server/chunks/{0-Byw92AzS.js.map → 0-Bedes_cv.js.map} +1 -1
- package/build/server/chunks/{1-BAnl2We4.js → 1-BRZwGoSV.js} +2 -2
- package/build/server/chunks/{1-BAnl2We4.js.map → 1-BRZwGoSV.js.map} +1 -1
- package/build/server/index.js +1 -1
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +3 -3
- package/build/server/manifest.js.map +1 -1
- package/package.json +1 -1
- package/server/spotify/auth.js +26 -20
- package/server/spotify/index.js +5 -3
- package/server/spotify/sdk.js +21 -5
- package/build/client/_app/immutable/chunks/jqhKT5WL.js.br +0 -0
- package/build/client/_app/immutable/chunks/jqhKT5WL.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.BqIwniV2.js.br +0 -0
- package/build/client/_app/immutable/entry/app.BqIwniV2.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DdZVr3Jo.js +0 -1
- package/build/client/_app/immutable/entry/start.DdZVr3Jo.js.br +0 -2
- package/build/client/_app/immutable/entry/start.DdZVr3Jo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.BvW6GQpn.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.BvW6GQpn.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.CGEOGhQ6.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.CGEOGhQ6.js.gz +0 -0
package/build/server/manifest.js
CHANGED
|
@@ -10,10 +10,10 @@ 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.
|
|
13
|
+
client: {start:"_app/immutable/entry/start.GAUDqQZ9.js",app:"_app/immutable/entry/app.BnYS1ESK.js",imports:["_app/immutable/entry/start.GAUDqQZ9.js","_app/immutable/chunks/Bfhjek-f.js","_app/immutable/chunks/CDVeMiAl.js","_app/immutable/chunks/ynvIH2CR.js","_app/immutable/entry/app.BnYS1ESK.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-
|
|
16
|
-
__memo(() => import('./chunks/1-
|
|
15
|
+
__memo(() => import('./chunks/0-Bedes_cv.js')),
|
|
16
|
+
__memo(() => import('./chunks/1-BRZwGoSV.js')),
|
|
17
17
|
__memo(() => import('./chunks/2-B3ii1avX.js')),
|
|
18
18
|
__memo(() => import('./chunks/3-Cz5Rp48l.js'))
|
|
19
19
|
],
|
|
@@ -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.
|
|
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.GAUDqQZ9.js\",app:\"_app/immutable/entry/app.BnYS1ESK.js\",imports:[\"_app/immutable/entry/start.GAUDqQZ9.js\",\"_app/immutable/chunks/Bfhjek-f.js\",\"_app/immutable/chunks/CDVeMiAl.js\",\"_app/immutable/chunks/ynvIH2CR.js\",\"_app/immutable/entry/app.BnYS1ESK.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
package/server/spotify/auth.js
CHANGED
|
@@ -54,6 +54,30 @@ export const SpotifyAuth = {
|
|
|
54
54
|
}
|
|
55
55
|
};
|
|
56
56
|
|
|
57
|
+
export const refreshAuth = async (client_id, client_secret, previous) => {
|
|
58
|
+
const { error, ...token } = await SpotifyAuth.token.refresh(
|
|
59
|
+
client_id,
|
|
60
|
+
client_secret,
|
|
61
|
+
previous.refresh_token,
|
|
62
|
+
previous.access_token
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
if (error) {
|
|
66
|
+
// This is a shot in the dark, but this was throwing sometimes in quick success of accessing, so wondered if its a rate limit thing
|
|
67
|
+
if (error === 'invalid_request') {
|
|
68
|
+
return previous;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
throw new Error('Invalid token');
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Intialise the return with the refresh token, in case it didn't come in the refreshed call. Will get overwritten if it did
|
|
75
|
+
return {
|
|
76
|
+
refresh_token: previous.refresh_token,
|
|
77
|
+
...token
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
|
|
57
81
|
/**
|
|
58
82
|
*
|
|
59
83
|
* @param {OptionsTypes.SpotifyOptions} options
|
|
@@ -71,27 +95,9 @@ export async function initialisePreviousAuth({
|
|
|
71
95
|
// Parse the object to utilise it
|
|
72
96
|
const previous = JSON.parse(previousAuth);
|
|
73
97
|
|
|
74
|
-
const
|
|
75
|
-
client_id,
|
|
76
|
-
client_secret,
|
|
77
|
-
previous.refresh_token,
|
|
78
|
-
previous.access_token
|
|
79
|
-
);
|
|
80
|
-
|
|
81
|
-
if (error) {
|
|
82
|
-
// This is a shot in the dark, but this was throwing sometimes in quick success of accessing, so wondered if its a rate limit thing
|
|
83
|
-
if (error === 'invalid_request') {
|
|
84
|
-
return previous;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
throw new Error('Invalid token');
|
|
88
|
-
}
|
|
98
|
+
const token = await refreshAuth(client_id, client_secret, previous);
|
|
89
99
|
|
|
90
|
-
|
|
91
|
-
return {
|
|
92
|
-
refresh_token: previous.refresh_token,
|
|
93
|
-
...token
|
|
94
|
-
};
|
|
100
|
+
return token;
|
|
95
101
|
} catch {
|
|
96
102
|
return false;
|
|
97
103
|
}
|
package/server/spotify/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { Router } from 'express';
|
|
|
3
3
|
import { ERROR } from '../constants.js';
|
|
4
4
|
import { events } from '../events.js';
|
|
5
5
|
import { initialisePreviousAuth, SpotifyAuth } from './auth.js';
|
|
6
|
-
import { persistSdk } from './sdk.js';
|
|
6
|
+
import { initiateSdk, persistSdk } from './sdk.js';
|
|
7
7
|
import { catchAndRetry } from '../utils.js';
|
|
8
8
|
|
|
9
9
|
// These scoped items are fixed and necessary for the app to run
|
|
@@ -24,7 +24,8 @@ const run = async (sdk, options) => {
|
|
|
24
24
|
|
|
25
25
|
// If there is, initialise it while also persisting the auth
|
|
26
26
|
if (refreshedAuth) {
|
|
27
|
-
|
|
27
|
+
await persistSdk(refreshedAuth, options);
|
|
28
|
+
sdk.current = initiateSdk(refreshedAuth, options);
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
// Initalise a sub router
|
|
@@ -92,7 +93,8 @@ const run = async (sdk, options) => {
|
|
|
92
93
|
);
|
|
93
94
|
});
|
|
94
95
|
|
|
95
|
-
|
|
96
|
+
await persistSdk(accessTokenJson, options);
|
|
97
|
+
sdk.current = initiateSdk(accessTokenJson, options);
|
|
96
98
|
|
|
97
99
|
events.system('authenticated');
|
|
98
100
|
|
package/server/spotify/sdk.js
CHANGED
|
@@ -5,7 +5,7 @@ import { events } from '../events.js';
|
|
|
5
5
|
import { log } from '../logs.js';
|
|
6
6
|
import * as Types from '../types/index.js';
|
|
7
7
|
import * as OptionTypes from '../types/options.js';
|
|
8
|
-
import { SpotifyAuth } from './auth.js';
|
|
8
|
+
import { refreshAuth, SpotifyAuth } from './auth.js';
|
|
9
9
|
import { ERROR } from '../constants.js';
|
|
10
10
|
import path from 'node:path';
|
|
11
11
|
import { expandAliases, __dirname } from '../utils.js';
|
|
@@ -99,7 +99,7 @@ const safeBody = async (resp) => {
|
|
|
99
99
|
*/
|
|
100
100
|
export async function persistSdk(
|
|
101
101
|
accessTokenData,
|
|
102
|
-
{ spotify: {
|
|
102
|
+
{ spotify: { accessTokenJsonLocation }, verbose }
|
|
103
103
|
) {
|
|
104
104
|
const p = path.resolve(expandAliases(accessTokenJsonLocation));
|
|
105
105
|
|
|
@@ -131,11 +131,27 @@ export async function persistSdk(
|
|
|
131
131
|
|
|
132
132
|
// Persist the access token data to disk
|
|
133
133
|
await fs.writeFile(p, JSON.stringify(accessTokenData), 'utf-8');
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
*
|
|
138
|
+
* @param {Types.SpotifyAccessToken} accessTokenData
|
|
139
|
+
* @param {OptionTypes.SpotifyAmbientDisplayOptions} opts
|
|
140
|
+
* @returns
|
|
141
|
+
*/
|
|
142
|
+
export function initiateSdk(accessTokenData, opts) {
|
|
143
|
+
const {
|
|
144
|
+
spotify: { client_id, client_secret }
|
|
145
|
+
} = opts;
|
|
134
146
|
|
|
135
147
|
return new SpotifyApi(
|
|
136
|
-
new FixedAccessTokenStrategy(client_id, accessTokenData, (_client_id, token) =>
|
|
137
|
-
|
|
138
|
-
|
|
148
|
+
new FixedAccessTokenStrategy(client_id, accessTokenData, async (_client_id, token) => {
|
|
149
|
+
const refreshedToken = await refreshAuth(client_id, client_secret, token);
|
|
150
|
+
|
|
151
|
+
await persistSdk(refreshedToken, opts);
|
|
152
|
+
|
|
153
|
+
return refreshedToken;
|
|
154
|
+
}),
|
|
139
155
|
{
|
|
140
156
|
deserializer: {
|
|
141
157
|
async deserialize(response) {
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l as o,a as r}from"../chunks/jqhKT5WL.js";export{o as load_css,r as start};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|