Skip to content

Latest commit

 

History

History
695 lines (378 loc) · 34.8 KB

CHANGELOG.md

File metadata and controls

695 lines (378 loc) · 34.8 KB

Change Log

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

1.0.0 (2018-07-11)

Bug Fixes

  • remove undocumented and non-functional panelClick event (1c20d58)
  • remove undocumented dialog-confirm and dialog-dismiss attribute click handlers (cab06b6)
  • assets: fix "can't set headers..." error (#411) (518cf21)
  • dashboard: remove useless and busted-looking "info" dialog from panels (22499bd)
  • login: use the New Twitch API (#413) (6696231)
  • mounts: put mount routes behind an auth check (c99fa85)
  • sounds: remove undocumented customCues system (efe877e)

Features

  • api: add support for intra-context messaging (#410) (3a3acf7)
  • api: support multiple listenFor handlers (#403) (f19c79b), closes #298
  • bundle-manager: blacklisted bundle directory names (#357) (68e7add)

BREAKING CHANGES

  • dashboard: The undocumented [dialog-confirm] and [dialog-dismiss] attribute click handlers have been removed.
  • dashboard: The undocumented (and broken) panelClick event has been removed.
  • api: sendMessage can now trigger listenFor handlers in the same context (extension, webpage, etc).
  • login: The format of Twitch auth scopes has changed. Please see https://dev.twitch.tv/docs/authentication/#scopes for documentation on this new format.
  • login: Twitch auth now uses the "New Twitch API", instead of the deprecated "v5" API.
  • api: A given context (server, client) can now declare multiple listenFor handlers for a given message. Handlers are called in the order they were registered.

However, a server-side listenFor handler must be careful to only call an acknowledgement once. Attempting to call an acknowledgement more than once will throw an error.

Your server-side code can check if an acknowledgement has already been called/handled by checking its .handled property.

Example:

nodecg.listenFor('example', (data, ack) => {
	if (ack && !ack.handled) {
		ack();
	}
});
  • sounds: The undocumented customCues system has been removed.

0.9.12 (2018-07-05)

Bug Fixes

  • bundles: avoid throwing exception on Unicode BOM (#401) (84a4555)
  • package: use npm audit to fix a lot of vulnerability warnings (1b9dc96)

Features

  • api: add NodeCG.waitForReplicants method (b8d3ed1)
  • auth: add basic local authentication (#390) (54bbcf6)

0.9.11 (2018-05-03)

Bug Fixes

  • dashboard: always send 'dialog-dismissed' when clicking outside the dialog (#385) (da30fe1)
  • dashboard: support the nodecg-dialog attribute within shadow roots (#384) (fc62adf)
  • logger: improve formatting of errors reported to Sentry via the .error method (cb6426e)
  • package: fix Steam auth not working (59627a9)
  • package: update make-fetch-happen to version 4.0.1 (#389) (7a44ca1), closes #382
  • server: prevent 'can't set headers after they are sent' error spam (#387) (58357bf)

0.9.10 (2018-03-08)

Bug Fixes

  • package: synchronize package-lock.json (82a6e0b)
  • package: update SoundJS to v1.0.0 (ba26fc8), closes #371
  • replicants: bind methods on objects when returning them via the proxy (1987ce4)

Features

  • bundles: avoid crash when a bundle becomes invalid after a change (#374) (4d42335)

0.9.9 (2018-01-18)

Bug Fixes

  • extensions: improve logging when an extension fails to mount (e7f2a90)
  • login: Redirect to /login after destroying session (#355) (30aa4ba)
  • package: update fs-extra to version 5.0.0 (#352) (629cc45)
  • replicator: don't crash when a an error occurs while updating the persisted value of a replicant (54baa0e)
  • replicator: use mkdirp when ensuring that the db/replicants folder exists (7b952f4)

Features

  • add mounting feature (07210b0)
  • bundles: support loading assets from node_modules (#358) (74915d7)
  • config: always create cfg dir if it does not exist (49a9255)
  • package: add "bin" prop to package.json (0c8d0b6)
  • package: add nsp compliance (1b0da9b)
  • add support for zeit pkg builds (#362) (acb168c)

0.9.8 (2017-10-19)

Bug Fixes

  • bundle-manager: don't attempt watch *.lock files for changes (269f3d0)
  • package: update JSDoc (a1a81c5)
  • package: update nyc (13256a8)
  • replicants: support schemas with internal $refs (ee1c394)

0.9.7 (2017-09-12)

Bug Fixes

  • api: detect and throw when an object is assigned to multiple Replicants (2fbaee3)
  • dashboard: remove extra margins that could appear in bundle dialogs (7bb2f9f)

0.9.6 (2017-09-07)

Bug Fixes

  • remove debug print (22e957b)
  • sentry: fix git information not being updated during runtime (1d34d4b)

0.9.5 (2017-09-07)

Bug Fixes

  • dashboard: fix Sign Out button being visible when login security is disabled (aa12c54)

Features

  • sentry: include git information about all loaded bundles when reporting errors to sentry (431274b)

0.9.4 (2017-08-31)

Bug Fixes

  • config: reduce the number of cases where a bundle's config is rejected when it shouldn't be (e62de24)
  • replicants: improve parsing of schema $refs (6364396)

0.9.3 (2017-08-29)

Bug Fixes

  • config: properly load baseURL param (8c3d76b)

0.9.2 (2017-08-28)

Bug Fixes

  • package: make fs.extra a production dependency, instead of a devDependency (5ac2c88)

0.9.1 (2017-08-28)

Bug Fixes

  • bundle-manager: fix case where changes to a bundle's manifest could get ignored (882f406)
  • bundle-manager: remove debug print (91546e2)
  • replicants: improve how revision mismatch errors are logged to console on the client (e99dcbc)
  • package: fix version number in package.json (this prevented most bundles from loading - whoops!)

0.9.0 (2017-08-27)

Bug Fixes

  • api: print more useful error message when a replicant fails schema validation due to having additional properties (037709a)
  • assets: improve appearance of dialogs. refactor back and frontend code to allow for potential future features. (7025d51), closes #309
  • config: default host to 0.0.0.0 instead of localhost (7a3276d)
  • config: default baseURL to localhost when host is 0.0.0.0 (3a4496b)
  • dashboard: add raised attribute to KILL button on single-instance graphics (1e116db)
  • dashboard: close drawer when viewport increases to a wide layout (20bafef), closes #282
  • replicants: fixed a case where re-assigning a nested object could result in a broken replicant (9e72b86)
  • replicants: harden logging of validation errors (250b3fe)
  • replicants: prevent .once('change') listeners from potentially being called twice (78a11c8), closes #296
  • replicants: properly load schemas when schemaPath is absolute (4201906)
  • replicants: set status to "declared" before emitting the post-declare change event (a62d25d)
  • soundCues: fix case where valid soundCues could fail schema validation (f0c17ba)

Code Refactoring

  • tests: rewrote tests to use ava instead of mocha

Features

  • api: add nodecg.unlisten method (ea45b3f)
  • api: expose Logger class (5882dc4)
  • api: if an acknowledgement is called with an error as the first callback, serialize that error (#300) (1c05f81)
  • api: make client-side sendMessage return a Promise (#301) (fe93c73), closes #297
  • config: add support for whitelisted loading of bundles (31533a8)
  • config: added --bundlesEnabled and --bundlesDisabled command-line arguments to specify a comma-separated list of bundle names to either whitelist or blacklist for loading on startup. Very useful when combined with things such as Run Configurations in your IDE of choosing.
  • dashboard: add "open in standalone window" button to panel headers (ba077c0)
  • dashboard: add default body background color style to panels (3433529)
  • dashboard: add support for "fullbleed" workspaces, which have one single panel that takes up the entire dashboard
  • dashboard: add support for multiple tabs of panels, called "workspaces". See the Manifest tutorial (specifically the nodecg.dashboardPanels section) for more info.
  • dashboard: compatability with browsers other than Chrome has been greatly improved
  • dashboard: re-design dashboard with tabbed navigation (8214b43)
  • dashboard: show a much shorter and easier to read URL for each graphic on the Graphics page (5b91af1)
  • replicants: add .validationErrors property (59f3c82)
  • replicants: log a warning when attempting to access .value before the Replicant has finished declaring (#274) (293acf5), closes #265
  • replicants: support external $refs in schemas (3c34450)
  • add convenience 'shared' directory (#295) (63a1119)
  • add Sentry integration for error tracking (#305) (92cd540)
  • adopt new routing style (/bundles/:bundleName/*) (1663670)
  • log unhandled promise rejections if Sentry is not enabled (59dc75e)

Performance Improvements

BREAKING CHANGES

For detailed instructions on how to migrate your v0.8 bundles to v0.9, check out the tutorial on NodeCG.com

  • NodeCG no longer automatically installs the npm and bower dependencies of installed bundles. Users must do this manually.
  • replicants: Replicants now set their state to declared before they emit their post-declare change event. This is unlikely to break any existing code, but it is technically a breaking change.
  • The Rollbar integration for error tracking has been removed, and has been replaced with a Sentry integration.
  • api: If the first argument you provide to a message acknowledgement is an Error, it will be serialized instead of being sent as an empty object.
  • dashboard: Removed most of the helper styles and classes, such as nodecg-configure, which were being injected into panels. Most of it would not work in Polymer 2 without extra effort.
  • Old /panel and /graphics routes no longer work. You must update all routes to the new /bundles/:bundleName/* format.

0.8.9 (2017-03-08)

Bug Fixes

  • login: fix case where an invalid socketToken cookie would prevent a user from ever being able to log in (7392249)

0.8.8 (2017-03-03)

Bug Fixes

  • auth: fix case where token auth via cookies would fail when host was set to 0.0.0.0 (#255) (cb89d25)
  • sounds: persist the soundCues replicant to disk (#258) (775c158)

Features

  • add NODECG_ROOT environment variable (#257) (ec0fcb1)

0.8.7 (2017-03-02)

Bug Fixes

  • api: throw an error instead of just logging a warning when adding a duplicate listenFor handler (187b601)
  • dashboard: fix panels all being moved to top left corner when window is resized while a non-Dashboard tab is selected (89812f4), closes #217
  • ensure NodeCG binds to the host and port provided in cfg/nodecg.json (thanks @vibhavp!) (fa5b57e)

Features

  • sound: add support for user-defined sound cues (#254) (05878eb)
    • This is an advanced and currently undocumented feature. It requires much additional code within a bundle to be useful. We do not recommend trying to use it at this time.

0.8.6 (2017-01-29)

Bug Fixes

  • api: call encodeURIComponent on "namespace" and "name" when autogenerating schemaPath (0fd2a19)
  • assets: avoid thrashing asset replicants on startup (1250dd4)
  • dashboard: fix dialog-dismiss and dialog-confirm buttons sometimes not working (5f06166)
  • replicant: fix potential case where a proxied Array with custom methods wouldn't behave as expected (d772f05)
  • replicants: fix case where Replicants with a value of undefined would not emit change events after declaration (a218dbe), closes #228
  • fix favicon not being served (3dcdc83)
  • rollbar: add reporting of unhandled promise rejections (c1a33b4)
  • rollbar: fix browser-side Rollbar not receiving the correct access token from the config (2b810fd)
  • single_instance: fix "Kill" buttons always being visible, even if no instance was open (6f4bc77)

Features

  • add ability to disable bundles via config (#248) (58480bd)
  • auth: secure /graphics routes (#249) (975c17f)
  • config: add "exitOnUncaught" config param (a77bccf)
  • rollbar: automatically report errors logged with nodecg.log.error to Rollbar, if Rollbar is enabled (7b19eaa)

0.8.5 (2016-10-12)

Bug Fixes

  • dashboard: fix "copy url" button sometimes wrapping to two lines and looking bad (6047a52)
  • dashboard: hide "Settings" menu button if there are no settings to manage in the current configuration (4f304eb)
  • replicants: fix case where an unproxied object could be leaked via the change event after reconnecting to Socket.IO (9e39d45)

Features

  • replicants: add result property to operations (5f6e86f)
  • replicants: provide better error messages when a replicant fails schema validation (daddf64)
  • sounds: add optional channels param (f33a165)

0.8.4 (2016-09-29)

Bug Fixes

  • dashboard: replace usage of cn-jsurl bower lib with new URLSearchParams API (ea39f50)
  • docker: remove VOLUME statement for db folder (2b8ecfe)
  • server: catch and re-throw otherwise uncaught socket.io errors (1fc9a18)
  • server: fix debug message logging string as number (eac7f63)
  • server: improve rollbar catching of socket.io errors (e8a3443)
  • sounds: fix error when soundFiles is null during option generation for Mixer panel (19226b2)
  • sounds: fixed sounds category not showing in assets when there are no other asset categories defined. (#220) (b744fda), closes #208

Features

  • replicants: add optional validation of replicant values via schemas (26715fc)

0.8.3 (2016-06-23)

Bug Fixes

  • docker: use abs path for db volume (8480a58)
  • replicants: fixed unexpected behavior after modifying the index of an object inside an array replicant (2127dc4)

Features

  • login: add forceHttpsReturn config param (d952c95)

0.8.2 (2016-06-11)

Bug Fixes

  • pages now autodetect what URL/port to open a socket to (7eb1a3e), closes #125

0.8.1 (2016-06-10)

Bug Fixes

  • dashboard: update nodecg-replicants (c537e36)
  • replicants: ensure that already proxied objects aren't re-proxied (93f5539)
  • replicants: fix case where an unproxied object could sometimes be returned (b1dc39b)
  • replicants: fix client-side assignment being processed twice (e52b7cb)
  • replicants: fix detection of changes in late-assigned objects (053605f), closes #181
  • replicants: fix objects inserted into arrays via array insertion methods not being proxied (4e2d941)
  • server: update Node.js v6 check from 'warn and continue' to 'error and exit' on lower versions (2fdb534)
  • update nodecg-replicant to 0.5.8 (29323b0)

Features

  • dialogs: improve responsiveness of dialogs (204c8aa)
  • dialogs: only add h2 title if panel.title has length (0696088)

0.8.0 (2016-05-06)

Bug Fixes

  • api: throw error when handler is not a function (9804a84)
  • dashboard: fix "Copy Url" buttons on graphics page (3ed107f)
  • dashboard: fix invalid javascript on standalone panels (fcba09b)
  • panels: panels are now served by filename rather than panel name (9f3e54b), closes #144
  • rollbar: check for config.rollbar.enabled before activating rollbar (cffb1a3)
  • sounds: throw more informative errors when attempting to use sound api methods with no soundCues (e159749)
  • tests: fix typo in error message (a6a0f99)
  • tests: test standalone panels, ensure autodeps are enabled (366422d)

Code Refactoring

  • replicants: use Proxy instead of Object.observe (#163) (05ec891)

Features

  • rollbar: add support for automatically reporting uncaught exceptions to Rollbar (80f0ea6)
  • sounds: add sounds feature, rename uploads to assets, add categories to assets (52a9045)

BREAKING CHANGES

  • replicants: The order of Replicant change event arguments has been swapped. newVal is now the first argument, oldVal is the second argument. Be sure to update all of your change event handlers accordingly.

    To migrate, follow the example below:

    Before:

     myRep.on('change', function (oldVal, newVal) {
     	// do work
     });
    

    After:

     myRep.on('change', function (newVal, oldVal) {
     	// do work
     });
    
  • replicants: The third Replicant change event argument has been changed. Previously it was changes, an array of Object.observe change records. It is now operations, an array of operation records in NodeCG's internal format. This format is likely to continue changing as we figure out what works best. Any further changes to this format will be considered breaking.

  • replicants: WeakMap and Object.observe shims have been removed. This probably won't affect anyone, as any browser that supports Proxy also supports WeakMap, but be aware of it.

  • panels: the routes for panels are now /panel/:bundleName/:panelFile as opposed to /panel/:bundleName/:panelName.

  • sounds: uploads are now called assets, and their manifest format has changed

0.7.7 (2016-03-31)

Bug Fixes

  • api: fix API erroring on page load (fec7793)

0.7.6 (2016-03-31)

Bug Fixes

  • dashboard: fix "copy key" button on settings page (9182534)
  • dashboard: fix panels appearing over the top of the loading spinner (6529248)
  • deps: bump @nodecg/bundle-manager dep, forgot to in last release (4580bd2)
  • login: improve reliability of login lib (4e37a13)
  • tests: remove reference to wrench (a9ea8d9)

Features

  • all: update socket.io to 1.4.5, improves performance. (59d12c2)
  • dashboard: add loading spinner to panels (dbc0466)
  • dashboard: close the drawer panel when selecting an item (decc77f)
  • dashboard: emit dialog-opened event in a dialog's document when it opens (bb527eb)
  • dashboard: show resolution on graphics page (8ab9335)

0.7.5 (2016-03-13)

Bug Fixes

  • dashboard: don't apply background color to disabled paper-button elements when using builtin nodecg style classes (a34fc9d)

Features

  • api: deprecate nearestElementWithAttribute, replace usage with element.closest() (45b272c), closes #141
  • bundles: Add configuration values allowing to disable bundle autodeps (4a99774)
  • caching: disable caching (a70b9be)
  • npm: only install production dependencies for bundles (be0e74c)

0.7.4 (2016-03-01)

Bug Fixes

  • api: fix trace logging for client-side message reception (dc71366)
  • dashboard: assign a more unique ID to the main paper-toast element (00f5959)
  • dashboard: remove default opacity style of disabled paper-button elements (d6e5baa)
  • uploads: fix case where changes to the first file caused duplication (4e7a61f)

Features

  • bundleConfig: defaults from configschema.json are now automatically applied to nodecg.bundleConfig (a4e28fa)
  • uploads: bundles can specify allowed file types via uploads.allowedTypes (7a1a775)
  • uploads: debounce change events by 500ms (91d151c)

0.7.3 (2016-02-20)

Bug Fixes

  • uploads: prevent crash related to uninstalled bundles (9d17dc3)

Features

  • dashboard: hide panel controls until mouseover (7855a0b)

0.7.2 (2016-02-17)

Bug Fixes

  • dashboard: fix loading of builtin polymer element scripts (52cc0fc)
  • dashboard: remove unintentionally added "uploads" page (e2eb80b)
  • scripts: Remove trailing comma from package.json (6304457)
  • tests: Have Travis install grunt before running tests (d49091a)

Features

  • uploads: add file upload system (e109edf), closes #104

0.7.1 (2016-01-30)

0.7.0 (2016-01-19)

0.6.2 (2015-09-30)

0.6.1 (2015-07-30)

0.5.1 (2015-02-19)

0.4.8 (2015-02-16)

0.4.6 (2015-02-14)

0.4.3 (2015-01-20)

0.4.2 (2015-01-19)

0.4.1 (2015-01-19)

0.3.0 (2014-12-18)

0.2.1 (2014-11-16)

0.2.0 (2014-11-16)

0.1.3 (2014-11-09)

0.1.2 (2014-11-05)

0.1.1 (2014-11-05)

0.1.0 (2014-11-05)

0.0.1 (2014-10-07)