Skip to content

Latest commit

 

History

History
executable file
·
872 lines (520 loc) · 49.5 KB

CHANGELOG.md

File metadata and controls

executable file
·
872 lines (520 loc) · 49.5 KB

Change Log

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 Fixes

  • 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)

Features

  • 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)

Bug Fixes

  • parse incoming data as strings (Big Refactor) (0f0f8d3)

4.1.1 (2024-08-20)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Features

  • 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)

⚠ BREAKING CHANGES

  • Changes to mosDevice.sendRequestAllMOSObjects(). MosObjects are now returned to the mosDevice.onMOSObjects() callback.

Migration guide:

// Before:
const mosObjs = await mosDevice.sendRequestAllMOSObjects()

// After:
mosDevice.onMOSObjects((mosObjs: IMOSObject[]) => {
  //
})
const ack = await mosDevice.sendRequestAllMOSObjects()

Bug Fixes

  • 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)

Features

  • support for receiving Profile 1 and messages. (786710a)

3.0.7 (2023-12-27)

Bug Fixes

  • Add support for receiving roStoryX, roStoryY messages. (a4c110e)

3.0.5 (2023-12-18)

Bug Fixes

  • 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)

Bug Fixes

  • handover logic should leave heartbearts (d8ccca0)
  • minor improvement to RoAck (7cb0bb6)

3.0.3 (2023-06-09)

Bug Fixes

  • handover logic should leave heartbearts (d8ccca0)

3.0.2 (2023-03-27)

Bug Fixes

  • 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)

Bug Fixes

  • add stringifyMosObject, an utility-function used to convert objects containing IMOSString128 etc to strings (f3806ab)

3.0.0-alpha.1 (2023-01-27)

Bug Fixes

  • add stringifyMosObject, an utility-function used to convert objects containing IMOSString128 etc to strings (f3806ab)

v3.0.0-alpha.0 (2022-12-09)

BREAKING CHANGES

  • 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

Bug Fixes

  • better cleanup on dispose (a241d78)

Features

  • move helper functions into a separate package: $mos-connection/helper (ecb51ec)
  • move types and enums to @mos-connection/model (2266488)

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

2.0.1 (2022-08-01)

Bug Fixes

  • gracefully handle failure to parse DOM in IMOSListMachInfo (72aa53a)

2.0.0 (2022-06-08)

⚠ BREAKING CHANGES

  • Drop support for Node 12

Features

  • Drop support for Node 12 (abd326d)

Bug Fixes

  • 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)

Bug Fixes

  • improve command timeouts (5304209)
  • usc2 is not a valid encoding. (e25d618)

1.0.6 (2022-03-29)

Bug Fixes

  • usc2 is not a valid encoding. (e25d618)

1.0.5 (2021-12-17)

1.0.5-1 (2021-11-18)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Features

  • 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)

Bug Fixes

  • 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)

⚠ BREAKING CHANGES

  • drop support for node 8

Features

0.8.10 (2020-03-24)

Features

  • ci: optionally skip the audit [skip ci] (df946f2)
  • add prerelease flow [publish] (1acec89)

Bug Fixes

  • start and duration can be 0 (b5f47a5)

0.8.9 (2020-01-24)

Bug Fixes

  • A private static does not set a return value when compiled, which gives errors downstream. (44d8b65)

0.8.8 (2020-01-24)

Bug Fixes

  • 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)

Bug Fixes

  • resolve an issue with a duplicated type MosDuration (60de1cc)

0.8.6 (2020-01-08)

Features

  • 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)

Bug Fixes

  • types/xmlbuilder must be a dependency for the library to work properly (04f9181)

0.8.3 (2019-08-01)

Bug Fixes

  • 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)

Bug Fixes

  • don't send heartbeat on query port (fd1219f)

0.6.6 (2019-01-29)

Bug Fixes

  • techDescription can be a string (Merge branch 'develop') (d1f057f)

0.6.5 (2018-12-11)

Bug Fixes

0.6.4 (2018-11-16)

Bug Fixes

  • new MosString from another MosString (f694623)
  • refactor MosString128 & add tests (0839e10)

0.6.3 (2018-11-06)

Bug Fixes

  • method called with wrong context (4768757)
  • proper handling of empty string (22d8da6)

0.6.2 (2018-10-11)

Bug Fixes

  • 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)

Features

  • set debug flag dynamically (51c3718)

0.5.6 (2018-09-25)

Bug Fixes

0.5.5 (2018-09-04)

0.5.4 (2018-08-28)

Bug Fixes

  • missing properties ObjDur and ObjTB (1f6f564)

0.5.3 (2018-08-21)

Bug Fixes

  • proper bubbling of error & warning events (5d14e55)

0.5.2 (2018-08-20)

Bug Fixes

  • parse last chunk of xml data (0e54f03)

0.5.1 (2018-08-17)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Features

  • failover prototype (2f979e6)
  • failover upon NACK: Main Available (5bb64e4)
  • option to enable offspec failover behaviour (86f7b0d)

0.4.0 (2018-08-03)

Bug Fixes

  • 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)

Features

  • 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)

Bug Fixes

  • mosDuration: fixes bug with mosDurations displaying wrong values once consumed (c558777)

0.3.12 (2018-06-05)

Bug Fixes

0.3.11 (2018-06-05)

Bug Fixes

  • improve changes.md (3dc5eaf)
  • use generic project name in config. Add more steps to do (773c469)

0.3.10 (2018-06-01)

0.3.9 (2018-06-01)

0.3.8 (2018-05-31)

Bug Fixes

  • remove dist from git repo (0607d24)
  • update documentation on scripts (261ae04)

0.3.7 (2018-05-31)

Bug Fixes

0.3.6 (2018-05-31)

Bug Fixes

  • mosDuration: fixes bug with mosDurations displaying wrong values once consumed (8a8af4e)

0.3.5 (2018-05-30)

Bug Fixes

  • add more changes to the list (042dafb)

0.3.4 (2018-05-30)

Bug Fixes

  • 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)

Bug Fixes

  • remove persist to workspace on last step (6c075a9)

0.3.2 (2018-05-30)

Bug Fixes

0.3.1 (2018-05-30)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Features

0.2.0 (2018-05-26)

Bug Fixes

  • 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)

Features

  • adding auto-generated docs (934be79)
  • Renaming to tv-automation-mos-connection (e885ea5)

0.1.0 (2018-05-26)

Bug Fixes

  • 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)

Features

  • 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)