Socket
Socket
Sign inDemoInstall

fluorite

Package Overview
Dependencies
26
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.0-beta-1 to 1.0.0-beta-2

tests/models/Post.js

24

dist/errors.js

@@ -91,2 +91,24 @@ "use strict";

/*
* Copyright (c) 2017 Roman Lakhtadyr
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
exports.default = {

@@ -114,2 +136,2 @@ NotFoundError: function (_extendableBuiltin2) {

};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lcnJvcnMuanMiXSwibmFtZXMiOlsiTm90Rm91bmRFcnJvciIsIkVycm9yIiwiSW50ZWdyaXR5RXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkFBZTtBQUNiQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUEsdUJBQTJDQyxLQUEzQyxFQURhO0FBRWJDO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQSx3QkFBNkNELEtBQTdDO0FBRmEsQyIsImZpbGUiOiJlcnJvcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XG4gIE5vdEZvdW5kRXJyb3I6IGNsYXNzIE5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7fSxcbiAgSW50ZWdyaXR5RXJyb3I6IGNsYXNzIEludGVncml0eUVycm9yIGV4dGVuZHMgRXJyb3Ige30sXG59O1xuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lcnJvcnMuanMiXSwibmFtZXMiOlsiTm90Rm91bmRFcnJvciIsIkVycm9yIiwiSW50ZWdyaXR5RXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tCQXNCZTtBQUNiQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUEsdUJBQTJDQyxLQUEzQyxFQURhO0FBRWJDO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQSx3QkFBNkNELEtBQTdDO0FBRmEsQyIsImZpbGUiOiJlcnJvcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE3IFJvbWFuIExha2h0YWR5clxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICBOb3RGb3VuZEVycm9yOiBjbGFzcyBOb3RGb3VuZEVycm9yIGV4dGVuZHMgRXJyb3Ige30sXG4gIEludGVncml0eUVycm9yOiBjbGFzcyBJbnRlZ3JpdHlFcnJvciBleHRlbmRzIEVycm9yIHt9LFxufTtcbiJdfQ==

104

dist/fluorite.js

@@ -7,2 +7,12 @@ 'use strict';

var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _lodash = require('lodash');
var _model = require('./model');

@@ -14,27 +24,75 @@

/*
* Copyright (c) 2017 Roman Lakhtadyr
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
exports.default = function (knex) {
var transactions = [];
var fluorite = {
knex: knex,
transaction: function transaction(callback) {
var _this = this;
return knex.transaction(function () {
var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(trx) {
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
transactions.push(trx);
return _context.abrupt('return', callback());
case 3:
_context.prev = 3;
transactions.unshift(trx);
return _context.finish(3);
case 6:
case 'end':
return _context.stop();
}
}
}, _callee, _this, [[0,, 3, 6]]);
}));
return function (_x) {
return _ref.apply(this, arguments);
};
}());
},
get isTransacting() {
return transactions.length > 0;
},
get currentTransaction() {
return (0, _lodash.last)(transactions);
}
};
return {
Model: (0, _model2.default)(knex)
Model: (0, _model2.default)(fluorite),
transaction: fluorite.transaction
};
}; /*
* Copyright (c) 2017 Roman Lakhtadyr
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mbHVvcml0ZS5qcyJdLCJuYW1lcyI6WyJNb2RlbCIsImtuZXgiXSwibWFwcGluZ3MiOiI7Ozs7OztBQXNCQTs7Ozs7O2tCQUVlO0FBQUEsU0FBUztBQUN0QkEsV0FBTyxxQkFBTUMsSUFBTjtBQURlLEdBQVQ7QUFBQSxDLEVBeEJmIiwiZmlsZSI6ImZsdW9yaXRlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNyBSb21hbiBMYWtodGFkeXJcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCBtb2RlbCBmcm9tICcuL21vZGVsJztcblxuZXhwb3J0IGRlZmF1bHQga25leCA9PiAoe1xuICBNb2RlbDogbW9kZWwoa25leCksXG59KTtcbiJdfQ==
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mbHVvcml0ZS5qcyJdLCJuYW1lcyI6WyJrbmV4IiwidHJhbnNhY3Rpb25zIiwiZmx1b3JpdGUiLCJ0cmFuc2FjdGlvbiIsImNhbGxiYWNrIiwidHJ4IiwicHVzaCIsInVuc2hpZnQiLCJpc1RyYW5zYWN0aW5nIiwibGVuZ3RoIiwiY3VycmVudFRyYW5zYWN0aW9uIiwiTW9kZWwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBc0JBOztBQUNBOzs7Ozs7QUF2QkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0JBeUJlLFVBQUNBLElBQUQsRUFBVTtBQUN2QixNQUFNQyxlQUFlLEVBQXJCO0FBQ0EsTUFBTUMsV0FBWTtBQUNoQkYsY0FEZ0I7QUFFaEJHLGVBRmdCLHVCQUVKQyxRQUZJLEVBRU07QUFBQTs7QUFDcEIsYUFBT0osS0FBS0csV0FBTDtBQUFBLDhFQUFpQixpQkFBT0UsR0FBUDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBRXBCSiwrQkFBYUssSUFBYixDQUFrQkQsR0FBbEI7QUFGb0IsbURBR2JELFVBSGE7O0FBQUE7QUFBQTs7QUFLcEJILCtCQUFhTSxPQUFiLENBQXFCRixHQUFyQjtBQUxvQjs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxTQUFqQjs7QUFBQTtBQUFBO0FBQUE7QUFBQSxVQUFQO0FBUUQsS0FYZTs7QUFZaEIsUUFBSUcsYUFBSixHQUFvQjtBQUNsQixhQUFPUCxhQUFhUSxNQUFiLEdBQXNCLENBQTdCO0FBQ0QsS0FkZTtBQWVoQixRQUFJQyxrQkFBSixHQUF5QjtBQUN2QixhQUFPLGtCQUFLVCxZQUFMLENBQVA7QUFDRDtBQWpCZSxHQUFsQjs7QUFvQkEsU0FBTztBQUNMVSxXQUFPLHFCQUFNVCxRQUFOLENBREY7QUFFTEMsaUJBQWFELFNBQVNDO0FBRmpCLEdBQVA7QUFJRCxDIiwiZmlsZSI6ImZsdW9yaXRlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNyBSb21hbiBMYWtodGFkeXJcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCB7IGxhc3QgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IG1vZGVsIGZyb20gJy4vbW9kZWwnO1xuXG5leHBvcnQgZGVmYXVsdCAoa25leCkgPT4ge1xuICBjb25zdCB0cmFuc2FjdGlvbnMgPSBbXTtcbiAgY29uc3QgZmx1b3JpdGUgPSAoe1xuICAgIGtuZXgsXG4gICAgdHJhbnNhY3Rpb24oY2FsbGJhY2spIHtcbiAgICAgIHJldHVybiBrbmV4LnRyYW5zYWN0aW9uKGFzeW5jICh0cngpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0cmFuc2FjdGlvbnMucHVzaCh0cngpO1xuICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIHRyYW5zYWN0aW9ucy51bnNoaWZ0KHRyeCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sXG4gICAgZ2V0IGlzVHJhbnNhY3RpbmcoKSB7XG4gICAgICByZXR1cm4gdHJhbnNhY3Rpb25zLmxlbmd0aCA+IDA7XG4gICAgfSxcbiAgICBnZXQgY3VycmVudFRyYW5zYWN0aW9uKCkge1xuICAgICAgcmV0dXJuIGxhc3QodHJhbnNhY3Rpb25zKTtcbiAgICB9LFxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIE1vZGVsOiBtb2RlbChmbHVvcml0ZSksXG4gICAgdHJhbnNhY3Rpb246IGZsdW9yaXRlLnRyYW5zYWN0aW9uLFxuICB9O1xufTtcbiJdfQ==

@@ -55,3 +55,3 @@ 'use strict';

exports.default = function (knex) {
exports.default = function (fluorite) {
var _class, _temp;

@@ -66,5 +66,10 @@

}, {
key: 'fluorite',
get: function get() {
return fluorite;
}
}, {
key: 'knex',
get: function get() {
return knex;
return this.fluorite.knex;
}

@@ -82,2 +87,11 @@ }]);

(0, _createClass3.default)(Model, [{
key: 'createKnexQuery',
value: function createKnexQuery() {
var query = this.constructor.knex(this.constructor.table);
if (this.constructor.fluorite.isTransacting) {
query.transacting(this.constructor.fluorite.currentTransaction);
}
return query;
}
}, {
key: 'get',

@@ -143,3 +157,3 @@ value: function get(name) {

case 2:
return _context2.abrupt('return', this.constructor.knex(this.constructor.table).where(this.constructor.idAttribute, this.id).delete());
return _context2.abrupt('return', this.createKnexQuery().where(this.constructor.idAttribute, this.id).delete());

@@ -170,3 +184,3 @@ case 3:

_context3.next = 2;
return this.constructor.knex(this.constructor.table).insert(this.attributesWithoutId, this.constructor.idAttribute);
return this.createKnexQuery().insert(this.attributesWithoutId, this.constructor.idAttribute);

@@ -215,3 +229,3 @@ case 2:

_context4.next = 5;
return this.constructor.knex(this.constructor.table).update(updatedAttributes).where((0, _defineProperty3.default)({}, this.constructor.idAttribute, this.id));
return this.createKnexQuery().update(updatedAttributes).where((0, _defineProperty3.default)({}, this.constructor.idAttribute, this.id));

@@ -360,2 +374,2 @@ case 5:

*/
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tb2RlbC5qcyJdLCJuYW1lcyI6WyJhdHRycyIsImtuZXgiLCJhdHRyaWJ1dGVzIiwic3RvcmVkQXR0cmlidXRlcyIsIm5hbWUiLCJ2YWx1ZSIsIk9iamVjdCIsImlzTmV3IiwiaW5zZXJ0IiwidXBkYXRlIiwiY29uc3RydWN0b3IiLCJOb3RGb3VuZEVycm9yIiwidGFibGUiLCJ3aGVyZSIsImlkQXR0cmlidXRlIiwiaWQiLCJkZWxldGUiLCJhdHRyaWJ1dGVzV2l0aG91dElkIiwiaWRzIiwibGFzdElkIiwidXBkYXRlZEF0dHJpYnV0ZXMiLCJyZWxhdGVkQ2xhc3MiLCJmb3JlaWduS2V5IiwiZm9yZWlnbktleVRhcmdldCIsImZrIiwidG9Mb3dlckNhc2UiLCJma3QiLCJmaWx0ZXIiLCJnZXQiLCJwaXZvdFRhYmxlTmFtZSIsInRoaXNGb3JlaWduS2V5IiwidGhhdEZvcmVpZ25LZXkiLCJ0aGlzRm9yZWlnbktleVRhcmdldCIsInRoYXRGb3JlaWduS2V5VGFyZ2V0IiwicGl2b3RUbiIsImpvaW4iLCJ0aGlzRmsiLCJ0aGF0RmsiLCJ0aGlzRmt0IiwidGhhdEZrdCIsInF1ZXJ5IiwicSIsImlubmVySm9pbiIsInNlbGVjdCIsInNlcmlhbGl6ZSIsImtleSIsIlByb3h5IiwidGFyZ2V0IiwicHJvcGVydHkiLCJtb2RlbENsYXNzIiwic2NvcGVzIiwic2NvcGUiLCJhcmdzIiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkE7O0FBQ0E7Ozs7QUFDQTs7Ozs7O2tCQUVlO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUEsNkJBWUNBLEtBWkQsRUFZUTtBQUNuQixlQUFPLElBQUksSUFBSixDQUFTQSxLQUFULENBQVA7QUFDRDtBQWRZO0FBQUE7QUFBQSwwQkFRSztBQUNoQixlQUFPQyxJQUFQO0FBQ0Q7QUFWWTs7QUFnQmIsbUJBQVlDLFVBQVosRUFBK0M7QUFBQSxVQUF2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SU0sS0FBSixDQUFVTixLQUFWLEVBQWlCO0FBQ3RCWixhQURzQixlQUNsQm1CLE1BRGtCLEVBQ1ZDLFFBRFUsRUFDQTtBQUNwQixnQkFBSUEsWUFBWUQsTUFBaEIsRUFBd0I7QUFDdEIscUJBQU9BLE9BQU9DLFFBQVAsQ0FBUDtBQUNEOztBQUVELGdCQUFJQSxZQUFZRCxPQUFPRSxVQUFQLENBQWtCQyxNQUFsQyxFQUEwQztBQUN4QyxrQkFBTUMsUUFBUUosT0FBT0UsVUFBUCxDQUFrQkMsTUFBbEIsQ0FBeUJGLFFBQXpCLENBQWQ7QUFDQSxxQkFBTztBQUFBLGtEQUFJSSxJQUFKO0FBQUlBLHNCQUFKO0FBQUE7O0FBQUEsdUJBQWFELHdCQUFNSixNQUFOLFNBQWlCSyxJQUFqQixFQUFiO0FBQUEsZUFBUDtBQUNEOztBQUVELG1CQUFPQyxTQUFQO0FBQ0Q7QUFacUIsU0FBakIsQ0FBUDtBQWNEO0FBckpZO0FBQUE7QUFBQSxjQUNOMUMsYUFETTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUEsSUFDc0MsaUJBQU9BLGFBRDdDLFVBR05DLEtBSE0sR0FHRSxJQUhGLFNBSU5FLFdBSk0sR0FJUSxJQUpSLFNBS05vQyxNQUxNLEdBS0csRUFMSDtBQUFBLEMsRUExQmYiLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE3IFJvbWFuIExha2h0YWR5clxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cblxuaW1wb3J0IHsgcGlja0J5LCBpc05pbCwgbGFzdCwgaXNFbXB0eSwgc29ydEJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBRdWVyeSBmcm9tICcuL3F1ZXJ5JztcbmltcG9ydCBlcnJvcnMgZnJvbSAnLi9lcnJvcnMnO1xuXG5leHBvcnQgZGVmYXVsdCBrbmV4ID0+IGNsYXNzIE1vZGVsIHtcbiAgc3RhdGljIE5vdEZvdW5kRXJyb3IgPSBjbGFzcyBOb3RGb3VuZEVycm9yIGV4dGVuZHMgZXJyb3JzLk5vdEZvdW5kRXJyb3IgeyB9O1xuXG4gIHN0YXRpYyB0YWJsZSA9IG51bGw7XG4gIHN0YXRpYyBpZEF0dHJpYnV0ZSA9ICdpZCc7XG4gIHN0YXRpYyBzY29wZXMgPSB7XG4gIH07XG5cbiAgc3RhdGljIGdldCBrbmV4KCkge1xuICAgIHJldHVybiBrbmV4O1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZShhdHRycykge1xuICAgIHJldHVybiBuZXcgdGhpcyhhdHRycyk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihhdHRyaWJ1dGVzLCBzdG9yZWRBdHRyaWJ1dGVzID0ge30pIHtcbiAgICB0aGlzLmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuICAgIHRoaXMuc3RvcmVkQXR0cmlidXRlcyA9IHN0b3JlZEF0dHJpYnV0ZXM7XG4gIH1cblxuICBnZXQgaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXR0cmlidXRlc1t0aGlzLmNvbnN0cnVjdG9yLmlkQXR0cmlidXRlXTtcbiAgfVxuXG4gIGdldCBhdHRyaWJ1dGVzV2l0aG91dElkKCkge1xuICAgIHJldHVybiBwaWNrQnkodGhpcy5hdHRyaWJ1dGVzLCAodmFsdWUsIGtleSkgPT4gKFxuICAgICAga2V5ICE9PSB0aGlzLmNvbnN0cnVjdG9yLmlkQXR0cmlidXRlXG4gICAgKSk7XG4gIH1cblxuICBnZXQgdXBkYXRlZEF0dHJpYnV0ZXMoKSB7XG4gICAgcmV0dXJuIHBpY2tCeSh0aGlzLmF0dHJpYnV0ZXNXaXRob3V0SWQsICh2YWx1ZSwga2V5KSA9PiAoXG4gICAgICB2YWx1ZSAhPT0gdGhpcy5zdG9yZWRBdHRyaWJ1dGVzW2tleV1cbiAgICApKTtcbiAgfVxuXG4gIGdldCBpc05ldygpIHtcbiAgICByZXR1cm4gaXNOaWwodGhpcy5pZCk7XG4gIH1cblxuICBnZXQobmFtZSkge1xuICAgIHJldHVybiB0aGlzLmF0dHJpYnV0ZXNbbmFtZV07XG4gIH1cblxuICBzZXQobmFtZSwgdmFsdWUpIHtcbiAgICBpZiAobmFtZSBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgdGhpcy5hdHRyaWJ1dGVzID0geyAuLi50aGlzLmF0dHJpYnV0ZXMsIC4uLm5hbWUgfTtcbiAgICB9XG4gICAgdGhpcy5hdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7XG4gIH1cblxuICBhc3luYyBzYXZlKCkge1xuICAgIGlmICh0aGlzLmlzTmV3KSB7XG4gICAgICByZXR1cm4gdGhpcy5pbnNlcnQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlKCk7XG4gIH1cblxuICBhc3luYyByZW1vdmUoKSB7XG4gICAgaWYgKHRoaXMuaXNOZXcpIHtcbiAgICAgIHRocm93IG5ldyB0aGlzLmNvbnN0cnVjdG9yLk5vdEZvdW5kRXJyb3IoJ0NhblxcJ3QgcmVtb3ZlIG5ldyBlbnRpdHknKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5rbmV4KHRoaXMuY29uc3RydWN0b3IudGFibGUpXG4gICAgICAud2hlcmUodGhpcy5jb25zdHJ1Y3Rvci5pZEF0dHJpYnV0ZSwgdGhpcy5pZClcbiAgICAgIC5kZWxldGUoKTtcbiAgfVxuXG4gIGFzeW5jIGluc2VydCgpIHtcbiAgICBjb25zdCBpZHMgPSBhd2FpdCB0aGlzLmNvbnN0cnVjdG9yXG4gICAgICAua25leCh0aGlzLmNvbnN0cnVjdG9yLnRhYmxlKVxuICAgICAgLmluc2VydCh0aGlzLmF0dHJpYnV0ZXNXaXRob3V0SWQsIHRoaXMuY29uc3RydWN0b3IuaWRBdHRyaWJ1dGUpO1xuICAgIGNvbnN0IGxhc3RJZCA9IGxhc3QoaWRzKTtcbiAgICB0aGlzLmF0dHJpYnV0ZXNbdGhpcy5jb25zdHJ1Y3Rvci5pZEF0dHJpYnV0ZV0gPSBsYXN0SWQ7XG4gICAgdGhpcy5zdG9yZWRBdHRyaWJ1dGVzID0gdGhpcy5hdHRyaWJ1dGVzO1xuICAgIHJldHVybiBsYXN0SWQ7XG4gIH1cblxuICBhc3luYyB1cGRhdGUoKSB7XG4gICAgY29uc3QgdXBkYXRlZEF0dHJpYnV0ZXMgPSB0aGlzLnVwZGF0ZWRBdHRyaWJ1dGVzO1xuICAgIGlmIChpc0VtcHR5KHVwZGF0ZWRBdHRyaWJ1dGVzKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmNvbnN0cnVjdG9yXG4gICAgICAua25leCh0aGlzLmNvbnN0cnVjdG9yLnRhYmxlKVxuICAgICAgLnVwZGF0ZSh1cGRhdGVkQXR0cmlidXRlcylcbiAgICAgIC53aGVyZSh7IFt0aGlzLmNvbnN0cnVjdG9yLmlkQXR0cmlidXRlXTogdGhpcy5pZCB9KTtcbiAgICB0aGlzLnN0b3JlZEF0dHJpYnV0ZXMgPSB0aGlzLmF0dHJpYnV0ZXM7XG4gIH1cblxuICBzZXJpYWxpemUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXR0cmlidXRlcztcbiAgfVxuXG4gIGhhc01hbnkocmVsYXRlZENsYXNzLCBmb3JlaWduS2V5LCBmb3JlaWduS2V5VGFyZ2V0KSB7XG4gICAgY29uc3QgZmsgPSBmb3JlaWduS2V5IHx8IGAke3RoaXMuY29uc3RydWN0b3IubmFtZS50b0xvd2VyQ2FzZSgpfV9pZGA7XG4gICAgY29uc3QgZmt0ID0gZm9yZWlnbktleVRhcmdldCB8fCB0aGlzLmNvbnN0cnVjdG9yLmlkQXR0cmlidXRlO1xuICAgIHJldHVybiBuZXcgUXVlcnkocmVsYXRlZENsYXNzKS5maWx0ZXIoeyBbZmtdOiB0aGlzLmdldChma3QpIH0pO1xuICB9XG5cbiAgYmVsb25nc1RvKHJlbGF0ZWRDbGFzcywgZm9yZWlnbktleSwgZm9yZWlnbktleVRhcmdldCkge1xuICAgIGNvbnN0IGZrID0gZm9yZWlnbktleSB8fCBgJHtyZWxhdGVkQ2xhc3MubmFtZS50b0xvd2VyQ2FzZSgpfV9pZGA7XG4gICAgY29uc3QgZmt0ID0gZm9yZWlnbktleVRhcmdldCB8fCByZWxhdGVkQ2xhc3MuaWRBdHRyaWJ1dGU7XG4gICAgcmV0dXJuIG5ldyBRdWVyeShyZWxhdGVkQ2xhc3MpLmZpbHRlcih7IFtma3RdOiB0aGlzLmdldChmaykgfSk7XG4gIH1cblxuICBiZWxvbmdzVG9NYW55KFxuICAgIHJlbGF0ZWRDbGFzcyxcbiAgICBwaXZvdFRhYmxlTmFtZSxcbiAgICB0aGlzRm9yZWlnbktleSxcbiAgICB0aGF0Rm9yZWlnbktleSxcbiAgICB0aGlzRm9yZWlnbktleVRhcmdldCxcbiAgICB0aGF0Rm9yZWlnbktleVRhcmdldCxcbiAgKSB7XG4gICAgY29uc3QgcGl2b3RUbiA9IHBpdm90VGFibGVOYW1lIHx8IHNvcnRCeShbdGhpcy5jb25zdHJ1Y3Rvci50YWJsZSwgcmVsYXRlZENsYXNzLnRhYmxlXSkuam9pbignXycpO1xuICAgIGNvbnN0IHRoaXNGayA9IHRoaXNGb3JlaWduS2V5IHx8IGAke3RoaXMuY29uc3RydWN0b3IubmFtZS50b0xvd2VyQ2FzZSgpfV9pZGA7XG4gICAgY29uc3QgdGhhdEZrID0gdGhhdEZvcmVpZ25LZXkgfHwgYCR7cmVsYXRlZENsYXNzLm5hbWUudG9Mb3dlckNhc2UoKX1faWRgO1xuICAgIGNvbnN0IHRoaXNGa3QgPSB0aGlzRm9yZWlnbktleVRhcmdldCB8fCB0aGlzLmNvbnN0cnVjdG9yLmlkQXR0cmlidXRlO1xuICAgIGNvbnN0IHRoYXRGa3QgPSB0aGF0Rm9yZWlnbktleVRhcmdldCB8fCByZWxhdGVkQ2xhc3MuaWRBdHRyaWJ1dGU7XG5cbiAgICByZXR1cm4gbmV3IFF1ZXJ5KHJlbGF0ZWRDbGFzcylcbiAgICAgIC5xdWVyeShxID0+IHFcbiAgICAgICAgLmlubmVySm9pbihwaXZvdFRuLCBgJHtwaXZvdFRufS4ke3RoYXRGa31gLCBgJHtyZWxhdGVkQ2xhc3MudGFibGV9LiR7dGhhdEZrdH1gKVxuICAgICAgICAuc2VsZWN0KGAke3JlbGF0ZWRDbGFzcy50YWJsZX0uKmApXG4gICAgICAgIC53aGVyZSh7IFtgJHtwaXZvdFRufS4ke3RoaXNGa31gXTogdGhpcy5nZXQodGhpc0ZrdCkgfSksXG4gICAgICApO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZSgpO1xuICB9XG5cbiAgc3RhdGljIGdldCBtb2RlbHMoKSB7XG4gICAgY29uc3QgcXVlcnkgPSBuZXcgUXVlcnkodGhpcyk7XG4gICAgcmV0dXJuIG5ldyBQcm94eShxdWVyeSwge1xuICAgICAgZ2V0KHRhcmdldCwgcHJvcGVydHkpIHtcbiAgICAgICAgaWYgKHByb3BlcnR5IGluIHRhcmdldCkge1xuICAgICAgICAgIHJldHVybiB0YXJnZXRbcHJvcGVydHldO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByb3BlcnR5IGluIHRhcmdldC5tb2RlbENsYXNzLnNjb3Blcykge1xuICAgICAgICAgIGNvbnN0IHNjb3BlID0gdGFyZ2V0Lm1vZGVsQ2xhc3Muc2NvcGVzW3Byb3BlcnR5XTtcbiAgICAgICAgICByZXR1cm4gKC4uLmFyZ3MpID0+IHNjb3BlKHRhcmdldCwgLi4uYXJncyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tb2RlbC5qcyJdLCJuYW1lcyI6WyJhdHRycyIsImZsdW9yaXRlIiwia25leCIsImF0dHJpYnV0ZXMiLCJzdG9yZWRBdHRyaWJ1dGVzIiwicXVlcnkiLCJjb25zdHJ1Y3RvciIsInRhYmxlIiwiaXNUcmFuc2FjdGluZyIsInRyYW5zYWN0aW5nIiwiY3VycmVudFRyYW5zYWN0aW9uIiwibmFtZSIsInZhbHVlIiwiT2JqZWN0IiwiaXNOZXciLCJpbnNlcnQiLCJ1cGRhdGUiLCJOb3RGb3VuZEVycm9yIiwiY3JlYXRlS25leFF1ZXJ5Iiwid2hlcmUiLCJpZEF0dHJpYnV0ZSIsImlkIiwiZGVsZXRlIiwiYXR0cmlidXRlc1dpdGhvdXRJZCIsImlkcyIsImxhc3RJZCIsInVwZGF0ZWRBdHRyaWJ1dGVzIiwicmVsYXRlZENsYXNzIiwiZm9yZWlnbktleSIsImZvcmVpZ25LZXlUYXJnZXQiLCJmayIsInRvTG93ZXJDYXNlIiwiZmt0IiwiZmlsdGVyIiwiZ2V0IiwicGl2b3RUYWJsZU5hbWUiLCJ0aGlzRm9yZWlnbktleSIsInRoYXRGb3JlaWduS2V5IiwidGhpc0ZvcmVpZ25LZXlUYXJnZXQiLCJ0aGF0Rm9yZWlnbktleVRhcmdldCIsInBpdm90VG4iLCJqb2luIiwidGhpc0ZrIiwidGhhdEZrIiwidGhpc0ZrdCIsInRoYXRGa3QiLCJxIiwiaW5uZXJKb2luIiwic2VsZWN0Iiwic2VyaWFsaXplIiwia2V5IiwiUHJveHkiLCJ0YXJnZXQiLCJwcm9wZXJ0eSIsIm1vZGVsQ2xhc3MiLCJzY29wZXMiLCJzY29wZSIsImFyZ3MiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNCQTs7QUFDQTs7OztBQUNBOzs7Ozs7a0JBRWU7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQSw2QkFnQkNBLEtBaEJELEVBZ0JRO0FBQ25CLGVBQU8sSUFBSSxJQUFKLENBQVNBLEtBQVQsQ0FBUDtBQUNE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TGFraHRhZHlyXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5pbXBvcnQgeyBwaWNrQnksIGlzTmlsLCBsYXN0LCBpc0VtcHR5LCBzb3J0QnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IFF1ZXJ5IGZyb20gJy4vcXVlcnknO1xuaW1wb3J0IGVycm9ycyBmcm9tICcuL2Vycm9ycyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZsdW9yaXRlID0+IGNsYXNzIE1vZGVsIHtcbiAgc3RhdGljIE5vdEZvdW5kRXJyb3IgPSBjbGFzcyBOb3RGb3VuZEVycm9yIGV4dGVuZHMgZXJyb3JzLk5vdEZvdW5kRXJyb3IgeyB9O1xuXG4gIHN0YXRpYyB0YWJsZSA9IG51bGw7XG4gIHN0YXRpYyBpZEF0dHJpYnV0ZSA9ICdpZCc7XG4gIHN0YXRpYyBzY29wZXMgPSB7XG4gIH07XG5cbiAgc3RhdGljIGdldCBmbHVvcml0ZSgpIHtcbiAgICByZXR1cm4gZmx1b3JpdGU7XG4gIH1cblxuICBzdGF0aWMgZ2V0IGtuZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmx1b3JpdGUua25leDtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGUoYXR0cnMpIHtcbiAgICByZXR1cm4gbmV3IHRoaXMoYXR0cnMpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoYXR0cmlidXRlcywgc3RvcmVkQXR0cmlidXRlcyA9IHt9KSB7XG4gICAgdGhpcy5hdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcbiAgICB0aGlzLnN0b3JlZEF0dHJpYnV0ZXMgPSBzdG9yZWRBdHRyaWJ1dGVzO1xuICB9XG5cbiAgZ2V0IGlkKCkge1xuICAgIHJldHVybiB0aGlzLmF0dHJpYnV0ZXNbdGhpcy5jb25zdHJ1Y3Rvci5pZEF0dHJpYnV0ZV07XG4gIH1cblxuICBnZXQgYXR0cmlidXRlc1dpdGhvdXRJZCgpIHtcbiAgICByZXR1cm4gcGlja0J5KHRoaXMuYXR0cmlidXRlcywgKHZhbHVlLCBrZXkpID0+IChcbiAgICAgIGtleSAhPT0gdGhpcy5jb25zdHJ1Y3Rvci5pZEF0dHJpYnV0ZVxuICAgICkpO1xuICB9XG5cbiAgZ2V0IHVwZGF0ZWRBdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiBwaWNrQnkodGhpcy5hdHRyaWJ1dGVzV2l0aG91dElkLCAodmFsdWUsIGtleSkgPT4gKFxuICAgICAgdmFsdWUgIT09IHRoaXMuc3RvcmVkQXR0cmlidXRlc1trZXldXG4gICAgKSk7XG4gIH1cblxuICBnZXQgaXNOZXcoKSB7XG4gICAgcmV0dXJuIGlzTmlsKHRoaXMuaWQpO1xuICB9XG5cbiAgY3JlYXRlS25leFF1ZXJ5KCkge1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5jb25zdHJ1Y3Rvci5rbmV4KHRoaXMuY29uc3RydWN0b3IudGFibGUpO1xuICAgIGlmICh0aGlzLmNvbnN0cnVjdG9yLmZsdW9yaXRlLmlzVHJhbnNhY3RpbmcpIHtcbiAgICAgIHF1ZXJ5LnRyYW5zYWN0aW5nKHRoaXMuY29uc3RydWN0b3IuZmx1b3JpdGUuY3VycmVudFRyYW5zYWN0aW9uKTtcbiAgICB9XG4gICAgcmV0dXJuIHF1ZXJ5O1xuICB9XG5cbiAgZ2V0KG5hbWUpIHtcbiAgICByZXR1cm4gdGhpcy5hdHRyaWJ1dGVzW25hbWVdO1xuICB9XG5cbiAgc2V0KG5hbWUsIHZhbHVlKSB7XG4gICAgaWYgKG5hbWUgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICAgIHRoaXMuYXR0cmlidXRlcyA9IHsgLi4udGhpcy5hdHRyaWJ1dGVzLCAuLi5uYW1lIH07XG4gICAgfVxuICAgIHRoaXMuYXR0cmlidXRlc1tuYW1lXSA9IHZhbHVlO1xuICB9XG5cbiAgYXN5bmMgc2F2ZSgpIHtcbiAgICBpZiAodGhpcy5pc05ldykge1xuICAgICAgcmV0dXJuIHRoaXMuaW5zZXJ0KCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgYXN5bmMgcmVtb3ZlKCkge1xuICAgIGlmICh0aGlzLmlzTmV3KSB7XG4gICAgICB0aHJvdyBuZXcgdGhpcy5jb25zdHJ1Y3Rvci5Ob3RGb3VuZEVycm9yKCdDYW5cXCd0IHJlbW92ZSBuZXcgZW50aXR5Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlS25leFF1ZXJ5KClcbiAgICAgIC53aGVyZSh0aGlzLmNvbnN0cnVjdG9yLmlkQXR0cmlidXRlLCB0aGlzLmlkKVxuICAgICAgLmRlbGV0ZSgpO1xuICB9XG5cbiAgYXN5bmMgaW5zZXJ0KCkge1xuICAgIGNvbnN0IGlkcyA9IGF3YWl0IHRoaXMuY3JlYXRlS25leFF1ZXJ5KCkuaW5zZXJ0KFxuICAgICAgdGhpcy5hdHRyaWJ1dGVzV2l0aG91dElkLFxuICAgICAgdGhpcy5jb25zdHJ1Y3Rvci5pZEF0dHJpYnV0ZSxcbiAgICApO1xuICAgIGNvbnN0IGxhc3RJZCA9IGxhc3QoaWRzKTtcbiAgICB0aGlzLmF0dHJpYnV0ZXNbdGhpcy5jb25zdHJ1Y3Rvci5pZEF0dHJpYnV0ZV0gPSBsYXN0SWQ7XG4gICAgdGhpcy5zdG9yZWRBdHRyaWJ1dGVzID0gdGhpcy5hdHRyaWJ1dGVzO1xuICAgIHJldHVybiBsYXN0SWQ7XG4gIH1cblxuICBhc3luYyB1cGRhdGUoKSB7XG4gICAgY29uc3QgdXBkYXRlZEF0dHJpYnV0ZXMgPSB0aGlzLnVwZGF0ZWRBdHRyaWJ1dGVzO1xuICAgIGlmIChpc0VtcHR5KHVwZGF0ZWRBdHRyaWJ1dGVzKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmNyZWF0ZUtuZXhRdWVyeSgpXG4gICAgICAudXBkYXRlKHVwZGF0ZWRBdHRyaWJ1dGVzKVxuICAgICAgLndoZXJlKHsgW3RoaXMuY29uc3RydWN0b3IuaWRBdHRyaWJ1dGVdOiB0aGlzLmlkIH0pO1xuICAgIHRoaXMuc3RvcmVkQXR0cmlidXRlcyA9IHRoaXMuYXR0cmlidXRlcztcbiAgfVxuXG4gIHNlcmlhbGl6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hdHRyaWJ1dGVzO1xuICB9XG5cbiAgaGFzTWFueShyZWxhdGVkQ2xhc3MsIGZvcmVpZ25LZXksIGZvcmVpZ25LZXlUYXJnZXQpIHtcbiAgICBjb25zdCBmayA9IGZvcmVpZ25LZXkgfHwgYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lLnRvTG93ZXJDYXNlKCl9X2lkYDtcbiAgICBjb25zdCBma3QgPSBmb3JlaWduS2V5VGFyZ2V0IHx8IHRoaXMuY29uc3RydWN0b3IuaWRBdHRyaWJ1dGU7XG4gICAgcmV0dXJuIG5ldyBRdWVyeShyZWxhdGVkQ2xhc3MpLmZpbHRlcih7IFtma106IHRoaXMuZ2V0KGZrdCkgfSk7XG4gIH1cblxuICBiZWxvbmdzVG8ocmVsYXRlZENsYXNzLCBmb3JlaWduS2V5LCBmb3JlaWduS2V5VGFyZ2V0KSB7XG4gICAgY29uc3QgZmsgPSBmb3JlaWduS2V5IHx8IGAke3JlbGF0ZWRDbGFzcy5uYW1lLnRvTG93ZXJDYXNlKCl9X2lkYDtcbiAgICBjb25zdCBma3QgPSBmb3JlaWduS2V5VGFyZ2V0IHx8IHJlbGF0ZWRDbGFzcy5pZEF0dHJpYnV0ZTtcbiAgICByZXR1cm4gbmV3IFF1ZXJ5KHJlbGF0ZWRDbGFzcykuZmlsdGVyKHsgW2ZrdF06IHRoaXMuZ2V0KGZrKSB9KTtcbiAgfVxuXG4gIGJlbG9uZ3NUb01hbnkoXG4gICAgcmVsYXRlZENsYXNzLFxuICAgIHBpdm90VGFibGVOYW1lLFxuICAgIHRoaXNGb3JlaWduS2V5LFxuICAgIHRoYXRGb3JlaWduS2V5LFxuICAgIHRoaXNGb3JlaWduS2V5VGFyZ2V0LFxuICAgIHRoYXRGb3JlaWduS2V5VGFyZ2V0LFxuICApIHtcbiAgICBjb25zdCBwaXZvdFRuID0gcGl2b3RUYWJsZU5hbWUgfHwgc29ydEJ5KFt0aGlzLmNvbnN0cnVjdG9yLnRhYmxlLCByZWxhdGVkQ2xhc3MudGFibGVdKS5qb2luKCdfJyk7XG4gICAgY29uc3QgdGhpc0ZrID0gdGhpc0ZvcmVpZ25LZXkgfHwgYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lLnRvTG93ZXJDYXNlKCl9X2lkYDtcbiAgICBjb25zdCB0aGF0RmsgPSB0aGF0Rm9yZWlnbktleSB8fCBgJHtyZWxhdGVkQ2xhc3MubmFtZS50b0xvd2VyQ2FzZSgpfV9pZGA7XG4gICAgY29uc3QgdGhpc0ZrdCA9IHRoaXNGb3JlaWduS2V5VGFyZ2V0IHx8IHRoaXMuY29uc3RydWN0b3IuaWRBdHRyaWJ1dGU7XG4gICAgY29uc3QgdGhhdEZrdCA9IHRoYXRGb3JlaWduS2V5VGFyZ2V0IHx8IHJlbGF0ZWRDbGFzcy5pZEF0dHJpYnV0ZTtcblxuICAgIHJldHVybiBuZXcgUXVlcnkocmVsYXRlZENsYXNzKVxuICAgICAgLnF1ZXJ5KHEgPT4gcVxuICAgICAgICAuaW5uZXJKb2luKHBpdm90VG4sIGAke3Bpdm90VG59LiR7dGhhdEZrfWAsIGAke3JlbGF0ZWRDbGFzcy50YWJsZX0uJHt0aGF0Rmt0fWApXG4gICAgICAgIC5zZWxlY3QoYCR7cmVsYXRlZENsYXNzLnRhYmxlfS4qYClcbiAgICAgICAgLndoZXJlKHsgW2Ake3Bpdm90VG59LiR7dGhpc0ZrfWBdOiB0aGlzLmdldCh0aGlzRmt0KSB9KSxcbiAgICAgICk7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplKCk7XG4gIH1cblxuICBzdGF0aWMgZ2V0IG1vZGVscygpIHtcbiAgICBjb25zdCBxdWVyeSA9IG5ldyBRdWVyeSh0aGlzKTtcbiAgICByZXR1cm4gbmV3IFByb3h5KHF1ZXJ5LCB7XG4gICAgICBnZXQodGFyZ2V0LCBwcm9wZXJ0eSkge1xuICAgICAgICBpZiAocHJvcGVydHkgaW4gdGFyZ2V0KSB7XG4gICAgICAgICAgcmV0dXJuIHRhcmdldFtwcm9wZXJ0eV07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvcGVydHkgaW4gdGFyZ2V0Lm1vZGVsQ2xhc3Muc2NvcGVzKSB7XG4gICAgICAgICAgY29uc3Qgc2NvcGUgPSB0YXJnZXQubW9kZWxDbGFzcy5zY29wZXNbcHJvcGVydHldO1xuICAgICAgICAgIHJldHVybiAoLi4uYXJncykgPT4gc2NvcGUodGFyZ2V0LCAuLi5hcmdzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59O1xuIl19

@@ -86,8 +86,8 @@ 'use strict';

var Query = function () {
function Query(modelClass, knexQuery) {
function Query(modelClass) {
var knex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
(0, _classCallCheck3.default)(this, Query);
this.modelClass = modelClass;
this.knexInstance = modelClass.knex;
this.knexQuery = knexQuery || this.knexInstance(modelClass.table);
this.knexQuery = knex || modelClass.knex(modelClass.table);
}

@@ -145,3 +145,3 @@

function create(_x) {
function create(_x2) {
return _ref.apply(this, arguments);

@@ -170,3 +170,3 @@ }

function get(_x2) {
function get(_x3) {
return _ref2.apply(this, arguments);

@@ -217,3 +217,3 @@ }

function getOrCreate(_x3) {
function getOrCreate(_x4) {
return _ref3.apply(this, arguments);

@@ -234,3 +234,3 @@ }

_context4.next = 2;
return this.knexQuery.first();
return this.knexQueryTransacting.first();

@@ -269,3 +269,3 @@ case 2:

return this.knexQuery.select().then(function (rows) {
return this.knexQueryTransacting.select().then(function (rows) {
return rows.map(function (row) {

@@ -279,3 +279,3 @@ return wrap(row, _this.modelClass);

value: function pluck(column) {
return this.knexQuery.pluck(column);
return this.knexQueryTransacting.pluck(column);
}

@@ -291,3 +291,3 @@ }, {

_context5.next = 2;
return this.knexQuery.update(attributes);
return this.knexQueryTransacting.update(attributes);

@@ -302,3 +302,3 @@ case 2:

function update(_x5) {
function update(_x6) {
return _ref5.apply(this, arguments);

@@ -318,3 +318,3 @@ }

_context6.next = 2;
return this.knexQuery.delete();
return this.knexQueryTransacting.delete();

@@ -340,3 +340,3 @@ case 2:

return getValue(this.knexQuery.count(column));
return getValue(this.knexQueryTransacting.count(column));
}

@@ -346,3 +346,3 @@ }, {

value: function min(column) {
return getValue(this.knexQuery.min(column));
return getValue(this.knexQueryTransacting.min(column));
}

@@ -352,3 +352,3 @@ }, {

value: function max(column) {
return getValue(this.knexQuery.max(column));
return getValue(this.knexQueryTransacting.max(column));
}

@@ -358,3 +358,3 @@ }, {

value: function sum(column) {
return getValue(this.knexQuery.sum(column));
return getValue(this.knexQueryTransacting.sum(column));
}

@@ -364,4 +364,12 @@ }, {

value: function avg(column) {
return getValue(this.knexQuery.avg(column));
return getValue(this.knexQueryTransacting.avg(column));
}
}, {
key: 'knexQueryTransacting',
get: function get() {
if (this.modelClass.fluorite.isTransacting) {
return this.knexQuery.clone().transacting(this.modelClass.fluorite.currentTransaction);
}
return this.knexQuery;
}
}]);

@@ -372,2 +380,2 @@ return Query;

exports.default = Query;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9xdWVyeS5qcyJdLCJuYW1lcyI6WyJnZXRWYWx1ZSIsInFiIiwiZmlyc3QiLCJ0aGVuIiwicm93Iiwid3JhcCIsIk1vZGVsQ2xhc3MiLCJjcmVhdGVVbmlxdWVRdWVyeSIsImtuZXhRdWVyeSIsImNhbGxiYWNrIiwibmV3UXVlcnkiLCJjbG9uZSIsIlF1ZXJ5IiwibW9kZWxDbGFzcyIsImtuZXhJbnN0YW5jZSIsImtuZXgiLCJ0YWJsZSIsImF0dHJpYnV0ZXMiLCJxdWVyeSIsInEiLCJudW1iZXIiLCJsaW1pdCIsIm9mZnNldCIsIm1vZGVsIiwiY3JlYXRlIiwic2F2ZSIsImlkIiwiZmlsdGVyIiwiaWRBdHRyaWJ1dGUiLCJvbmUiLCJkZWZhdWx0cyIsIndoZXJlIiwiTm90Rm91bmRFcnJvciIsInNlbGVjdCIsInJvd3MiLCJtYXAiLCJjb2x1bW4iLCJwbHVjayIsInVwZGF0ZSIsImRlbGV0ZSIsImNvdW50IiwibWluIiwibWF4Iiwic3VtIiwiYXZnIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNCQTs7QUFDQTs7Ozs7O0FBdkJBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBeUJBLElBQU1BLFdBQVcsU0FBWEEsUUFBVztBQUFBLFNBQ2ZDLEdBQUdDLEtBQUgsR0FBV0MsSUFBWCxDQUFnQjtBQUFBLFdBQU8sbUJBQU0sc0JBQWNDLEdBQWQsQ0FBTixDQUFQO0FBQUEsR0FBaEIsQ0FEZTtBQUFBLENBQWpCOztBQUlBLElBQU1DLE9BQU8sU0FBUEEsSUFBTyxDQUFDRCxHQUFELEVBQU1FLFVBQU47QUFBQSxTQUNYLElBQUlBLFVBQUosQ0FBZUYsR0FBZixFQUFvQixzQkFBYyxFQUFkLEVBQWtCQSxHQUFsQixDQUFwQixDQURXO0FBQUEsQ0FBYjs7QUFHQSxJQUFNRyxvQkFBb0IsU0FBcEJBLGlCQUFvQixDQUFDQyxTQUFELEVBQVlDLFFBQVosRUFBeUI7QUFDakQsTUFBTUMsV0FBV0YsVUFBVUcs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QUwsQ0FBZWlDLEdBQWYsQ0FBbUJMLE1BQW5CLENBQVQsQ0FBUDtBQUNEOzs7d0JBRUdBLE0sRUFBUTtBQUNWLGFBQU9wQyxTQUFTLEtBQUtRLFNBQUwsQ0FBZWtDLEdBQWYsQ0FBbUJOLE1BQW5CLENBQVQsQ0FBUDtBQUNEOzs7d0JBRUdBLE0sRUFBUTtBQUNWLGFBQU9wQyxTQUFTLEtBQUtRLFNBQUwsQ0FBZW1DLEdBQWYsQ0FBbUJQLE1BQW5CLENBQVQsQ0FBUDtBQUNEOzs7d0JBRUdBLE0sRUFBUTtBQUNWLGFBQU9wQyxTQUFTLEtBQUtRLFNBQUwsQ0FBZW9DLEdBQWYsQ0FBbUJSLE1BQW5CLENBQVQsQ0FBUDtBQUNEOzs7OztrQkE3RmtCeEIsSyIsImZpbGUiOiJxdWVyeS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTcgUm9tYW4gTGFraHRhZHlyXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgZmlsdGVyIGZyb20gJy4vZmlsdGVyJztcblxuY29uc3QgZ2V0VmFsdWUgPSBxYiA9PiAoXG4gIHFiLmZpcnN0KCkudGhlbihyb3cgPT4gZmlyc3QoT2JqZWN0LnZhbHVlcyhyb3cpKSlcbik7XG5cbmNvbnN0IHdyYXAgPSAocm93LCBNb2RlbENsYXNzKSA9PlxuICBuZXcgTW9kZWxDbGFzcyhyb3csIE9iamVjdC5hc3NpZ24oe30sIHJvdykpO1xuXG5jb25zdCBjcmVhdGVVbmlxdWVRdWVyeSA9IChrbmV4UXVlcnksIGNhbGxiYWNrKSA9PiB7XG4gIGNvbnN0IG5ld1F1ZXJ5ID0ga25leFF1ZXJ5LmNsb25lKCk7XG4gIGNhbGxiYWNrKG5ld1F1ZXJ5KTtcbiAgcmV0dXJuIG5ld1F1ZXJ5O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUXVlcnkge1xuICBjb25zdHJ1Y3Rvcihtb2RlbENsYXNzLCBrbmV4UXVlcnkpIHtcbiAgICB0aGlzLm1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzO1xuICAgIHRoaXMua25leEluc3RhbmNlID0gbW9kZWxDbGFzcy5rbmV4O1xuICAgIHRoaXMua25leFF1ZXJ5ID0ga25leFF1ZXJ5IHx8IHRoaXMua25leEluc3RhbmNlKG1vZGVsQ2xhc3MudGFibGUpO1xuICB9XG5cbiAgZmlsdGVyKGF0dHJpYnV0ZXMpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeShxID0+IGZpbHRlcihxLCBhdHRyaWJ1dGVzKSk7XG4gIH1cblxuICBxdWVyeShjYWxsYmFjaykge1xuICAgIHJldHVybiBuZXcgUXVlcnkoXG4gICAgICB0aGlzLm1vZGVsQ2xhc3MsXG4gICAgICBjcmVhdGVVbmlxdWVRdWVyeSh0aGlzLmtuZXhRdWVyeSwgY2FsbGJhY2spLFxuICAgICk7XG4gIH1cblxuICBsaW1pdChudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeShxID0+IHEubGltaXQobnVtYmVyKSk7XG4gIH1cblxuICBvZmZzZXQobnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcnkocSA9PiBxLm9mZnNldChudW1iZXIpKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZShhdHRyaWJ1dGVzKSB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLm1vZGVsQ2xhc3MuY3JlYXRlKGF0dHJpYnV0ZXMpO1xuICAgIGF3YWl0IG1vZGVsLnNhdmUoKTtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICBhc3luYyBnZXQoaWQpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoeyBbdGhpcy5tb2RlbENsYXNzLmlkQXR0cmlidXRlXTogaWQgfSkub25lKCk7XG4gIH1cblxuICBhc3luYyBnZXRPckNyZWF0ZShhdHRyaWJ1dGVzLCBkZWZhdWx0cyA9IHt9KSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnF1ZXJ5KHEgPT4gcS53aGVyZShhdHRyaWJ1dGVzKSkub25lKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiB0aGlzLm1vZGVsQ2xhc3MuTm90Rm91bmRFcnJvcikge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGUoeyAuLi5kZWZhdWx0cywgLi4uYXR0cmlidXRlcyB9KTtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb25lKCkge1xuICAgIGNvbnN0IHJvdyA9IGF3YWl0IHRoaXMua25leFF1ZXJ5LmZpcnN0KCk7XG5cbiAgICBpZiAoIXJvdykge1xuICAgICAgdGhyb3cgbmV3IHRoaXMubW9kZWxDbGFzcy5Ob3RGb3VuZEVycm9yKCdFbnRpdHkgbm90IGZvdW5kJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHdyYXAocm93LCB0aGlzLm1vZGVsQ2xhc3MpO1xuICB9XG5cbiAgYWxsKCkge1xuICAgIHJldHVybiB0aGlzLmtuZXhRdWVyeVxuICAgICAgLnNlbGVjdCgpXG4gICAgICAudGhlbihyb3dzID0+IHJvd3MubWFwKHJvdyA9PiB3cmFwKHJvdywgdGhpcy5tb2RlbENsYXNzKSkpO1xuICB9XG5cbiAgcGx1Y2soY29sdW1uKSB7XG4gICAgcmV0dXJuIHRoaXMua25leFF1ZXJ5LnBsdWNrKGNvbHVtbik7XG4gIH1cblxuICBhc3luYyB1cGRhdGUoYXR0cmlidXRlcykge1xuICAgIGF3YWl0IHRoaXMua25leFF1ZXJ5LnVwZGF0ZShhdHRyaWJ1dGVzKTtcbiAgfVxuXG4gIGFzeW5jIHJlbW92ZSgpIHtcbiAgICBhd2FpdCB0aGlzLmtuZXhRdWVyeS5kZWxldGUoKTtcbiAgfVxuXG4gIGNvdW50KGNvbHVtbiA9IG51bGwpIHtcbiAgICByZXR1cm4gZ2V0VmFsdWUodGhpcy5rbmV4UXVlcnkuY291bnQoY29sdW1uKSk7XG4gIH1cblxuICBtaW4oY29sdW1uKSB7XG4gICAgcmV0dXJuIGdldFZhbHVlKHRoaXMua25leFF1ZXJ5Lm1pbihjb2x1bW4pKTtcbiAgfVxuXG4gIG1heChjb2x1bW4pIHtcbiAgICByZXR1cm4gZ2V0VmFsdWUodGhpcy5rbmV4UXVlcnkubWF4KGNvbHVtbikpO1xuICB9XG5cbiAgc3VtKGNvbHVtbikge1xuICAgIHJldHVybiBnZXRWYWx1ZSh0aGlzLmtuZXhRdWVyeS5zdW0oY29sdW1uKSk7XG4gIH1cblxuICBhdmcoY29sdW1uKSB7XG4gICAgcmV0dXJuIGdldFZhbHVlKHRoaXMua25leFF1ZXJ5LmF2Zyhjb2x1bW4pKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9xdWVyeS5qcyJdLCJuYW1lcyI6WyJnZXRWYWx1ZSIsInFiIiwiZmlyc3QiLCJ0aGVuIiwicm93Iiwid3JhcCIsIk1vZGVsQ2xhc3MiLCJjcmVhdGVVbmlxdWVRdWVyeSIsImtuZXhRdWVyeSIsImNhbGxiYWNrIiwibmV3UXVlcnkiLCJjbG9uZSIsIlF1ZXJ5IiwibW9kZWxDbGFzcyIsImtuZXgiLCJ1bmRlZmluZWQiLCJ0YWJsZSIsImF0dHJpYnV0ZXMiLCJxdWVyeSIsInEiLCJudW1iZXIiLCJsaW1pdCIsIm9mZnNldCIsIm1vZGVsIiwiY3JlYXRlIiwic2F2ZSIsImlkIiwiZmlsdGVyIiwiaWRBdHRyaWJ1dGUiLCJvbmUiLCJkZWZhdWx0cyIsIndoZXJlIiwiTm90Rm91bmRFcnJvciIsImtuZXhRdWVyeVRyYW5zYWN0aW5nIiwic2VsZWN0Iiwicm93cyIsIm1hcCIsImNvbHVtbiIsInBsdWNrIiwidXBkYXRlIiwiZGVsZXRlIiwiY291bnQiLCJtaW4iLCJtYXgiLCJzdW0iLCJhdmciLCJmbHVvcml0ZSIsImlzVHJhbnNhY3RpbmciLCJ0cmFuc2FjdGluZyIsImN1cnJlbnRUcmFuc2FjdGlvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkE7O0FBQ0E7Ozs7OztBQXZCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXlCQSxJQUFNQSxXQUFXLFNBQVhBLFFBQVc7QUFBQSxTQUNmQyxHQUFHQyxLQUFILEdBQVdDLElBQVgsQ0FBZ0I7QUFBQSxXQUFPLG1CQUFNLHNCQUFjQyxHQUFkLENBQU4sQ0FBUDtBQUFBLEdBQWhCLENBRGU7QUFBQSxDQUFqQjs7QUFJQSxJQUFNQyxPQUFPLFNBQVBBLElBQU8sQ0FBQ0QsR0FBRCxFQUFNRSxVQUFOO0FBQUEsU0FDWCxJQUFJQSxVQUFKLENBQWVGLEdBQWYsRUFBb0Isc0JBQWMsRUFBZCxFQUFrQkEsR0FBbEIsQ0FBcEIsQ0FEVztBQUFBLENBQWI7O0FB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QUEwQlEsS0FBMUIsQ0FBZ0NKLE1BQWhDLENBQVQsQ0FBUDtBQUNEOzs7d0JBRUdBLE0sRUFBUTtBQUNWLGFBQU9yQyxTQUFTLEtBQUtpQyxvQkFBTCxDQUEwQlMsR0FBMUIsQ0FBOEJMLE1BQTlCLENBQVQsQ0FBUDtBQUNEOzs7d0JBRUdBLE0sRUFBUTtBQUNWLGFBQU9yQyxTQUFTLEtBQUtpQyxvQkFBTCxDQUEwQlUsR0FBMUIsQ0FBOEJOLE1BQTlCLENBQVQsQ0FBUDtBQUNEOzs7d0JBRUdBLE0sRUFBUTtBQUNWLGFBQU9yQyxTQUFTLEtBQUtpQyxvQkFBTCxDQUEwQlcsR0FBMUIsQ0FBOEJQLE1BQTlCLENBQVQsQ0FBUDtBQUNEOzs7d0JBRUdBLE0sRUFBUTtBQUNWLGFBQU9yQyxTQUFTLEtBQUtpQyxvQkFBTCxDQUEwQlksR0FBMUIsQ0FBOEJSLE1BQTlCLENBQVQsQ0FBUDtBQUNEOzs7d0JBL0YwQjtBQUN6QixVQUFJLEtBQUt4QixVQUFMLENBQWdCaUMsUUFBaEIsQ0FBeUJDLGFBQTdCLEVBQTRDO0FBQzFDLGVBQU8sS0FBS3ZDLFNBQUwsQ0FBZUcsS0FBZixHQUF1QnFDLFdBQXZCLENBQ0wsS0FBS25DLFVBQUwsQ0FBZ0JpQyxRQUFoQixDQUF5Qkcsa0JBRHBCLENBQVA7QUFHRDtBQUNELGFBQU8sS0FBS3pDLFNBQVo7QUFDRDs7Ozs7a0JBYmtCSSxLIiwiZmlsZSI6InF1ZXJ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNyBSb21hbiBMYWtodGFkeXJcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBmaWx0ZXIgZnJvbSAnLi9maWx0ZXInO1xuXG5jb25zdCBnZXRWYWx1ZSA9IHFiID0+IChcbiAgcWIuZmlyc3QoKS50aGVuKHJvdyA9PiBmaXJzdChPYmplY3QudmFsdWVzKHJvdykpKVxuKTtcblxuY29uc3Qgd3JhcCA9IChyb3csIE1vZGVsQ2xhc3MpID0+XG4gIG5ldyBNb2RlbENsYXNzKHJvdywgT2JqZWN0LmFzc2lnbih7fSwgcm93KSk7XG5cbmNvbnN0IGNyZWF0ZVVuaXF1ZVF1ZXJ5ID0gKGtuZXhRdWVyeSwgY2FsbGJhY2spID0+IHtcbiAgY29uc3QgbmV3UXVlcnkgPSBrbmV4UXVlcnkuY2xvbmUoKTtcbiAgY2FsbGJhY2sobmV3UXVlcnkpO1xuICByZXR1cm4gbmV3UXVlcnk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBRdWVyeSB7XG4gIGNvbnN0cnVjdG9yKG1vZGVsQ2xhc3MsIGtuZXggPSB1bmRlZmluZWQpIHtcbiAgICB0aGlzLm1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzO1xuICAgIHRoaXMua25leFF1ZXJ5ID0ga25leCB8fCBtb2RlbENsYXNzLmtuZXgobW9kZWxDbGFzcy50YWJsZSk7XG4gIH1cblxuICBnZXQga25leFF1ZXJ5VHJhbnNhY3RpbmcoKSB7XG4gICAgaWYgKHRoaXMubW9kZWxDbGFzcy5mbHVvcml0ZS5pc1RyYW5zYWN0aW5nKSB7XG4gICAgICByZXR1cm4gdGhpcy5rbmV4UXVlcnkuY2xvbmUoKS50cmFuc2FjdGluZyhcbiAgICAgICAgdGhpcy5tb2RlbENsYXNzLmZsdW9yaXRlLmN1cnJlbnRUcmFuc2FjdGlvbixcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmtuZXhRdWVyeTtcbiAgfVxuXG4gIGZpbHRlcihhdHRyaWJ1dGVzKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcnkocSA9PiBmaWx0ZXIocSwgYXR0cmlidXRlcykpO1xuICB9XG5cbiAgcXVlcnkoY2FsbGJhY2spIHtcbiAgICByZXR1cm4gbmV3IFF1ZXJ5KFxuICAgICAgdGhpcy5tb2RlbENsYXNzLFxuICAgICAgY3JlYXRlVW5pcXVlUXVlcnkodGhpcy5rbmV4UXVlcnksIGNhbGxiYWNrKSxcbiAgICApO1xuICB9XG5cbiAgbGltaXQobnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMucXVlcnkocSA9PiBxLmxpbWl0KG51bWJlcikpO1xuICB9XG5cbiAgb2Zmc2V0KG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5KHEgPT4gcS5vZmZzZXQobnVtYmVyKSk7XG4gIH1cblxuICBhc3luYyBjcmVhdGUoYXR0cmlidXRlcykge1xuICAgIGNvbnN0IG1vZGVsID0gdGhpcy5tb2RlbENsYXNzLmNyZWF0ZShhdHRyaWJ1dGVzKTtcbiAgICBhd2FpdCBtb2RlbC5zYXZlKCk7XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9XG5cbiAgYXN5bmMgZ2V0KGlkKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyKHsgW3RoaXMubW9kZWxDbGFzcy5pZEF0dHJpYnV0ZV06IGlkIH0pLm9uZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0T3JDcmVhdGUoYXR0cmlidXRlcywgZGVmYXVsdHMgPSB7fSkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5xdWVyeShxID0+IHEud2hlcmUoYXR0cmlidXRlcykpLm9uZSgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgdGhpcy5tb2RlbENsYXNzLk5vdEZvdW5kRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlKHsgLi4uZGVmYXVsdHMsIC4uLmF0dHJpYnV0ZXMgfSk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9uZSgpIHtcbiAgICBjb25zdCByb3cgPSBhd2FpdCB0aGlzLmtuZXhRdWVyeVRyYW5zYWN0aW5nLmZpcnN0KCk7XG5cbiAgICBpZiAoIXJvdykge1xuICAgICAgdGhyb3cgbmV3IHRoaXMubW9kZWxDbGFzcy5Ob3RGb3VuZEVycm9yKCdFbnRpdHkgbm90IGZvdW5kJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHdyYXAocm93LCB0aGlzLm1vZGVsQ2xhc3MpO1xuICB9XG5cbiAgYWxsKCkge1xuICAgIHJldHVybiB0aGlzLmtuZXhRdWVyeVRyYW5zYWN0aW5nXG4gICAgICAuc2VsZWN0KClcbiAgICAgIC50aGVuKHJvd3MgPT4gcm93cy5tYXAocm93ID0+IHdyYXAocm93LCB0aGlzLm1vZGVsQ2xhc3MpKSk7XG4gIH1cblxuICBwbHVjayhjb2x1bW4pIHtcbiAgICByZXR1cm4gdGhpcy5rbmV4UXVlcnlUcmFuc2FjdGluZy5wbHVjayhjb2x1bW4pO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlKGF0dHJpYnV0ZXMpIHtcbiAgICBhd2FpdCB0aGlzLmtuZXhRdWVyeVRyYW5zYWN0aW5nLnVwZGF0ZShhdHRyaWJ1dGVzKTtcbiAgfVxuXG4gIGFzeW5jIHJlbW92ZSgpIHtcbiAgICBhd2FpdCB0aGlzLmtuZXhRdWVyeVRyYW5zYWN0aW5nLmRlbGV0ZSgpO1xuICB9XG5cbiAgY291bnQoY29sdW1uID0gbnVsbCkge1xuICAgIHJldHVybiBnZXRWYWx1ZSh0aGlzLmtuZXhRdWVyeVRyYW5zYWN0aW5nLmNvdW50KGNvbHVtbikpO1xuICB9XG5cbiAgbWluKGNvbHVtbikge1xuICAgIHJldHVybiBnZXRWYWx1ZSh0aGlzLmtuZXhRdWVyeVRyYW5zYWN0aW5nLm1pbihjb2x1bW4pKTtcbiAgfVxuXG4gIG1heChjb2x1bW4pIHtcbiAgICByZXR1cm4gZ2V0VmFsdWUodGhpcy5rbmV4UXVlcnlUcmFuc2FjdGluZy5tYXgoY29sdW1uKSk7XG4gIH1cblxuICBzdW0oY29sdW1uKSB7XG4gICAgcmV0dXJuIGdldFZhbHVlKHRoaXMua25leFF1ZXJ5VHJhbnNhY3Rpbmcuc3VtKGNvbHVtbikpO1xuICB9XG5cbiAgYXZnKGNvbHVtbikge1xuICAgIHJldHVybiBnZXRWYWx1ZSh0aGlzLmtuZXhRdWVyeVRyYW5zYWN0aW5nLmF2Zyhjb2x1bW4pKTtcbiAgfVxufVxuIl19
{
"name": "fluorite",
"version": "1.0.0-beta-1",
"description": "ORM library",
"version": "1.0.0-beta-2",
"description": "Lightweight ORM based on Knex.js query builder.",
"main": "dist/index.js",

@@ -6,0 +6,0 @@ "scripts": {

@@ -10,5 +10,10 @@ # Fluorite.js

## Features
* Unique queries
* Transactions
* Scopes
* Bulk update and delete
* Support `belongsTo`, `belongsToMany` and `hasMany` relations (lazy)
* Supports `belongsTo`, `belongsToMany` and `hasMany` relations (lazy)
## API
Fluorite is under active development.
Readme will be later.
For usage details see tests.

@@ -0,1 +1,23 @@

/*
* Copyright (c) 2017 Roman Lakhtadyr
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
export default {

@@ -2,0 +24,0 @@ NotFoundError: class NotFoundError extends Error {},

@@ -23,6 +23,31 @@ /*

import { last } from 'lodash';
import model from './model';
export default knex => ({
Model: model(knex),
});
export default (knex) => {
const transactions = [];
const fluorite = ({
knex,
transaction(callback) {
return knex.transaction(async (trx) => {
try {
transactions.push(trx);
return callback();
} finally {
transactions.unshift(trx);
}
});
},
get isTransacting() {
return transactions.length > 0;
},
get currentTransaction() {
return last(transactions);
},
});
return {
Model: model(fluorite),
transaction: fluorite.transaction,
};
};

@@ -27,3 +27,3 @@ /*

export default knex => class Model {
export default fluorite => class Model {
static NotFoundError = class NotFoundError extends errors.NotFoundError { };

@@ -36,4 +36,8 @@

static get fluorite() {
return fluorite;
}
static get knex() {
return knex;
return this.fluorite.knex;
}

@@ -70,2 +74,10 @@

createKnexQuery() {
const query = this.constructor.knex(this.constructor.table);
if (this.constructor.fluorite.isTransacting) {
query.transacting(this.constructor.fluorite.currentTransaction);
}
return query;
}
get(name) {

@@ -94,3 +106,3 @@ return this.attributes[name];

return this.constructor.knex(this.constructor.table)
return this.createKnexQuery()
.where(this.constructor.idAttribute, this.id)

@@ -101,5 +113,6 @@ .delete();

async insert() {
const ids = await this.constructor
.knex(this.constructor.table)
.insert(this.attributesWithoutId, this.constructor.idAttribute);
const ids = await this.createKnexQuery().insert(
this.attributesWithoutId,
this.constructor.idAttribute,
);
const lastId = last(ids);

@@ -116,4 +129,3 @@ this.attributes[this.constructor.idAttribute] = lastId;

}
await this.constructor
.knex(this.constructor.table)
await this.createKnexQuery()
.update(updatedAttributes)

@@ -120,0 +132,0 @@ .where({ [this.constructor.idAttribute]: this.id });

@@ -40,8 +40,16 @@ /*

export default class Query {
constructor(modelClass, knexQuery) {
constructor(modelClass, knex = undefined) {
this.modelClass = modelClass;
this.knexInstance = modelClass.knex;
this.knexQuery = knexQuery || this.knexInstance(modelClass.table);
this.knexQuery = knex || modelClass.knex(modelClass.table);
}
get knexQueryTransacting() {
if (this.modelClass.fluorite.isTransacting) {
return this.knexQuery.clone().transacting(
this.modelClass.fluorite.currentTransaction,
);
}
return this.knexQuery;
}
filter(attributes) {

@@ -88,3 +96,3 @@ return this.query(q => filter(q, attributes));

async one() {
const row = await this.knexQuery.first();
const row = await this.knexQueryTransacting.first();

@@ -99,3 +107,3 @@ if (!row) {

all() {
return this.knexQuery
return this.knexQueryTransacting
.select()

@@ -106,32 +114,32 @@ .then(rows => rows.map(row => wrap(row, this.modelClass)));

pluck(column) {
return this.knexQuery.pluck(column);
return this.knexQueryTransacting.pluck(column);
}
async update(attributes) {
await this.knexQuery.update(attributes);
await this.knexQueryTransacting.update(attributes);
}
async remove() {
await this.knexQuery.delete();
await this.knexQueryTransacting.delete();
}
count(column = null) {
return getValue(this.knexQuery.count(column));
return getValue(this.knexQueryTransacting.count(column));
}
min(column) {
return getValue(this.knexQuery.min(column));
return getValue(this.knexQueryTransacting.min(column));
}
max(column) {
return getValue(this.knexQuery.max(column));
return getValue(this.knexQueryTransacting.max(column));
}
sum(column) {
return getValue(this.knexQuery.sum(column));
return getValue(this.knexQueryTransacting.sum(column));
}
avg(column) {
return getValue(this.knexQuery.avg(column));
return getValue(this.knexQueryTransacting.avg(column));
}
}
import Thing from './Thing';
import Address from './Address';
import Post from './Post';
import fluorite from '../services/fluorite';

@@ -15,2 +16,6 @@

}
posts() {
return this.hasMany(Post);
}
}

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc