Giter VIP home page Giter VIP logo

embed-client's Introduction

Flat Sheet Music Embed Client

Build Status NPM Version

Flat's Sheet Music Embed

Use this JavaScript Client to interact and receive events from our Sheet Music Embed.

If you have any feedback or questions regarding this product, please feel free to contact our developers' support.

Installation

You can install our ES/TypeScript Embed Client using npm, pnpm, or yarn:

npm install flat-embed
pnpm add flat-embed
yarn add flat-embed

Or use the latest UMD version hosted on our CDN:

<script src="https://prod.flat-cdn.com/embed-js/v2.3.0/embed.min.js"></script>

Getting Started

The simplest way to get started is to pass a DOM element to our embed that will be used as container. By default, this one will completely fit its container:

<div id="embed-container"></div>
<script src="https://prod.flat-cdn.com/embed-js/v2.3.0/embed.min.js"></script>
<script>
  var container = document.getElementById('embed-container');
  var embed = new Flat.Embed(container, {
    score: '<score-id-you-want-to-load>',
    embedParams: {
      appId: '<your-app-id>',
      controlsPosition: 'bottom',
    },
  });
</script>

Otherwise, if you are using our embed in an ES6 project:

import Embed from 'flat-embed';

const container = document.getElementById('embed-container');
const embed = new Embed(container, {
  score: '<score-id-you-want-to-load>',
  embedParams: {
    appId: '<your-app-id>',
    controlsPosition: 'bottom',
  },
});

>> Open this demo in JSFiddle

✨ Demos

Some demos of this Embed API are available in a dedicated repository: https://github.com/FlatIO/embed-examples.

App ID

Our Embed JS API requires an App ID (appId) to use it:

  • In development, you can try and use this client without limits on localhost/*.localhost.
  • To use it in production or with a custom domain, create a new app on our website, then go to the Embed > Settings and add your domains to the whitelist. Your app ID will also be displayed on this page.

Unique users

By default, analytics and billing of unique users is done using the visitor IPs. To improve accuracy and avoid counting the same user multiple times, you can pass a unique identifier for the user using the embedParams.userId option.

This identifier must be a unique identifier for the user. For example, you can use the user ID of your application. Please don't use any personal information (e.g. email address).

import Embed from 'flat-embed';

const container = document.getElementById('embed-container');
const embed = new Embed(container, {
  score: '<score-id-you-want-to-load>',
  embedParams: {
    appId: '<your-app-id>',
    userId: '<your-end-user-id>',
  },
});

Embed construction

DOM element or existing iframe

When instantiating Flat.Embed, the first argument will always refer to a DOM element. It can take:

  • A DOM element (e.g. selected using document.getElementById('embed-container')).
  • The string identifier of the element (e.g. "embed-container").
  • An existing embed iframe element. In this case, this one will need to have our JS API loaded using the query string jsapi=true.

If you instance a different Flat.Embed for the same element, you will always get the same instance of the object.

Options and URL parameters

When instantiating Flat.Embed, you can pass options in the second parameter. To use the different methods available and events subscriptions, you will need to pass at least embedParams.appId.

Option Description Values Default
score The score identifier that will load initially Unique score id blank
width The width of your embed A width of the embed 100%
height The height of your embed A height of the embed 100%
embedParams Object containing the loading options for the embed Any URL parameters {}
lazy Add a loading="lazy" attribute to the iframe A boolean to enable the lazy-loading false

JavaScript API

Viewer API

You can call the methods using any Flat.Embed object. By default, the methods (except on and off) return a Promise that will be resolved once the method is called, the value is set or get:

var embed = new Flat.Embed('container');
embed
  .loadFlatScore('12234')
  .then(function () {
    console.log('Score loaded');
  })
  .catch(function (err) {
    console.log('Error', err);
  });

ready(): Promise<void, Error>

Promises resolved when the embed is loaded and the JavaScript API is ready to use. All the methods will implicitly use this method, so you don't have to worry about waiting for the loading before calling the different methods.

embed.ready().then(function () {
  // You can use the embed
});

on(event: string, callback: function): void

Add an event listener for the specified event. When receiving the event, the client will call the specified function with zero or one parameter depending on the event received.

embed.on('playbackPosition', function (position) {
  console.log(position);
});

off(event: string, callback?: function): void

Remove an event listener for the specified event. If no callback is specified, all the listeners for the event will be removed.

function positionChanged(position) {
  // Print position
  console.log(position);

  // You can remove the listener later (e.g. here, once the first event is received)
  embed.off('play', positionChanged);

  // Alternatively, you can remove all the listeners for the event:
  embed.off('play');
}

// Subscribe to the event
embed.on('positionChanged', positionChanged);

getEmbedConfig(): Promise<object, Error>

Fetch the global config of the embed. This will include the URL parameters, the editor config and the default config set by the embed.

embed.getEmbedConfig().then(function (config) {
  // The config of the embed
  console.log(config);
});

loadFlatScore(score: mixed): Promise<void, ApiError>

Load a score hosted on Flat using its identifier. For example to load https://flat.io/score/56ae21579a127715a02901a6-house-of-the-rising-sun, you can call:

embed
  .loadFlatScore('56ae21579a127715a02901a6')
  .then(function () {
    // Score loaded in the embed
  })
  .catch(function (error) {
    // Unable to load the score
  });

If the score has a private sharing link (privateLink), you can pass an object with the sharingKey property:

embed
  .loadFlatScore({
    score: '5ce56f7c019fd41f5b17b72d',
    sharingKey:
      '3f70cc5ecf5e4248055bbe7502a9514cfe619c53b4e248144e470bb5f08c5ecf880cf3eda5679c6b19f646a98ec0bd06d892ee1fd6896e20de0365ed0a42fc00',
  })
  .then(function () {
    // Score loaded in the embed
  })
  .catch(function (error) {
    // Unable to load the score
  });

loadMusicXML(score: mixed): Promise<void, Error>

Load a MusicXML score, compressed (MXL) or not (plain XML). The compressed files (.mxl) must be passed as ArrayBuffer, and the plain XML (.xml/.musicxml) as String.

Example to load a compressed MXL file:

// Loading any MXL file here, for example a file from a public Flat score
fetch('https://api.flat.io/v2/scores/56ae21579a127715a02901a6/revisions/last/mxl')
  .then(function (response) {
    return response.arrayBuffer();
  })
  .then(function (mxl) {
    // Got the compressed score as an `ArrayBuffer`, load it in the embed
    return embed.loadMusicXML(mxl);
  })
  .then(function () {
    // Score loaded in the embed
  })
  .catch(function (error) {
    // Unable to load the score
  });

Example to load a plain XML file:

// Loading any plain XML file here, for a file example from a public Flat score
fetch('https://api.flat.io/v2/scores/56ae21579a127715a02901a6/revisions/last/xml')
  .then(function (response) {
    return response.text();
  })
  .then(function (mxl) {
    // Got the plain XML score as an `String`, load it in the embed
    return embed.loadMusicXML(mxl);
  })
  .then(function () {
    // Score loaded in the embed
  })
  .catch(function (error) {
    // Unable to load the score
  });

loadJSON(score: object): Promise<void, Error>

Load a score using Flat's JSON Format

fetch('https://api.flat.io/v2/scores/56ae21579a127715a02901a6/revisions/last/json')
  .then(function (response) {
    return response.json();
  })
  .then(function (json) {
    return embed.loadJSON(json);
  })
  .then(function () {
    // Score loaded in the embed
  })
  .catch(function (error) {
    // Unable to load the score
  });

getMusicXML(options?: object): Promise<string|Uint8Array, Error>

Convert the currently displayed score into a MusicXML file, compressed (.mxl) or not (.xml).

// Uncompressed MusicXML
embed.getMusicXML().then(function (xml) {
  // Plain XML file (string)
  console.log(xml);
});

Example: Retrieve the score as a compressed MusicXML, then convert it to a Blob and download it:

// Uncompressed MusicXML
embed.getMusicXML({ compressed: true }).then(function (buffer) {
  // Create a Blob from a compressed MusicXML file (Uint8Array)
  var blobUrl = window.URL.createObjectURL(
    new Blob([buffer], {
      type: 'application/vnd.recordare.musicxml+xml',
    }),
  );

  // Create a hidden link to download the blob
  var a = document.createElement('a');
  a.href = blobUrl;
  a.download = 'My Music Score.mxl';
  document.body.appendChild(a);
  a.style = 'display: none';
  a.click();
  a.remove();
});

getJSON(): object

Get the data of the score in the "Flat JSON" format (a MusicXML-like as a JavaScript object).

embed
  .getJSON()
  .then(function (data) {
    console.log(data);
  })
  .catch(function (error) {
    // Unable to get the data
  });

getPNG(options?: object): Promise<string|Uint8Array, Error>

Get the currently displayed score as a PNG file. This API method accepts the following options:

  • result: Choose how the PNG file is returned, either dataURL or Uint8Array. Default value is Uint8Array.
  • layout: The score can either exported as one horizontal system (track), or the first page (page). Default value is track
  • dpi: The dpi used to export the PNG, between 50 and 300. Default value is 150.
// PNG
embed.getPNG().then(function (png) {
  // PNG file as a Uint8Array
  console.log(png);
});
// PNG
embed
  .getPNG({
    result: 'dataURL',
    layout: 'layout',
    dpi: 300,
  })
  .then(function (png) {
    // 300 DPI PNG with the score as a page, returned as a DataURL
    console.log(png);
  });

getMIDI(): Promise<Uint8Array, Error>

Get the currently displayed score as a MIDI file

embed.getMIDI().then(function (midi) {
  // MIDI file as a Uint8Array
  console.log(midi);
});

getScoreMeta(): object

Get the score metadata of the hosted score. The object will have the same format that the one returned by our API GET /v2/scores/{score}.

embed
  .getScoreMeta()
  .then(function (metadata) {
    console.log(metadata);
  })
  .catch(function (error) {
    // Unable to get the metadata
  });

fullscreen(state: bool): Promise<void, Error>

Display the embed in fullscreen (state = true) or return to the regular display (state = false).

embed.fullscreen(true).then(function () {
  // The score is now displayed in fullscreen
});

play(): Promise<void, Error>

Load the playback and play the score.

embed.play().then(function () {
  // The score is playing
});

pause(): Promise<void, Error>

Pause the playback

embed.pause().then(function () {
  // The playback is paused
});

stop(): Promise<void, Error>

Stop the playback

embed.stop().then(function () {
  // The playback is stopped
});

mute(): Promise<void, Error>

Mute the playback

embed.mute().then(function () {
  // The playback is muted
});

getMasterVolume(): Promise<Number, Error>

Get the master volume

embed.getMasterVolume().then(function (volume) {
  // The volume value
  console.log(volume);
});

setMasterVolume({ volume: number }): Promise<void, Error>

Set the master volume (volume between 0 and 100)

embed.setMasterVolume({ volume: 50 }).then(function () {
  // The volume is set
});

getPartVolume({ partUuid: string }): Promise<Number, Error>

Get a part volume (partUuid can be retrieved with getParts)

embed.getPartVolume({ partUuid: 'c86be847-a7a1-54fb-44fc-a6564d7eb75c' }).then(function (volume) {
  // The volume value
  console.log(volume);
});

setPartVolume({ partUuid: string, volume: number }): Promise<void, Error>

Set a part volume (volume between 0 and 100, partUuid can be retrieved with getParts)

embed
  .getPartVolume({
    partUuid: 'c86be847-a7a1-54fb-44fc-a6564d7eb75c',
    volume: 50,
  })
  .then(function () {
    // The volume is set
  });

mutePart({ partUuid: string }): Promise<void, Error>

Mute a part

embed.mutePart({ partUuid: 'c86be847-a7a1-54fb-44fc-a6564d7eb75c' }).then(function () {
  // The part is muted
});

unmutePart({ partUuid: string }): Promise<void, Error>

Unmute a part

embed.unmutePart({ partUuid: 'c86be847-a7a1-54fb-44fc-a6564d7eb75c' }).then(function () {
  // The part is unmuted
});

setPartSoloMode({ partUuid: string }): Promise<void, Error>

Enable the solo mode for a part

embed.setPartSoloMode({ partUuid: 'c86be847-a7a1-54fb-44fc-a6564d7eb75c' }).then(function () {
  // The part is now playing solo
});

unsetPartSoloMode({ partUuid: string }): Promise<void, Error>

Disable the solo mode for a part

embed.unsetPartSoloMode({ partUuid: 'c86be847-a7a1-54fb-44fc-a6564d7eb75c' }).then(function () {
  // All the parts are now playing
});

getPartSoloMode({ partUuid: string }): Promise<Boolean, Error>

Get the state of the solo mode of a part (partUuid can be retrieved with getParts)

embed.getPartSoloMode({ partUuid: 'c86be847-a7a1-54fb-44fc-a6564d7eb75c' }).then(function (isSolo) {
  // The solo state
  console.log(isSolo);
});

getPartReverb({ partUuid: string }): Promise<Number, Error>

Get a part reverberation (partUuid can be retrieved with getParts)

embed.getPartReverb({ partUuid: 'c86be847-a7a1-54fb-44fc-a6564d7eb75c' }).then(function (reverb) {
  // The reverberation value
  console.log(reverb);
});

setPartReverb({ partUuid: string, reverberation: number }): Promise<void, Error>

Set a part reverberation (reverberation between 0 and 100, partUuid can be retrieved with getParts)

embed
  .setPartReverb({
    partUuid: 'c86be847-a7a1-54fb-44fc-a6564d7eb75c',
    reverberation: 50,
  })
  .then(function () {
    // The reverberation is set
  });

getMetronomeMode(): Promise<Number, Error>

Get the value of the metronome count-in mode.

Mode is defined as:

const METRONOME_MODES = {
  COUNT_IN: 0, // Count in at the beginning of the playback
  CONTINUOUS: 1, // Always on
  DISABLED: 2,
};
embed.getMetronomeMode().then(function (metronomeMode) {
  assert.strictEqual(metronomeMode, METRONOME_MODES.COUNT_IN);
  assert.strictEqual(metronomeMode, 0);
});

setMetronomeMode(number): Promise<void, Error>

Set the metronome count-in mode.

embed.setMetronomeMode(1).then(function () {
  // The metronome mode is set
});

getPlaybackSpeed(): Promise<Number, Error>

Get the playback speed.

embed.getPlaybackSpeed().then(function (playbackSpeed) {
  assert.strictEqual(playbackSpeed, 1);
});

setPlaybackSpeed(number): Promise<void, Error>

Set the playback speed. Normal value is 1. The value can be between 0.2 and 2.

embed.setPlaybackSpeed(1.5).then(function () {
  // The playback speed is set
});

scrollToCursor(): Promise<void, Error>

For the display to scroll at the position of the cursor in the score

embed.scrollToCursor().then(function () {
  // The scrolling is done asynchronously, it is not guarenteed that it will be completed here.
});

setTrack(object): Promise<void, Error>

Configure a new video or audio track for the current embedded score. This method uses the same system as our audio tracks manager in our editor app, but allows you to dynamically configure any track or connect an external player to an embedded score.

This method takes the following options:

  • id (required): An unique identifier for the configuration, that can be used later for the method useTrack.
  • type (required): The type of track to configure, using one of the following types: youtube, soundcloud, vimeo, audio, external
  • url (required for soundcloud and audio): the URL of the Souncloud or the audio file to load
  • mediaId (required for youtube, vimeo): the video identifier to embed
  • totalTime (required for external): the total time of the media played
  • synchronizationPoints (required): the list of synchronization points to use. Each point can have the following information:
    • type: measure or end of the score
    • time in seconds, the position of the synchronization point
    • location.measureIdx: for measure point, the index of the score where the point is located.

Once a track is configured, you must call the method useTrack to enable it.

Two implementation examples are available in our example repository:

The synchronizationPoints also use the same formats as our REST API. If you previously configured some tracks using our web editor, you can fetch their configuration using our REST API.

embed
  .setTrack({
    id: 'yt-cucaracha',
    type: 'youtube',
    mediaId: 'jp9vFhyhNd8',
    synchronizationPoints: [
      { type: 'measure', time: 0, location: { measureIdx: 0 } },
      { type: 'end', time: 19 },
    ],
  })
  .then(function () {
    // The track is configured
  });

useTrack({ id }): Promise<void, Error>

Enable a previously configured audio or video track. The id can be an identifier chosen from a track configured using setTrack or from Flat's REST API.

embed
  .useTrack({
    id: 'yt-cucaracha',
  })
  .then(function () {
    // The track is enabled
  });

seekTrackTo({ time }): Promise<void, Error>

Seek the current played track to a provided time, in seconds.

embed.useTrack({
  time: 5,
});

print(): Promise<void, Error>

Print the score

embed
  .print()
  .then(function () {
    // The score is being printed (the browser opens the print prompt)
  })
  .catch(function (error) {
    // Error when printing
  });

getZoom(): Promise<number, Error>

Get the current zoom ration applied for the score (between 0.5 and 3).

embed.getZoom().then(function (zoom) {
  // The zoom value
  console.log(zoom);
});

setZoom(number): Promise<number, Error>

Set a new zoom ration for the display (between 0.5 and 3).

embed.setZoom(2).then(function (zoom) {
  // The zoom value applied
  console.log(zoom);
});

getAutoZoom(): Promise(<boolean, Error>)

Get the state of the auto-zoom mode. Auto-zoom is enabled by default for page mode or when the URL parameter zoom is set to auto.

This getter will return true if the auto-zoom is enabled, and false when disabled. Setting a zoom value with setZoom will disable this mode.

embed.getAutoZoom().then(function (state) {
  // The auto-zoom state
  console.log(state);
});

setAutoZoom(boolean): Promise(<boolean, Error>)

Enable (true) or disable (false) the auto-zoom. Auto-zoom is enabled by default for page mode or when the URL parameter zoom is set to auto. Setting a zoom value with setZoom will disable this mode.

embed.setAutoZoom(false).then(function (state) {
  // Auto-zoom mode is disabled
  console.log(state);
});

focusScore(): Promise(<void, Error>)

Unlike the web version on https://flat.io, the embed doesn't catch the focus. This avoids to mess with the parent window, and avoid the browser to do a forced scrolling to the embed iframe.

If the end-users' goal is the usage of the embed to play or write notation, you can use this method to set the focus on the score and allowing them to use the keyboard bindings.

embed.focusScore().then(function () {
  // Focus is now on the score
});

getCursorPosition(): Promise(<object, Error>)

Return the current position of the cursor (on a specific note).

embed.getCursorPosition().then(function (position) {
  // position: {
  //     "partIdx": 0,
  //     "staffIdx": 1,
  //     "voiceIdxInStaff": 0,
  //     "measureIdx": 2,
  //     "noteIdx": 1
  // }
});

setCursorPosition(position: object): Promise(<object, Error>)

Set the current position of the cursor (on a specific note).

embed
  .setCursorPosition({
    partIdx: 0,
    staffIdx: 1,
    voiceIdx: 0,
    measureIdx: 2,
    noteIdx: 1,
  })
  .then(function (position) {
    // position: {
    //     "partIdx": 0,
    //     "staffIdx": 1,
    //     "voiceIdxInStaff": 0,
    //     "measureIdx": 2,
    //     "noteIdx": 1
    // }
  });

getParts(): Promise(<Array, Error>)

Get the list of all the parts of the current score.

embed.getParts().then(function (parts) {
  // parts: [
  //  {
  //    idx: 0
  //    uuid: "ff78f481-2658-a94e-b3b2-c81f6d83bff0"
  //    name: "Grand Piano"
  //    abbreviation: "Pno."
  //    isTransposing: false
  //  },
  //  {
  //    idx: 1
  //    uuid: "ab0ec60f-13ca-765d-34c6-0f181e58a672"
  //    name: "Drum Set"
  //    abbreviation: "Drs."
  //    isTransposing: false
  //  }
  //]
});

getDisplayedParts(): Promise(<Array, Error>)

Get the list of the displayed parts. You can update the displayed parts with setDisplayedParts().

embed.getDisplayedParts().then(function (parts) {
  // parts: [
  //  {
  //    idx: 0
  //    uuid: "ff78f481-2658-a94e-b3b2-c81f6d83bff0"
  //    name: "Grand Piano"
  //    abbreviation: "Pno."
  //    isTransposing: false
  //  }
  //]
});

setDisplayedParts(parts): Promise(<void, Error>)

Set the list of the parts to display. This list (array) can either contain the UUIDs of the parts to display, their indexes (idx) starting from 0, the names of the parts or their abbreviations.

embed.setDisplayedParts(['Violin', 'Viola']).then(function () {
  // display update queued
});

getMeasureDetails(): Promise(<object, Error>)

Retrieve details about the current measure. You can listen to the measureDetails event to get the same details returned every time the cursor is moved or the measure is modified.

embed.getMeasureDetails().then(function (measure) {
  // {
  //     "clef": {
  //         "sign": "G",
  //         "line": 2,
  //         "clef-octave-change": -1
  //     },
  //     "key": {
  //         "fifths": 0
  //     },
  //     "time": {
  //         "beats": 4,
  //         "beat-type": 4
  //     },
  //     "displayedTime": {
  //         "beats": 4,
  //         "beat-type": 4
  //     },
  //     "tempo": {
  //         "qpm": 80,
  //         "bpm": 80,
  //         "durationType": "quarter",
  //         "nbDots": 0
  //     },
  //     "transpose": {
  //         "chromatic": "0"
  //     },
  //     "voicesData": {
  //         "voices": [
  //             0
  //         ],
  //         "mainVoiceIdx": 0
  //     }
  // }
});

getNoteDetails(): Promise(<object, Error>)

Retrieve details about the current note. You can listen to the noteDetails event to get the same details returned every time the cursor is moved or the note is modified.

embed.getNoteDetails().then(function (measure) {
  // {
  //     "articulations": [],
  //     "classicHarmony": null,
  //     "dynamicStyle": null,
  //     "ghostNotes": [
  //         false
  //     ],
  //     "hammerOnPullOffs": [
  //         false
  //     ],
  //     "harmony": null,
  //     "hasArpeggio": false,
  //     "hasGlissando": false,
  //     "isChord": false,
  //     "isInSlur": false,
  //     "isRest": false,
  //     "isTied": false,
  //     "lines": [
  //         -2.5
  //     ],
  //     "lyrics": [],
  //     "nbDots": 0,
  //     "nbGraces": 0,
  //     "ornaments": [],
  //     "pitches": [
  //         {
  //             "step": "E",
  //             "octave": 2,
  //             "alter": 0
  //         }
  //     ],
  //     "technical": [],
  //     "tupletType": null,
  //     "wedgeType": null,
  //     "durationType": "eighth"
  // }
});

getNbMeasures(): Promise(<number, Error>)

Get the number of measures within the score

embed.getNoteDetails().then(function (nbMeasures) {
  assert.strictEqual(nbMeasures, 5);
});

getMeasuresUuids(): Promise(<array, Error>)

Get the number of measures within the score

embed.getMeasuresUuids().then(function (measuresUuids) {
  assert.strictEqual(measuresUuids, [
    '05a4daec-bc78-5987-81e4-2467e234dfb2',
    '08b9110b-82bb-11e5-f57c-7b0f47a6a69a',
    '3c176017-31ff-cc91-7ad6-a2ea4a510200',
    '833ca409-04e9-0b76-52db-105777bd7a56',
  ]);
});

getNbParts(): Promise(<number, Error>)

Get the number of parts within the score

embed.getNbParts().then(function (nbParts) {
  assert.strictEqual(nbParts, 3);
});

getPartsUuids(): Promise(<array, Error>)

Get the number of parts within the score

embed.getPartsUuids().then(function (partsUuids) {
  assert.deepStrictEqual(partsUuids, [
    '05a4daec-bc78-5987-81e4-2467e234dfb2',
    '08b9110b-82bb-11e5-f57c-7b0f47a6a69a',
    '833ca409-04e9-0b76-52db-105777bd7a56',
  ]);
});

getMeasureVoicesUuids(): Promise(<array, Error>)

Get the list of voice uuids present in a given measure

embed
  .getMeasureVoicesUuids({
    partUuid: '05a4daec-bc78-5987-81e4-2467e234dfb2',
    measureUuid: '08b9110b-82bb-11e5-f57c-7b0f47a6a69a',
  })
  .then(function (voicesUuids) {
    assert.deepStrictEqual(voicesUuids, [
      '3c176017-31ff-cc91-7ad6-a2ea4a510200',
      '833ca409-04e9-0b76-52db-105777bd7a56',
    ]);
  });

getMeasureNbNotes(): Promise(<number, Error>)

Get the number of notes in the voice of a specific measure.

embed
  .getMeasureNbNotes({
    partUuid: '05a4daec-bc78-5987-81e4-2467e234dfb2',
    measureUuid: '08b9110b-82bb-11e5-f57c-7b0f47a6a69a',
    voiceUuid: '3c176017-31ff-cc91-7ad6-a2ea4a510200',
  })
  .then(function (nbNotes) {
    assert.strictEqual(nbNotes, 4);
  });

getNoteData(): Promise(<object, Error>)

Get information on a specific note.

embed
  .getNoteData({
    partUuid: '05a4daec-bc78-5987-81e4-2467e234dfb2',
    measureUuid: '08b9110b-82bb-11e5-f57c-7b0f47a6a69a',
    voiceUuid: '3c176017-31ff-cc91-7ad6-a2ea4a510200',
    noteIdx: 2,
  })
  .then(function (noteData) {
    assert.deepStrictEqual(noteData, {
      articulations: [],
      classicHarmony: null,
      durationType: 'quarter',
      dynamicStyle: null,
      ghostNotes: undefined,
      hammerOnPullOffs: undefined,
      harmony: null,
      hasArpeggio: undefined,
      hasGlissando: undefined,
      isChord: undefined,
      isInSlur: false,
      isRest: true,
      isTied: undefined,
      lines: undefined,
      lyrics: [],
      nbDots: 0,
      nbGraces: 0,
      ornaments: [],
      pitches: undefined,
      technical: [],
      tupletType: null,
      wedgeType: null,
    });
  });

playbackPositionToNoteIdx(): Promise(<number, Error>)

Convert the data given by the playbackPosition event into a note index.

embed
  .playbackPositionToNoteIdx({
    partUuid: '1f4ab07d-d27a-99aa-2304-f3dc10bb27c3',
    voiceUuid: '17099aa2-e0dd-dbc3-2d45-b9b574e89572',
    playbackPosition: {
      currentMeasure: 0,
      quarterFromMeasureStart: 1.1,
    },
  })
  .then(function (noteIdx) {
    assert.strictEqual(noteIdx, 1);
  });

goLeft(): Promise(<void, Error>)

Get the number of measures within the score

embed.goLeft().then(function () {
  // The cursor is moved to the previous item on the left
});

goRight(): Promise(<void, Error>)

Get the number of measures within the score

embed.goRight().then(function () {
  // The cursor is moved to the next item on the right
});

Editor API

You can enable the editor mode by setting the mode to edit when creating the embed:

var embed = new Flat.Embed(container, {
  embedParams: {
    appId: '<your-app-id>',
    mode: 'edit',
  },
});

Check out an implementation example of the editor.

Events API

Events are broadcasted following actions made by the end-user or you with the JavaScript API. You can subscribe to an event using the method on, and unsubscribe using off. When an event includes some data, this data will be available in the first parameter of the listener callback.

Event: scoreLoaded

This event is triggered once a new score has been loaded. This event doesn't include any data.

Event: cursorPosition

This event is triggered when the position of the user's cursor changes.

{
  "partIdx": 0,
  "staffIdx": 1,
  "voiceIdx": 0,
  "measureIdx": 2,
  "noteIdx": 1
}

Event: cursorContext

This event is triggered when the position or context of the user's cursor changes.

{
  "isRest": false,
  "isGrace": false,
  "isUnpitchedPart": false,
  "isPitchedPart": true,
  "isPitched": true,
  "isChord": true,
  "isTab": false,
  "hasTab": true,
  "hasTabFrame": false,
  "isEndOfScore": false,
  "isSameLineThanNextNote": false,
  "hasSlashInConnection": false,
  "canTieWithNextNote": false,
  "canSwitchEnharmonic": false,
  "isNextRest": false,
  "hasTie": false,
  "isHeadTied": false
}

Event: measureDetails

This event is triggered when the position or context of the user's cursor changes. The payload of this event is the same as the returned value from getMeasureDetails.

{
  "clef": {
    "sign": "G",
    "line": 2,
    "clef-octave-change": -1
  },
  "key": {
    "fifths": 0
  },
  "time": {
    "beats": 4,
    "beat-type": 4
  },
  "displayedTime": {
    "beats": 4,
    "beat-type": 4
  },
  "tempo": {
    "qpm": 80,
    "bpm": 80,
    "durationType": "quarter",
    "nbDots": 0
  },
  "transpose": {
    "chromatic": "0"
  },
  "voicesData": {
    "voices": [0],
    "mainVoiceIdx": 0
  }
}

Event: noteDetails

This event is triggered when the position or context of the user's cursor changes. The payload of this event is the same as the returned value from getNoteDetails.

{
  "articulations": [],
  "classicHarmony": null,
  "dynamicStyle": null,
  "ghostNotes": [false],
  "hammerOnPullOffs": [false],
  "harmony": null,
  "hasArpeggio": false,
  "hasGlissando": false,
  "isChord": false,
  "isInSlur": false,
  "isRest": false,
  "isTied": false,
  "lines": [-2.5],
  "lyrics": [],
  "nbDots": 0,
  "nbGraces": 0,
  "ornaments": [],
  "pitches": [
    {
      "step": "E",
      "octave": 2,
      "alter": 0
    }
  ],
  "technical": [],
  "tupletType": null,
  "wedgeType": null,
  "durationType": "eighth"
}

Event: rangeSelection

This event is triggered when a range of notes is selected or the selection changed.

{
  "from": {
    "partIdx": 0,
    "measureIdx": 1,
    "staffIdx": 0,
    "voiceIdx": 0,
    "noteIdx": 2
  },
  "to": {
    "partIdx": 0,
    "measureIdx": 3,
    "staffIdx": 0,
    "voiceIdx": 0,
    "noteIdx": 5
  }
}

Event: fullscreen

This event is triggered when the state of the fullscreen changed. The callback will take a boolean as the first parameter that will be true if the fullscreen mode is enabled, and false is the display is back to normal (fullscreen exited).

Event: play

This event is triggered when you or the end-user starts the playback. This event doesn't include any data.

Event: pause

This event is triggered when you or the end-user pauses the playback. This event doesn't include any data.

Event: stop

This event is triggered when you or the end-user stops the playback. This event doesn't include any data.

Event: playbackPosition

This event is triggered when the playback slider moves. It is constantly triggered, as it is the event that also serve internally to animate the vertical line. It contains an object with information regarding the position of the playback in the score:

{
  currentMeasure: 3,// Index of the meaasure in the score
  quarterFromMeasureStart: 2.2341,// Position from the beginning of the measure, expressed in quarter notes
}

Here is how you can get information on the note currently played. We will check for a note in the part/voice where the user cursor is currently located.

const cursorPosition = await embed.getCursorPosition();
const { partUuid, voiceUuid } = cursorPosition;
const measuresUuids = await embed.getMeasuresUuids();

embed.on('playbackPosition', async playbackPosition => {
  const { currentMeasure } = playbackPosition;
  const measureUuid = measuresUuids[currentMeasure];
  const voicesUuids = await embed.getMeasureVoicesUuids({
    partUuid,
    measureUuid,
  });
  if (voicesUuids.includes(voiceUuid)) {
    // The voice is not present in the measure currently being played..
    return;
  }

  const noteIdx = await embed.playbackPositionToNoteIdx({
    partUuid,
    voiceUuid,
    playbackPosition,
  });
  const noteData = await embed.getNoteData({
    partUuid,
    measureUuid,
    voiceUuid,
    noteIdx,
  });
  assert.strictEqual(noteData.isRest, true);
});

embed-client's People

Contributors

benamib avatar dependabot-preview[bot] avatar dependabot[bot] avatar gierschv avatar greenkeeper[bot] avatar lanaambre avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

embed-client's Issues

An in-range update of chokidar is breaking the build 🚨

The devDependency chokidar was updated from 2.1.1 to 2.1.2.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

chokidar is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Commits

The new version differs by 5 commits.

  • 20cb767 Release 2.1.2.
  • ca092de Update changelog
  • 75e6043 Add TypeScript type definitions (#801)
  • 24f13bb always fire "changed" event if mtime has been changed (#800)
  • 3e2e9f3 Copyright 2012-2019!

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of karma is breaking the build 🚨

Version 2.0.3 of karma was just published.

Branch Build failing 🚨
Dependency [karma](https://github.com/karma-runner/karma)
Current Version 2.0.2
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

karma is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

Release Notes v2.0.3

Bug Fixes

  • BaseReporter: log message correctly with just one browser (#3045) (c1eb236)
  • browser: don't add already active socket again on reconnect (37a7958)
  • browser: filter browser logging by level (35965d9), closes #2228
  • browser: nicer "disconnect" - no more "Disconnectedundefined" (a987d63)
  • build: pin npm version in appveyor to v3, compat with node 4 (#2983) (bc1453e)
  • ci: Repaired AppVeyor for [email protected] (cbfd98c)
  • cli: override if an arg is defined multiple times (31eb2c2), closes #1192
  • cli: print UserAgent string verbatim if from an unknown browser (9d97226)
  • cli: restore shell completion in the npm package (f56b5a5), closes #2351
  • cli: Use bin field in package.json (6823926), closes #1351
  • client: add ES5 shim (14c30b7), closes #1529
  • client: add proxy support to stringify (be10116)
  • client: does not throws an error for non DOM object that has tagName property (ba55afb), closes #2139
  • client: don't crash if receive array-like results (e095411), closes #2061
  • client: dynamic protocol for socket.io (c986eef), closes #1400
  • client: Fix stringify serializing objects (0d0972a)
  • client: Revert back to old reloading detection (f1c22d6), closes #1656
  • client: serialise DOM objects (1f73be4), closes #1106
  • client: Update location detection for socket.io (7a23fa5)
  • client: Use supported shim path. (184f12e)
  • client: Wait for childwindow to load (c1bb15a)
  • client: Wait for iframe to be loaded (1631474), closes #1652
  • client.html: always open debug.html in a new browser process (d176bcf)
  • common: fix AppVeyor build (6c5e7d0)
  • common: more detailed info about error (424aacc)
  • common: Proxy function toString does not contain Proxy. (4fb3484)
  • common: stringify error on 'Cannot convert a Symbol value to a string' (#2990) (65b658a), closes #2856
  • config: #1113 Watching is not working properly on linux (c91ffbc)
  • config: add crossOriginAttribute config option (1e465b1)
  • config: Call debug log methods after setting the loglevel based upon config/cli-options. (a340dae)
  • config: Call debug log methods after setting the loglevel based upon config/cli-options. (99fd3f0)
  • config: corrects spelling in example config template (9fafc60)
  • config: Default remaining client options if any are set (632dd5e), closes #961
  • config: Error when browers option isn't array (b695460)
  • config: Log the final config just before use. (#3041) (05dd09a)
  • config: Retry install with appveyor-retry. (17d5791)
  • config: Workaround npm 5.4 windows bug (ec47d81)
  • context: Updated postMessage listener to stop validating non-Karma messages (306e565)
  • debug-runner: support asynchronous tests in the debug runner (a36f3eb), closes #2811
  • deps: freeze socket.io version (73e300d)
  • deps: Update dependencies (b9a4ce9), closes #1410
  • deps: Update log4js in package.json (#2996) (667b47e)
  • deps: update socket.io to version 2.0.3. (3b7b019), closes #2821 #2777
  • deps: Upgrade connect 3. (b490985), closes #1410
  • docs: fix stopper.stop wrong variable name. closes #2244 (0745a00)
  • docs: Remove mention of pre 1.0.0 version (#3010) (6847ca0)
  • eslint: Fix formatting for the new ESLint 1.8.0 (dc1bbab)
  • executor: ensure run_complete is emitted last (9c894f9), closes #2210
  • file_list: follow symlinks (ee26748)
  • file_list: Incorrect response after remove and add file (0dbc020)
  • file-list: always use file from first matcher (74bfdf3)
  • file-list: Ensure autowatchDelay is working (0f33268), closes #1520
  • file-list: Ensure autowatchDelay is working. (655599a), closes #1520
  • file-list: Ensure files are sorted and unique (9dc5f8b), closes #1498 #1499
  • file-list: ensure patterns are comparable (4d1bf3e), closes #2194
  • file-list: Normalize glob patterns (fb841a7), closes #1494
  • file-list: refresh resolves before 'file_list_modified' event (65f1eca), closes #1550
  • file-list: Stop polluting global environment with core-js (0988022)
  • file-list: Use correct find function (4cfaae9)
  • file-list: use lodash find() (3bd15a7), closes #1533
  • file-list: Use modified throttle instead of debounce (cb2aafb), closes #1545
  • files: Ignore included:false pattern (db42a7f), closes #1530
  • flaky-test: Add time to beforeEach() to allow plugins to load on first pass. (#3025) (31d9a08)
  • helper: Ensure browser detection is handled in the unkown case (9328f67)
  • helper: Patched replaceWinPath from choking on null values (caa4d21)
  • init: fix test-main.(js/coffee) generation (d8521ef), closes #1120 #896
  • init: Make the requirejs config template normalize paths (54dcce3), closes /github.com/karma-runner/karma/issues/513#issuecomment-48616784
  • karma: Escape quotes for file names. This fixes issue #1876. (9dff3f3)
  • launcher: Allow dynamic browser launches (2b7d703)
  • launcher: Continue with exit when SIGKILL fails (1eaccb4)
  • launcher: exclude concurrent browser on launcher restart (96f8f14), closes #2280
  • launcher: send sigkill on timeout when force killing (c615c1f)
  • launchers: Listen to the correct error event. (45a6922)
  • lint: exempt built files (#3024) (bc9acd3)
  • logging: Summarize SKIPPED tests in debug.html. (a01100f), closes #1111
  • logging: Upgrade to log4js 2.x API. (#2868) (f6f8707), closes #2858
  • middleware: Actually serve the favicon. (f12db63)
  • middleware: add file type to absolute urls (bd1f799)
  • middleware: avoid using deprecated Buffer API (018e6be), closes /nodejs.org/api/deprecations.html#deprecations_dep0005
  • middleware: change to use vanilla for loop (ac62cc0), closes #2671
  • middleware: Correct spelling of middleware logger name (9e9e7e6)
  • middleware: does not work with mootools (#2591) (2685e13)
  • middleware: ensure Range headers adhere more closely to RFC 2616 (8b1b4b1), closes #2310
  • middleware: fix WARN log when passing undefined error handler to promise.then (20b87de), closes #2227
  • middleware: Inject config.urlRoot. (569ca0e), closes #1516
  • middleware: update Buffer usage (3d94b8c)
  • package.json: sinon-chai 2.13 is not compatible with sinon 4.x (#2977) (e095b05)
  • preprocessor: Better handling of failing preprocessors (a2376b8), closes #1521
  • preprocessor: calculate sha1 on content returned from a preprocessor (6cf7955), closes #1204
  • preprocessor: Directory names with dots (4b5e094)
  • preprocessor: Improve handling of failed preprocessors (e726d1c), closes #1521
  • preprocessor: Lookup patterns once invoked (00a2781), closes #1340
  • preprocessor: renamed handeFile to readFileCallback (92a8c81)
  • preprocessor: retry if fs.readFile fails (4b60513)
  • preprocessor: Throw error if can't open file (bb4edde)
  • preprocessor: throw if retry fails (2789bf5)
  • preprocessor: treat *.gz files as binary (1b56932)
  • preprocessor: treat *.swf files as binary (62d7d38)
  • preprocessor: treat *.tgz, *.tbz2, *.txz & *.xz as binary (7b64244)
  • proxy: More useful proxyError log message (96640a7)
  • proxy: Pass protocol in target object to enable https requests (142db90)
  • proxy: Port mixup and infinite loop (05616a2), closes #1987
  • proxy: proxy to correct port (a483636)
  • reporter: Better handling of non string error (82f1c12), closes #1969 #1988
  • reporter: Disable source maps for URLs without line number (2080221), closes #1274
  • reporter: do not allow URL domains to span new lines (2c13404)
  • reporter: Enable sourcemaps for errors that without column # (086a542)
  • reporter: Ensure errors use the source map. (0407a22), closes #1495
  • reporter: Fix issue causing error stack not to be parsed correctly (ac4e1a9), closes #2930
  • reporter: inject correct config option (80bd726)
  • reporter: keep users exact formatError result (17c2c43)
  • reporter: preserve base/absolute word in error (b3798df)
  • reporter: remove console.log (b4e3694)
  • reporter: show file path correctly when urlRoot specified (34dc7d3), closes #2897
  • reporter: sourcemap not working in windows (a9516af), closes #1200
  • reporter: strip only hostname/port (fbbeccf), closes #2209
  • reporters: cannot read property map of undefined (305df2c), closes #1662
  • reporters: Fix results not being reported (6303566)
  • reporters: Revert the backwards-incompatible log priority order changes (316b944), closes #2582
  • reporters: Throwing error without loosing stack trace (8a515ae)
  • runner: Fix typo in CSS class name for .idle (fc5a7ce)
  • runner: Make process kill timeout configurable (ffaa054), closes #2447
  • runner: Make process kill timeout configurable - Fix Build (a128e5c), closes #2447
  • runner: Merge config.client.args with client.args provided by run (91de383), closes #1746
  • runner: Remove null characters from terminal output (3481500), closes #1343
  • runner: Test process kill timeout config (99a1d48), closes #2447
  • runner: Wait for file list refresh to finish before running (94cddc0)
  • server: check available port before start server (fix #1476, fix #3011) (a19b8d4)
  • server: complete acknowledgment (f4144b0)
  • server: exit with code 1 when failing due to missing browser (86e2ef2), closes #2403
  • server: Force clients disconnect on Windows (28239f4), closes #1109
  • server: Handle new socket.io internal format. (3ab78d6), closes #1782
  • server: log browser messages to the terminal (d1f924c), closes #2187
  • server: Remove Socket.IO listeners (c3f05ef), closes #2980
  • server: Start webserver and browsers after preprocessing completed (e0d2d23)
  • server: switch to sync write (6ec74ee)
  • server: Update timers for limited execution environments (9cfc1cd), closes #1519
  • socket.io: Force 0.9.16 which works with Chrome (840ee5f)
  • stringify: guard Symobl from IE (#3023) (538081c)
  • invalid characters in the headers on Node 5.6.0 (152337d)
  • test: locale in Expire header (db04cf0), closes #1741
  • test: update bundleResource test timeout (#3038) (d6060d4)
  • travis_ci: converted node versions as string (25ee6fc)
  • filter browser logging by level of LOG (89a7a1c), closes #2228
  • updater: Fix time unit on screen display from 'ms' to 'seconds'. (f39dd04)
  • a missed argument in a debug message (#3009) (af8c6e4)
  • Add crossorigin attribute to script HTML tags (5690ffe)
  • add emscripten memory image as binary suffix (f6b2b56)
  • call .resume to prevent browser output streams filling up (107cd02)
  • catch exceptions from SourceMapConsumer (5d42e64)
  • Change timing on test (0cb6204)
  • ignore jsVersion configuration property in Firefox 59+ (2694d54), closes #2957
  • make window.parent.karma available in debugged context (3e7eaeb)
  • Merge config child nodes on config.set() (65b688a), closes karma-runner/grunt-karma#165 karma-runner/grunt-karma#166
  • Remove inadvertently added dependency to mock-fs (ad5f6b5)
  • remove support of jsVersion configuration property (#3002) (2bb4e36), closes #2911
  • restore backward compatibility for [email protected] (648b357)
  • Safeguard IE against console.log (0b5ff8f), closes #1209
  • Setting default value for config in runner and stopper (414db89)
  • Switch all requires from fs to graceful-fs (1e21aaa)
  • upgrade http-proxy module for bug fixes (09c75fe)
  • Upgrade socket.io to 1.4.5 (2f51a9f)
  • UTs: Correct proxy listeners expectation (af9c84a)
  • watcher: Close file watchers on exit event (7181025)
  • watcher: handle paths on Windows (6164d86)
  • web-server: Allow karma to run in project which path contains HTML URL encoded characters. Karma fails on Jenkins when it checks out branches containing '/' as it converts it to '%2F'. Fixes errors seen on #1751, #61. (da1930f)
  • Wrap url.parse to always return an object for query property (72452e9), closes #1182
  • web-server: cache static files (eb5bd53)
  • web-server: Correctly update filesPromise on files updated (32eec8d)
  • web-server: Ensure filesPromise is always resolvable (892fa89), closes #1544
  • web-server: Restart disconnected browser in non-singleRun mode. (f6587dc)
  • web-server: Update config on every request (8ef475f), closes #1972

Code Refactoring

  • context: Future-proofed context.html and debug.html for modularity (43f6a1a), closes #1984

Features

  • Add stopper to the public API (3d4fa00)
  • add an option to run the tests by dynamically loading test scripts without iframe (aa42c41)
  • Add engine support for iojs@3. (eb1c8d2)
  • Add possibility to stop a karma server (66ae80b)
  • add support for node 6 (0b8dc2c)
  • add support for node@7 (eb407ab), closes #2559
  • adding support for before middleware (51b4206)
  • Allow custom browser names (60ba85f)
  • allow frameworks to add preprocessors (f6f5eec)
  • Allow frameworks to inject middleware (d972f3d)
  • better string representation of errors (c9e1ca9)
  • deprecate helper._ (5c6b151), closes #1812
  • Do not fail on empty test suite (8004763), closes #926
  • drop core-js and babel where possible (60dfc5c)
  • Fail on launcher-, reporter-, plugin-, or preprocessor-load errors. (fca930e), closes #855
  • serve ePub as binary files (82ed0c6)
  • api: add constants to the public api (ee10977), closes #2361
  • api: expose config.parseConfig on the public api (7d2c1ae)
  • browser: add browser_info event (09ac7d7), closes #2192
  • browser: Emit a browser error when a disconnect occurs. (e36ba6c)
  • ci: disable testing of node versions below 4 (ec92ea9)
  • cli: Add .config/karma.conf.js to the default lookup path (49bf1aa), closes #1387
  • cli: Better CLI args validation (73d31c2), closes #603
  • cli: Warn on commands with underscores. (0801a7f)
  • client: capture confirm & prompt (3a618b3), closes #694
  • client: log global error stack trace (523d608), closes #2812
  • config: Add forceJSONP option (8627d67)
  • config: Add a clearContext config to prevent clearing of context. (5fc8ee7)
  • config: Add configuration for adding javascript version. (0239c75), closes #1719
  • config: add nocache option for file patterns (6ef7e7b)
  • config: add restartOnFileChange option (1082f35)
  • config: add support for TypeScript (6445310)
  • config: allow config to be a default export (9976dce)
  • config: Allow custom context and debug files, with feature test and some specs. (225c0e5)
  • config: allow to use newer versions of CoffeeScript (c1fcf42)
  • config: mime config option support (d562383), closes #1735
  • config: Pass CLI arguments to karma.config.js. (70cf903), closes #1561
  • config: remove polling usage (b0f41c7), closes #2669
  • deps: add support for node@8 (ea32194), closes #2754
  • deps: add support for node@8 (7feaee3), closes #2754
  • deps: update socket.io to 1.7.4 to avoid issue with [email protected] (264442b), closes #2593
  • file-list: Upgrade bluebird to v.3 (f5c252f)
  • file-list: Use glob.sync for better speed (1b65cde)
  • grunt: run check_clean before starting release. (#2978) (a3ff6c8)
  • init: install coffee-script automatically (e876db6), closes #1152
  • launcher: Add concurrency limit (1741deb), closes #1465
  • launcher: Enable specification of retry-limit (cc5547c), closes #1126
  • launcher: output stderr for failing launchers (7d33398)
  • launcher: trim whitespace in browser name (334f9fb)
  • launcher: trim whitespace in browser name (871d46f)
  • logger: Add date/time stamp to log output (4a59443)
  • logger: Add date/time stamp to log output (a4b5cdd)
  • logging: Add colors and log-level options to run-command (9d4e234), closes #1067
  • logging: Add colors and log-level options to run-command (2d29165), closes #1067
  • logging: Add logging-setup function (d14bd62)
  • logging: Send color option to server (486c4f3), closes #1067
  • logging: Send color option to server (287d0db), closes #1067
  • middleware: added manual file type option (0330cd1), closes #2824
  • preprocessor: add 'mp3' and 'ogg' as binary formats to avoid media corruption in the browser. (65a0767)
  • preprocessor: Capital letters in binary files extenstions (1688689), closes #1508
  • preprocessor: Instantiate preprocessors early to avoid race conditions (8a9c8c7)
  • preprocessors: if a file matches multiple preprocessor patterns, intelligently merge the list of preprocessors, deduping and trying to preserve the order (59642a6)
  • proxy: add proxy events to config (f5d99fb)
  • proxy: Allow proxies configuration to be an object (ad94356)
  • proxy: Allow to configure changeOrigin option of http-proxy (ae05ea4), closes #1729
  • reporter: add config formatError function (98a4fbf), closes #2119
  • reporter: cache SourceMapConsumer (fe6ed7e)
  • reporter: improve source map handling and reporting. (cf0be47)
  • reporter: Replace way-too-big memoizee with a trivial solution. (58340b1)
  • reporter: Replace way-too-big memoizee with a trivial solution. (d926fe3)
  • reporters: Look for color-reporter (fd9262d)
  • runner: Buffer stdout and stderr for output when errors occur (460d423), closes karma-runner/karma#2663
  • runner: provide error code on 'ECONNREFUSED' callback (439bddb)
  • runner: serve context in JSON format for JS-only environments (189feff)
  • runner: Use favicon in static runner pages (6cded4f)
  • server: add 'listening' event with port number (82cd0df)
  • server: add listen address option so that IPv6 and loopback interfaces can be used (8e5bee6), closes #2477
  • server: Add public api to force a file list refresh. (b3c462a)
  • server: improve public api (82cbbad), closes #1037 #1482 #1467
  • static: Support media queries (94e7b50)
  • stopper: Enable programically detached server (f10fd81)
  • watcher: Allow using braces in watcher (e046379), closes #1249
  • watcher: Debounce autoWatchBatchDelay (2f8c049), closes #2331
  • web-server: add support for custom headers in files served (4301bea)
  • web-server: allow injection of custom middleware. (2e963c3), closes #1612
  • update of supported node versions (e79463b)
  • upgrade dependencies to their latest versions (08242a0)
  • web-server: allow overriding of default http module (1e7514d), closes #2424
  • web-server: Allow Range headers in web server. (a567b6f), closes #2140
  • web-server: Allow running on https (1696c78)
  • Upgrade to socket.io 1.3 (603872c), closes #1257 #1258 #1220
  • upstreamProxy config option to deal with proxies that adjust the base path, etc (55755e4)
  • web-server: Serve all files under urlRoot (1319b32)
  • web-server: Use isbinaryfile for binary file detection (f938a8e), closes #1070

Reverts

  • "Merge pull request #1791 from budde377/feature-adding-no-colors-to-run-command" (96ebdc4), closes #1894 #1895

BREAKING CHANGES

  • context: Our context.html and debug.html structures have changed to lean on context.js and debug.js.
  • server: The public api interface has changed to a constructor form. To upgrade
    change
var server = require(‘karma’).server
server.start(config, done)

to

var Server = require(‘karma’).Server
var server = new Server(config, done)
server.start()
Commits

The new version differs by 55 commits.

  • 333e7d4 chore: release v2.0.3
  • e0377d0 chore: update contributors
  • a32ba27 refactor(server): Provide file-service handlers in the root injector. (#3042)
  • c1eb236 fix(BaseReporter): log message correctly with just one browser (#3045)
  • a19b8d4 fix(server): check available port before start server (fix #1476, fix #3011)
  • 05dd09a fix(config): Log the final config just before use. (#3041)
  • 0dc8ea4 refactor: unify style of functions declarations
  • 5272aa3 refactor(web-server): refactor lib/web-server to be more ES6 (#3034)
  • f47d901 refactor(middleware): update lib/middleware/source_files to ES6
  • d6060d4 fix(test): update bundleResource test timeout (#3038)
  • 558e2f0 refactor: update lib/plugin.js to ES6 (#3036)
  • e8ca4ec refactor: update lib/runner to ES6 (#3033)
  • 011a90c refactor(server): refactor bundleResource in lib/server.js (#3029)
  • c1a9567 refactor(middleware): update middleware/common to ES6 (#3028)
  • 31d9a08 fix(flaky-test): Add time to beforeEach() to allow plugins to load on first pass. (#3025)

There are 55 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of jsdom is breaking the build 🚨

☝️ Greenkeeper’s updated Terms of Service will come into effect on April 6th, 2018.

Version 11.7.0 of jsdom was just published.

Branch Build failing 🚨
Dependency jsdom
Current Version 11.6.2
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

jsdom is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

Commits

The new version differs by 15 commits.

  • 1e5bbd2 Version 11.7.0
  • 8767d9f Note that FileAPI/historical.https.html needs async/await
  • 7f41ae5 Return boolean from DOMTokenList.replace()
  • 8ad6b17 Convert several of XHR open()'s arguments to strings
  • 5e86716 Implement FileReader.readAsBinaryString()
  • d80648f Set abort event isTrusted to true
  • c91440a Update web platform tests
  • a38c181 Cross-reference external script loading from script execution docs
  • 70ec93b Add README entry about jsdom-devtools-formatter
  • c520198 Implement requestAnimationFrame using performance.now
  • dc672a2 Fix removing an 's src="" attribute
  • d563965 Use whatwg-mimetype and data-urls packages
  • 830a6fd Fix event handlers to be own properties of each Window
  • a0b7f8a Remove no-longer-used field from HTMLStyleElementImpl
  • 475a7cd Omit *.webidl from the published package

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of chokidar is breaking the build 🚨

Version 2.0.4 of chokidar was just published.

Branch Build failing 🚨
Dependency [chokidar](https://github.com/paulmillr/chokidar)
Current Version 2.0.3
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

chokidar is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

Commits

The new version differs by 23 commits.

  • 3ad1ae8 Release 2.0.4.
  • 9ac1ffd Merge pull request #732 from srguiwiz/fix-issue-730-better
  • 2a2bcf2 Use rimraf in test to remove nested directories
  • 607ab31 Prevent watcher.close() crashing - fix Issue #730
  • f0ffb1d Merge pull request #723 from srguiwiz/fix-issue-552
  • 260bd29 Better demonstrate timing differences
  • a291610 Fix details in tests
  • bedf196 Add test cases for pull request #723
  • e2b720c Fix fast adding missing files issue #552
  • 28a70c4 Undo conflicting pull request #690
  • 5261384 Merge pull request #719 from ehmicky/master
  • a3316f7 Fix coveralls with nyc
  • 0122f3b Upgrade .gitignore
  • 03b6de4 Merge npm test and npm ci-test
  • be9a1d7 Replace istanbul by nyc

There are 23 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of eslint is breaking the build 🚨

☝️ Greenkeeper’s updated Terms of Service will come into effect on April 6th, 2018.

Version 4.19.1 of eslint was just published.

Branch Build failing 🚨
Dependency eslint
Current Version 4.19.0
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

eslint is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

Release Notes v4.19.1
  • 3ff5d11 Fix: no-invalid-regexp not understand variable for flags (fixes #10112) (#10113) (薛定谔的猫)
  • abc765c Fix: object-curly-newline minProperties w/default export (fixes #10101) (#10103) (Kevin Partington)
  • 6f9e155 Docs: Update ambiguous for...in example for guard-for-in (#10114) (CJ R)
  • 0360cc2 Chore: Adding debug logs on successful plugin loads (#10100) (Kevin Partington)
  • a717c5d Chore: Adding log at beginning of unit tests in Makefile.js (#10102) (Kevin Partington)
Commits

The new version differs by 7 commits.

  • f1f1bdf 4.19.1
  • b446650 Build: changelog update for 4.19.1
  • 3ff5d11 Fix: no-invalid-regexp not understand variable for flags (fixes #10112) (#10113)
  • abc765c Fix: object-curly-newline minProperties w/default export (fixes #10101) (#10103)
  • 6f9e155 Docs: Update ambiguous for...in example for guard-for-in (#10114)
  • 0360cc2 Chore: Adding debug logs on successful plugin loads (#10100)
  • a717c5d Chore: Adding log at beginning of unit tests in Makefile.js (#10102)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of karma is breaking the build 🚨

The devDependency karma was updated from 3.1.1 to 3.1.2.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

karma is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for v3.1.2

Bug Fixes

Features

Commits

The new version differs by 11 commits.

  • 7d4d347 chore: release v3.1.2
  • 5077c18 chore: update contributors
  • fb05fb1 fix(server): use flatted for json.stringify (#3220)
  • 2682bff feat(docs): callout the key debug strategies. (#3219)
  • 4e87902 fix(changelog): remove release which does not exist (#3214)
  • 30ff73b fix(browser): report errors to console during singleRun=false (#3209)
  • 5334d1a fix(file-list): do not preprocess up-to-date files (#3196)
  • dc5f5de fix(deps): upgrade sinon-chai 2.x -> 3.x (#3207)
  • d38f344 fix(package): bump lodash version (#3203)
  • ffb41f9 refactor(browser): log state transitions in debug (#3202)
  • 240209f fix(dep): Bump useragent to fix HeadlessChrome version (#3201)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of chokidar is breaking the build 🚨

☝️ Greenkeeper’s updated Terms of Service will come into effect on April 6th, 2018.

Version 2.0.3 of chokidar was just published.

Branch Build failing 🚨
Dependency chokidar
Current Version 2.0.2
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

chokidar is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

Commits

The new version differs by 7 commits.

  • 925b534 Release 2.0.3.
  • 545e16f Merge pull request #695 from clmystes/patch-1
  • 3fdb7bd chore: upgrade to fsevents: ^1.1.2
  • dac69b6 Merge pull request #687 from BridgeAR/fix-no-callback
  • df88ff0 Add callbacks to fs.close
  • a95a1f8 Merge pull request #682 from caseywebdev/unlink-and-readd
  • c821fab Add failing test case for unlink and re-add

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Version 10 of node.js has been released

Version 10 of Node.js (code name Dubnium) has been released! 🎊

To see what happens to your code in Node.js 10, Greenkeeper has created a branch with the following changes:

  • Added the new Node.js version to your .travis.yml

If you’re interested in upgrading this repo to Node.js 10, you can open a PR with these changes. Please note that this issue is just intended as a friendly reminder and the PR as a possible starting point for getting your code running on Node.js 10.

More information on this issue

Greenkeeper has checked the engines key in any package.json file, the .nvmrc file, and the .travis.yml file, if present.

  • engines was only updated if it defined a single version, not a range.
  • .nvmrc was updated to Node.js 10
  • .travis.yml was only changed if there was a root-level node_js that didn’t already include Node.js 10, such as node or lts/*. In this case, the new version was appended to the list. We didn’t touch job or matrix configurations because these tend to be quite specific and complex, and it’s difficult to infer what the intentions were.

For many simpler .travis.yml configurations, this PR should suffice as-is, but depending on what you’re doing it may require additional work or may not be applicable at all. We’re also aware that you may have good reasons to not update to Node.js 10, which is why this was sent as an issue and not a pull request. Feel free to delete it without comment, I’m a humble robot and won’t feel rejected 🤖


FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of uglify-js is breaking the build 🚨

☝️ Greenkeeper’s updated Terms of Service will come into effect on April 6th, 2018.

Version 3.3.15 of uglify-js was just published.

Branch Build failing 🚨
Dependency uglify-js
Current Version 3.3.14
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

uglify-js is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

Release Notes v3.3.15

 

Commits

The new version differs by 6 commits.

  • 90585e2 v3.3.15
  • d8fc281 update dependencies (#3002)
  • 188c39e retain comments within brackets (#2999)
  • 5429234 preserve non-constant value assignments with modifications (#2997)
  • b9f72a4 handle case correctly under reduce_vars (#2993)
  • fc6ebd0 preserve case when inline_script (#2991)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of jsdom is breaking the build 🚨

Version 11.12.0 of jsdom was just published.

Branch Build failing 🚨
Dependency jsdom
Current Version 11.11.0
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

jsdom is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Commits

The new version differs by 22 commits.

  • 4d26c67 Version 11.12.0
  • d6688e5 Implement Element.prototype.closest()
  • 9191218 Upgrade NWSAPI to v2.0.7
  • 500a209 Change storageQuota to operate on code units, not bytes
  • 23d67eb Add the storageQuota option
  • b4db242 Remove unused form-data-symbols.js file
  • 70fd739 Fix a few entries in the changelog
  • eae1062 Upgrades cssstyle dependency to ^1.0.0
  • 022c204 Update hosts in Travis configuration
  • 2761d3c HashChangeEvent and PopStateEvent should no longer bubble
  • f1270e7 Roll Web Platform Tests
  • d6f8a97 Enable Blob-slice.html test in Node.js v10
  • 3afbc0f Implement Web storage - localStorage, sessionStorage, StorageEvent
  • 7b4db76 Handle Node.js v6 timeout in execution-timing tests
  • a5a7785 Run failing tests to confirm their status

There are 22 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of mocha is breaking the build 🚨

Version 3.4.0 of mocha just got published.

Branch Build failing 🚨
Dependency mocha
Current Version 3.3.0
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

As mocha is “only” a devDependency of this project it might not break production or downstream projects, but “only” your build or test tools – preventing new deploys or publishes.

I recommend you give this issue a high priority. I’m sure you can resolve this 💪

Status Details
  • continuous-integration/travis-ci/push The Travis CI build passed Details,- ❌ continuous-integration/travis-ci/pr The Travis CI build could not complete due to an error Details

Release Notes v3.4.0

Mocha is now moving to a quicker release schedule: when non-breaking changes are merged, a release should happen that week.

This week's highlights:

  • allowUncaught added to commandline as --allow-uncaught (and bugfixed)
  • warning-related Node flags

🎉 Enhancements

🐛 Fixes

🔩 Other

Commits

The new version differs by 9 commits0.

  • 7554b31 Add Changelog for v3.4.0
  • 9f7f7ed Add --trace-warnings flag
  • 92561c8 Add --no-warnings flag
  • ceee976 lint test/integration/fixtures/simple-reporter.js
  • dcfc094 Revert "use semistandard directly"
  • 93392dd no special case for macOS running Karma locally
  • 4d1d91d --allow-uncaught cli option
  • fb1e083 fix allowUncaught in browser
  • 4ed3fc5 Add license report and scan status

false

See the full diff

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

An in-range update of rollup-plugin-babel is breaking the build 🚨

Version 3.0.5 of rollup-plugin-babel was just published.

Branch Build failing 🚨
Dependency [rollup-plugin-babel](https://github.com/rollup/rollup-plugin-babel)
Current Version 3.0.4
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

rollup-plugin-babel is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

Commits

The new version differs by 2 commits.

  • c318f09 3.0.5
  • 9af19a7 Cache preflight check results per plugin's instance

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of eslint is breaking the build 🚨

The devDependency eslint was updated from 5.12.1 to 5.13.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

eslint is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for v5.13.0
  • 91c8884 Chore: use local function to append "s" instead of a package (#11293) (Timo Tijhof)
  • b5143bf Update: for-direction detection false positives/negatives (#11254) (Ruben Bridgewater)
  • 9005e63 Chore: increase camelcase test coverage (#11299) (Redmond Tran)
  • 5b14ad1 Fix: false positive in no-constant-condition (fixes #11306) (#11308) (Pig Fang)
  • 6567c4f Fix: only remove arrow before body in object-shorthand (fixes #11305) (#11307) (Pig Fang)
  • fa2f370 Docs: update rule configuration values in examples (#11323) (Kai Cataldo)
  • 0a3c3ff New: Allow globals to be disabled/configured with strings (fixes #9940) (#11338) (Teddy Katz)
  • dccee63 Chore: avoid hard-coding the list of core rules in eslint:recommended (#11336) (Teddy Katz)
  • c1fd6f5 Chore: remove undocumented Linter#rules property (refs #9161) (#11335) (Teddy Katz)
  • 36e3356 Chore: remove dead code for loading rules (#11334) (Teddy Katz)
  • c464e27 Docs: Rename result -> foo (#11210) (Alexis Tyler)
Commits

The new version differs by 13 commits.

  • 4b267a5 5.13.0
  • 720dce1 Build: changelog update for 5.13.0
  • 91c8884 Chore: use local function to append "s" instead of a package (#11293)
  • b5143bf Update: for-direction detection false positives/negatives (#11254)
  • 9005e63 Chore: increase camelcase test coverage (#11299)
  • 5b14ad1 Fix: false positive in no-constant-condition (fixes #11306) (#11308)
  • 6567c4f Fix: only remove arrow before body in object-shorthand (fixes #11305) (#11307)
  • fa2f370 Docs: update rule configuration values in examples (#11323)
  • 0a3c3ff New: Allow globals to be disabled/configured with strings (fixes #9940) (#11338)
  • dccee63 Chore: avoid hard-coding the list of core rules in eslint:recommended (#11336)
  • c1fd6f5 Chore: remove undocumented Linter#rules property (refs #9161) (#11335)
  • 36e3356 Chore: remove dead code for loading rules (#11334)
  • c464e27 Docs: Rename result -> foo (#11210)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

embed.loadFlatScore not loading after initial new Flat.Embed call

I am trying out flatIO js embed for the first time and created a few simple tests on my localhost. I'm running python -m http.server to start the webserver locally.

The code I'm executing is as follows:

var container = document.getElementById('embed-container');
var embed = new Flat.Embed(container, {
  embedParams: {
    appId: '<appId>'
  }
});

embed.loadFlatScore('56ae21579a127715a02901a6');

Also, I had to use a personal token instead of appId to get anything to work at all. I'm not sure why that is. If I load the score during new Flat.Embed, it loads up fine. But, if I do it after, it doesn't work. In fact, any commands I perform on embed after the initial creation do not work. I tried loading music xml, flat score, fullscreen, etc.

I have an appId and personal token.

In the console of the browser (I've tried Chrome and Safari) I see the following:

[Error] Failed to load resource: the server responded with a status of 403 (HTTP/2.0 403) (vendor.embed.min.js.map, line 0)
[Error] Failed to load resource: the server responded with a status of 403 (HTTP/2.0 403) (raven.min.js.map, line 0)
[Error] Failed to load resource: the server responded with a status of 403 (HTTP/2.0 403) (adagio.min.js.map, line 0)
[Error] Failed to load resource: the server responded with a status of 403 (HTTP/2.0 403) (dacapo.min.js.map, line 0)
[Error] Failed to load resource: the server responded with a status of 403 (HTTP/2.0 403) (flat.common.min.js.map, line 0)
[Error] Failed to load resource: the server responded with a status of 403 (HTTP/2.0 403) (flat.embed.min.js.map, line 0)
[Error] Failed to load resource: the server responded with a status of 403 (HTTP/2.0 403) (flat.embed.jsapi.min.js.map, line 0)

An in-range update of mocha is breaking the build 🚨

☝️ Greenkeeper’s updated Terms of Service will come into effect on April 6th, 2018.

Version 5.0.5 of mocha was just published.

Branch Build failing 🚨
Dependency mocha
Current Version 5.0.4
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

mocha is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

Release Notes v5.0.5

5.0.5 / 2018-03-22

Welcome @outsideris to the team!

🐛 Fixes

📖 Documentation

🔩 Other

Commits

The new version differs by 18 commits.

  • c11e1e2 Release v5.0.5
  • b5a556e add changes for v5.0.5 [ci skip]
  • 424ef84 increase default timeout for browser unit tests
  • 19104e3 fix debug msg in Runnable#slow; closes #2952
  • f4275b6 extract checking AMD bundle as own test
  • 19b764d Addressed feedback
  • 2c19503 Fixed linting
  • ab84f02 chore(docs): rewording pending tests
  • 6383916 fix to bail option works properly with hooks (#3278)
  • 0060884 keep hierarchy for skipped suites w/o a callback
  • 39df783 docs: Fix typo in an emoji
  • 27af2cf fix(changelog): update links to some PRs
  • d76f490 chore(ci): Remove PHANTOMJS_CDNURL, nit
  • 86af6bb fix my carelessness in e19e879
  • e19e879 ensure lib/mocha.js is not ignored by ESLint

There are 18 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of rollup-plugin-node-resolve is breaking the build 🚨

Version 3.4.0 of rollup-plugin-node-resolve was just published.

Branch Build failing 🚨
Dependency rollup-plugin-node-resolve
Current Version 3.3.0
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

rollup-plugin-node-resolve is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes v3.4.0 / 2018-09-04

This release now supports .mjs files by default

Features

Commits

The new version differs by 5 commits.

  • 341037a 3.4.0
  • 05bd0ef Merge pull request #174 from rollup/refactor-promisify-resolveid-for-less-promise-boilerplate
  • 90423f6 refactor: promisify resolveId for less Promise boilerplate
  • 74f2e41 Merge pull request #151 from leebyron/fix-extensions
  • f711ab2 Support .mjs files by default.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of uglify-js is breaking the build 🚨

Version 3.2.0 of uglify-js was just published.

Branch Build failing 🚨
Dependency uglify-js
Current Version 3.1.10
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

uglify-js is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

Release Notes v3.2.0

 

Commits

The new version differs by 10 commits.

  • b37a68c v3.2.0
  • c141ae6 fix argument/atom collision by properties (#2514)
  • 97c464d fix wording and formatting (#2512)
  • 3b28b91 extend escape analysis on constant expression properties (#2509)
  • eb001dc fix argument/atom collision by collapse_vars (#2507)
  • aa9bdf4 make AST_Lambda.contains_this() less magical (#2505)
  • 8987780 eliminate invalid state caching in collapse_vars (#2502)
  • 30cfea2 fix rename (#2501)
  • f4e2fb9 expand symbol space to improve compression (#2460)
  • b80062c enable hoist_props by default (#2492)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of jsdom is breaking the build 🚨

Version 11.5.0 of jsdom was just published.

Branch Build failing 🚨
Dependency jsdom
Current Version 11.4.0
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

jsdom is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of eslint is breaking the build 🚨

The devDependency eslint was updated from 5.14.0 to 5.14.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

eslint is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for v5.14.1
  • 1d6e639 Fix: sort-keys throws Error at SpreadElement (fixes #11402) (#11403) (Krist Wongsuphasawat)
Commits

The new version differs by 3 commits.

  • b2e94d8 5.14.1
  • ce129ed Build: changelog update for 5.14.1
  • 1d6e639 Fix: sort-keys throws Error at SpreadElement (fixes #11402) (#11403)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of karma is breaking the build 🚨

Version 2.0.2 of karma was just published.

Branch Build failing 🚨
Dependency karma
Current Version 2.0.0
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

karma is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

Release Notes v2.0.2

Bug Fixes

  • package.json: sinon-chai 2.13 is not compatible with sinon 4.x (#2977) (e095b05)
Commits

The new version differs by 31 commits.

  • dae189d chore: release v2.0.2
  • e095b05 fix(package.json): sinon-chai 2.13 is not compatible with sinon 4.x (#2977)
  • 446c1f3 chore: release v2.0.1
  • 25fdf3e chore: update contributors
  • 2270abb Merge pull request #2948 from devoto13/es2015
  • 0e6d46c refactor: migrate EmitterWrapped to ES2015
  • 9b472c4 refactor: migrate misc files to ES2015
  • 75ec567 refactor: migrate config to ES2015
  • a1f4716 refactor: migrate complection to ES2015
  • aeb4541 refactor: migrate cli to ES2015
  • 33b1078 refactor: migrate BrowserResult class to ES2015
  • 5809653 refactor: migrate BrowserCollection class to ES2015
  • bb012e2 refactor: migrate Browser class to ES2015
  • 6c92019 refactor: subscribe to socket events explicitly
  • 2694d54 fix: ignore jsVersion configuration property in Firefox 59+

There are 31 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of chokidar is breaking the build 🚨

Version 2.0.1 of chokidar was just published.

Branch Build failing 🚨
Dependency chokidar
Current Version 2.0.0
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

chokidar is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

Commits

The new version differs by 7 commits.

  • 560cbb9 Release 2.0.1
  • 5e0710e Merge pull request #678 from Lambdac0re/patch-1
  • 0b661d0 Update README.md
  • d1bac5b Merge pull request #644 from dsagal/uncaught_fix
  • d26c6e0 Merge pull request #669 from remy/master
  • 966c300 Fix windows ignore when using anymatch@2
  • 075f13f Fix uncaught exception "Cannot read property 'lastChange' of undefined".

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of uglify-js is breaking the build 🚨

☝️ Greenkeeper’s updated Terms of Service will come into effect on April 6th, 2018.

Version 3.3.17 of uglify-js was just published.

Branch Build failing 🚨
Dependency uglify-js
Current Version 3.3.16
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

uglify-js is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

Release Notes v3.3.17

 

Commits

The new version differs by 11 commits.

  • 6982a05 v3.3.17
  • fa32501 mangle unused nested AST_SymbolCatch correctly (#3038)
  • 06b9894 handle modifications to this correctly (#3036)
  • 9f9db50 improve test for #3023 (#3031)
  • 82ae95c improve source map granularity (#3030)
  • 9a5e205 fix extra regex slash when going through mozilla AST I/O (#3025)
  • b1410be speed up has_parens() (#3014)
  • 12985d8 fix corner case in hoist_props (#3022)
  • 49bfc6b improve performance (#3020)
  • d1c6bb8 fix nested inline within loop (#3019)
  • 5c16961 fix corner case in inline (#3017)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of chokidar is breaking the build 🚨

The devDependency chokidar was updated from 2.0.4 to 2.1.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

chokidar is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Commits

The new version differs by 32 commits.

There are 32 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of eslint is breaking the build 🚨

Version 4.12.0 of eslint was just published.

Branch Build failing 🚨
Dependency eslint
Current Version 4.11.0
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

eslint is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

Release Notes v4.12.0
  • 76dab18 Upgrade: doctrine@^2.0.2 (#9656) (Kevin Partington)
  • 28c9c8e New: add a Linter#defineParser function (#9321) (Ives van Hoorne)
  • 5619910 Update: Add autofix for sort-vars (#9496) (Trevin Hofmann)
  • 71eedbf Update: add beforeStatementContinuationChars to semi (fixes #9521) (#9594) (Toru Nagashima)
  • 4118f14 New: Adds implicit-arrow-linebreak rule (refs #9510) (#9629) (Sharmila Jesupaul)
  • 208fb0f Fix: Use XML 1.1 on XML formatters (fixes #9607) (#9608) (Daniel Reigada)
  • 6e04f14 Upgrade: globals to 11.0.1 (fixes #9614) (#9632) (Toru Nagashima)
  • e13d439 Fix: space-in-parens crash (#9655) (Toru Nagashima)
  • 92171cc Docs: Updating migration guide for single-line disable (#9385) (Justin Helmer)
  • f39ffe7 Docs: remove extra punctuation from readme (#9640) (Teddy Katz)
  • a015234 Fix: prefer-destructuring false positive on "super" (fixes #9625) (#9626) (Kei Ito)
  • 0cf081e Update: add importNames option to no-restricted-imports (#9506) (Benjamin R Gibson)
  • 332c214 Docs: Add @platinumazure to TSC (#9618) (Ilya Volodin)
Commits

The new version differs by 15 commits.

  • f4a65c6 4.12.0
  • 1cd1627 Build: changelog update for 4.12.0
  • 76dab18 Upgrade: doctrine@^2.0.2 (#9656)
  • 28c9c8e New: add a Linter#defineParser function (#9321)
  • 5619910 Update: Add autofix for sort-vars (#9496)
  • 71eedbf Update: add beforeStatementContinuationChars to semi (fixes #9521) (#9594)
  • 4118f14 New: Adds implicit-arrow-linebreak rule (refs #9510) (#9629)
  • 208fb0f Fix: Use XML 1.1 on XML formatters (fixes #9607) (#9608)
  • 6e04f14 Upgrade: globals to 11.0.1 (fixes #9614) (#9632)
  • e13d439 Fix: space-in-parens crash (#9655)
  • 92171cc Docs: Updating migration guide for single-line disable (#9385)
  • f39ffe7 Docs: remove extra punctuation from readme (#9640)
  • a015234 Fix: prefer-destructuring false positive on "super" (fixes #9625) (#9626)
  • 0cf081e Update: add importNames option to no-restricted-imports (#9506)
  • 332c214 Docs: Add @platinumazure to TSC (#9618)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of rollup is breaking the build 🚨

The devDependency rollup was updated from 1.1.2 to 1.2.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

rollup is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Commits

The new version differs by 17 commits.

  • 60e8df2 1.2.0
  • 56ff3e3 Update changelog
  • 19a7727 Reimplement variable deconflicting logic (#2689)
  • fe84e00 Update changelog
  • db42a04 Prevent final resolution and facade creation for inlined dynamic imports (#2677)
  • 4d082b0 Respect rendered exports when generating chunk hashes (#2695)
  • 14a17af Correctly render function expression inside simplified expression statements. (#2696)
  • 0a46310 Add a fix for MaxListenersExceededWarning (#2700)
  • 1454b90 Update rollup-pluginutils (#2703)
  • d883243 Update changelog
  • f8faa4b Allow config files to contain non-default exports (#2673)
  • d6a865e Update changelog
  • 1ae20fc Improve type of RollupOutput.output (#2679)
  • 7f79ab1 Update changelog
  • c702f3a Fix typo in export-globals test (#2693)

There are 17 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of uglify-js is breaking the build 🚨

Version 3.4.1 of uglify-js was just published.

Branch Build failing 🚨
Dependency [uglify-js](https://github.com/mishoo/UglifyJS2)
Current Version 3.4.0
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

uglify-js is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push The Travis CI build failed Details

Release Notes v3.4.1

 

Commits

The new version differs by 3 commits.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of rollup is breaking the build 🚨

The devDependency rollup was updated from 0.67.1 to 0.67.2.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

rollup is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Commits

The new version differs by 3 commits.

  • fe92d1f 0.67.2
  • ed22964 Update changelog
  • dbd2e47 Fix crash when returning undefined sourcemaps from renderChunk hook (#2558)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.