@xibosignage/xibo-communication-framework 0.0.1 → 0.0.2
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/dist/src/modules/xmr/xmr.d.ts +1 -0
- package/dist/xibo-communication-framework.cjs.js +135 -296
- package/dist/xibo-communication-framework.cjs.js.map +1 -1
- package/dist/xibo-communication-framework.d.ts +1 -0
- package/dist/xibo-communication-framework.esm.js +135 -296
- package/dist/xibo-communication-framework.esm.js.map +1 -1
- package/dist/xibo-communication-framework.js +135 -296
- package/dist/xibo-communication-framework.min.js +3 -1
- package/dist/xibo-communication-framework.min.js.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xibo-communication-framework.min.js","sources":["../node_modules/nanoevents/index.js","../../src/modules/xmr/xmr.ts"],"sourcesContent":["export let createNanoEvents = () => ({\n emit(event, ...args) {\n for (\n let callbacks = this.events[event] || [],\n i = 0,\n length = callbacks.length;\n i < length;\n i++\n ) {\n callbacks[i](...args)\n }\n },\n events: {},\n on(event, cb) {\n ;(this.events[event] ||= []).push(cb)\n return () => {\n this.events[event] = this.events[event]?.filter(i => cb !== i)\n }\n }\n})\n","/*\n * Copyright (C) 2025 Xibo Signage Ltd\n *\n * Xibo - Digital Signage - https://www.xibosignage.com\n *\n * This file is part of Xibo.\n *\n * Xibo is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * any later version.\n *\n * Xibo is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * along with Xibo. If not, see <http://www.gnu.org/licenses/>.\n */\nimport {createNanoEvents, type Emitter} from 'nanoevents';\nimport {DateTime} from 'luxon';\n\nexport interface XmrEvents {\n connected: () => void;\n disconnected: () => void;\n error: (e: string) => void;\n statusChange: (status: string) => void;\n\n collectNow: () => void;\n screenShot: () => void;\n licenceCheck: () => void;\n showStatusWindow: (timeout: number) => void;\n}\n\nexport default class Xmr {\n emitter: Emitter<XmrEvents>;\n\n url: string | null;\n cmsKey: string | null;\n channel: string;\n socket!: WebSocket;\n\n // State\n isConnectionWanted: boolean;\n isConnected: boolean;\n lastMessageAt: DateTime;\n\n interval: NodeJS.Timeout | undefined;\n\n constructor (channel: string) {\n // Emitter\n this.emitter = createNanoEvents<XmrEvents>();\n this.url = null;\n this.cmsKey = null;\n this.channel = channel;\n this.isConnected = false;\n this.isConnectionWanted = false;\n this.lastMessageAt = DateTime.now().minus({year: 1});\n }\n\n on<E extends keyof XmrEvents>(event: E, callback: XmrEvents[E]) {\n return this.emitter.on(event, callback);\n }\n\n async init() {\n this.interval = setInterval(() => {\n if (this.isConnectionWanted && !this.isActive()) {\n console.debug('Xmr::setInterval: should be active');\n\n // Call start again\n this.start(this.url || 'DISABLED', this.cmsKey || 'n/a');\n }\n }, 60000);\n }\n\n async start(url: string, cmsKey: string){\n if (!this.channel || this.channel === 'unknown') {\n console.error('Xmr::start: channel unknown, XMR will be disabled');\n return;\n }\n\n // Disable XMR if we've been told to.\n if (this.url === 'DISABLED') {\n console.info('Xmr::start: XMR disabled');\n this.isConnectionWanted = false;\n if (this.isActive()) {\n stop();\n }\n return;\n }\n\n this.isConnectionWanted = true;\n\n // Are we already connected?\n if (this.isActive() && this.url === url) {\n console.debug('Xmr::start: already connected to this URL');\n this.cmsKey = cmsKey;\n return;\n } else if (this.isConnected) {\n console.debug('Xmr::start: already connected but not active, or a different URL');\n await this.stop();\n } else {\n console.debug('Xmr::start: not connected yet');\n }\n\n // Set the URL and cmsKey.\n this.url = url;\n this.cmsKey = cmsKey;\n\n console.debug('Xmr::start: connecting to ' + this.url);\n\n try {\n this.socket = new WebSocket(this.url);\n } catch (e) {\n console.debug('Xmr::start: failed connecting to ' + this.url + ', e = ' + e);\n this.emitter.emit('error', 'Failed to connect');\n return;\n }\n\n /**\n * Listener for socket open\n */\n this.socket.addEventListener('open', (event) => {\n console.debug('Xmr::' + event.type);\n\n if (this.socket.readyState !== WebSocket.OPEN) {\n console.info('Xmr::' + event.type + ': not open yet');\n return;\n }\n\n // Create and send an initialisation message.\n this.socket.send(JSON.stringify({\n 'type': 'init',\n 'key': this.cmsKey,\n 'channel': this.channel,\n }));\n\n this.isConnected = true;\n\n this.emitter.emit('connected');\n });\n\n /**\n * Listener for socket close\n */\n this.socket.addEventListener('close', (event) => {\n console.debug('Xmr::' + event.type);\n\n this.isConnected = false;\n\n this.emitter.emit('disconnected');\n });\n\n /**\n * Listener for socket error\n */\n this.socket.addEventListener('error', (event) => {\n console.debug('Xmr::' + event.type);\n\n this.emitter.emit('error', 'error');\n });\n\n /**\n * Listener for socket message\n */\n this.socket.addEventListener('message', (event) => {\n console.debug(event);\n\n this.lastMessageAt = DateTime.now();\n this.emitter.emit('statusChange', this.lastMessageAt.toISO() || '');\n\n // Expect a JSON message or a H\n if (event.data === 'H') {\n console.debug('Xmr::message: Heartbeat...');\n } else {\n // JSON message.\n const message = JSON.parse(event.data);\n\n console.debug('Xmr::message: action is ' + message.action);\n\n // Check the createdDt and TTL against the current date time.\n const expiresAt = DateTime.fromISO(message.createdDt).plus({seconds: parseInt(message.ttl)});\n if (expiresAt < DateTime.now()) {\n console.debug('Xmr::message: message expired at ' + expiresAt.toString());\n } else if (message.action === 'collectNow') {\n this.emitter.emit('collectNow');\n } else if (message.action === 'screenShot') {\n this.emitter.emit('screenShot');\n } else if (message.action === 'licenceCheck') {\n this.emitter.emit('licenceCheck');\n } else if (message.action == 'commandAction' && message.commandCode.startsWith('showStatusWindow')) {\n const split = message.commandCode.split('|');\n this.emitter.emit('showStatusWindow', parseInt(split[1]) || 60);\n } else {\n console.error('Xmr::message: unknown action: ' + message.action);\n }\n }\n });\n }\n\n async stop() {\n console.debug('Xmr::stop');\n if (this.socket) {\n console.debug('Xmr::stop: closing active socket');\n this.socket.close();\n this.isConnected = false;\n }\n }\n\n isActive(): boolean {\n console.debug('Xmr::isActive: lastMessageAt: ' + this.lastMessageAt.toString());\n return this.isConnected && this.lastMessageAt > DateTime.now().minus({minute: 15});\n }\n}\n"],"names":["Xmr","_createClass","channel","_classCallCheck","_defineProperty","this","emitter","emit","event","_len","arguments","length","args","Array","_key","callbacks","events","i","apply","on","cb","_this$events","_this","push","_this$events$event","filter","url","cmsKey","isConnected","isConnectionWanted","lastMessageAt","DateTime","now","minus","year","key","value","callback","_init","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","interval","setInterval","isActive","console","debug","start","stop","_start","_callee2","_this2","_context2","error","abrupt","info","socket","WebSocket","t0","addEventListener","type","readyState","OPEN","send","JSON","stringify","toISO","data","message","parse","action","expiresAt","fromISO","createdDt","plus","seconds","parseInt","ttl","toString","commandCode","startsWith","split","_x","_x2","_stop","_callee3","_context3","close","minute"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"xibo-communication-framework.min.js","sources":["../node_modules/nanoevents/index.js","../../src/modules/xmr/xmr.ts"],"sourcesContent":["export let createNanoEvents = () => ({\n emit(event, ...args) {\n for (\n let callbacks = this.events[event] || [],\n i = 0,\n length = callbacks.length;\n i < length;\n i++\n ) {\n callbacks[i](...args)\n }\n },\n events: {},\n on(event, cb) {\n ;(this.events[event] ||= []).push(cb)\n return () => {\n this.events[event] = this.events[event]?.filter(i => cb !== i)\n }\n }\n})\n","/*\n * Copyright (C) 2025 Xibo Signage Ltd\n *\n * Xibo - Digital Signage - https://xibosignage.com\n *\n * This file is part of Xibo.\n *\n * Xibo is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * any later version.\n *\n * Xibo is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Xibo. If not, see <http://www.gnu.org/licenses/>.\n */\nimport {createNanoEvents, type Emitter} from 'nanoevents';\nimport {DateTime} from 'luxon';\n\nexport interface XmrEvents {\n connected: () => void;\n disconnected: () => void;\n error: (e: string) => void;\n statusChange: (status: string) => void;\n\n collectNow: () => void;\n screenShot: () => void;\n licenceCheck: () => void;\n showStatusWindow: (timeout: number) => void;\n forceUpdateChromeOS: () => void;\n}\n\nexport default class Xmr {\n emitter: Emitter<XmrEvents>;\n\n url: string | null;\n cmsKey: string | null;\n channel: string;\n socket!: WebSocket;\n\n // State\n isConnectionWanted: boolean;\n isConnected: boolean;\n lastMessageAt: DateTime;\n\n interval: NodeJS.Timeout | undefined;\n\n constructor (channel: string) {\n // Emitter\n this.emitter = createNanoEvents<XmrEvents>();\n this.url = null;\n this.cmsKey = null;\n this.channel = channel;\n this.isConnected = false;\n this.isConnectionWanted = false;\n this.lastMessageAt = DateTime.now().minus({year: 1});\n }\n\n on<E extends keyof XmrEvents>(event: E, callback: XmrEvents[E]) {\n return this.emitter.on(event, callback);\n }\n\n async init() {\n this.interval = setInterval(() => {\n if (this.isConnectionWanted && !this.isActive()) {\n console.debug('Xmr::setInterval: should be active');\n\n // Call start again\n this.start(this.url || 'DISABLED', this.cmsKey || 'n/a');\n }\n }, 60000);\n }\n\n async start(url: string, cmsKey: string){\n if (!this.channel || this.channel === 'unknown') {\n console.error('Xmr::start: channel unknown, XMR will be disabled');\n return;\n }\n\n // Disable XMR if we've been told to.\n if (this.url === 'DISABLED') {\n console.info('Xmr::start: XMR disabled');\n this.isConnectionWanted = false;\n if (this.isActive()) {\n stop();\n }\n return;\n }\n\n this.isConnectionWanted = true;\n\n // Are we already connected?\n if (this.isActive() && this.url === url) {\n console.debug('Xmr::start: already connected to this URL');\n this.cmsKey = cmsKey;\n return;\n } else if (this.isConnected) {\n console.debug('Xmr::start: already connected but not active, or a different URL');\n await this.stop();\n } else {\n console.debug('Xmr::start: not connected yet');\n }\n\n // Set the URL and cmsKey.\n this.url = url;\n this.cmsKey = cmsKey;\n\n console.debug('Xmr::start: connecting to ' + this.url);\n\n try {\n this.socket = new WebSocket(this.url);\n } catch (e) {\n console.debug('Xmr::start: failed connecting to ' + this.url + ', e = ' + e);\n this.emitter.emit('error', 'Failed to connect');\n return;\n }\n\n /**\n * Listener for socket open\n */\n this.socket.addEventListener('open', (event) => {\n console.debug('Xmr::' + event.type);\n\n if (this.socket.readyState !== WebSocket.OPEN) {\n console.info('Xmr::' + event.type + ': not open yet');\n return;\n }\n\n // Create and send an initialisation message.\n this.socket.send(JSON.stringify({\n 'type': 'init',\n 'key': this.cmsKey,\n 'channel': this.channel,\n }));\n\n this.isConnected = true;\n\n this.emitter.emit('connected');\n });\n\n /**\n * Listener for socket close\n */\n this.socket.addEventListener('close', (event) => {\n console.debug('Xmr::' + event.type);\n\n this.isConnected = false;\n\n this.emitter.emit('disconnected');\n });\n\n /**\n * Listener for socket error\n */\n this.socket.addEventListener('error', (event) => {\n console.debug('Xmr::' + event.type);\n\n this.emitter.emit('error', 'error');\n });\n\n /**\n * Listener for socket message\n */\n this.socket.addEventListener('message', (event) => {\n console.debug(event);\n\n this.lastMessageAt = DateTime.now();\n this.emitter.emit('statusChange', this.lastMessageAt.toISO() || '');\n\n // Expect a JSON message or a H\n if (event.data === 'H') {\n console.debug('Xmr::message: Heartbeat...');\n } else {\n // JSON message.\n const message = JSON.parse(event.data);\n\n console.debug('Xmr::message: action is ' + message.action);\n\n // Check the createdDt and TTL against the current date time.\n const expiresAt = DateTime.fromISO(message.createdDt).plus({seconds: parseInt(message.ttl)});\n if (expiresAt < DateTime.now()) {\n console.debug('Xmr::message: message expired at ' + expiresAt.toString());\n } else if (message.action === 'collectNow') {\n this.emitter.emit('collectNow');\n } else if (message.action === 'screenShot') {\n this.emitter.emit('screenShot');\n } else if (message.action === 'licenceCheck') {\n this.emitter.emit('licenceCheck');\n } else if (message.action == 'commandAction' && message.commandCode.startsWith('showStatusWindow')) {\n const split = message.commandCode.split('|');\n this.emitter.emit('showStatusWindow', parseInt(split[1]) || 60);\n } else if (message.action == 'commandAction' && message.commandCode.startsWith('forceUpdateChromeOS')) {\n this.emitter.emit('forceUpdateChromeOS');\n } else {\n console.error('Xmr::message: unknown action: ' + message.action);\n }\n }\n });\n }\n\n async stop() {\n console.debug('Xmr::stop');\n if (this.socket) {\n console.debug('Xmr::stop: closing active socket');\n this.socket.close();\n this.isConnected = false;\n }\n }\n\n isActive(): boolean {\n console.debug('Xmr::isActive: lastMessageAt: ' + this.lastMessageAt.toString());\n return this.isConnected && this.lastMessageAt > DateTime.now().minus({minute: 15});\n }\n}\n"],"names":["Xmr","_createClass","channel","_classCallCheck","_defineProperty","this","emitter","emit","event","_len","arguments","length","args","Array","_key","callbacks","events","i","apply","on","cb","_this$events","_this","push","_this$events$event","filter","url","cmsKey","isConnected","isConnectionWanted","lastMessageAt","DateTime","now","minus","year","key","value","callback","_init","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","interval","setInterval","isActive","console","debug","start","a","_start","_callee2","_t","_this2","_context2","p","error","info","stop","socket","WebSocket","v","addEventListener","type","readyState","OPEN","send","JSON","stringify","toISO","data","message","parse","action","expiresAt","fromISO","createdDt","plus","seconds","parseInt","ttl","toString","commandCode","startsWith","split","_x","_x2","_stop","_callee3","_context3","close","minute"],"mappings":"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","x_google_ignoreList":[0]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xibosignage/xibo-communication-framework",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "Xibo Communication Framework",
|
|
5
5
|
"main": "dist/xibo-communication-framework.cjs.js",
|
|
6
6
|
"module": "dist/xibo-communication-framework.esm.js",
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
"type": "module",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
11
|
+
"prepare": "npm run build",
|
|
11
12
|
"build": "rimraf dist && rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript"
|
|
12
13
|
},
|
|
13
14
|
"repository": {
|