All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
4.2.0 (2024-12-05)
- bug fix in quick-mos (7fd531b)
- Disable heartbeat on primary if secondary is active in openMediaHotStandby mode. (f550bd5)
- failover to buddy when main not up to date (8554f60)
- hotStandby - set heartbeats state no matter secondary's state (c2b35be)
- parse incoming data as strings (Big Refactor) (0f0f8d3)
- Quick-MOS: Add support for Sofie Snapshots (ab2d17e)
- rename new test (248a4f8)
- revert renaming to isHotStandby to avoid conflict with MOS-Gateway (562d74b)
- update typings for mosTime, undefined was allowed in types, but not in code. (fb2369a)
- Add tests for openMediaHotStandby (5985b19)
- Support for openMediaHotStandby disable heartbeat on secondary when not used (ab04e49)
4.2.0-alpha.1 (2024-08-27)
4.2.0-alpha.0 (2024-07-05)
- parse incoming data as strings (Big Refactor) (0f0f8d3)
4.1.1 (2024-08-20)
- failover to buddy when main not up to date (8554f60)
- update typings for mosTime, undefined was allowed in types, but not in code. (fb2369a)
4.1.0 (2024-04-02)
- add .snap file for open media test (9bb6825)
- add 'N/A' to supported profiles (c56007a)
- lint fix and Porfile0-non-strict snapsot (dfbc4c1)
- OpenMedia returns an empty object {} as time, will be set as current time instead. (7a2531a)
- optional on xmlSupportedProfiles as OpemMedia has this undefined (b0ed480)
- add access to stric t value un mosSocketClient (c85b837)
- add test for opem media (18362f7)
- new function _getMessageId to manage when no messageId (19f8231)
4.0.0 (2024-02-02)
- Changes to
mosDevice.sendRequestAllMOSObjects()
. MosObjects are now returned to themosDevice.onMOSObjects()
callback.
Migration guide:
// Before:
const mosObjs = await mosDevice.sendRequestAllMOSObjects()
// After:
mosDevice.onMOSObjects((mosObjs: IMOSObject[]) => {
//
})
const ack = await mosDevice.sendRequestAllMOSObjects()
- better handling of non-spec errors. (4b1f97c)
- change how data fields is parsed, better handling of missing data. (bf4a084)
- connectionStatus now returns textual status, not just empty strings, addressing #93 (23d9b16)
- revert mosTime support of empty string. (cfc036f)
- roStoryMove: off-spec support of single storyID tag (58ff304)
- roStoryMoveMultiple: handle edge case of single storyID (4684116)
- support for receiving Profile 1 and messages. (786710a)
3.0.7 (2023-12-27)
- Add support for receiving roStoryX, roStoryY messages. (a4c110e)
3.0.5 (2023-12-18)
- better handling of incoming data chunks. Deals with multiple and tags. (59cacb2)
- better handling of single xml elements (f96ea1a)
- case roStorySend one storyItem (77dfff5)
- Handle empty MOS time string (85fbc88)
- handle replies to roReq (c100b4d)
3.0.4 (2023-06-09)
3.0.3 (2023-06-09)
- handover logic should leave heartbearts (d8ccca0)
3.0.2 (2023-03-27)
- minor improvement to RoAck (7cb0bb6)
3.0.0 (2023-02-03)
Note: Version bump only for package mos-connection-monorepo
3.0.0-alpha.3 (2023-01-27)
Note: Version bump only for package mos-connection-monorepo
3.0.0-alpha.2 (2023-01-27)
- add stringifyMosObject, an utility-function used to convert objects containing IMOSString128 etc to strings (f3806ab)
3.0.0-alpha.1 (2023-01-27)
- add stringifyMosObject, an utility-function used to convert objects containing IMOSString128 etc to strings (f3806ab)
v3.0.0-alpha.0 (2022-12-09)
- mos-connection is now distributed as 3 separate npm-packages.
- @mos-connection/model contains types, enums and a few data-handling functions. This is useful for consuming apps that handles the MOS-data indirectly.
- @mos-connection/helper contains all of the /model but also includes functions fox xml-conversion. This is useful for consuming apps that creates/parses MOS-data, such as web-client-plugin handlers.
- @mos-connection/connector contains all of the above, as well as the MOS connector. This is equivalent to the previous
mos-connection
library.
Notable code changes:
this_is_the_new_code // old code
import * from '@mos-connection/connector' // previously: import * from 'mos-connection'
import { getDataHandlers } from '@mos-connection/model'
const mosTypes = getMosTypes(true)
// Removed classes MosString128, MosTime & MosDuration
// These are replaces with the MosTypes methods described below as well as the types:
type IMOSString128 // previously: MosString128
type IMOSTime // previously: MosTime
type IMOSDuration // previously: MosDuration
// Create mos-types:
const mosString128 = mosTypes.mosString128.create('abc') // previously: new MosString128('abc')
const mosDuration = mosTypes.mosDuration.create(someDuration) // previously: new MosTime(someDuration)
const mosTime = mosTypes.mosTime.create(someTime) // previously: const new MosTime(someTime)
// Parse mos-types data:
mosTypes.mosString128.stringify(mosString128) // previously: mosString128.toString() or hackish: mosString128['_str']
mosTypes.mosTime.valueOf(mosTime) // previously: mosTime.getTime()
// Check if a data-point is of a certain MosType:
mosTypes.mosTime.is(data) // previously: data instanceof MosTime
addTextElement(xml, elementName, content, attributes, strict) // added the "strict" parameter
import { addTextElement } from '@mos-connection/model'
// XML generation:
addTextElement(xml, elementName, content, attributes, strict) // added the "strict" parameter
- better cleanup on dispose (a241d78)
- move helper functions into a separate package: $mos-connection/helper (ecb51ec)
- move types and enums to @mos-connection/model (2266488)
All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
2.0.1 (2022-08-01)
- gracefully handle failure to parse DOM in IMOSListMachInfo (72aa53a)
2.0.0 (2022-06-08)
- Drop support for Node 12
- Drop support for Node 12 (abd326d)
- add heartbeatInterval property (79b5523)
- more helpful messages for "Unknown response" errors (4a91fa5)
- bug in roElementAction command for REPLACE and SWAP items (42034d9)
- bug in roListAll message (b4b79c8)
- typedoc (d71c354)
- update unit tests & fix prsing-issue in requestMachineInfo response (2b73347)
1.0.7 (2022-05-13)
1.0.6 (2022-03-29)
- usc2 is not a valid encoding. (e25d618)
1.0.5 (2021-12-17)
1.0.5-1 (2021-11-18)
- bug fix (8f420d9)
- improve error message for if function isn't supported (5218fcb)
- supress heartbeat debug messages. (8144671)
1.0.5-0 (2021-11-18)
- remove debugTrace of heartbeats, to reduce logging amount [release] (c82e09b)
- remove debugTrace to remove duplicate logs (since rawMessage is also emitted there) (b2f1a27)
1.0.4 (2021-09-21)
- remove debugTrace of heartbeats, to reduce logging amount [release] (c82e09b)
- remove debugTrace to remove duplicate logs (since rawMessage is also emitted there) (b2f1a27)
1.0.3 (2021-08-16)
- add check for that the profile is set when registering a method (strict mode only) (800f63c)
- bad merge [publish] (8f29ca9)
- bug in index (45af280)
- minor typings issues (68f4b20)
- rare issue on closed connection / timeout (457992d)
- roList encoding missing most properties (a2d7650)
- temporary fix for a long objSlug we've encountered (0e0b694)
1.0.2 (2021-04-21)
- add missing properties in xml-conversion of mosItem [release] (4c20a6e)
- export MosModel methods (8794b9d)
- move interface into api.ts [release] (0317ea2)
1.0.1 (2021-04-21)
- stricter handling of the debug flag, to fix minor bug; The debug flag wasn't properly passed into MosSocketServer on init. [release] (47abd73)
1.0.0 (2021-04-16)
- add many of the ncs-triggerable functions (wip) (11636a2)
- add sendReadyToAir message (8ad31f3)
- added support for roReqAll command (2f6d6da)
- allow using non-standard ports (6a12942)
- continued work on NCS functionality (wip) (b462a95)
- strict mode, which when set will trace to console if not all callbacks are set up for a certain profile (3f1d132)
- when a mos-client connects, set up a "primary" connection back to it, so that data can be pushed back (0ab244e)
- add setTime property (9eef2e5)
- bug in _checkProfileValidness (0a7ecbf)
- bug in currentConnection (2d3a69b)
- correct return type for mosObjCreate (93441d0)
- encoding ROStory missing roId (0304e92)
- ensure all message constructors has a defined port (0196407)
- issue where socket could be tried written to after being disposed (fe121da)
- made listMachInfo.supportedProfiles.deviceTypes stricter, according to spec (47ada35)
- minor bug in return values (52157c2)
- refactor mosDevice.routeData into async/await [publish] (1e7cc3c)
- refactor: moved the xml-parsing functions into separate files under each profile (e97e196)
- rename setXXXStatus to sendXXXStatus (5dc63c6)
- reversed order of parameters in addTextElement. This reduces complexity in the code, and fixes a bug in retuned data from reqMachInfo. (4f35b2f)
- update api.ts: rename/clarify/harminize method names & add documentation. (7a8d6a6)
0.9.0 (2020-09-29)
- drop support for node 8
0.8.10 (2020-03-24)
- start and duration can be 0 (b5f47a5)
0.8.9 (2020-01-24)
- A private static does not set a return value when compiled, which gives errors downstream. (44d8b65)
0.8.8 (2020-01-24)
- corrected name (it had a space in it) (9a8dbe0)
- update xmlBuilder and typescript dependency (cb5e985)
- wrap all xml.ele() into addTextElement() in order to make sure that what's added is a string (through .toString() ). (e56a75e)
0.8.7 (2020-01-19)
- resolve an issue with a duplicated type MosDuration (60de1cc)
0.8.6 (2020-01-08)
- add dontUseQueryPort option, to suppress some logging output (41ca963)
- update ci to run for node 8,10,12 (858ee35)
0.8.5 (2019-10-25)
0.8.4 (2019-08-20)
- types/xmlbuilder must be a dependency for the library to work properly (04f9181)
0.8.3 (2019-08-01)
- downgrade gh-pages dep, due to issues with it. (1d852a9)
- update dependencies, after security audit (13b8e41)
0.8.2 (2019-06-07)
0.8.1 (2019-04-11)
- don't send heartbeat on query port (fd1219f)
0.6.6 (2019-01-29)
- techDescription can be a string (Merge branch 'develop') (d1f057f)
0.6.5 (2018-12-11)
0.6.4 (2018-11-16)
0.6.3 (2018-11-06)
0.6.2 (2018-10-11)
- added _lingeringMessage, to allow heartbeat replies to come through, even after a handOver (e515560)
0.6.1 (2018-10-11)
0.6.0 (2018-10-10)
- set debug flag dynamically (51c3718)
0.5.6 (2018-09-25)
- case sensitive import (bc636b6)
0.5.5 (2018-09-04)
0.5.4 (2018-08-28)
- missing properties ObjDur and ObjTB (1f6f564)
0.5.3 (2018-08-21)
- proper bubbling of error & warning events (5d14e55)
0.5.2 (2018-08-20)
- parse last chunk of xml data (0e54f03)
0.5.1 (2018-08-17)
- mosTime: implemented change from default local to UTC (b93b8e5)
- updated mosTime tests: default timezone is UTC, not local (be158a4)
0.5.0 (2018-08-17)
- 0 reconnects implies infinite reconnects (7749dc3)
- extra guards in switching logic (a66584e)
- reconnect timer reset (970da0d)
- roAck may contain error regarding buddy server (4ef32ff)
- timeout messages even before being sent (39ba705)
- failover prototype (2f979e6)
- failover upon NACK: Main Available (5bb64e4)
- option to enable offspec failover behaviour (86f7b0d)
0.4.0 (2018-08-03)
- changes in parser when data structures has changed (4491b8f)
- metadata tag might be empty (897df5c)
- mosString, flat attributes and removed usage of xml2json (92bbe41)
- single child xml data (b3dc170)
- tests (cdea898)
- update xml2Body to retain order (681fd68)
- xml2js: changed internal structure to $name & $type, instead of name & type, to avoid collisions (1706185)
- added dependency on xml-js (f2ac082)
- keep order of tags inside some fields (95fe1f8)
- tweaked the parsing, got the test to pass (ec9c3bd)
0.3.17 (2018-06-15)
0.3.16 (2018-06-13)
0.3.15 (2018-06-12)
0.3.14 (2018-06-11)
0.3.13 (2018-06-11)
- mosDuration: fixes bug with mosDurations displaying wrong values once consumed (c558777)
0.3.12 (2018-06-05)
- rename in readme (69dd953)
0.3.11 (2018-06-05)
0.3.10 (2018-06-01)
0.3.9 (2018-06-01)
0.3.8 (2018-05-31)
0.3.7 (2018-05-31)
- correction to license (3667644)
0.3.6 (2018-05-31)
- mosDuration: fixes bug with mosDurations displaying wrong values once consumed (8a8af4e)
0.3.5 (2018-05-30)
- add more changes to the list (042dafb)
0.3.4 (2018-05-30)
- add more to gitignore (6ac3591)
- remove a bunch of junk from npm releases, also add important files? (90340c1)
- remove docs from non-gh-pages branchs (fb7fdfc)
- remove travis.yml (6f31ff3)
0.3.3 (2018-05-30)
- remove persist to workspace on last step (6c075a9)
0.3.2 (2018-05-30)
- yarn timeout (162a7dd)
0.3.1 (2018-05-30)
- missed rename (9f550a4)
- rename steps, workflows, and jobs (5db0434)
- typo in send coverage command (92bb8a2)
- yet another typo in config (25e4df8)
- yet another typoI feel bad. This time I am 87% certain it will work (004a0ff)
0.3.0 (2018-05-30)
- add important change step (1f7bb12)
- clean out manual release commentsadd comment about yarn publish possibly failing for some users (d2635f4)
- Remove incorrect guide in changes (7b4a0a2)
- Remove manual release workflow (49f110b)
- run docs generation during CI test (18729c1)
- license check (c47df39)
0.2.0 (2018-05-26)
- Add build status badge and documentation (f97c8aa)
- add suggested documentation on how to force a release to go out to NPM (a85bcfb)
- remove duplicate release code? (0b385f7)
- Clean: Removes unsused connectionManager.ts (57cafd1)
- ConnectionCinfig: removed ports, as they are defined in the MOS protocol (6e08047)
- Interface: Makes Scope optional in MosExternalMetaData (47fe63f)
- MosConnection: Confform config object and socket client (fb584e6)
- wrong key (e8f94fd)
- MosConnection: typo (fa977d2)
- activate codecoverage (1adcfe3)
- Add editorconfig for easier development (2e839fc)
- add editorconfig for yaml files (9ede55d)
- Add github.com to known_hosts (ea92e8a)
- added test for index, for full code coverage status (6e3136d)
- always convert MosStrings to strings (1ff977a)
- Block ds_stores from mac (0a92fa9)
- change from build to dist (5408756)
- check for elementStat.element (fba4819)
- clean up specs (183fabc)
- Corrects wrongly named specs, and fixes compile error (9d8ba44)
- create .ssh-dir if not exists (7cd219a)
- explicitly set coverage on cov command (a82e12f)
- fixed tests (558872b)
- ignore test files in compile output (53be8db)
- spec: Fixes iconv-related decoding bug in Jest context (e8c4c65)
- Initial src restructure (a7fb3f2)
- manual release workflow (6504bfd)
- missing chars in testdata + missing MosString on roCreate (6f007d8)
- mosString128 from multiple types (999bf6f)
- move tests to correct class (73e46ff)
- onDelete test. onDelete works now (5fc929c)
- re-add known_hosts statement (f5a6682)
- re-added wrongly deleted file. (86e38cc)
- relative path fix (45b783c)
- remove a couple of ts-ignore causing doc-gen issues (ed3f217)
- remove incorrect job dependency (b8c81ba)
- Remove node-6 tests (dd58459)
- rename xml2ID to xml2IDs (c970466)
- Resolve script problems (e79677a)
- Resolve tslint errors (b52e5ba)
- Restructure tsconfig and tests (924f414)
- set correct node version (a1eaaac)
- Set coverage requirement to 100% (f9d4bb1)
- set push-enabled ssh key, remove known_host statement (c0867bb)
- set skip ci message on chore release (33ff2b2)
- Sets Profile 0 as mandatory, todo: add profile dependency resolution (2ce96e3)
- split xml2story & bugfix (3640841)
- test mockClear (183f7f7)
- typo (f001e32)
- updated yarn.lock (bd97cd9)
- Use the same mosID as in testdata (c7a6fb8)
- MosMessage: Fixes ncsID and mosTime time format (894250a)
- mosString128: Changed "set" to "string" member. Refactored validation (8ea405c)
- MosTime: Fixes bug with time-offset parsing (e453d18)
- spec: 100% MORE fixed bug than previously (cef7811)
- spec: Fixes mosTime spec with local timezone (dac5a28)
- ConnectionConfig: Adds profile validation for compliancy in profile combinations (7bf7107)
- MosDevice onConnectionChange + getConnectionStatus (3ddb270)
- heatBeat: Implemented heartbeat interface (f280217)
- add ci and validate jobs (6b4bb02)
- add manual NPM deploy step (1751712)
- Add vscode laucnh config for jest (6a2f55f)
- added basic MosConnection test (97e2c4e)
- added exclude mock-folder rule (3fa4834)
- added export (a0694f9)
- added interface for profile0 (d585fbf)
- added mock for net.Socket (5510e34)
- added socket server mock and prepared for testing (5e7c880)
- added test for messageId (143dd13)
- basic circleci integration (f4c7da4)
- dispose of NCSServerConnection + store callbacks on MosDevice (3f9fb3b)
- getRunningOrder (d4ebee6)
- Implement mosAck (3750e7e)
- implemented roRequestRunningorder (7fb1945)
- insert item (f52e55d)
- minor changes to data api, after closer look at the protocol (91c0358)
- new way of handling mosDevices (4fabf15)
- onItemStatus (f9039b2)
- onReplaceRunningOrder (534db1d)
- onROMoveItems (0060204)
- onROMoveStories (b0bae0f)
- onROSwapItems (3cb3818)
- onROSwapStories (b20dcc1)
- onRunningOrderStatus (67a8bf8)
- onStoryStatus (20613aa)
- parameter for messageID in MosMessage.prepare() (c0a51c4)
- replace stories & items (f40f4d3)
- roCreate (8b8c477)
- roDelete (8246bcb)
- roElementAction DELETE (fcb0ef3)
- roMetadataReplace + metadata in testdata (d58dad4)
- roStorySend (4adfd4f)
- Send heartbeats (1889dd7)
- Started on support for multiple mosDevices (46eefbf)
- store mosdevice + read chunks + parse xml (1bee6c1)
- MosMessage: Add Mos message structure and XML output (3b213f5)
- stub for parser, WIP (8b3497d)
- Jest: Adds spesific integratinTests that's excluded in normal unit testing (824a02b)
- MosConnection: Added buddy sockets (6330775)
- MosConnection: Adds timeout logic for hearbeat triggering (4d97f93)
- MosConnection: Implements actualt HeartBeat messages in heartbeat procedure (2eae531)
- MosConnection: Refactored connection organisation under Server/ServerPair (todo) structure. Lifetime management with registry handling and listeners. (7e2c5df)
- Update project structure (1d88e62)
- MosConnection: Refactors MosConnection and re-implements profile support (8d4c69a)
- mosSocketClient: rudimentary initial implementation of mosSocketClient (21ca73c)
- mosSocketServer: rudimentary initial implementation of mosSocketServer (af44c55)
- MosSocketServer: Adds listener and dispose to socketserver (7687eb6)
- MosTime: Adds support for Date-centric string formats and local time offsets. (f771bbf)
- Very basic test-setup (9bfa3b2)