Moved functions out of main, added getSettings
This commit is contained in:
parent
d55470188c
commit
e54eaa6a00
@ -15,8 +15,8 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cookie-parser": "1.4.5",
|
"cookie-parser": "1.4.5",
|
||||||
"debug": "2.6.9",
|
"debug": "2.6.9",
|
||||||
"deemix": "0.0.1",
|
"deemix": "0.0.2",
|
||||||
"deezer-js": "0.0.8",
|
"deezer-js": "0.0.10",
|
||||||
"dotenv": "8.2.0",
|
"dotenv": "8.2.0",
|
||||||
"express": "4.17.1",
|
"express": "4.17.1",
|
||||||
"morgan": "1.10.0",
|
"morgan": "1.10.0",
|
||||||
|
@ -1,124 +1,7 @@
|
|||||||
// @ts-expect-error
|
// @ts-expect-error
|
||||||
import { Deezer } from 'deezer-js'
|
import { Deezer } from 'deezer-js'
|
||||||
|
// @ts-expect-error
|
||||||
|
import deemix from 'deemix'
|
||||||
|
|
||||||
export const dz = new Deezer()
|
export let settings: any = deemix.settings.load()
|
||||||
let homeCache: any, chartsCache: any
|
export const dz = new Deezer(settings.tagsLanguage)
|
||||||
|
|
||||||
export async function getHome() {
|
|
||||||
if (!homeCache) {
|
|
||||||
homeCache = await dz.api.get_chart(0, { limit: 30 })
|
|
||||||
}
|
|
||||||
return homeCache
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function getCharts() {
|
|
||||||
if (!chartsCache) {
|
|
||||||
const chartsData = await dz.api.get_countries_charts()
|
|
||||||
const countries: any[] = []
|
|
||||||
chartsData.forEach((country: any) => {
|
|
||||||
countries.push({
|
|
||||||
title: country.title.replace('Top ', ''),
|
|
||||||
id: country.id,
|
|
||||||
picture_small: country.picture_small,
|
|
||||||
picture_medium: country.picture_medium,
|
|
||||||
picture_big: country.picture_big
|
|
||||||
})
|
|
||||||
})
|
|
||||||
chartsCache = { data: countries }
|
|
||||||
}
|
|
||||||
return chartsCache
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function getTracklist(list_id: string, list_type: string) {
|
|
||||||
switch (list_type) {
|
|
||||||
case 'artist': {
|
|
||||||
const artistAPI = await dz.api.get_artist(list_id)
|
|
||||||
artistAPI.releases = await dz.gw.get_artist_discography_tabs(list_id, 100)
|
|
||||||
return artistAPI
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
const releaseAPI = await dz.api[`get_${list_type}`](list_id)
|
|
||||||
let releaseTracksAPI = await dz.api[`get_${list_type}_tracks`](list_id)
|
|
||||||
releaseTracksAPI = releaseTracksAPI.data
|
|
||||||
|
|
||||||
const tracks: any[] = []
|
|
||||||
const showdiscs =
|
|
||||||
list_type === 'album' &&
|
|
||||||
releaseTracksAPI.length &&
|
|
||||||
releaseTracksAPI[releaseTracksAPI.length - 1].disk_number !== 1
|
|
||||||
let current_disk = 0
|
|
||||||
|
|
||||||
releaseTracksAPI.forEach((track: any) => {
|
|
||||||
if (showdiscs && parseInt(track.disk_number) !== current_disk) {
|
|
||||||
current_disk = parseInt(track.disk_number)
|
|
||||||
tracks.push({ type: 'disc_separator', number: current_disk })
|
|
||||||
}
|
|
||||||
track.selected = false
|
|
||||||
tracks.push(track)
|
|
||||||
})
|
|
||||||
releaseAPI.tracks = tracks
|
|
||||||
return releaseAPI
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function searchAll(term: string) {
|
|
||||||
const results = await dz.gw.search(term)
|
|
||||||
const order: string[] = []
|
|
||||||
results.ORDER.forEach((element: string) => {
|
|
||||||
if (['TOP_RESULT', 'TRACK', 'ALBUM', 'ARTIST', 'PLAYLIST'].includes(element)) order.push(element)
|
|
||||||
})
|
|
||||||
if (results.TOP_RESULT && results.TOP_RESULT.length) {
|
|
||||||
const originalTopResult = results.TOP_RESULT[0]
|
|
||||||
const topResult: any = {
|
|
||||||
type: originalTopResult.__TYPE__
|
|
||||||
}
|
|
||||||
switch (topResult.type) {
|
|
||||||
case 'artist':
|
|
||||||
topResult.id = originalTopResult.ART_ID
|
|
||||||
topResult.picture = `https://e-cdns-images.dzcdn.net/images/artist/${originalTopResult.ART_PICTURE}`
|
|
||||||
topResult.title = originalTopResult.ART_NAME
|
|
||||||
topResult.nb_fan = originalTopResult.NB_FAN
|
|
||||||
break
|
|
||||||
case 'album':
|
|
||||||
topResult.id = originalTopResult.ALB_ID
|
|
||||||
topResult.picture = `https://e-cdns-images.dzcdn.net/images/cover/${originalTopResult.ALB_PICTURE}`
|
|
||||||
topResult.title = originalTopResult.ALB_TITLE
|
|
||||||
topResult.artist = originalTopResult.ART_NAME
|
|
||||||
topResult.nb_song = originalTopResult.NUMBER_TRACK
|
|
||||||
break
|
|
||||||
case 'playlist':
|
|
||||||
topResult.id = originalTopResult.PLAYLIST_ID
|
|
||||||
topResult.picture = `https://e-cdns-images.dzcdn.net/images/${originalTopResult.PICTURE_TYPE}/${originalTopResult.PLAYLIST_PICTURE}`
|
|
||||||
topResult.title = originalTopResult.TITLE
|
|
||||||
topResult.artist = originalTopResult.PARENT_USERNAME
|
|
||||||
topResult.nb_song = originalTopResult.NB_SONG
|
|
||||||
break
|
|
||||||
default:
|
|
||||||
topResult.id = '0'
|
|
||||||
topResult.picture = 'https://e-cdns-images.dzcdn.net/images/cover'
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
results.ORDER = order
|
|
||||||
return results
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function search(term: string, type: string, start: number, nb: number) {
|
|
||||||
switch (type) {
|
|
||||||
case 'track':
|
|
||||||
return await dz.api.search_track(term, { limit: nb, index: start })
|
|
||||||
case 'album':
|
|
||||||
return await dz.api.search_album(term, { limit: nb, index: start })
|
|
||||||
case 'artist':
|
|
||||||
return await dz.api.search_artist(term, { limit: nb, index: start })
|
|
||||||
case 'playlist':
|
|
||||||
return await dz.api.search_playlist(term, { limit: nb, index: start })
|
|
||||||
case 'radio':
|
|
||||||
return await dz.api.search_radio(term, { limit: nb, index: start })
|
|
||||||
case 'user':
|
|
||||||
return await dz.api.search_user(term, { limit: nb, index: start })
|
|
||||||
default:
|
|
||||||
return await dz.api.search(term, { limit: nb, index: start })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -10,7 +10,7 @@ export interface RawChartTracksQuery {
|
|||||||
limit?: number
|
limit?: number
|
||||||
}
|
}
|
||||||
|
|
||||||
const path: ApiHandler['path'] = '/get-chart-tracks'
|
const path: ApiHandler['path'] = '/getChartTracks'
|
||||||
|
|
||||||
const handler: RequestHandler<{}, {}, {}, RawChartTracksQuery> = async (req, res, next) => {
|
const handler: RequestHandler<{}, {}, {}, RawChartTracksQuery> = async (req, res, next) => {
|
||||||
try {
|
try {
|
||||||
|
@ -1,11 +1,26 @@
|
|||||||
import { ApiHandler } from '../../../types'
|
import { ApiHandler } from '../../../types'
|
||||||
import { getCharts } from '../../../main'
|
import { dz } from '../../../main'
|
||||||
|
|
||||||
const path: ApiHandler['path'] = '/getCharts'
|
const path: ApiHandler['path'] = '/getCharts'
|
||||||
|
|
||||||
|
let chartsCache: any
|
||||||
|
|
||||||
const handler: ApiHandler['handler'] = async (_, res) => {
|
const handler: ApiHandler['handler'] = async (_, res) => {
|
||||||
const chartsData = await getCharts()
|
if (!chartsCache) {
|
||||||
res.send(chartsData)
|
const chartsData = await dz.api.get_countries_charts()
|
||||||
|
const countries: any[] = []
|
||||||
|
chartsData.forEach((country: any) => {
|
||||||
|
countries.push({
|
||||||
|
title: country.title.replace('Top ', ''),
|
||||||
|
id: country.id,
|
||||||
|
picture_small: country.picture_small,
|
||||||
|
picture_medium: country.picture_medium,
|
||||||
|
picture_big: country.picture_big
|
||||||
|
})
|
||||||
|
})
|
||||||
|
chartsCache = { data: countries }
|
||||||
|
}
|
||||||
|
res.send(chartsCache)
|
||||||
}
|
}
|
||||||
|
|
||||||
const apiHandler: ApiHandler = { path, handler }
|
const apiHandler: ApiHandler = { path, handler }
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
import { ApiHandler } from '../../../types'
|
import { ApiHandler } from '../../../types'
|
||||||
import { getHome } from '../../../main'
|
import { dz } from '../../../main'
|
||||||
|
|
||||||
const path: ApiHandler['path'] = '/getHome'
|
const path: ApiHandler['path'] = '/getHome'
|
||||||
|
|
||||||
|
let homeCache: any
|
||||||
|
|
||||||
const handler: ApiHandler['handler'] = async (_, res) => {
|
const handler: ApiHandler['handler'] = async (_, res) => {
|
||||||
const homeData = await getHome()
|
if (!homeCache) {
|
||||||
res.send(homeData)
|
homeCache = await dz.api.get_chart(0, { limit: 30 })
|
||||||
|
}
|
||||||
|
res.send(homeCache)
|
||||||
}
|
}
|
||||||
|
|
||||||
const apiHandler: ApiHandler = { path, handler }
|
const apiHandler: ApiHandler = { path, handler }
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
import { ApiHandler } from '../../../types'
|
||||||
|
import { settings } from '../../../main'
|
||||||
|
|
||||||
|
const path: ApiHandler['path'] = '/getSettings'
|
||||||
|
|
||||||
|
const handler: ApiHandler['handler'] = async (_, res) => {
|
||||||
|
res.send(settings)
|
||||||
|
}
|
||||||
|
|
||||||
|
const apiHandler: ApiHandler = { path, handler }
|
||||||
|
|
||||||
|
export default apiHandler
|
@ -1,11 +1,43 @@
|
|||||||
import { ApiHandler } from '../../../types'
|
import { ApiHandler } from '../../../types'
|
||||||
import { getTracklist } from '../../../main'
|
import { dz } from '../../../main'
|
||||||
|
|
||||||
const path: ApiHandler['path'] = '/getTracklist'
|
const path: ApiHandler['path'] = '/getTracklist'
|
||||||
|
|
||||||
const handler: ApiHandler['handler'] = async (req, res) => {
|
const handler: ApiHandler['handler'] = async (req, res) => {
|
||||||
const tracklistData = await getTracklist(String(req.query.id), String(req.query.type))
|
let list_id = String(req.query.id)
|
||||||
res.send(tracklistData)
|
let list_type = String(req.query.type)
|
||||||
|
switch (list_type) {
|
||||||
|
case 'artist': {
|
||||||
|
const artistAPI = await dz.api.get_artist(list_id)
|
||||||
|
artistAPI.releases = await dz.gw.get_artist_discography_tabs(list_id, {limit: 100})
|
||||||
|
res.send(artistAPI)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
const releaseAPI = await dz.api[`get_${list_type}`](list_id)
|
||||||
|
let releaseTracksAPI = await dz.api[`get_${list_type}_tracks`](list_id)
|
||||||
|
releaseTracksAPI = releaseTracksAPI.data
|
||||||
|
|
||||||
|
const tracks: any[] = []
|
||||||
|
const showdiscs =
|
||||||
|
list_type === 'album' &&
|
||||||
|
releaseTracksAPI.length &&
|
||||||
|
releaseTracksAPI[releaseTracksAPI.length - 1].disk_number !== 1
|
||||||
|
let current_disk = 0
|
||||||
|
|
||||||
|
releaseTracksAPI.forEach((track: any) => {
|
||||||
|
if (showdiscs && parseInt(track.disk_number) !== current_disk) {
|
||||||
|
current_disk = parseInt(track.disk_number)
|
||||||
|
tracks.push({ type: 'disc_separator', number: current_disk })
|
||||||
|
}
|
||||||
|
track.selected = false
|
||||||
|
tracks.push(track)
|
||||||
|
})
|
||||||
|
releaseAPI.tracks = tracks
|
||||||
|
res.send(releaseAPI)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const apiHandler: ApiHandler = { path, handler }
|
const apiHandler: ApiHandler = { path, handler }
|
||||||
|
@ -5,5 +5,15 @@ import search from './search'
|
|||||||
import getTracklist from './getTracklist'
|
import getTracklist from './getTracklist'
|
||||||
import albumSearch from './albumSearch'
|
import albumSearch from './albumSearch'
|
||||||
import getChartTracks from './getChartTracks'
|
import getChartTracks from './getChartTracks'
|
||||||
|
import getSettings from './getSettings'
|
||||||
|
|
||||||
export default [albumSearch, getHome, getCharts, getChartTracks, mainSearch, search, getTracklist]
|
export default [
|
||||||
|
albumSearch,
|
||||||
|
getHome,
|
||||||
|
getCharts,
|
||||||
|
getChartTracks,
|
||||||
|
mainSearch,
|
||||||
|
search,
|
||||||
|
getTracklist,
|
||||||
|
getSettings
|
||||||
|
]
|
||||||
|
@ -1,11 +1,49 @@
|
|||||||
import { ApiHandler } from '../../../types'
|
import { ApiHandler } from '../../../types'
|
||||||
import { searchAll } from '../../../main'
|
import { dz } from '../../../main'
|
||||||
|
|
||||||
const path: ApiHandler['path'] = '/mainSearch'
|
const path: ApiHandler['path'] = '/mainSearch'
|
||||||
|
|
||||||
const handler: ApiHandler['handler'] = async (req, res) => {
|
const handler: ApiHandler['handler'] = async (req, res) => {
|
||||||
const searchData = await searchAll(String(req.query.term))
|
const term = String(req.query.term)
|
||||||
res.send(searchData)
|
const results = await dz.gw.search(term)
|
||||||
|
const order: string[] = []
|
||||||
|
results.ORDER.forEach((element: string) => {
|
||||||
|
if (['TOP_RESULT', 'TRACK', 'ALBUM', 'ARTIST', 'PLAYLIST'].includes(element)) order.push(element)
|
||||||
|
})
|
||||||
|
if (results.TOP_RESULT && results.TOP_RESULT.length) {
|
||||||
|
const originalTopResult = results.TOP_RESULT[0]
|
||||||
|
const topResult: any = {
|
||||||
|
type: originalTopResult.__TYPE__
|
||||||
|
}
|
||||||
|
switch (topResult.type) {
|
||||||
|
case 'artist':
|
||||||
|
topResult.id = originalTopResult.ART_ID
|
||||||
|
topResult.picture = `https://e-cdns-images.dzcdn.net/images/artist/${originalTopResult.ART_PICTURE}`
|
||||||
|
topResult.title = originalTopResult.ART_NAME
|
||||||
|
topResult.nb_fan = originalTopResult.NB_FAN
|
||||||
|
break
|
||||||
|
case 'album':
|
||||||
|
topResult.id = originalTopResult.ALB_ID
|
||||||
|
topResult.picture = `https://e-cdns-images.dzcdn.net/images/cover/${originalTopResult.ALB_PICTURE}`
|
||||||
|
topResult.title = originalTopResult.ALB_TITLE
|
||||||
|
topResult.artist = originalTopResult.ART_NAME
|
||||||
|
topResult.nb_song = originalTopResult.NUMBER_TRACK
|
||||||
|
break
|
||||||
|
case 'playlist':
|
||||||
|
topResult.id = originalTopResult.PLAYLIST_ID
|
||||||
|
topResult.picture = `https://e-cdns-images.dzcdn.net/images/${originalTopResult.PICTURE_TYPE}/${originalTopResult.PLAYLIST_PICTURE}`
|
||||||
|
topResult.title = originalTopResult.TITLE
|
||||||
|
topResult.artist = originalTopResult.PARENT_USERNAME
|
||||||
|
topResult.nb_song = originalTopResult.NB_SONG
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
topResult.id = '0'
|
||||||
|
topResult.picture = 'https://e-cdns-images.dzcdn.net/images/cover'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
results.ORDER = order
|
||||||
|
res.send(results)
|
||||||
}
|
}
|
||||||
|
|
||||||
const apiHandler: ApiHandler = { path, handler }
|
const apiHandler: ApiHandler = { path, handler }
|
||||||
|
@ -1,16 +1,37 @@
|
|||||||
import { ApiHandler } from '../../../types'
|
import { ApiHandler } from '../../../types'
|
||||||
import { search } from '../../../main'
|
import { dz } from '../../../main'
|
||||||
|
|
||||||
const path: ApiHandler['path'] = '/search'
|
const path: ApiHandler['path'] = '/search'
|
||||||
|
|
||||||
const handler: ApiHandler['handler'] = async (req, res) => {
|
const handler: ApiHandler['handler'] = async (req, res) => {
|
||||||
const searchData = await search(
|
const term = String(req.query.term)
|
||||||
String(req.query.term),
|
const type = String(req.query.type)
|
||||||
String(req.query.type),
|
const start = parseInt(String(req.query.start))
|
||||||
parseInt(String(req.query.start)),
|
const nb = parseInt(String(req.query.nb))
|
||||||
parseInt(String(req.query.nb))
|
|
||||||
)
|
switch (type) {
|
||||||
res.send(searchData)
|
case 'track':
|
||||||
|
res.send( await dz.api.search_track(term, { limit: nb, index: start }) )
|
||||||
|
break
|
||||||
|
case 'album':
|
||||||
|
res.send( await dz.api.search_album(term, { limit: nb, index: start }) )
|
||||||
|
break
|
||||||
|
case 'artist':
|
||||||
|
res.send( await dz.api.search_artist(term, { limit: nb, index: start }) )
|
||||||
|
break
|
||||||
|
case 'playlist':
|
||||||
|
res.send( await dz.api.search_playlist(term, { limit: nb, index: start }) )
|
||||||
|
break
|
||||||
|
case 'radio':
|
||||||
|
res.send( await dz.api.search_radio(term, { limit: nb, index: start }) )
|
||||||
|
break
|
||||||
|
case 'user':
|
||||||
|
res.send( await dz.api.search_user(term, { limit: nb, index: start }) )
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
res.send( await dz.api.search(term, { limit: nb, index: start }) )
|
||||||
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const apiHandler: ApiHandler = { path, handler }
|
const apiHandler: ApiHandler = { path, handler }
|
||||||
|
@ -1179,6 +1179,11 @@ astral-regex@^2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
|
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
|
||||||
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
|
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
|
||||||
|
|
||||||
|
async@^3.2.0:
|
||||||
|
version "3.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720"
|
||||||
|
integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==
|
||||||
|
|
||||||
asynckit@^0.4.0:
|
asynckit@^0.4.0:
|
||||||
version "0.4.0"
|
version "0.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
||||||
@ -1866,14 +1871,15 @@ decompress-response@^6.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
mimic-response "^3.1.0"
|
mimic-response "^3.1.0"
|
||||||
|
|
||||||
deemix@0.0.1:
|
deemix@0.0.2:
|
||||||
version "0.0.1"
|
version "0.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/deemix/-/deemix-0.0.1.tgz#5f0fd4802133894dcb39c99a180fa0190d7f54a0"
|
resolved "https://registry.yarnpkg.com/deemix/-/deemix-0.0.2.tgz#3b375834327d4d6bd1d1db072db976ced86746ee"
|
||||||
integrity sha512-Izr64y+b+VMPgByZe1v0kirjaFddX0P6uS4MykgiJXyA7bl6Gc9aMM73eDvJFMbanUmeDgoWOBMUXZ9WYxuh/Q==
|
integrity sha512-NhTAM2LcoNxit6GiQYlUUO0YaGUMWtN8brGt9HO5mkvbn2cKojF1k9BulmUt/38NoiVvfkqTEtSQD8RtD4qPIA==
|
||||||
dependencies:
|
dependencies:
|
||||||
|
async "^3.2.0"
|
||||||
browser-id3-writer "^4.4.0"
|
browser-id3-writer "^4.4.0"
|
||||||
crypto "^1.0.1"
|
crypto "^1.0.1"
|
||||||
deezer-js "^0.0.3"
|
deezer-js "^0.0.8"
|
||||||
got "^11.8.2"
|
got "^11.8.2"
|
||||||
metaflac-js2 "^1.0.7"
|
metaflac-js2 "^1.0.7"
|
||||||
|
|
||||||
@ -1892,18 +1898,18 @@ deepmerge@^4.0.0, deepmerge@^4.2.2:
|
|||||||
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
|
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
|
||||||
integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
|
integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
|
||||||
|
|
||||||
deezer-js@0.0.8:
|
deezer-js@0.0.10:
|
||||||
version "0.0.8"
|
version "0.0.10"
|
||||||
resolved "https://registry.yarnpkg.com/deezer-js/-/deezer-js-0.0.8.tgz#cadc58eb43bc43dd9a6ec5fdefe5a9f562b8e2bf"
|
resolved "https://registry.yarnpkg.com/deezer-js/-/deezer-js-0.0.10.tgz#40aae50082765b7bf93c2c61788306e24cfd39e9"
|
||||||
integrity sha512-hOc9C8iRDqw3SS5kF86ss0zWOoPF0C0eg1G+qi8f2gvzNofBzpkuBQ5lCfWYnkKv77w1SQWb4gDtGDYkmkGZuw==
|
integrity sha512-V/ZQb3MsouBVHQ7BXQqiWR/5pZh1F9EtZuXGOLa7ZGbRzbN9dVPeYB9dHdr3k8Kf5YUGyp/rXrZtUD25NcZ27g==
|
||||||
dependencies:
|
dependencies:
|
||||||
got "^11.8.2"
|
got "^11.8.2"
|
||||||
tough-cookie "^4.0.0"
|
tough-cookie "^4.0.0"
|
||||||
|
|
||||||
deezer-js@^0.0.3:
|
deezer-js@^0.0.8:
|
||||||
version "0.0.3"
|
version "0.0.8"
|
||||||
resolved "https://registry.yarnpkg.com/deezer-js/-/deezer-js-0.0.3.tgz#6e91c285ca1c2df497c8b42c26a7130f4234f518"
|
resolved "https://registry.yarnpkg.com/deezer-js/-/deezer-js-0.0.8.tgz#cadc58eb43bc43dd9a6ec5fdefe5a9f562b8e2bf"
|
||||||
integrity sha512-Nr3ZKZb4NN0onOcFEpUYvSx01Ka7CgJEGgdHcqD9Mlk+KRtMcrWIcmKwheLtHEyZq/W+KTZW3sNG6wPTeWdj+w==
|
integrity sha512-hOc9C8iRDqw3SS5kF86ss0zWOoPF0C0eg1G+qi8f2gvzNofBzpkuBQ5lCfWYnkKv77w1SQWb4gDtGDYkmkGZuw==
|
||||||
dependencies:
|
dependencies:
|
||||||
got "^11.8.2"
|
got "^11.8.2"
|
||||||
tough-cookie "^4.0.0"
|
tough-cookie "^4.0.0"
|
||||||
|
Loading…
Reference in New Issue
Block a user