Comparing version 2.0.2-beta to 2.0.3
@@ -133,3 +133,3 @@ "use strict"; | ||
expect(messageStore.state.messages).to.be.undefined; | ||
expect(messageStore.state).to.deep.equal({}); | ||
@@ -143,2 +143,2 @@ messageActions.newMessage("Hello, world!"); | ||
}); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9fX3Rlc3RzX18vZXhhbXBsZUZsdXgtdGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7b0JBRXdDLFNBQVM7O0lBQXhDLE9BQU8sU0FBUCxPQUFPO0lBQUUsS0FBSyxTQUFMLEtBQUs7SUFBRSxPQUFPLFNBQVAsT0FBTzs7O0FBRWhDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBTTs7OztBQUsxQixVQUFRLENBQUMsVUFBVSxFQUFFLFlBQU07Ozs7Ozs7OztRQVVuQixjQUFjLGNBQVMsT0FBTztlQUE5QixjQUFjO3dDQUFkLGNBQWM7c0NBQWQsY0FBYzs7OzsyQkFBZCxjQUFjLEVBQVMsT0FBTzs7c0NBQTlCLGNBQWM7QUFDbEIsa0JBQVU7aUJBQUEsb0JBQUMsT0FBTyxFQUFFOztBQUdsQixtQkFBTyxPQUFPLENBQUM7V0FDaEI7Ozs7OzthQUxHLGNBQWM7T0FBUyxPQUFPOzs7Ozs7Ozs7Ozs7Ozs7OztRQXVCOUIsWUFBWSxjQUFTLEtBQUs7OztBQUluQixlQUpQLFlBQVksQ0FJSixJQUFJLEVBQUU7O0FBR2hCLG9EQVBFLFlBQVksNkNBT047O0FBRVIsWUFBSSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3JELFlBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ2xFLFlBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO09BQ3pCOzsyQkFaRyxZQUFZLEVBQVMsS0FBSzs7c0NBQTFCLFlBQVk7QUFjaEIsd0JBQWdCO2lCQUFBLDBCQUFDLE9BQU8sRUFBRTtBQUN4QixnQkFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDOztBQUUvQixnQkFBSSxDQUFDLFFBQVEsZ0NBQ1YsRUFBRSxFQUFHO0FBQ0oscUJBQU8sRUFBUCxPQUFPO0FBQ1AsZ0JBQUUsRUFBRixFQUFFLEVBQ0gsRUFDRCxDQUFDO1dBQ0o7Ozs7OzthQXZCRyxZQUFZO09BQVMsS0FBSzs7Ozs7Ozs7O1FBK0IxQixJQUFJLGNBQVMsT0FBTztBQUNiLGVBRFAsSUFBSSxHQUNNO0FBQ1osb0RBRkUsSUFBSSw2Q0FFRTs7OztBQUlSLFlBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDOzs7O0FBSS9DLFlBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztPQUNsRDs7MkJBWEcsSUFBSSxFQUFTLE9BQU87O2FBQXBCLElBQUk7T0FBUyxPQUFPOzs7Ozs7Ozs7QUFxQjFCLE1BQUUsQ0FBQyxzQkFBc0IsRUFBRSxZQUFNO0FBQy9CLFVBQUksSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7QUFDdEIsVUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUM3QyxVQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDOztBQUVqRCxZQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzs7QUFFcEQsb0JBQWMsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDM0MsWUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssZ0NBQ3JDLENBQUMsRUFBRztBQUNILGVBQU8sRUFBRSxlQUFlO0FBQ3hCLFVBQUUsRUFBRSxDQUFDLEVBQ04sRUFDRCxDQUFDO0tBQ0osQ0FBQyxDQUFDO0dBQ0osQ0FBQyxDQUFDO0NBRUosQ0FBQyxDQUFDIiwiZmlsZSI6InNyYy9fX3Rlc3RzX18vZXhhbXBsZUZsdXgtdGVzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHsgRmx1bW1veCwgU3RvcmUsIEFjdGlvbnMgfSBmcm9tICcuLi9GbHV4JztcblxuZGVzY3JpYmUoJ0V4YW1wbGVzOicsICgpID0+IHtcblxuICAvKipcbiAgICogQSBzaW1wbGUgRmx1bW1veCBleGFtcGxlXG4gICAqL1xuICBkZXNjcmliZSgnTWVzc2FnZXMnLCAoKSA9PiB7XG5cbiAgICAvKipcbiAgICAgKiBUbyBjcmVhdGUgc29tZSBhY3Rpb25zLCBjcmVhdGUgYSBuZXcgY2xhc3MgdGhhdCBleHRlbmRzIGZyb20gdGhlIGJhc2VcbiAgICAgKiBBY3Rpb25zIGNsYXNzLiBNZXRob2RzIG9uIHRoZSBjbGFzcydzIHByb3RvdHlwZSB3aWxsIGJlIGNvbnZlcnRlZCBpbnRvXG4gICAgICogYWN0aW9ucywgZWFjaCB3aXRoIGl0cyBvd24gYWN0aW9uIGlkLlxuICAgICAqXG4gICAgICogSW4gdGhpcyBleGFtcGxlLCBjYWxsaW5nIGBuZXdNZXNzYWdlYCB3aWxsIGZpcmUgdGhlIGRpc3BhdGNoZXIsIHdpdGhcbiAgICAgKiBhIHBheWxvYWQgY29udGFpbmluZyB0aGUgcGFzc2VkIG1lc3NhZ2UgY29udGVudC4gRWFzeSFcbiAgICAgKi9cbiAgICBjbGFzcyBNZXNzYWdlQWN0aW9ucyBleHRlbmRzIEFjdGlvbnMge1xuICAgICAgbmV3TWVzc2FnZShjb250ZW50KSB7XG5cbiAgICAgICAgLy8gVGhlIHJldHVybiB2YWx1ZSBmcm9tIHRoZSBhY3Rpb24gaXMgc2VudCB0byB0aGUgZGlzcGF0Y2hlci5cbiAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTm93IHdlIG5lZWQgdG8gYSBTdG9yZSB0aGF0IHdpbGwgcmVjZWl2ZSBwYXlsb2FkcyBmcm9tIHRoZSBkaXNwYXRjaGVyXG4gICAgICogYW5kIHVwZGF0ZSBpdHNlbGYgYWNjb3JkaW5nbHkuIExpa2UgYmVmb3JlLCBjcmVhdGUgYSBuZXcgY2xhc3MgdGhhdFxuICAgICAqIGV4dGVuZHMgZnJvbSB0aGUgU3RvcmUgY2xhc3MuXG4gICAgICpcbiAgICAgKiBTdG9yZXMgYXJlIGF1dG9tYXRpY2FsbHkgcmVnaXN0ZXJlZCB3aXRoIHRoZSBkaXNwYXRjaGVyLCBidXQgcmF0aGVyIHRoYW5cbiAgICAgKiB1c2luZyBhIGdpYW50IGBzd2l0Y2hgIHN0YXRlbWVudCB0byBjaGVjayBmb3Igc3BlY2lmaWMgYWN0aW9uIHR5cGVzLCB3ZVxuICAgICAqIHJlZ2lzdGVyIGhhbmRsZXJzIHdpdGggYWN0aW9uIGlkcy5cbiAgICAgKlxuICAgICAqIFN0b3JlcyBoYXZlIGEgUmVhY3QtaW5zcGlyZWQgQVBJIGZvciBtYW5hZ2luZyBzdGF0ZS4gVXNlIGB0aGlzLnNldFN0YXRlYFxuICAgICAqIHRvIHVwZGF0ZSBzdGF0ZSB3aXRoaW4geW91ciBoYW5kbGVycy4gTXVsdGlwbGUgY2FsbHMgdG8gYHRoaXMuc2V0U3RhdGVgXG4gICAgICogd2l0aGluIHRoZSBzYW1lIGhhbmRsZXIgd2lsbCBiZSBiYXRjaGVkLiBBIGNoYW5nZSBldmVudCB3aWxsIGZpcmUgYWZ0ZXJcbiAgICAgKiB0aGUgYmF0Y2hlZCB1cGRhdGVzIGFyZSBhcHBsaWVkLiBZb3VyIHZpZXcgY29udHJvbGxlcnMgY2FuIGxpc3RlblxuICAgICAqIGZvciBjaGFuZ2UgZXZlbnRzIHVzaW5nIHRoZSBFdmVudEVtaXR0ZXIgQVBJLlxuICAgICAqL1xuICAgIGNsYXNzIE1lc3NhZ2VTdG9yZSBleHRlbmRzIFN0b3JlIHtcblxuICAgICAgLy8gTm90ZSB0aGF0IHBhc3NpbmcgYSBmbHV4IGluc3RhbmNlIHRvIHRoZSBjb25zdHJ1Y3RvciBpcyBub3QgcmVxdWlyZWQ7XG4gICAgICAvLyB3ZSBkbyBpdCBoZXJlIHNvIHdlIGhhdmUgYWNjZXNzIHRvIGFueSBhY3Rpb24gaWRzIHdlJ3JlIGludGVyZXN0ZWQgaW4uXG4gICAgICBjb25zdHJ1Y3RvcihmbHV4KSB7XG5cbiAgICAgICAgLy8gRG9uJ3QgZm9yZ2V0IHRvIGNhbGwgdGhlIHN1cGVyIGNvbnN0cnVjdG9yXG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgbGV0IG1lc3NhZ2VBY3Rpb25JZHMgPSBmbHV4LmdldEFjdGlvbklkcygnbWVzc2FnZXMnKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlcihtZXNzYWdlQWN0aW9uSWRzLm5ld01lc3NhZ2UsIHRoaXMuaGFuZGxlTmV3TWVzc2FnZSk7XG4gICAgICAgIHRoaXMubWVzc2FnZUNvdW50ZXIgPSAwO1xuICAgICAgfVxuXG4gICAgICBoYW5kbGVOZXdNZXNzYWdlKGNvbnRlbnQpIHtcbiAgICAgICAgbGV0IGlkID0gdGhpcy5tZXNzYWdlQ291bnRlcisrO1xuXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIFtpZF06IHtcbiAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIEhlcmUncyB3aGVyZSBpdCBhbGwgY29tZXMgdG9nZXRoZXIuIEV4dGVuZCBmcm9tIHRoZSBiYXNlIEZsdW1tb3ggY2xhc3NcbiAgICAgKiB0byBjcmVhdGUgYSBjbGFzcyB0aGF0IGVuY2Fwc3VsYXRlcyB5b3VyIGVudGlyZSBmbHV4IHNldC11cC5cbiAgICAgKi9cbiAgICBjbGFzcyBGbHV4IGV4dGVuZHMgRmx1bW1veCB7XG4gICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICAvLyBDcmVhdGUgYWN0aW9ucyBmaXJzdCBzbyBvdXIgc3RvcmUgY2FuIHJlZmVyZW5jZSB0aGVtIGluXG4gICAgICAgIC8vIGl0cyBjb25zdHJ1Y3RvclxuICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbnMoJ21lc3NhZ2VzJywgTWVzc2FnZUFjdGlvbnMpO1xuXG4gICAgICAgIC8vIEV4dHJhIGFyZ3VtZW50cyBhcmUgc2VudCB0byB0aGUgc3RvcmUncyBjb25zdHJ1Y3Rvci4gSGVyZSwgd2UncmVcbiAgICAgICAgLy8gcGFkZGluZyBhIHJlZmVyZW5jZSB0byB0aGlzIGZsdXggaW5zdGFuY2VcbiAgICAgICAgdGhpcy5jcmVhdGVTdG9yZSgnbWVzc2FnZXMnLCBNZXNzYWdlU3RvcmUsIHRoaXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuZCB0aGF0J3MgaXQhIE5vIG5lZWQgZm9yIHNpbmdsZXRvbnMgb3IgZ2xvYmFsIHJlZmVyZW5jZXMgLS0ganVzdCBjcmVhdGVcbiAgICAgKiBhIG5ldyBpbnN0YW5jZS5cbiAgICAgKlxuICAgICAqIE5vdyBsZXQncyB0ZXN0IGl0LlxuICAgICAqL1xuXG4gICAgaXQoJ2NyZWF0ZXMgbmV3IG1lc3NhZ2VzJywgKCkgPT4ge1xuICAgICAgbGV0IGZsdXggPSBuZXcgRmx1eCgpO1xuICAgICAgbGV0IG1lc3NhZ2VTdG9yZSA9IGZsdXguZ2V0U3RvcmUoJ21lc3NhZ2VzJyk7XG4gICAgICBsZXQgbWVzc2FnZUFjdGlvbnMgPSBmbHV4LmdldEFjdGlvbnMoJ21lc3NhZ2VzJyk7XG5cbiAgICAgIGV4cGVjdChtZXNzYWdlU3RvcmUuc3RhdGUubWVzc2FnZXMpLnRvLmJlLnVuZGVmaW5lZDtcblxuICAgICAgbWVzc2FnZUFjdGlvbnMubmV3TWVzc2FnZSgnSGVsbG8sIHdvcmxkIScpO1xuICAgICAgZXhwZWN0KG1lc3NhZ2VTdG9yZS5zdGF0ZSkudG8uZGVlcC5lcXVhbCh7XG4gICAgICAgIFswXToge1xuICAgICAgICAgIGNvbnRlbnQ6ICdIZWxsbywgd29ybGQhJyxcbiAgICAgICAgICBpZDogMCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxufSk7XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9fX3Rlc3RzX18vZXhhbXBsZUZsdXgtdGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7b0JBRXdDLFNBQVM7O0lBQXhDLE9BQU8sU0FBUCxPQUFPO0lBQUUsS0FBSyxTQUFMLEtBQUs7SUFBRSxPQUFPLFNBQVAsT0FBTzs7O0FBRWhDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBTTs7OztBQUsxQixVQUFRLENBQUMsVUFBVSxFQUFFLFlBQU07Ozs7Ozs7OztRQVVuQixjQUFjLGNBQVMsT0FBTztlQUE5QixjQUFjO3dDQUFkLGNBQWM7c0NBQWQsY0FBYzs7OzsyQkFBZCxjQUFjLEVBQVMsT0FBTzs7c0NBQTlCLGNBQWM7QUFDbEIsa0JBQVU7aUJBQUEsb0JBQUMsT0FBTyxFQUFFOztBQUdsQixtQkFBTyxPQUFPLENBQUM7V0FDaEI7Ozs7OzthQUxHLGNBQWM7T0FBUyxPQUFPOzs7Ozs7Ozs7Ozs7Ozs7OztRQXVCOUIsWUFBWSxjQUFTLEtBQUs7OztBQUluQixlQUpQLFlBQVksQ0FJSixJQUFJLEVBQUU7O0FBR2hCLG9EQVBFLFlBQVksNkNBT047O0FBRVIsWUFBSSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3JELFlBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ2xFLFlBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO09BQ3pCOzsyQkFaRyxZQUFZLEVBQVMsS0FBSzs7c0NBQTFCLFlBQVk7QUFjaEIsd0JBQWdCO2lCQUFBLDBCQUFDLE9BQU8sRUFBRTtBQUN4QixnQkFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDOztBQUUvQixnQkFBSSxDQUFDLFFBQVEsZ0NBQ1YsRUFBRSxFQUFHO0FBQ0oscUJBQU8sRUFBUCxPQUFPO0FBQ1AsZ0JBQUUsRUFBRixFQUFFLEVBQ0gsRUFDRCxDQUFDO1dBQ0o7Ozs7OzthQXZCRyxZQUFZO09BQVMsS0FBSzs7Ozs7Ozs7O1FBK0IxQixJQUFJLGNBQVMsT0FBTztBQUNiLGVBRFAsSUFBSSxHQUNNO0FBQ1osb0RBRkUsSUFBSSw2Q0FFRTs7OztBQUlSLFlBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDOzs7O0FBSS9DLFlBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztPQUNsRDs7MkJBWEcsSUFBSSxFQUFTLE9BQU87O2FBQXBCLElBQUk7T0FBUyxPQUFPOzs7Ozs7Ozs7QUFxQjFCLE1BQUUsQ0FBQyxzQkFBc0IsRUFBRSxZQUFNO0FBQy9CLFVBQUksSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7QUFDdEIsVUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUM3QyxVQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDOztBQUVqRCxZQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDOztBQUU3QyxvQkFBYyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUMzQyxZQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxnQ0FDckMsQ0FBQyxFQUFHO0FBQ0gsZUFBTyxFQUFFLGVBQWU7QUFDeEIsVUFBRSxFQUFFLENBQUMsRUFDTixFQUNELENBQUM7S0FDSixDQUFDLENBQUM7R0FDSixDQUFDLENBQUM7Q0FFSixDQUFDLENBQUMiLCJmaWxlIjoic3JjL19fdGVzdHNfXy9leGFtcGxlRmx1eC10ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgeyBGbHVtbW94LCBTdG9yZSwgQWN0aW9ucyB9IGZyb20gJy4uL0ZsdXgnO1xuXG5kZXNjcmliZSgnRXhhbXBsZXM6JywgKCkgPT4ge1xuXG4gIC8qKlxuICAgKiBBIHNpbXBsZSBGbHVtbW94IGV4YW1wbGVcbiAgICovXG4gIGRlc2NyaWJlKCdNZXNzYWdlcycsICgpID0+IHtcblxuICAgIC8qKlxuICAgICAqIFRvIGNyZWF0ZSBzb21lIGFjdGlvbnMsIGNyZWF0ZSBhIG5ldyBjbGFzcyB0aGF0IGV4dGVuZHMgZnJvbSB0aGUgYmFzZVxuICAgICAqIEFjdGlvbnMgY2xhc3MuIE1ldGhvZHMgb24gdGhlIGNsYXNzJ3MgcHJvdG90eXBlIHdpbGwgYmUgY29udmVydGVkIGludG9cbiAgICAgKiBhY3Rpb25zLCBlYWNoIHdpdGggaXRzIG93biBhY3Rpb24gaWQuXG4gICAgICpcbiAgICAgKiBJbiB0aGlzIGV4YW1wbGUsIGNhbGxpbmcgYG5ld01lc3NhZ2VgIHdpbGwgZmlyZSB0aGUgZGlzcGF0Y2hlciwgd2l0aFxuICAgICAqIGEgcGF5bG9hZCBjb250YWluaW5nIHRoZSBwYXNzZWQgbWVzc2FnZSBjb250ZW50LiBFYXN5IVxuICAgICAqL1xuICAgIGNsYXNzIE1lc3NhZ2VBY3Rpb25zIGV4dGVuZHMgQWN0aW9ucyB7XG4gICAgICBuZXdNZXNzYWdlKGNvbnRlbnQpIHtcblxuICAgICAgICAvLyBUaGUgcmV0dXJuIHZhbHVlIGZyb20gdGhlIGFjdGlvbiBpcyBzZW50IHRvIHRoZSBkaXNwYXRjaGVyLlxuICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOb3cgd2UgbmVlZCB0byBhIFN0b3JlIHRoYXQgd2lsbCByZWNlaXZlIHBheWxvYWRzIGZyb20gdGhlIGRpc3BhdGNoZXJcbiAgICAgKiBhbmQgdXBkYXRlIGl0c2VsZiBhY2NvcmRpbmdseS4gTGlrZSBiZWZvcmUsIGNyZWF0ZSBhIG5ldyBjbGFzcyB0aGF0XG4gICAgICogZXh0ZW5kcyBmcm9tIHRoZSBTdG9yZSBjbGFzcy5cbiAgICAgKlxuICAgICAqIFN0b3JlcyBhcmUgYXV0b21hdGljYWxseSByZWdpc3RlcmVkIHdpdGggdGhlIGRpc3BhdGNoZXIsIGJ1dCByYXRoZXIgdGhhblxuICAgICAqIHVzaW5nIGEgZ2lhbnQgYHN3aXRjaGAgc3RhdGVtZW50IHRvIGNoZWNrIGZvciBzcGVjaWZpYyBhY3Rpb24gdHlwZXMsIHdlXG4gICAgICogcmVnaXN0ZXIgaGFuZGxlcnMgd2l0aCBhY3Rpb24gaWRzLlxuICAgICAqXG4gICAgICogU3RvcmVzIGhhdmUgYSBSZWFjdC1pbnNwaXJlZCBBUEkgZm9yIG1hbmFnaW5nIHN0YXRlLiBVc2UgYHRoaXMuc2V0U3RhdGVgXG4gICAgICogdG8gdXBkYXRlIHN0YXRlIHdpdGhpbiB5b3VyIGhhbmRsZXJzLiBNdWx0aXBsZSBjYWxscyB0byBgdGhpcy5zZXRTdGF0ZWBcbiAgICAgKiB3aXRoaW4gdGhlIHNhbWUgaGFuZGxlciB3aWxsIGJlIGJhdGNoZWQuIEEgY2hhbmdlIGV2ZW50IHdpbGwgZmlyZSBhZnRlclxuICAgICAqIHRoZSBiYXRjaGVkIHVwZGF0ZXMgYXJlIGFwcGxpZWQuIFlvdXIgdmlldyBjb250cm9sbGVycyBjYW4gbGlzdGVuXG4gICAgICogZm9yIGNoYW5nZSBldmVudHMgdXNpbmcgdGhlIEV2ZW50RW1pdHRlciBBUEkuXG4gICAgICovXG4gICAgY2xhc3MgTWVzc2FnZVN0b3JlIGV4dGVuZHMgU3RvcmUge1xuXG4gICAgICAvLyBOb3RlIHRoYXQgcGFzc2luZyBhIGZsdXggaW5zdGFuY2UgdG8gdGhlIGNvbnN0cnVjdG9yIGlzIG5vdCByZXF1aXJlZDtcbiAgICAgIC8vIHdlIGRvIGl0IGhlcmUgc28gd2UgaGF2ZSBhY2Nlc3MgdG8gYW55IGFjdGlvbiBpZHMgd2UncmUgaW50ZXJlc3RlZCBpbi5cbiAgICAgIGNvbnN0cnVjdG9yKGZsdXgpIHtcblxuICAgICAgICAvLyBEb24ndCBmb3JnZXQgdG8gY2FsbCB0aGUgc3VwZXIgY29uc3RydWN0b3JcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICBsZXQgbWVzc2FnZUFjdGlvbklkcyA9IGZsdXguZ2V0QWN0aW9uSWRzKCdtZXNzYWdlcycpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyKG1lc3NhZ2VBY3Rpb25JZHMubmV3TWVzc2FnZSwgdGhpcy5oYW5kbGVOZXdNZXNzYWdlKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlQ291bnRlciA9IDA7XG4gICAgICB9XG5cbiAgICAgIGhhbmRsZU5ld01lc3NhZ2UoY29udGVudCkge1xuICAgICAgICBsZXQgaWQgPSB0aGlzLm1lc3NhZ2VDb3VudGVyKys7XG5cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgW2lkXToge1xuICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogSGVyZSdzIHdoZXJlIGl0IGFsbCBjb21lcyB0b2dldGhlci4gRXh0ZW5kIGZyb20gdGhlIGJhc2UgRmx1bW1veCBjbGFzc1xuICAgICAqIHRvIGNyZWF0ZSBhIGNsYXNzIHRoYXQgZW5jYXBzdWxhdGVzIHlvdXIgZW50aXJlIGZsdXggc2V0LXVwLlxuICAgICAqL1xuICAgIGNsYXNzIEZsdXggZXh0ZW5kcyBGbHVtbW94IHtcbiAgICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIC8vIENyZWF0ZSBhY3Rpb25zIGZpcnN0IHNvIG91ciBzdG9yZSBjYW4gcmVmZXJlbmNlIHRoZW0gaW5cbiAgICAgICAgLy8gaXRzIGNvbnN0cnVjdG9yXG4gICAgICAgIHRoaXMuY3JlYXRlQWN0aW9ucygnbWVzc2FnZXMnLCBNZXNzYWdlQWN0aW9ucyk7XG5cbiAgICAgICAgLy8gRXh0cmEgYXJndW1lbnRzIGFyZSBzZW50IHRvIHRoZSBzdG9yZSdzIGNvbnN0cnVjdG9yLiBIZXJlLCB3ZSdyZVxuICAgICAgICAvLyBwYWRkaW5nIGEgcmVmZXJlbmNlIHRvIHRoaXMgZmx1eCBpbnN0YW5jZVxuICAgICAgICB0aGlzLmNyZWF0ZVN0b3JlKCdtZXNzYWdlcycsIE1lc3NhZ2VTdG9yZSwgdGhpcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW5kIHRoYXQncyBpdCEgTm8gbmVlZCBmb3Igc2luZ2xldG9ucyBvciBnbG9iYWwgcmVmZXJlbmNlcyAtLSBqdXN0IGNyZWF0ZVxuICAgICAqIGEgbmV3IGluc3RhbmNlLlxuICAgICAqXG4gICAgICogTm93IGxldCdzIHRlc3QgaXQuXG4gICAgICovXG5cbiAgICBpdCgnY3JlYXRlcyBuZXcgbWVzc2FnZXMnLCAoKSA9PiB7XG4gICAgICBsZXQgZmx1eCA9IG5ldyBGbHV4KCk7XG4gICAgICBsZXQgbWVzc2FnZVN0b3JlID0gZmx1eC5nZXRTdG9yZSgnbWVzc2FnZXMnKTtcbiAgICAgIGxldCBtZXNzYWdlQWN0aW9ucyA9IGZsdXguZ2V0QWN0aW9ucygnbWVzc2FnZXMnKTtcblxuICAgICAgZXhwZWN0KG1lc3NhZ2VTdG9yZS5zdGF0ZSkudG8uZGVlcC5lcXVhbCh7fSk7XG5cbiAgICAgIG1lc3NhZ2VBY3Rpb25zLm5ld01lc3NhZ2UoJ0hlbGxvLCB3b3JsZCEnKTtcbiAgICAgIGV4cGVjdChtZXNzYWdlU3RvcmUuc3RhdGUpLnRvLmRlZXAuZXF1YWwoe1xuICAgICAgICBbMF06IHtcbiAgICAgICAgICBjb250ZW50OiAnSGVsbG8sIHdvcmxkIScsXG4gICAgICAgICAgaWQ6IDAsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbn0pO1xuIl19 |
{ | ||
"name": "flummox", | ||
"version": "2.0.2-beta", | ||
"version": "2.0.3", | ||
"description": "An implementation of the Flux architecture.", | ||
@@ -5,0 +5,0 @@ "main": "lib/Flux.js", |
@@ -0,6 +1,78 @@ | ||
[![build status](https://img.shields.io/travis/parisleaf/parisleaf.com.svg?style=flat-square)](https://travis-ci.org/acdlite/flummox) | ||
flummox | ||
======= | ||
An implementation of the Flux architecture. | ||
**API docs are coming soon.** | ||
Go away. I'm not done yet. | ||
Idiomatic, modular, testable, isomorphic Flux. | ||
Whoa, so many buzzwords! I'll break it down in more detail below, but here's the big idea that I think separates Flummox from the many other Flux implementations out there: Flummox allows you to encapsulate your entire Flux set-up — stores, actions, constants, and the dispatcher — into a single class, with **zero singletons or global references**. It's as easy as | ||
```js | ||
let flux = new Flux(); | ||
``` | ||
**tl;dr Show me the code!!!** No problem. Check out a full example Flummox's [test suite](https://github.com/acdlite/flummox/blob/master/src/__tests__/exampleFlux-test.js). | ||
### Idiomatic | ||
If you know Flux, you know Flummox. If you're not familiar with Flux, there are [many](http://facebook.github.io/flux/docs/overview.html#content) [great](https://medium.com/brigade-engineering/what-is-the-flux-application-architecture-b57ebca85b9e) resources available to get you up to speed. | ||
The primary goal of Flummox is reduce the boilerplate involved in setting up Flux for your application, so the API has been kept as minimal and predictable as possible. It uses Facebook's dispatcher under the hood. It encourages (but does not require) the use of ES6 classes. The state API for stores mirrors the state API for React components. Everything works as you'd probably expect. And like React, Flummox prints a helpful warning messages to keep you on track. For instance, if you call `Store#setState()` from outside a store's action handler, you this warning: | ||
``` | ||
Store#setState() called from outside an action handler. This is likely a mistake. Flux stores should manage their own state. | ||
``` | ||
### Modular | ||
There are three classes in Flummox: Store, Actions, and Flux. They are completely independent from each other. For example, you can create a new Store without ever touching Flux or Actions. You can extend them, modify them, add mixins — if it's possible with JavaScript, you can do it. | ||
Examples in this document use ES6 class notation, but that's a pattern, not a requirement: underneath the hood, it's just JavaScript prototypical inheritance. It's compatible with CoffeeScript, TypeScript, and regular ES5 right out of the box. | ||
### Testable | ||
Because Flummox does not rely on singletons, and each of the different classes can be instantiated independently from the others, it's really easy to write tests. A good example can be found in Flummox's own [test suite](https://github.com/acdlite/flummox/blob/master/src/__tests__/Store-test.js). | ||
### Isomorphic | ||
This is a big one, and one of the biggest motivating factors for creating this library. Isomorphism is tricky or impossible in many other Flux libraries because they rely on singleton objects, spread out across multiple modules. Often they force you to use a separate API. | ||
Again, because Flummox does not rely on singletons, you get isomorphism for free: just create a new Flux instance on each request! Here's a very basic example how that might look using Express and React: | ||
```js | ||
// shared/Flux.js | ||
class Flux extends Flummox { ... } | ||
// server/app.js | ||
app.get("/", function(req, res) { | ||
let flux = new Flux(); | ||
res.send( | ||
React.renderToString(<App flux={flux} />) | ||
); | ||
}); | ||
``` | ||
Roadmap | ||
------- | ||
The biggest feature that's currently not implemented the ability to "dehydrate" the entire state into string on the server, then "rehydrate" it on the client. This will be straightforward to implement; I just haven't gotten to it yet. | ||
Number one priority right now is writing the API docs. | ||
Inspiration and thanks | ||
---------------------- | ||
* Facebook, obviously. | ||
* [alt](https://github.com/goatslacker/alt), a similar Flux library from which I shamelessly copied (ideas, not code) | ||
License | ||
------- | ||
MIT | ||
Andrew Clark [@acdlite](https://twitter.com/acdlite) |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
88850
15
1
79
0