comty.js 0.67.0 → 0.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,65 +2,63 @@
2
2
  var _request = require('../../request'); var _request2 = _interopRequireDefault(_request);
3
3
 
4
4
  class FollowsModel {
5
- /**
6
- * Checks if the current user is following the specified user.
7
- *
8
- * @param {string} user_id - The ID of the user to check if the current user is following.
9
- * @return {Promise<Object>} A promise that resolves with the response data indicating if the current user is following the specified user.
10
- * @throws {Error} If the user_id parameter is not provided.
11
- */
12
- static async imFollowing(user_id) {
13
- if (!user_id) {
14
- throw new Error("user_id is required")
15
- }
5
+ /**
6
+ * Checks if the current user is following the specified user.
7
+ *
8
+ * @param {string} user_id - The ID of the user to check if the current user is following.
9
+ * @return {Promise<Object>} A promise that resolves with the response data indicating if the current user is following the specified user.
10
+ * @throws {Error} If the user_id parameter is not provided.
11
+ */
12
+ static async imFollowing(user_id) {
13
+ if (!user_id) {
14
+ throw new Error("user_id is required")
15
+ }
16
16
 
17
- const response = await _request2.default.call(void 0, {
18
- method: "GET",
19
- url: `/users/${user_id}/following`,
20
- })
17
+ const response = await _request2.default.call(void 0, {
18
+ method: "GET",
19
+ url: `/users/${user_id}/following`,
20
+ })
21
21
 
22
- return response.data
23
- }
22
+ return response.data
23
+ }
24
24
 
25
- /**
26
- * Retrieves the list of followers for a given user.
27
- *
28
- * @param {string} user_id - The ID of the user. If not provided, the current user ID will be used.
29
- * @param {boolean} fetchData - Whether to fetch additional data for each follower. Defaults to false.
30
- * @return {Promise<Object>} A promise that resolves with the list of followers and their data.
31
- */
32
- static async getFollowers(user_id, fetchData) {
33
- if (!user_id) {
34
- user_id = _session2.default.user_id
35
- }
25
+ /**
26
+ * Retrieves the list of followers for a given user.
27
+ *
28
+ * @param {string} user_id - The ID of the user. If not provided, the current user ID will be used.
29
+ * @param {object} params - Additional parameters to pass to the API.
30
+ * @return {Promise<Object>} A promise that resolves with the list of followers and their data.
31
+ */
32
+ static async getFollowers(user_id, params) {
33
+ if (!user_id) {
34
+ user_id = _session2.default.user_id
35
+ }
36
36
 
37
- const response = await _request2.default.call(void 0, {
38
- method: "GET",
39
- url: `/users/${user_id}/followers`,
40
- params: {
41
- fetchData: fetchData
42
- }
43
- })
37
+ const response = await _request2.default.call(void 0, {
38
+ method: "GET",
39
+ url: `/users/${user_id}/followers`,
40
+ params: params,
41
+ })
44
42
 
45
- return response.data
46
- }
43
+ return response.data
44
+ }
47
45
 
48
- /**
49
- * Toggles the follow status for a user.
50
- *
51
- * @param {Object} user_id - The ID of the user to toggle follow status.
52
- * @return {Promise} The response data after toggling follow status.
53
- */
54
- static async toggleFollow({ user_id }) {
55
- if (!user_id) {
56
- throw new Error("user_id is required")
57
- }
46
+ /**
47
+ * Toggles the follow status for a user.
48
+ *
49
+ * @param {Object} user_id - The ID of the user to toggle follow status.
50
+ * @return {Promise} The response data after toggling follow status.
51
+ */
52
+ static async toggleFollow({ user_id }) {
53
+ if (!user_id) {
54
+ throw new Error("user_id is required")
55
+ }
58
56
 
59
- const response = await _request2.default.call(void 0, {
60
- method: "POST",
61
- url: `/users/${user_id}/follow`,
62
- })
57
+ const response = await _request2.default.call(void 0, {
58
+ method: "POST",
59
+ url: `/users/${user_id}/follow`,
60
+ })
63
61
 
64
- return response.data
65
- }
66
- } exports.default = FollowsModel;
62
+ return response.data
63
+ }
64
+ } exports.default = FollowsModel;
@@ -4,26 +4,11 @@
4
4
 
5
5
 
6
6
 
7
-
8
-
9
-
10
-
11
- exports. default = async (
12
- id,
13
- options = {
14
- preferTranslation: false,
15
- },
16
- ) => {
17
- const requestParams = Object()
18
-
19
- if (options.preferTranslation) {
20
- requestParams.translate_lang = app.cores.settings.get("app:language")
21
- }
22
-
7
+ exports. default = async (id, options = {}) => {
23
8
  const response = await _request2.default.call(void 0, {
24
9
  method: "GET",
25
10
  url: `/music/tracks/${id}/lyrics`,
26
- params: requestParams,
11
+ params: options,
27
12
  })
28
13
 
29
14
  // @ts-ignore
package/package.json CHANGED
@@ -1,28 +1,28 @@
1
1
  {
2
- "name": "comty.js",
3
- "version": "0.67.0",
4
- "main": "./dist/index.js",
5
- "description": "Official Comty API for JavaScript",
6
- "homepage": "https://github.com/ragestudio/comty.js",
7
- "author": "RageStudio <support@ragestudio.net>",
8
- "scripts": {
9
- "build": "hermes build"
10
- },
11
- "files": [
12
- "dist"
13
- ],
14
- "license": "MIT",
15
- "dependencies": {
16
- "@foxify/events": "^2.1.0",
17
- "axios": "^1.8.4",
18
- "js-cookie": "^3.0.5",
19
- "jsonwebtoken": "^9.0.0",
20
- "jwt-decode": "^4.0.0",
21
- "linebridge-client": "^1.1.1",
22
- "luxon": "^3.6.0",
23
- "socket.io-client": "^4.8.1"
24
- },
25
- "devDependencies": {
26
- "@ragestudio/hermes": "^1.0.1"
27
- }
2
+ "name": "comty.js",
3
+ "version": "0.68.0",
4
+ "main": "./dist/index.js",
5
+ "description": "Official Comty API for JavaScript",
6
+ "homepage": "https://github.com/ragestudio/comty.js",
7
+ "author": "RageStudio <support@ragestudio.net>",
8
+ "scripts": {
9
+ "build": "hermes build"
10
+ },
11
+ "files": [
12
+ "dist"
13
+ ],
14
+ "license": "MIT",
15
+ "dependencies": {
16
+ "@foxify/events": "^2.1.0",
17
+ "axios": "^1.8.4",
18
+ "js-cookie": "^3.0.5",
19
+ "jsonwebtoken": "^9.0.0",
20
+ "jwt-decode": "^4.0.0",
21
+ "linebridge-client": "^1.1.1",
22
+ "luxon": "^3.6.0",
23
+ "socket.io-client": "^4.8.1"
24
+ },
25
+ "devDependencies": {
26
+ "@ragestudio/hermes": "^1.0.1"
27
+ }
28
28
  }
@@ -1,62 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _request = require('../request'); var _request2 = _interopRequireDefault(_request);
2
-
3
- const fetchers = {
4
- http: () => new Promise(async (resolve) => {
5
- const start = Date.now()
6
-
7
- const failTimeout = setTimeout(() => {
8
- resolve("timeout")
9
- }, 5000)
10
-
11
- _request2.default.call(void 0, {
12
- method: "GET",
13
- url: "/ping",
14
- })
15
- .then(() => {
16
- clearTimeout(failTimeout)
17
- resolve(Date.now() - start)
18
- })
19
- .catch((err) => {
20
- console.log(err)
21
- clearTimeout(failTimeout)
22
- resolve("failed")
23
- })
24
- }),
25
- ws: () => new Promise((resolve) => {
26
- const start = Date.now()
27
-
28
- const failTimeout = setTimeout(() => {
29
- resolve("failed")
30
- }, 5000)
31
-
32
- globalThis.__comty_shared_state.sockets["main"].on("pong", () => {
33
- failTimeout && clearTimeout(failTimeout)
34
-
35
- resolve(Date.now() - start)
36
- })
37
-
38
- globalThis.__comty_shared_state.sockets["main"].emit("ping")
39
- })
40
- }
41
-
42
- exports. default = async ({ select } = {}) => {
43
- let selectedPromises = []
44
-
45
- if (Array.isArray(select)) {
46
- select.forEach((item) => {
47
- if (!fetchers[item]) {
48
- return
49
- }
50
- selectedPromises.push(fetchers[item]())
51
- })
52
- } else {
53
- selectedPromises = [
54
- fetchers["http"](),
55
- fetchers["ws"](),
56
- ]
57
- }
58
-
59
- const result = await Promise.all(selectedPromises)
60
-
61
- return result
62
- }
@@ -1,38 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _auth = require('./auth'); var _auth2 = _interopRequireDefault(_auth);
2
- var _feed = require('./feed'); var _feed2 = _interopRequireDefault(_feed);
3
- var _follows = require('./follows'); var _follows2 = _interopRequireDefault(_follows);
4
- var _post = require('./post'); var _post2 = _interopRequireDefault(_post);
5
- var _session = require('./session'); var _session2 = _interopRequireDefault(_session);
6
- var _sync = require('./sync'); var _sync2 = _interopRequireDefault(_sync);
7
- var _user = require('./user'); var _user2 = _interopRequireDefault(_user);
8
-
9
- function getEndpointsFromModel(model) {
10
- return Object.entries(model).reduce((acc, [key, value]) => {
11
- acc[key] = value
12
-
13
- return acc
14
- }, {})
15
- }
16
-
17
- function createHandlers() {
18
- return {
19
- auth: getEndpointsFromModel(_auth2.default),
20
- feed: getEndpointsFromModel(_feed2.default),
21
- follows: getEndpointsFromModel(_follows2.default),
22
- post: getEndpointsFromModel(_post2.default),
23
- session: getEndpointsFromModel(_session2.default),
24
- sync: getEndpointsFromModel(_sync2.default),
25
- user: getEndpointsFromModel(_user2.default),
26
- }
27
- }
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
- exports.AuthModel = _auth2.default; exports.FeedModel = _feed2.default; exports.FollowsModel = _follows2.default; exports.PostModel = _post2.default; exports.SessionModel = _session2.default; exports.SyncModel = _sync2.default; exports.UserModel = _user2.default; exports.createHandlers = createHandlers;
@@ -1,42 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _request = require('../../../request'); var _request2 = _interopRequireDefault(_request);
2
- var _processWithAddons = require('../../../helpers/processWithAddons'); var _processWithAddons2 = _interopRequireDefault(_processWithAddons);
3
- var _standartListMerge = require('../../../utils/standartListMerge'); var _standartListMerge2 = _interopRequireDefault(_standartListMerge);
4
-
5
- exports. default = async ({ limit = 100, offset = 0, order = "desc" }) => {
6
- const addons =
7
- __comty_shared_state.addons.getByOperation("getFavoriteFolder")
8
-
9
- const dividedLimit = limit / (addons.length + 1)
10
-
11
- const { data } = await _request2.default.call(void 0, {
12
- method: "GET",
13
- url: "/music/my/folder",
14
- params: {
15
- limit: dividedLimit,
16
- offset: offset,
17
- order: order,
18
- },
19
- })
20
-
21
- let results = await _processWithAddons2.default.call(void 0, {
22
- operation: "getFavoriteFolder",
23
- initialData: data,
24
- fnArguments: [{ limit: dividedLimit, offset: offset, order: order }],
25
- normalizeAddonResult: ({ currentData, addonResult }) => {
26
- return _standartListMerge2.default.call(void 0, currentData, addonResult)
27
- },
28
- })
29
-
30
- // sort by liked_at
31
- results.tracks.items.sort((a, b) => {
32
- if (a.liked_at > b.liked_at) {
33
- return -1
34
- }
35
- if (a.liked_at < b.liked_at) {
36
- return 1
37
- }
38
- return 0
39
- })
40
-
41
- return results
42
- }
@@ -1,11 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _request = require('../../../request'); var _request2 = _interopRequireDefault(_request);
2
-
3
- exports. default = async () => {
4
- const response = await _request2.default.call(void 0, {
5
- method: "GET",
6
- url: "/music/playlists/featured",
7
- })
8
-
9
- // @ts-ignore
10
- return response.data
11
- }
@@ -1,33 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _request = require('../../../request'); var _request2 = _interopRequireDefault(_request);
2
-
3
- const typeToNamespace = {
4
- track: "tracks",
5
- //playlist: "playlists",
6
- //release: "releases",
7
- }
8
-
9
- exports. default = async (type, track_id) => {
10
- if (!type) {
11
- throw new Error("type is required")
12
- }
13
-
14
- if (!track_id) {
15
- throw new Error("track_id is required")
16
- }
17
-
18
- type = type.toLowerCase()
19
-
20
- type = typeToNamespace[type]
21
-
22
- if (!type) {
23
- throw new Error(`Unsupported type: ${type}`)
24
- }
25
-
26
- const response = await _request2.default.call(void 0, {
27
- method: "GET",
28
- url: `/music/${type}/${track_id}/is_favourite`,
29
- })
30
-
31
- // @ts-ignore
32
- return response.data
33
- }
@@ -1,11 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _request = require('../../../request'); var _request2 = _interopRequireDefault(_request);
2
-
3
- exports. default = async (id) => {
4
- const response = await _request2.default.call(void 0, {
5
- method: "GET",
6
- url: `/music/playlists/${id}/data`,
7
- })
8
-
9
- // @ts-ignore
10
- return response.data
11
- }
@@ -1,11 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _request = require('../../../request'); var _request2 = _interopRequireDefault(_request);
2
-
3
- exports. default = async (id) => {
4
- const response = await _request2.default.call(void 0, {
5
- method: "GET",
6
- url: `/music/playlists/${id}/items`,
7
- })
8
-
9
- // @ts-ignore
10
- return response.data
11
- }
@@ -1,29 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _request = require('../../../request'); var _request2 = _interopRequireDefault(_request);
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
- exports. default = async ({
11
- keywords,
12
- user_id,
13
- limit,
14
- offset,
15
- }) => {
16
- const response = await _request2.default.call(void 0, {
17
- method: "GET",
18
- url: "/music/playlists",
19
- params: {
20
- keywords: keywords,
21
- user_id: user_id,
22
- limit: limit,
23
- offset: offset,
24
- }
25
- })
26
-
27
- // @ts-ignore
28
- return response.data
29
- }
@@ -1,36 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _request = require('../../../request'); var _request2 = _interopRequireDefault(_request);
2
-
3
- const typeToNamespace = {
4
- track: "tracks",
5
- //playlist: "playlists",
6
- //release: "releases",
7
- }
8
-
9
- exports. default = async (type, track_id, to) => {
10
- if (!type) {
11
- throw new Error("type is required")
12
- }
13
-
14
- if (!track_id) {
15
- throw new Error("track_id is required")
16
- }
17
-
18
- type = type.toLowerCase()
19
-
20
- type = typeToNamespace[type]
21
-
22
- if (!type) {
23
- throw new Error(`Unsupported type: ${type}`)
24
- }
25
-
26
- const response = await _request2.default.call(void 0, {
27
- method: "post",
28
- url: `/music/${type}/${track_id}/favourite`,
29
- data: {
30
- to: to,
31
- }
32
- })
33
-
34
- // @ts-ignore
35
- return response.data
36
- }
@@ -1,17 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _request = require('../../request'); var _request2 = _interopRequireDefault(_request);
2
-
3
- class PaymentsModel {
4
- /**
5
- * Fetches the current balance from the server.
6
- *
7
- * @return {object} The balance data received from the server.
8
- */
9
- static async fetchBalance() {
10
- const response = await _request2.default.call(void 0, {
11
- method: "GET",
12
- url: "/payments/balance",
13
- })
14
-
15
- return response.data.balance
16
- }
17
- } exports.default = PaymentsModel;
@@ -1,59 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _spotify = require('./services/spotify'); var _spotify2 = _interopRequireDefault(_spotify);
2
- var _tidal = require('./services/tidal'); var _tidal2 = _interopRequireDefault(_tidal);
3
-
4
- var _request = require('../../request'); var _request2 = _interopRequireDefault(_request);
5
-
6
- const namespacesServices = {
7
- spotify: _spotify2.default,
8
- tidal: _tidal2.default
9
- }
10
-
11
- class SyncModel {
12
- static get spotifyCore() {
13
- return namespacesServices.spotify
14
- }
15
-
16
- static get tidalCore() {
17
- return namespacesServices.tidal
18
- }
19
-
20
- static async linkService(namespace) {
21
- const service = namespacesServices[namespace]
22
-
23
- if (!service || typeof service.linkAccount !== "function") {
24
- throw new Error(`Service ${namespace} not found or not accepting linking.`)
25
- }
26
-
27
- return await service.linkAccount()
28
- }
29
-
30
- static async unlinkService(namespace) {
31
- const service = namespacesServices[namespace]
32
-
33
- if (!service || typeof service.unlinkAccount !== "function") {
34
- throw new Error(`Service ${namespace} not found or not accepting unlinking.`)
35
- }
36
-
37
- return await service.unlinkAccount()
38
- }
39
-
40
- static async hasServiceLinked(namespace) {
41
- const service = namespacesServices[namespace]
42
-
43
- if (!service || typeof service.isActive !== "function") {
44
- throw new Error(`Service ${namespace} not found or not accepting linking.`)
45
- }
46
-
47
- return await service.isActive()
48
- }
49
-
50
- static async getLinkedServices() {
51
- const response = await _request2.default.call(void 0, {
52
- instance: globalThis.__comty_shared_state.instances["sync"],
53
- method: "GET",
54
- url: "/active_services",
55
- })
56
-
57
- return response.data
58
- }
59
- } exports.default = SyncModel;
@@ -1,87 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); class SpotifySyncModel {
2
- static get spotify_redirect_uri() {
3
- return window.location.origin + "/callbacks/sync/spotify"
4
- }
5
-
6
- static get spotify_authorize_endpoint() {
7
- return "https://accounts.spotify.com/authorize?response_type=code&client_id={{client_id}}&scope={{scope}}&redirect_uri={{redirect_uri}}&response_type=code"
8
- }
9
-
10
- static async authorizeAccount() {
11
- const scopes = [
12
- "user-read-private",
13
- "user-modify-playback-state",
14
- "user-read-currently-playing",
15
- "user-read-playback-state",
16
- "streaming",
17
- ]
18
-
19
- const { client_id } = await SpotifySyncModel.get_client_id()
20
-
21
- const parsedUrl = SpotifySyncModel.spotify_authorize_endpoint
22
- .replace("{{client_id}}", client_id)
23
- .replace("{{scope}}", scopes.join(" "))
24
- .replace("{{redirect_uri}}", SpotifySyncModel.spotify_redirect_uri)
25
-
26
- // open on a new tab
27
- window.open(parsedUrl, "_blank")
28
- }
29
-
30
- static async get_client_id() {
31
- const { data } = await app.cores.api.customRequest({
32
- method: "GET",
33
- url: `/sync/spotify/client_id`,
34
- })
35
-
36
- return data
37
- }
38
-
39
- static async syncAuthCode(code) {
40
- const { data } = await app.cores.api.customRequest({
41
- method: "POST",
42
- url: `/sync/spotify/auth`,
43
- data: {
44
- redirect_uri: SpotifySyncModel.spotify_redirect_uri,
45
- code,
46
- },
47
- })
48
-
49
- return data
50
- }
51
-
52
- static async unlinkAccount() {
53
- const { data } = await app.cores.api.customRequest({
54
- method: "POST",
55
- url: `/sync/spotify/unlink`,
56
- })
57
-
58
- return data
59
- }
60
-
61
- static async isAuthorized() {
62
- const { data } = await app.cores.api.customRequest({
63
- method: "GET",
64
- url: `/sync/spotify/is_authorized`,
65
- })
66
-
67
- return data
68
- }
69
-
70
- static async getData() {
71
- const { data } = await app.cores.api.customRequest({
72
- method: "GET",
73
- url: `/sync/spotify/data`,
74
- })
75
-
76
- return data
77
- }
78
-
79
- static async getCurrentPlaying() {
80
- const { data } = await app.cores.api.customRequest({
81
- method: "GET",
82
- url: `/sync/spotify/currently_playing`,
83
- })
84
-
85
- return data
86
- }
87
- } exports.default = SpotifySyncModel;
@@ -1,172 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _request = require('../../../request'); var _request2 = _interopRequireDefault(_request);
2
-
3
- class TidalService {
4
- static get api_instance() {
5
- return globalThis.__comty_shared_state.instances["sync"]
6
- }
7
-
8
- static async linkAccount() {
9
- if (!window) {
10
- throw new Error("This method is only available in the browser.")
11
- }
12
-
13
- const { data } = await _request2.default.call(void 0, {
14
- instance: TidalService.api_instance,
15
- method: "GET",
16
- url: `/services/tidal/create_link`,
17
- })
18
-
19
- if (data.auth_url) {
20
- window.open(data.auth_url, "_blank")
21
- }
22
-
23
- return data
24
- }
25
-
26
- static async unlinkAccount() {
27
- if (!window) {
28
- throw new Error("This method is only available in the browser.")
29
- }
30
-
31
- const { data } = await _request2.default.call(void 0, {
32
- instance: TidalService.api_instance,
33
- method: "POST",
34
- url: `/services/tidal/delete_link`,
35
- })
36
-
37
- return data
38
- }
39
-
40
- static async isActive() {
41
- if (!window) {
42
- throw new Error("This method is only available in the browser.")
43
- }
44
-
45
- const { data } = await _request2.default.call(void 0, {
46
- instance: TidalService.api_instance,
47
- method: "GET",
48
- url: `/services/tidal/is_active`,
49
- })
50
-
51
- return data
52
- }
53
-
54
- static async getCurrentUser() {
55
- const { data } = await _request2.default.call(void 0, {
56
- instance: TidalService.api_instance,
57
- method: "GET",
58
- url: `/services/tidal/current`,
59
- })
60
-
61
- return data
62
- }
63
-
64
- static async getPlaybackUrl(track_id) {
65
- const { data } = await _request2.default.call(void 0, {
66
- instance: TidalService.api_instance,
67
- method: "GET",
68
- url: `/services/tidal/playback/${track_id}`,
69
- })
70
-
71
- return data
72
- }
73
-
74
- static async getTrackManifest(track_id) {
75
- const { data } = await _request2.default.call(void 0, {
76
- instance: TidalService.api_instance,
77
- method: "GET",
78
- url: `/services/tidal/manifest/${track_id}`,
79
- })
80
-
81
- return data
82
- }
83
-
84
- static async getMyFavoriteTracks({
85
- limit = 50,
86
- offset = 0,
87
- } = {}) {
88
- const { data } = await _request2.default.call(void 0, {
89
- instance: TidalService.api_instance,
90
- method: "GET",
91
- url: `/services/tidal/favorites/tracks`,
92
- params: {
93
- limit,
94
- offset,
95
- },
96
- })
97
-
98
- return data
99
- }
100
-
101
- static async getMyFavoritePlaylists({
102
- limit = 50,
103
- offset = 0,
104
- } = {}) {
105
- const { data } = await _request2.default.call(void 0, {
106
- instance: TidalService.api_instance,
107
- method: "GET",
108
- url: `/services/tidal/favorites/playlists`,
109
- params: {
110
- limit,
111
- offset,
112
- },
113
- })
114
-
115
- return data
116
- }
117
-
118
- static async getPlaylistData({
119
- playlist_id,
120
-
121
- resolve_items = false,
122
- limit = 50,
123
- offset = 0,
124
- }) {
125
- const { data } = await _request2.default.call(void 0, {
126
- instance: TidalService.api_instance,
127
- method: "GET",
128
- url: `/services/tidal/playlist/${playlist_id}/data`,
129
- params: {
130
- limit,
131
- offset,
132
- resolve_items,
133
- },
134
- })
135
-
136
- return data
137
- }
138
-
139
- static async getPlaylistItems({
140
- playlist_id,
141
-
142
- resolve_items = false,
143
- limit = 50,
144
- offset = 0,
145
- }) {
146
- const { data } = await _request2.default.call(void 0, {
147
- instance: TidalService.api_instance,
148
- method: "GET",
149
- url: `/services/tidal/playlist/${playlist_id}/items`,
150
- params: {
151
- limit,
152
- offset,
153
- resolve_items,
154
- },
155
- })
156
-
157
- return data
158
- }
159
-
160
- static async toggleTrackLike({
161
- track_id,
162
- to,
163
- }) {
164
- const { data } = await _request2.default.call(void 0, {
165
- instance: TidalService.api_instance,
166
- method: to ? "POST" : "DELETE",
167
- url: `/services/tidal/track/${track_id}/like`,
168
- })
169
-
170
- return data
171
- }
172
- } exports.default = TidalService;
package/dist/remote.js DELETED
@@ -1,35 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }const envOrigins = {
2
- "development": `https://fr01.ragestudio.net:9000`,//`${location.origin}/api`,
3
- "indev": "https://indev.comty.app/api",
4
- "production": "https://api.comty.app",
5
- }
6
-
7
- exports. default = {
8
- origin: envOrigins[_nullishCoalesce(process.env.NODE_ENV, () => ( "production"))],
9
- websockets: [
10
- {
11
- namespace: "posts",
12
- path: "/posts",
13
- },
14
- {
15
- namespace: "main",
16
- path: "/main",
17
- },
18
- {
19
- namespace: "notifications",
20
- path: "/notifications",
21
- },
22
- {
23
- namespace: "chats",
24
- path: "/chats",
25
- },
26
- {
27
- namespace: "music",
28
- path: "/music",
29
- }
30
- // {
31
- // namespace: "payments",
32
- // path: "/payments",
33
- // }
34
- ]
35
- }
package/dist/rtclient.js DELETED
@@ -1,131 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); class RTEngineClient {
2
- constructor(params = {}) {;RTEngineClient.prototype.__init.call(this);RTEngineClient.prototype.__init2.call(this);RTEngineClient.prototype.__init3.call(this);RTEngineClient.prototype.__init4.call(this);RTEngineClient.prototype.__init5.call(this);RTEngineClient.prototype.__init6.call(this);RTEngineClient.prototype.__init7.call(this);RTEngineClient.prototype.__init8.call(this);RTEngineClient.prototype.__init9.call(this);
3
- this.params = params
4
- }
5
-
6
- __init() {this.socket = null}
7
-
8
- __init2() {this.stateSubscribers = []}
9
-
10
- __init3() {this.joinedTopics = new Set()}
11
- __init4() {this.handlers = new Set()}
12
-
13
- async connect() {
14
- return new Promise((resolve, reject) => {
15
- if (this.socket) {
16
- this.disconnect()
17
- }
18
-
19
- let url = `${this.params.url}`
20
-
21
- if (this.params.token) {
22
- url += `?token=${this.params.token}`
23
- }
24
-
25
- this.socket = new WebSocket(url)
26
-
27
- this.socket.onopen = () => {
28
- resolve()
29
- this._emit("connect")
30
- }
31
- this.socket.onclose = () => {
32
- this._emit("disconnect")
33
- }
34
- this.socket.onerror = () => {
35
- reject()
36
- this._emit("error")
37
- }
38
- this.socket.onmessage = (event) => this.handleMessage(event)
39
- })
40
- }
41
-
42
- async disconnect() {
43
- if (!this.socket) {
44
- return false
45
- }
46
-
47
- for await (const topic of this.joinedTopics) {
48
- this.leaveTopic(topic)
49
- }
50
-
51
- this.socket.close()
52
- this.socket = null
53
- }
54
-
55
- _emit(event, data) {
56
- for (const handler of this.handlers) {
57
- if (handler.event === event) {
58
- handler.handler(data)
59
- }
60
- }
61
- }
62
-
63
- __init5() {this.on = (event, handler) => {
64
- this.handlers.add({
65
- event,
66
- handler,
67
- })
68
- }}
69
-
70
- __init6() {this.off = (event, handler) => {
71
- this.handlers.delete({
72
- event,
73
- handler,
74
- })
75
- }}
76
-
77
- __init7() {this.emit = (event, data) => {
78
- if (!this.socket) {
79
- throw new Error("Failed to send, socket not connected")
80
- }
81
-
82
- this.socket.send(JSON.stringify({ event, data }))
83
- }}
84
-
85
- __init8() {this.joinTopic = (topic) => {
86
- this.emit("topic:join", topic)
87
- this.joinedTopics.add(topic)
88
- }}
89
-
90
- __init9() {this.leaveTopic = (topic) => {
91
- this.emit("topic:leave", topic)
92
- this.joinedTopics.delete(topic)
93
- }}
94
-
95
- updateState(state) {
96
- this.stateSubscribers.forEach((callback) => callback(state))
97
- }
98
-
99
- //* HANDLERS
100
- handleMessage(event) {
101
- try {
102
- const payload = JSON.parse(event.data)
103
-
104
- if (typeof payload.event !== "string") {
105
- return false
106
- }
107
-
108
- if (payload.event === "error") {
109
- console.error(payload.data)
110
- return false
111
- }
112
-
113
- this._emit(payload.event, payload.data)
114
- } catch (error) {
115
- console.error("Error handling message:", error)
116
- }
117
- }
118
-
119
- // UPDATERS
120
- onStateChange(callback) {
121
- this.stateSubscribers.push(callback)
122
-
123
- return () => {
124
- this.stateSubscribers = this.stateSubscribers.filter(
125
- (cb) => cb !== callback,
126
- )
127
- }
128
- }
129
- } exports.RTEngineClient = RTEngineClient;
130
-
131
- exports. default = RTEngineClient
@@ -1,52 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _request = require('../request'); var _request2 = _interopRequireDefault(_request);
2
-
3
- // create a regex to detect params with %% symbol, from the url
4
- const paramMatchRegex = /(%[0-9a-f]{2}%)/g
5
-
6
- exports. default = (method = "GET", url = "/", params, data) => {
7
- return async function generatedRequest(arg0, arg1) {
8
- const requestObj = {
9
- method: method,
10
- url: url,
11
- params: params,
12
- data: data,
13
- }
14
-
15
- // search url for params
16
- // example: /namespace/search/[0]/data => /namespace/search/${arguments[0]}/data
17
- // if no url matches, merge params with arg0 and override data in requestObj
18
- if (url.match(paramMatchRegex)) {
19
- requestObj.url = url.replace(paramMatchRegex, (match) => {
20
- console.log(match)
21
-
22
- // replace with arguments
23
- const fnArgumentIndex = ""
24
-
25
- return match
26
- })
27
- } else {
28
- requestObj.params = {
29
- ...requestObj.params,
30
- ...arg0
31
- }
32
- requestObj.data = {
33
- ...requestObj.data,
34
- ...arg1
35
- }
36
- }
37
-
38
- if (typeof requestObj.params === "object" && requestObj.params) {
39
- Object.keys(requestObj.params).forEach((key) => {
40
- if (requestObj.params && typeof requestObj.params[key] === "string") {
41
-
42
- }
43
- })
44
- }
45
-
46
-
47
- const response = await _request2.default.call(void 0, requestObj)
48
-
49
- // @ts-ignore
50
- return response.data
51
- }
52
- }