stagelinq 3.0.0 → 3.0.4

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 (49) hide show
  1. package/LICENSE +21 -674
  2. package/README.md +9 -1
  3. package/dist/Databases/Databases.js +3 -2
  4. package/dist/Databases/Databases.js.map +1 -1
  5. package/dist/Databases/DbConnection.js +5 -2
  6. package/dist/Databases/DbConnection.js.map +1 -1
  7. package/dist/StageLinq/index.js +1 -0
  8. package/dist/StageLinq/index.js.map +1 -1
  9. package/dist/devices/Player.js +9 -4
  10. package/dist/devices/Player.js.map +1 -1
  11. package/dist/devices/PlayerMessageQueue.js +3 -1
  12. package/dist/devices/PlayerMessageQueue.js.map +1 -1
  13. package/dist/network/NetworkDevice.d.ts +1 -1
  14. package/dist/network/NetworkDevice.js +8 -4
  15. package/dist/network/NetworkDevice.js.map +1 -1
  16. package/dist/network/StageLinqDevices.js +7 -3
  17. package/dist/network/StageLinqDevices.js.map +1 -1
  18. package/dist/network/StageLinqListener.d.ts +5 -0
  19. package/dist/network/StageLinqListener.js +15 -1
  20. package/dist/network/StageLinqListener.js.map +1 -1
  21. package/dist/network/announce.js.map +1 -1
  22. package/dist/services/BeatInfo.d.ts +1 -1
  23. package/dist/services/Broadcast.d.ts +1 -1
  24. package/dist/services/FileTransfer.js +5 -5
  25. package/dist/services/FileTransfer.js.map +1 -1
  26. package/dist/services/Service.d.ts +2 -2
  27. package/dist/services/Service.js +6 -4
  28. package/dist/services/Service.js.map +1 -1
  29. package/dist/services/StateMap.d.ts +1 -1
  30. package/dist/services/StateMap.js.map +1 -1
  31. package/dist/services/TimeSync.d.ts +1 -1
  32. package/dist/tsconfig.tsbuildinfo +1 -1
  33. package/dist/utils/ReadContext.js +8 -8
  34. package/dist/utils/ReadContext.js.map +1 -1
  35. package/dist/utils/WriteContext.js +2 -1
  36. package/dist/utils/WriteContext.js.map +1 -1
  37. package/package.json +60 -60
  38. package/dist/cli/beatinfo.d.ts +0 -11
  39. package/dist/cli/beatinfo.js +0 -84
  40. package/dist/cli/beatinfo.js.map +0 -1
  41. package/dist/cli/discover.d.ts +0 -9
  42. package/dist/cli/discover.js +0 -97
  43. package/dist/cli/discover.js.map +0 -1
  44. package/dist/cli/index.d.ts +0 -1
  45. package/dist/cli/index.js +0 -197
  46. package/dist/cli/index.js.map +0 -1
  47. package/dist/utils/log.d.ts +0 -0
  48. package/dist/utils/log.js +0 -2
  49. package/dist/utils/log.js.map +0 -1
package/dist/cli/index.js DELETED
@@ -1,197 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const types_1 = require("../types");
37
- const Databases_1 = require("../Databases");
38
- const sleep_1 = require("../utils/sleep");
39
- const StageLinq_1 = require("../StageLinq");
40
- const fs = __importStar(require("fs"));
41
- const os = __importStar(require("os"));
42
- const path = __importStar(require("path"));
43
- require('console-stamp')(console, {
44
- format: ':date(HH:MM:ss) :label',
45
- });
46
- /**
47
- * Get track information for latest playing song.
48
- *
49
- * @param stageLinq Instance of StageLinq.
50
- * @param status Player to get track info from.
51
- * @returns Track info
52
- */
53
- function getTrackInfo(stageLinq, status) {
54
- try {
55
- const dbPath = stageLinq.databases.getDbPath(status.dbSourceName);
56
- const connection = new Databases_1.DbConnection(dbPath);
57
- const result = connection.getTrackInfo(status.trackPath);
58
- connection.close();
59
- console.log('Database entry:', result);
60
- return result;
61
- }
62
- catch (e) {
63
- console.error(e);
64
- }
65
- }
66
- /**
67
- * Download the currently playing song from the media.
68
- *
69
- * @param stageLinq Instance of StageLinq.
70
- * @param status Player to download the current song from.
71
- * @param dest Path to save file to.
72
- */
73
- async function downloadFile(stageLinq, status, dest) {
74
- try {
75
- const data = await stageLinq.devices.downloadFile(status.deviceId, status.trackPathAbsolute);
76
- if (data) {
77
- fs.writeFileSync(dest, Buffer.from(data));
78
- console.log(`Downloaded ${status.trackPathAbsolute} to ${dest}`);
79
- }
80
- }
81
- catch (e) {
82
- console.error(`Could not download ${status.trackPathAbsolute}`);
83
- }
84
- }
85
- async function main() {
86
- console.log('Starting CLI');
87
- const stageLinqOptions = {
88
- // If set to true, download the source DBs in a temporary location.
89
- // (default: true)
90
- downloadDbSources: false,
91
- // Max number of attempts to connect to a StageLinq device.
92
- // (default: 3)
93
- maxRetries: 3,
94
- // What device to emulate on the network.
95
- // (default: Now Playing)
96
- actingAs: types_1.ActingAsDevice.NowPlaying
97
- };
98
- const stageLinq = new StageLinq_1.StageLinqInstance(stageLinqOptions);
99
- // Setup how you want to handle logs coming from StageLinq
100
- stageLinq.logger.on('error', (...args) => {
101
- console.error(...args);
102
- });
103
- stageLinq.logger.on('warn', (...args) => {
104
- console.warn(...args);
105
- });
106
- stageLinq.logger.on('info', (...args) => {
107
- console.info(...args);
108
- });
109
- stageLinq.logger.on('log', (...args) => {
110
- console.log(...args);
111
- });
112
- stageLinq.logger.on('debug', (...args) => {
113
- console.debug(...args);
114
- });
115
- // Note: Silly is very verbose!
116
- // stageLinq.logger.on('silly', (...args: any) => {
117
- // console.debug(...args);
118
- // });
119
- // Fires when we connect to any device
120
- stageLinq.devices.on('connected', async (connectionInfo) => {
121
- console.log(`Successfully connected to ${connectionInfo.software.name}`);
122
- if (stageLinq.options.downloadDbSources) {
123
- // Fires when the database source starts downloading.
124
- stageLinq.databases.on('dbDownloading', (sourceName, dbPath) => {
125
- console.log(`Downloading ${sourceName} to ${dbPath}`);
126
- });
127
- // Fires while the database source is being read
128
- stageLinq.databases.on('dbProgress', (sourceName, total, bytes, percent) => {
129
- console.debug(`Reading ${sourceName}: ${bytes}/${total} (${Math.ceil(percent)}%)`);
130
- });
131
- // Fires when the database source has been read and saved to a temporary path.
132
- stageLinq.databases.on('dbDownloaded', (sourceName, dbPath) => {
133
- console.log(`Database (${sourceName}) has been downloaded to ${dbPath}`);
134
- });
135
- }
136
- });
137
- // Fires when StageLinq and all devices are ready to use.
138
- stageLinq.devices.on('ready', () => {
139
- console.log(`StageLinq is ready!`);
140
- });
141
- // Fires when a new track is loaded on to a player.
142
- stageLinq.devices.on('trackLoaded', async (status) => {
143
- // Example of how to connect to the database using this library's
144
- // implementation of BetterSqlite3 to get additional information.
145
- if (stageLinq.options.downloadDbSources) {
146
- getTrackInfo(stageLinq, status);
147
- }
148
- // Example of how to download the actual track from the media.
149
- await downloadFile(stageLinq, status, path.resolve(os.tmpdir(), 'media'));
150
- });
151
- // Fires when a track has started playing.
152
- stageLinq.devices.on('nowPlaying', (status) => {
153
- console.log(`Now Playing on [${status.deck}]: ${status.title} - ${status.artist}`);
154
- });
155
- // Fires when StageLinq receives messages from a device.
156
- stageLinq.devices.on('message', (connectionInfo, data) => {
157
- const msg = data.message.json
158
- ? JSON.stringify(data.message.json)
159
- : data.message.interval;
160
- console.debug(`${connectionInfo.address}:${connectionInfo.port} ` +
161
- `${data.message.name} => ${msg}`);
162
- });
163
- // Fires when the state of a device has changed.
164
- stageLinq.devices.on('stateChanged', (status) => {
165
- console.log(`Updating state [${status.deck}]`, status);
166
- });
167
- /////////////////////////////////////////////////////////////////////////
168
- // CLI
169
- let returnCode = 0;
170
- try {
171
- process.on('SIGINT', async function () {
172
- console.info('... exiting');
173
- // Ensure SIGINT won't be impeded by some error
174
- try {
175
- await stageLinq.disconnect();
176
- }
177
- catch (err) {
178
- const message = err.stack.toString();
179
- console.error(message);
180
- }
181
- process.exit(returnCode);
182
- });
183
- await stageLinq.connect();
184
- while (true) {
185
- await (0, sleep_1.sleep)(250);
186
- }
187
- }
188
- catch (err) {
189
- const message = err.stack.toString();
190
- console.error(message);
191
- returnCode = 1;
192
- }
193
- await stageLinq.disconnect();
194
- process.exit(returnCode);
195
- }
196
- main();
197
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../cli/index.ts"],"names":[],"mappings":"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"}
File without changes
package/dist/utils/log.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=log.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../utils/log.ts"],"names":[],"mappings":""}