meadow-endpoints 4.0.14 → 4.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/dist/indoctrinate_content_staging/Indoctrinate-Catalog-AppData.json +1286 -1065
  2. package/dist/meadow-endpoints.js +253 -164
  3. package/dist/meadow-endpoints.js.map +1 -1
  4. package/dist/meadow-endpoints.min.js +7 -7
  5. package/dist/meadow-endpoints.min.js.map +1 -1
  6. package/docs/_version.json +7 -0
  7. package/docs/css/docuserve.css +277 -23
  8. package/docs/index.html +2 -2
  9. package/docs/retold-catalog.json +13 -1
  10. package/docs/retold-keyword-index.json +1 -1
  11. package/package.json +9 -8
  12. package/source/Meadow-Endpoints-Browser-Shim.js +4 -1
  13. package/source/Meadow-Endpoints.js +6 -6
  14. package/source/controller/Meadow-Endpoints-Controller-Base.js +6 -6
  15. package/source/controller/components/Meadow-Endpoints-Controller-BehaviorInjection.js +11 -11
  16. package/source/controller/components/Meadow-Endpoints-Controller-Error.js +23 -15
  17. package/source/controller/components/Meadow-Endpoints-Controller-Log.js +9 -9
  18. package/source/controller/utility/Meadow-Endpoints-Filter-Parser.js +16 -16
  19. package/source/controller/utility/Meadow-Endpoints-Session-Marshaler.js +42 -42
  20. package/source/controller/utility/Meadow-Endpoints-Stream-RecordArray.js +6 -6
  21. package/source/endpoints/create/Meadow-Operation-Create.js +1 -1
  22. package/source/endpoints/schema/Meadow-Endpoint-Validate.js +1 -1
  23. package/source/endpoints/update/Meadow-Endpoint-BulkUpdate.js +2 -0
  24. package/source/endpoints/update/Meadow-Operation-Update.js +2 -0
  25. package/source/endpoints/upsert/Meadow-Endpoint-BulkUpsert.js +3 -1
  26. package/source/endpoints/upsert/Meadow-Operation-Upsert.js +5 -3
  27. package/test/MeadowEndpoints_basic_tests.js +776 -0
@@ -13,7 +13,7 @@ if(header){stream.emit('header',header);header=false;}if(j!==this.stack.length)r
13
13
  if(header!==false){header=header||{};header[key]=value;}// footer has not been emitted yet but header has
14
14
  if(footer!==false&&header===false){footer=footer||{};footer[key]=value;}}};function check(x,y){if('string'===typeof x)return y==x;else if(x&&'function'===typeof x.exec)return x.exec(y);else if('boolean'===typeof x||'object'===typeof x)return x;else if('function'===typeof x)return x(y);return false;}exports.stringify=function(op,sep,cl,indent){indent=indent||0;if(op===false){op='';sep='\n';cl='';}else if(op==null){op='[\n';sep='\n,\n';cl='\n]\n';}//else, what ever you like
15
15
  var stream,first=true,anyData=false;stream=through(function(data){anyData=true;try{var json=JSON.stringify(data,null,indent);}catch(err){return stream.emit('error',err);}if(first){first=false;stream.queue(op+json);}else stream.queue(sep+json);},function(data){if(!anyData)stream.queue(op);stream.queue(cl);stream.queue(null);});return stream;};exports.stringifyObject=function(op,sep,cl,indent){indent=indent||0;if(op===false){op='';sep='\n';cl='';}else if(op==null){op='{\n';sep='\n,\n';cl='\n}\n';}//else, what ever you like
16
- var first=true;var anyData=false;var stream=through(function(data){anyData=true;var json=JSON.stringify(data[0])+':'+JSON.stringify(data[1],null,indent);if(first){first=false;this.queue(op+json);}else this.queue(sep+json);},function(data){if(!anyData)this.queue(op);this.queue(cl);this.queue(null);});return stream;};}).call(this);}).call(this,require("buffer").Buffer);},{"buffer":23,"jsonparse":87,"through":179}],2:[function(require,module,exports){'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.default=asyncify;var _initialParams=require('./internal/initialParams.js');var _initialParams2=_interopRequireDefault(_initialParams);var _setImmediate=require('./internal/setImmediate.js');var _setImmediate2=_interopRequireDefault(_setImmediate);var _wrapAsync=require('./internal/wrapAsync.js');function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}/**
16
+ var first=true;var anyData=false;var stream=through(function(data){anyData=true;var json=JSON.stringify(data[0])+':'+JSON.stringify(data[1],null,indent);if(first){first=false;this.queue(op+json);}else this.queue(sep+json);},function(data){if(!anyData)this.queue(op);this.queue(cl);this.queue(null);});return stream;};}).call(this);}).call(this,require("buffer").Buffer);},{"buffer":23,"jsonparse":87,"through":180}],2:[function(require,module,exports){'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.default=asyncify;var _initialParams=require('./internal/initialParams.js');var _initialParams2=_interopRequireDefault(_initialParams);var _setImmediate=require('./internal/setImmediate.js');var _setImmediate2=_interopRequireDefault(_setImmediate);var _wrapAsync=require('./internal/wrapAsync.js');function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}/**
17
17
  * Take a sync function and make it async, passing its return value to a
18
18
  * callback. This is useful for plugging sync functions into a waterfall,
19
19
  * series, or other async functions. Any arguments passed to the generated
@@ -122,7 +122,7 @@ return callback(null);}replenish();}function handleError(err){if(canceled)return
122
122
  // only return a promise if a callback is omitted
123
123
  function awaitify(asyncFn,arity){if(!arity)arity=asyncFn.length;if(!arity)throw new Error('arity is undefined');function awaitable(){for(var _len3=arguments.length,args=new Array(_len3),_key3=0;_key3<_len3;_key3++){args[_key3]=arguments[_key3];}if(typeof args[arity-1]==='function'){return asyncFn.apply(this,args);}return new Promise((resolve,reject)=>{args[arity-1]=function(err){if(err)return reject(err);for(var _len4=arguments.length,cbArgs=new Array(_len4>1?_len4-1:0),_key4=1;_key4<_len4;_key4++){cbArgs[_key4-1]=arguments[_key4];}resolve(cbArgs.length>1?cbArgs:cbArgs[0]);};asyncFn.apply(this,args);});}return awaitable;}module.exports=exports.default;},{}],7:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});// A temporary value used to identify if the loop should be broken.
124
124
  // See #1064, #1293
125
- const breakLoop={};exports.default=breakLoop;module.exports=exports.default;},{}],8:[function(require,module,exports){'use strict';Object.defineProperty(exports,"__esModule",{value:true});var _once=require('./once.js');var _once2=_interopRequireDefault(_once);var _iterator=require('./iterator.js');var _iterator2=_interopRequireDefault(_iterator);var _onlyOnce=require('./onlyOnce.js');var _onlyOnce2=_interopRequireDefault(_onlyOnce);var _wrapAsync=require('./wrapAsync.js');var _asyncEachOfLimit=require('./asyncEachOfLimit.js');var _asyncEachOfLimit2=_interopRequireDefault(_asyncEachOfLimit);var _breakLoop=require('./breakLoop.js');var _breakLoop2=_interopRequireDefault(_breakLoop);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}exports.default=limit=>{return(obj,iteratee,callback)=>{callback=(0,_once2.default)(callback);if(limit<=0){throw new RangeError('concurrency limit cannot be less than 1');}if(!obj){return callback(null);}if((0,_wrapAsync.isAsyncGenerator)(obj)){return(0,_asyncEachOfLimit2.default)(obj,limit,iteratee,callback);}if((0,_wrapAsync.isAsyncIterable)(obj)){return(0,_asyncEachOfLimit2.default)(obj[Symbol.asyncIterator](),limit,iteratee,callback);}var nextElem=(0,_iterator2.default)(obj);var done=false;var canceled=false;var running=0;var looping=false;function iterateeCallback(err,value){if(canceled)return;running-=1;if(err){done=true;callback(err);}else if(err===false){done=true;canceled=true;}else if(value===_breakLoop2.default||done&&running<=0){done=true;return callback(null);}else if(!looping){replenish();}}function replenish(){looping=true;while(running<limit&&!done){var elem=nextElem();if(elem===null){done=true;if(running<=0){callback(null);}return;}running+=1;iteratee(elem.value,elem.key,(0,_onlyOnce2.default)(iterateeCallback));}looping=false;}replenish();};};module.exports=exports.default;},{"./asyncEachOfLimit.js":5,"./breakLoop.js":7,"./iterator.js":12,"./once.js":13,"./onlyOnce.js":14,"./wrapAsync.js":17}],9:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(coll){return coll[Symbol.iterator]&&coll[Symbol.iterator]();};module.exports=exports.default;},{}],10:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(fn){return function(){for(var _len5=arguments.length,args=new Array(_len5),_key5=0;_key5<_len5;_key5++){args[_key5]=arguments[_key5];}var callback=args.pop();return fn.call(this,args,callback);};};module.exports=exports.default;},{}],11:[function(require,module,exports){'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.default=isArrayLike;function isArrayLike(value){return value&&typeof value.length==='number'&&value.length>=0&&value.length%1===0;}module.exports=exports.default;},{}],12:[function(require,module,exports){'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.default=createIterator;var _isArrayLike=require('./isArrayLike.js');var _isArrayLike2=_interopRequireDefault(_isArrayLike);var _getIterator=require('./getIterator.js');var _getIterator2=_interopRequireDefault(_getIterator);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function createArrayIterator(coll){var i=-1;var len=coll.length;return function next(){return++i<len?{value:coll[i],key:i}:null;};}function createES2015Iterator(iterator){var i=-1;return function next(){var item=iterator.next();if(item.done)return null;i++;return{value:item.value,key:i};};}function createObjectIterator(obj){var okeys=obj?Object.keys(obj):[];var i=-1;var len=okeys.length;return function next(){var key=okeys[++i];if(key==='__proto__'){return next();}return i<len?{value:obj[key],key}:null;};}function createIterator(coll){if((0,_isArrayLike2.default)(coll)){return createArrayIterator(coll);}var iterator=(0,_getIterator2.default)(coll);return iterator?createES2015Iterator(iterator):createObjectIterator(coll);}module.exports=exports.default;},{"./getIterator.js":9,"./isArrayLike.js":11}],13:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=once;function once(fn){function wrapper(){if(fn===null)return;var callFn=fn;fn=null;for(var _len6=arguments.length,args=new Array(_len6),_key6=0;_key6<_len6;_key6++){args[_key6]=arguments[_key6];}callFn.apply(this,args);}Object.assign(wrapper,fn);return wrapper;}module.exports=exports.default;},{}],14:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=onlyOnce;function onlyOnce(fn){return function(){if(fn===null)throw new Error("Callback was already called.");var callFn=fn;fn=null;for(var _len7=arguments.length,args=new Array(_len7),_key7=0;_key7<_len7;_key7++){args[_key7]=arguments[_key7];}callFn.apply(this,args);};}module.exports=exports.default;},{}],15:[function(require,module,exports){(function(process,setImmediate){(function(){'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.fallback=fallback;exports.wrap=wrap;/* istanbul ignore file */var hasQueueMicrotask=exports.hasQueueMicrotask=typeof queueMicrotask==='function'&&queueMicrotask;var hasSetImmediate=exports.hasSetImmediate=typeof setImmediate==='function'&&setImmediate;var hasNextTick=exports.hasNextTick=typeof process==='object'&&typeof process.nextTick==='function';function fallback(fn){setTimeout(fn,0);}function wrap(defer){return function(fn){for(var _len8=arguments.length,args=new Array(_len8>1?_len8-1:0),_key8=1;_key8<_len8;_key8++){args[_key8-1]=arguments[_key8];}return defer(()=>fn(...args));};}var _defer;if(hasQueueMicrotask){_defer=queueMicrotask;}else if(hasSetImmediate){_defer=setImmediate;}else if(hasNextTick){_defer=process.nextTick;}else{_defer=fallback;}exports.default=wrap(_defer);}).call(this);}).call(this,require('_process'),require("timers").setImmediate);},{"_process":125,"timers":180}],16:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=_withoutIndex;function _withoutIndex(iteratee){return(value,index,callback)=>iteratee(value,callback);}module.exports=exports.default;},{}],17:[function(require,module,exports){'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.isAsyncIterable=exports.isAsyncGenerator=exports.isAsync=undefined;var _asyncify=require('../asyncify.js');var _asyncify2=_interopRequireDefault(_asyncify);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function isAsync(fn){return fn[Symbol.toStringTag]==='AsyncFunction';}function isAsyncGenerator(fn){return fn[Symbol.toStringTag]==='AsyncGenerator';}function isAsyncIterable(obj){return typeof obj[Symbol.asyncIterator]==='function';}function wrapAsync(asyncFn){if(typeof asyncFn!=='function')throw new Error('expected a function');return isAsync(asyncFn)?(0,_asyncify2.default)(asyncFn):asyncFn;}exports.default=wrapAsync;exports.isAsync=isAsync;exports.isAsyncGenerator=isAsyncGenerator;exports.isAsyncIterable=isAsyncIterable;},{"../asyncify.js":2}],18:[function(require,module,exports){'use strict';Object.defineProperty(exports,"__esModule",{value:true});var _once=require('./internal/once.js');var _once2=_interopRequireDefault(_once);var _onlyOnce=require('./internal/onlyOnce.js');var _onlyOnce2=_interopRequireDefault(_onlyOnce);var _wrapAsync=require('./internal/wrapAsync.js');var _wrapAsync2=_interopRequireDefault(_wrapAsync);var _awaitify=require('./internal/awaitify.js');var _awaitify2=_interopRequireDefault(_awaitify);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}/**
125
+ const breakLoop={};exports.default=breakLoop;module.exports=exports.default;},{}],8:[function(require,module,exports){'use strict';Object.defineProperty(exports,"__esModule",{value:true});var _once=require('./once.js');var _once2=_interopRequireDefault(_once);var _iterator=require('./iterator.js');var _iterator2=_interopRequireDefault(_iterator);var _onlyOnce=require('./onlyOnce.js');var _onlyOnce2=_interopRequireDefault(_onlyOnce);var _wrapAsync=require('./wrapAsync.js');var _asyncEachOfLimit=require('./asyncEachOfLimit.js');var _asyncEachOfLimit2=_interopRequireDefault(_asyncEachOfLimit);var _breakLoop=require('./breakLoop.js');var _breakLoop2=_interopRequireDefault(_breakLoop);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}exports.default=limit=>{return(obj,iteratee,callback)=>{callback=(0,_once2.default)(callback);if(limit<=0){throw new RangeError('concurrency limit cannot be less than 1');}if(!obj){return callback(null);}if((0,_wrapAsync.isAsyncGenerator)(obj)){return(0,_asyncEachOfLimit2.default)(obj,limit,iteratee,callback);}if((0,_wrapAsync.isAsyncIterable)(obj)){return(0,_asyncEachOfLimit2.default)(obj[Symbol.asyncIterator](),limit,iteratee,callback);}var nextElem=(0,_iterator2.default)(obj);var done=false;var canceled=false;var running=0;var looping=false;function iterateeCallback(err,value){if(canceled)return;running-=1;if(err){done=true;callback(err);}else if(err===false){done=true;canceled=true;}else if(value===_breakLoop2.default||done&&running<=0){done=true;return callback(null);}else if(!looping){replenish();}}function replenish(){looping=true;while(running<limit&&!done){var elem=nextElem();if(elem===null){done=true;if(running<=0){callback(null);}return;}running+=1;iteratee(elem.value,elem.key,(0,_onlyOnce2.default)(iterateeCallback));}looping=false;}replenish();};};module.exports=exports.default;},{"./asyncEachOfLimit.js":5,"./breakLoop.js":7,"./iterator.js":12,"./once.js":13,"./onlyOnce.js":14,"./wrapAsync.js":17}],9:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(coll){return coll[Symbol.iterator]&&coll[Symbol.iterator]();};module.exports=exports.default;},{}],10:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(fn){return function(){for(var _len5=arguments.length,args=new Array(_len5),_key5=0;_key5<_len5;_key5++){args[_key5]=arguments[_key5];}var callback=args.pop();return fn.call(this,args,callback);};};module.exports=exports.default;},{}],11:[function(require,module,exports){'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.default=isArrayLike;function isArrayLike(value){return value&&typeof value.length==='number'&&value.length>=0&&value.length%1===0;}module.exports=exports.default;},{}],12:[function(require,module,exports){'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.default=createIterator;var _isArrayLike=require('./isArrayLike.js');var _isArrayLike2=_interopRequireDefault(_isArrayLike);var _getIterator=require('./getIterator.js');var _getIterator2=_interopRequireDefault(_getIterator);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function createArrayIterator(coll){var i=-1;var len=coll.length;return function next(){return++i<len?{value:coll[i],key:i}:null;};}function createES2015Iterator(iterator){var i=-1;return function next(){var item=iterator.next();if(item.done)return null;i++;return{value:item.value,key:i};};}function createObjectIterator(obj){var okeys=obj?Object.keys(obj):[];var i=-1;var len=okeys.length;return function next(){var key=okeys[++i];if(key==='__proto__'){return next();}return i<len?{value:obj[key],key}:null;};}function createIterator(coll){if((0,_isArrayLike2.default)(coll)){return createArrayIterator(coll);}var iterator=(0,_getIterator2.default)(coll);return iterator?createES2015Iterator(iterator):createObjectIterator(coll);}module.exports=exports.default;},{"./getIterator.js":9,"./isArrayLike.js":11}],13:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=once;function once(fn){function wrapper(){if(fn===null)return;var callFn=fn;fn=null;for(var _len6=arguments.length,args=new Array(_len6),_key6=0;_key6<_len6;_key6++){args[_key6]=arguments[_key6];}callFn.apply(this,args);}Object.assign(wrapper,fn);return wrapper;}module.exports=exports.default;},{}],14:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=onlyOnce;function onlyOnce(fn){return function(){if(fn===null)throw new Error("Callback was already called.");var callFn=fn;fn=null;for(var _len7=arguments.length,args=new Array(_len7),_key7=0;_key7<_len7;_key7++){args[_key7]=arguments[_key7];}callFn.apply(this,args);};}module.exports=exports.default;},{}],15:[function(require,module,exports){(function(process,setImmediate){(function(){'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.fallback=fallback;exports.wrap=wrap;/* istanbul ignore file */var hasQueueMicrotask=exports.hasQueueMicrotask=typeof queueMicrotask==='function'&&queueMicrotask;var hasSetImmediate=exports.hasSetImmediate=typeof setImmediate==='function'&&setImmediate;var hasNextTick=exports.hasNextTick=typeof process==='object'&&typeof process.nextTick==='function';function fallback(fn){setTimeout(fn,0);}function wrap(defer){return function(fn){for(var _len8=arguments.length,args=new Array(_len8>1?_len8-1:0),_key8=1;_key8<_len8;_key8++){args[_key8-1]=arguments[_key8];}return defer(()=>fn(...args));};}var _defer;if(hasQueueMicrotask){_defer=queueMicrotask;}else if(hasSetImmediate){_defer=setImmediate;}else if(hasNextTick){_defer=process.nextTick;}else{_defer=fallback;}exports.default=wrap(_defer);}).call(this);}).call(this,require('_process'),require("timers").setImmediate);},{"_process":126,"timers":181}],16:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=_withoutIndex;function _withoutIndex(iteratee){return(value,index,callback)=>iteratee(value,callback);}module.exports=exports.default;},{}],17:[function(require,module,exports){'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.isAsyncIterable=exports.isAsyncGenerator=exports.isAsync=undefined;var _asyncify=require('../asyncify.js');var _asyncify2=_interopRequireDefault(_asyncify);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function isAsync(fn){return fn[Symbol.toStringTag]==='AsyncFunction';}function isAsyncGenerator(fn){return fn[Symbol.toStringTag]==='AsyncGenerator';}function isAsyncIterable(obj){return typeof obj[Symbol.asyncIterator]==='function';}function wrapAsync(asyncFn){if(typeof asyncFn!=='function')throw new Error('expected a function');return isAsync(asyncFn)?(0,_asyncify2.default)(asyncFn):asyncFn;}exports.default=wrapAsync;exports.isAsync=isAsync;exports.isAsyncGenerator=isAsyncGenerator;exports.isAsyncIterable=isAsyncIterable;},{"../asyncify.js":2}],18:[function(require,module,exports){'use strict';Object.defineProperty(exports,"__esModule",{value:true});var _once=require('./internal/once.js');var _once2=_interopRequireDefault(_once);var _onlyOnce=require('./internal/onlyOnce.js');var _onlyOnce2=_interopRequireDefault(_onlyOnce);var _wrapAsync=require('./internal/wrapAsync.js');var _wrapAsync2=_interopRequireDefault(_wrapAsync);var _awaitify=require('./internal/awaitify.js');var _awaitify2=_interopRequireDefault(_awaitify);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}/**
126
126
  * Runs the `tasks` array of functions in series, each passing their results to
127
127
  * the next in the array. However, if any of the `tasks` pass an error to their
128
128
  * own callback, the next function is not executed, and the main `callback` is
@@ -179,7 +179,7 @@ const breakLoop={};exports.default=breakLoop;module.exports=exports.default;},{}
179
179
  * callback(null, 'done');
180
180
  * }
181
181
  */function waterfall(tasks,callback){callback=(0,_once2.default)(callback);if(!Array.isArray(tasks))return callback(new Error('First argument to waterfall must be an array of functions'));if(!tasks.length)return callback();var taskIndex=0;function nextTask(args){var task=(0,_wrapAsync2.default)(tasks[taskIndex++]);task(...args,(0,_onlyOnce2.default)(next));}function next(err){if(err===false)return;for(var _len9=arguments.length,args=new Array(_len9>1?_len9-1:0),_key9=1;_key9<_len9;_key9++){args[_key9-1]=arguments[_key9];}if(err||taskIndex===tasks.length){return callback(err,...args);}nextTask(args);}nextTask([]);}exports.default=(0,_awaitify2.default)(waterfall);module.exports=exports.default;},{"./internal/awaitify.js":6,"./internal/once.js":13,"./internal/onlyOnce.js":14,"./internal/wrapAsync.js":17}],19:[function(require,module,exports){(function(global){(function(){'use strict';var possibleNames=require('possible-typed-array-names');var g=typeof globalThis==='undefined'?global:globalThis;/** @type {import('.')} */module.exports=function availableTypedArrays(){var/** @type {ReturnType<typeof availableTypedArrays>} */out=[];for(var i=0;i<possibleNames.length;i++){if(typeof g[possibleNames[i]]==='function'){// @ts-expect-error
182
- out[out.length]=possibleNames[i];}}return out;};}).call(this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{"possible-typed-array-names":124}],20:[function(require,module,exports){'use strict';exports.byteLength=byteLength;exports.toByteArray=toByteArray;exports.fromByteArray=fromByteArray;var lookup=[];var revLookup=[];var Arr=typeof Uint8Array!=='undefined'?Uint8Array:Array;var code='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';for(var i=0,len=code.length;i<len;++i){lookup[i]=code[i];revLookup[code.charCodeAt(i)]=i;}// Support decoding URL-safe base64 strings, as Node.js does.
182
+ out[out.length]=possibleNames[i];}}return out;};}).call(this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{"possible-typed-array-names":125}],20:[function(require,module,exports){'use strict';exports.byteLength=byteLength;exports.toByteArray=toByteArray;exports.fromByteArray=fromByteArray;var lookup=[];var revLookup=[];var Arr=typeof Uint8Array!=='undefined'?Uint8Array:Array;var code='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';for(var i=0,len=code.length;i<len;++i){lookup[i]=code[i];revLookup[code.charCodeAt(i)]=i;}// Support decoding URL-safe base64 strings, as Node.js does.
183
183
  // See: https://en.wikipedia.org/wiki/Base64#URL_applications
184
184
  revLookup['-'.charCodeAt(0)]=62;revLookup['_'.charCodeAt(0)]=63;function getLens(b64){var len=b64.length;if(len%4>0){throw new Error('Invalid string. Length must be a multiple of 4');}// Trim off extra bytes after placeholder bytes are found
185
185
  // See: https://github.com/beatgammit/base64-js/issues/42
@@ -332,7 +332,7 @@ byteArray.push(str.charCodeAt(i)&0xFF);}return byteArray;}function utf16leToByte
332
332
  // See: https://github.com/feross/buffer/issues/166
333
333
  function isInstance(obj,type){return obj instanceof type||obj!=null&&obj.constructor!=null&&obj.constructor.name!=null&&obj.constructor.name===type.name;}function numberIsNaN(obj){// For IE11 support
334
334
  return obj!==obj;// eslint-disable-line no-self-compare
335
- }}).call(this);}).call(this,require("buffer").Buffer);},{"base64-js":20,"buffer":23,"ieee754":76}],24:[function(require,module,exports){module.exports={"100":"Continue","101":"Switching Protocols","102":"Processing","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I'm a teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Unordered Collection","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"};},{}],25:[function(require,module,exports){'use strict';var bind=require('function-bind');var $apply=require('./functionApply');var $call=require('./functionCall');var $reflectApply=require('./reflectApply');/** @type {import('./actualApply')} */module.exports=$reflectApply||bind.call($call,$apply);},{"./functionApply":27,"./functionCall":28,"./reflectApply":30,"function-bind":60}],26:[function(require,module,exports){'use strict';var bind=require('function-bind');var $apply=require('./functionApply');var actualApply=require('./actualApply');/** @type {import('./applyBind')} */module.exports=function applyBind(){return actualApply(bind,$apply,arguments);};},{"./actualApply":25,"./functionApply":27,"function-bind":60}],27:[function(require,module,exports){'use strict';/** @type {import('./functionApply')} */module.exports=Function.prototype.apply;},{}],28:[function(require,module,exports){'use strict';/** @type {import('./functionCall')} */module.exports=Function.prototype.call;},{}],29:[function(require,module,exports){'use strict';var bind=require('function-bind');var $TypeError=require('es-errors/type');var $call=require('./functionCall');var $actualApply=require('./actualApply');/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */module.exports=function callBindBasic(args){if(args.length<1||typeof args[0]!=='function'){throw new $TypeError('a function is required');}return $actualApply(bind,$call,args);};},{"./actualApply":25,"./functionCall":28,"es-errors/type":41,"function-bind":60}],30:[function(require,module,exports){'use strict';/** @type {import('./reflectApply')} */module.exports=typeof Reflect!=='undefined'&&Reflect&&Reflect.apply;},{}],31:[function(require,module,exports){'use strict';var setFunctionLength=require('set-function-length');var $defineProperty=require('es-define-property');var callBindBasic=require('call-bind-apply-helpers');var applyBind=require('call-bind-apply-helpers/applyBind');module.exports=function callBind(originalFunction){var func=callBindBasic(arguments);var adjustedLength=originalFunction.length-(arguments.length-1);return setFunctionLength(func,1+(adjustedLength>0?adjustedLength:0),true);};if($defineProperty){$defineProperty(module.exports,'apply',{value:applyBind});}else{module.exports.apply=applyBind;}},{"call-bind-apply-helpers":29,"call-bind-apply-helpers/applyBind":26,"es-define-property":35,"set-function-length":137}],32:[function(require,module,exports){'use strict';var GetIntrinsic=require('get-intrinsic');var callBindBasic=require('call-bind-apply-helpers');/** @type {(thisArg: string, searchString: string, position?: number) => number} */var $indexOf=callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]);/** @type {import('.')} */module.exports=function callBoundIntrinsic(name,allowMissing){/* eslint no-extra-parens: 0 */var intrinsic=/** @type {(this: unknown, ...args: unknown[]) => unknown} */GetIntrinsic(name,!!allowMissing);if(typeof intrinsic==='function'&&$indexOf(name,'.prototype.')>-1){return callBindBasic(/** @type {const} */[intrinsic]);}return intrinsic;};},{"call-bind-apply-helpers":29,"get-intrinsic":64}],33:[function(require,module,exports){'use strict';var $defineProperty=require('es-define-property');var $SyntaxError=require('es-errors/syntax');var $TypeError=require('es-errors/type');var gopd=require('gopd');/** @type {import('.')} */module.exports=function defineDataProperty(obj,property,value){if(!obj||typeof obj!=='object'&&typeof obj!=='function'){throw new $TypeError('`obj` must be an object or a function`');}if(typeof property!=='string'&&typeof property!=='symbol'){throw new $TypeError('`property` must be a string or a symbol`');}if(arguments.length>3&&typeof arguments[3]!=='boolean'&&arguments[3]!==null){throw new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');}if(arguments.length>4&&typeof arguments[4]!=='boolean'&&arguments[4]!==null){throw new $TypeError('`nonWritable`, if provided, must be a boolean or null');}if(arguments.length>5&&typeof arguments[5]!=='boolean'&&arguments[5]!==null){throw new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');}if(arguments.length>6&&typeof arguments[6]!=='boolean'){throw new $TypeError('`loose`, if provided, must be a boolean');}var nonEnumerable=arguments.length>3?arguments[3]:null;var nonWritable=arguments.length>4?arguments[4]:null;var nonConfigurable=arguments.length>5?arguments[5]:null;var loose=arguments.length>6?arguments[6]:false;/* @type {false | TypedPropertyDescriptor<unknown>} */var desc=!!gopd&&gopd(obj,property);if($defineProperty){$defineProperty(obj,property,{configurable:nonConfigurable===null&&desc?desc.configurable:!nonConfigurable,enumerable:nonEnumerable===null&&desc?desc.enumerable:!nonEnumerable,value:value,writable:nonWritable===null&&desc?desc.writable:!nonWritable});}else if(loose||!nonEnumerable&&!nonWritable&&!nonConfigurable){// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable
335
+ }}).call(this);}).call(this,require("buffer").Buffer);},{"base64-js":20,"buffer":23,"ieee754":76}],24:[function(require,module,exports){module.exports={"100":"Continue","101":"Switching Protocols","102":"Processing","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I'm a teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Unordered Collection","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"};},{}],25:[function(require,module,exports){'use strict';var bind=require('function-bind');var $apply=require('./functionApply');var $call=require('./functionCall');var $reflectApply=require('./reflectApply');/** @type {import('./actualApply')} */module.exports=$reflectApply||bind.call($call,$apply);},{"./functionApply":27,"./functionCall":28,"./reflectApply":30,"function-bind":60}],26:[function(require,module,exports){'use strict';var bind=require('function-bind');var $apply=require('./functionApply');var actualApply=require('./actualApply');/** @type {import('./applyBind')} */module.exports=function applyBind(){return actualApply(bind,$apply,arguments);};},{"./actualApply":25,"./functionApply":27,"function-bind":60}],27:[function(require,module,exports){'use strict';/** @type {import('./functionApply')} */module.exports=Function.prototype.apply;},{}],28:[function(require,module,exports){'use strict';/** @type {import('./functionCall')} */module.exports=Function.prototype.call;},{}],29:[function(require,module,exports){'use strict';var bind=require('function-bind');var $TypeError=require('es-errors/type');var $call=require('./functionCall');var $actualApply=require('./actualApply');/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */module.exports=function callBindBasic(args){if(args.length<1||typeof args[0]!=='function'){throw new $TypeError('a function is required');}return $actualApply(bind,$call,args);};},{"./actualApply":25,"./functionCall":28,"es-errors/type":41,"function-bind":60}],30:[function(require,module,exports){'use strict';/** @type {import('./reflectApply')} */module.exports=typeof Reflect!=='undefined'&&Reflect&&Reflect.apply;},{}],31:[function(require,module,exports){'use strict';var setFunctionLength=require('set-function-length');var $defineProperty=require('es-define-property');var callBindBasic=require('call-bind-apply-helpers');var applyBind=require('call-bind-apply-helpers/applyBind');module.exports=function callBind(originalFunction){var func=callBindBasic(arguments);var adjustedLength=originalFunction.length-(arguments.length-1);return setFunctionLength(func,1+(adjustedLength>0?adjustedLength:0),true);};if($defineProperty){$defineProperty(module.exports,'apply',{value:applyBind});}else{module.exports.apply=applyBind;}},{"call-bind-apply-helpers":29,"call-bind-apply-helpers/applyBind":26,"es-define-property":35,"set-function-length":138}],32:[function(require,module,exports){'use strict';var GetIntrinsic=require('get-intrinsic');var callBindBasic=require('call-bind-apply-helpers');/** @type {(thisArg: string, searchString: string, position?: number) => number} */var $indexOf=callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]);/** @type {import('.')} */module.exports=function callBoundIntrinsic(name,allowMissing){/* eslint no-extra-parens: 0 */var intrinsic=/** @type {(this: unknown, ...args: unknown[]) => unknown} */GetIntrinsic(name,!!allowMissing);if(typeof intrinsic==='function'&&$indexOf(name,'.prototype.')>-1){return callBindBasic(/** @type {const} */[intrinsic]);}return intrinsic;};},{"call-bind-apply-helpers":29,"get-intrinsic":64}],33:[function(require,module,exports){'use strict';var $defineProperty=require('es-define-property');var $SyntaxError=require('es-errors/syntax');var $TypeError=require('es-errors/type');var gopd=require('gopd');/** @type {import('.')} */module.exports=function defineDataProperty(obj,property,value){if(!obj||typeof obj!=='object'&&typeof obj!=='function'){throw new $TypeError('`obj` must be an object or a function`');}if(typeof property!=='string'&&typeof property!=='symbol'){throw new $TypeError('`property` must be a string or a symbol`');}if(arguments.length>3&&typeof arguments[3]!=='boolean'&&arguments[3]!==null){throw new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');}if(arguments.length>4&&typeof arguments[4]!=='boolean'&&arguments[4]!==null){throw new $TypeError('`nonWritable`, if provided, must be a boolean or null');}if(arguments.length>5&&typeof arguments[5]!=='boolean'&&arguments[5]!==null){throw new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');}if(arguments.length>6&&typeof arguments[6]!=='boolean'){throw new $TypeError('`loose`, if provided, must be a boolean');}var nonEnumerable=arguments.length>3?arguments[3]:null;var nonWritable=arguments.length>4?arguments[4]:null;var nonConfigurable=arguments.length>5?arguments[5]:null;var loose=arguments.length>6?arguments[6]:false;/* @type {false | TypedPropertyDescriptor<unknown>} */var desc=!!gopd&&gopd(obj,property);if($defineProperty){$defineProperty(obj,property,{configurable:nonConfigurable===null&&desc?desc.configurable:!nonConfigurable,enumerable:nonEnumerable===null&&desc?desc.enumerable:!nonEnumerable,value:value,writable:nonWritable===null&&desc?desc.writable:!nonWritable});}else if(loose||!nonEnumerable&&!nonWritable&&!nonConfigurable){// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable
336
336
  obj[property]=value;// eslint-disable-line no-param-reassign
337
337
  }else{throw new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');}};},{"es-define-property":35,"es-errors/syntax":40,"es-errors/type":41,"gopd":69}],34:[function(require,module,exports){'use strict';var callBind=require('call-bind-apply-helpers');var gOPD=require('gopd');var hasProtoAccessor;try{// eslint-disable-next-line no-extra-parens, no-proto
338
338
  hasProtoAccessor=/** @type {{ __proto__?: typeof Array.prototype }} */[].__proto__===Array.prototype;}catch(e){if(!e||typeof e!=='object'||!('code'in e)||e.code!=='ERR_PROTO_ACCESS'){throw e;}}// eslint-disable-next-line no-extra-parens
@@ -831,11 +831,9 @@ var tmpSchema=Array.isArray(pParameters.query.schema)?pParameters.query.schema:[
831
831
  var tmpCurrentColumn=0;for(var tmpColumn in tmpRecords[0]){// No hash table yet, so, we will just linear search it for now.
832
832
  // This uses the schema to decide if we want to treat a column differently on insert
833
833
  var tmpSchemaEntry={Column:tmpColumn,Type:'Default'};for(var i=0;i<tmpSchema.length;i++){if(tmpColumn==tmpSchema[i].Column){// There is a schema entry for it. Process it accordingly.
834
- tmpSchemaEntry=tmpSchema[i];break;}}if(pParameters.query.disableAutoDateStamp&&tmpSchemaEntry.Type==='UpdateDate'){// This is ignored if flag is set
835
- continue;}if(pParameters.query.disableAutoUserStamp&&tmpSchemaEntry.Type==='UpdateIDUser'){// This is ignored if flag is set
834
+ tmpSchemaEntry=tmpSchema[i];break;}}if(pParameters.query.disableAutoUserStamp&&tmpSchemaEntry.Type==='UpdateIDUser'){// This is ignored if flag is set
836
835
  continue;}switch(tmpSchemaEntry.Type){case'AutoIdentity':case'CreateDate':case'CreateIDUser':case'DeleteDate':case'DeleteIDUser':// These are all ignored on update
837
- continue;}if(tmpCurrentColumn>0){tmpUpdate+=',';}switch(tmpSchemaEntry.Type){case'UpdateDate':// This is an autoidentity, so we don't parameterize it and just pass in NULL
838
- tmpUpdate+=' '+escapeColumn(tmpColumn,pParameters)+' = NOW()';break;case'UpdateIDUser':// This is the user ID, which we hope is in the query.
836
+ continue;}if(tmpCurrentColumn>0){tmpUpdate+=',';}switch(tmpSchemaEntry.Type){case'UpdateDate':if(pParameters.query.disableAutoDateStamp){var tmpColumnParameter=tmpColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+escapeColumn(tmpColumn,pParameters)+' = :'+tmpColumnParameter;pParameters.query.parameters[tmpColumnParameter]=tmpRecords[0][tmpColumn];}else{tmpUpdate+=' '+escapeColumn(tmpColumn,pParameters)+' = NOW()';}break;case'UpdateIDUser':// This is the user ID, which we hope is in the query.
839
837
  // This is how to deal with a normal column
840
838
  var tmpColumnParameter=tmpColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+escapeColumn(tmpColumn,pParameters)+' = :'+tmpColumnParameter;// Set the query parameter
841
839
  pParameters.query.parameters[tmpColumnParameter]=pParameters.query.IDUser;break;case'JSON':var tmpJSONUpdateParam=tmpColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+tmpColumn+' = :'+tmpJSONUpdateParam;pParameters.query.parameters[tmpJSONUpdateParam]=typeof tmpRecords[0][tmpColumn]==='string'?tmpRecords[0][tmpColumn]:JSON.stringify(tmpRecords[0][tmpColumn]||{});break;case'JSONProxy':var tmpProxyUpdateParam=tmpSchemaEntry.StorageColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+tmpSchemaEntry.StorageColumn+' = :'+tmpProxyUpdateParam;pParameters.query.parameters[tmpProxyUpdateParam]=typeof tmpRecords[0][tmpColumn]==='string'?tmpRecords[0][tmpColumn]:JSON.stringify(tmpRecords[0][tmpColumn]||{});break;default:var tmpColumnDefaultParameter=tmpColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+escapeColumn(tmpColumn,pParameters)+' = :'+tmpColumnDefaultParameter;// Set the query parameter
@@ -1032,7 +1030,7 @@ if(tmpFields.length===1){tmpFields.push('dgraph.type');}return tmpFields.join('
1032
1030
  * @method generateUpdateDocument
1033
1031
  * @param {Object} pParameters Query Parameters
1034
1032
  * @return {Object|false} Update document or false if no record
1035
- */var generateUpdateDocument=function(pParameters){var tmpRecords=pParameters.query.records;if(!Array.isArray(tmpRecords)||tmpRecords.length<1){return false;}var tmpSchema=Array.isArray(pParameters.query.schema)?pParameters.query.schema:[];var tmpUpdateDoc={};for(var tmpColumn in tmpRecords[0]){var tmpSchemaEntry=findSchemaEntry(tmpColumn,tmpSchema);if(pParameters.query.disableAutoDateStamp&&tmpSchemaEntry.Type==='UpdateDate'){continue;}if(pParameters.query.disableAutoUserStamp&&tmpSchemaEntry.Type==='UpdateIDUser'){continue;}switch(tmpSchemaEntry.Type){case'AutoIdentity':case'CreateDate':case'CreateIDUser':case'DeleteDate':case'DeleteIDUser':continue;}switch(tmpSchemaEntry.Type){case'UpdateDate':tmpUpdateDoc[tmpColumn]='$$NOW';break;case'UpdateIDUser':tmpUpdateDoc[tmpColumn]=pParameters.query.IDUser;break;default:tmpUpdateDoc[tmpColumn]=tmpRecords[0][tmpColumn];break;}}if(Object.keys(tmpUpdateDoc).length===0){return false;}return tmpUpdateDoc;};/**
1033
+ */var generateUpdateDocument=function(pParameters){var tmpRecords=pParameters.query.records;if(!Array.isArray(tmpRecords)||tmpRecords.length<1){return false;}var tmpSchema=Array.isArray(pParameters.query.schema)?pParameters.query.schema:[];var tmpUpdateDoc={};for(var tmpColumn in tmpRecords[0]){var tmpSchemaEntry=findSchemaEntry(tmpColumn,tmpSchema);if(pParameters.query.disableAutoUserStamp&&tmpSchemaEntry.Type==='UpdateIDUser'){continue;}switch(tmpSchemaEntry.Type){case'AutoIdentity':case'CreateDate':case'CreateIDUser':case'DeleteDate':case'DeleteIDUser':continue;}switch(tmpSchemaEntry.Type){case'UpdateDate':if(pParameters.query.disableAutoDateStamp){tmpUpdateDoc[tmpColumn]=tmpRecords[0][tmpColumn];}else{tmpUpdateDoc[tmpColumn]='$$NOW';}break;case'UpdateIDUser':tmpUpdateDoc[tmpColumn]=pParameters.query.IDUser;break;default:tmpUpdateDoc[tmpColumn]=tmpRecords[0][tmpColumn];break;}}if(Object.keys(tmpUpdateDoc).length===0){return false;}return tmpUpdateDoc;};/**
1036
1034
  * Generate the soft-delete setters.
1037
1035
  * Returns false if no Deleted column exists or delete tracking is disabled.
1038
1036
  *
@@ -1279,6 +1277,27 @@ pParameters.query.parameterTypes[pColumnParameterName]=tmpColumnParameterTypeStr
1279
1277
  const tmpSchema=Array.isArray(pParameters.query.schema)?pParameters.query.schema:[];if(tmpSchema.length<1){// this means we have no schema; returning an empty string here signals the calling code to handle this case
1280
1278
  return'';}const idColumn=tmpSchema.find(entry=>entry.Type==='AutoIdentity');if(!idColumn){// this means there is no autoincrementing unique ID column; treat as above
1281
1279
  return'';}const qualifiedIDColumn=`${idColumn.Column}`;return` ${generateSafeFieldName(qualifiedIDColumn)}`;}var tmpFieldList=' ';for(var i=0;i<tmpDataElements.length;i++){if(i>0){tmpFieldList+=', ';}if(Array.isArray(tmpDataElements[i])){tmpFieldList+=generateSafeFieldName(tmpDataElements[i][0]);if(tmpDataElements[i].length>1&&tmpDataElements[i][1]){tmpFieldList+=" AS "+generateSafeFieldName(tmpDataElements[i][1]);}}else{tmpFieldList+=generateSafeFieldName(tmpDataElements[i]);}}return tmpFieldList;};/**
1280
+ * Generate a field list for the outer SELECT of the legacy pagination
1281
+ * wrapper. The outer FROM is a subquery aliased as [_Paged], so the
1282
+ * default "[Table].*" qualifier can't resolve there — we need either
1283
+ * an explicit column list from the schema or a bare "*".
1284
+ *
1285
+ * If the caller set explicit dataElements, reuse them (they reference
1286
+ * bare column names, which work fine against the subquery alias).
1287
+ * Otherwise emit an explicit list from the schema to keep [_RowNum]
1288
+ * from leaking. As a last resort, fall back to "*" — callers without
1289
+ * a schema will see [_RowNum] as an extra property on marshalled
1290
+ * records but the query itself remains valid.
1291
+ *
1292
+ * @param: {Object} pParameters SQL Query Parameters
1293
+ * @return: {String} Field list (prefixed with a single leading space)
1294
+ */var generateOuterFieldListForLegacyPagination=function(pParameters){var tmpDataElements=pParameters.dataElements;if(Array.isArray(tmpDataElements)&&tmpDataElements.length>0){// Reuse the caller-supplied list. It emits unqualified column
1295
+ // names ([Col], [Col] AS [Alias]) which resolve fine against
1296
+ // the subquery alias.
1297
+ return generateFieldList(pParameters);}var tmpSchema=Array.isArray(pParameters.query.schema)?pParameters.query.schema:[];if(tmpSchema.length>0){var tmpList=' ';for(var i=0;i<tmpSchema.length;i++){if(i>0)tmpList+=', ';tmpList+=generateSafeFieldName(tmpSchema[i].Column);}return tmpList;}// No schema, no explicit dataElements — "*" is the best we can do.
1298
+ // [_RowNum] will surface on marshalled records; downstream code can
1299
+ // ignore it. Schemas are the norm via Meadow so this is rare.
1300
+ return' *';};/**
1282
1301
  * Ensure a field name is properly escaped.
1283
1302
  */var generateSafeFieldName=function(pFieldName){// This isn't great but best we can do for MS SQL needing brackets around field names for reserved keywords
1284
1303
  if(pFieldName!='*'&&pFieldName.indexOf('[')<0&&pFieldName.indexOf('.')<0){return'['+pFieldName+']';}else{return pFieldName;}};var resolveJsonColumnPath=function(pColumnName,pSchema){if(!Array.isArray(pSchema)||pSchema.length<1)return null;var tmpParts=pColumnName.replace(/`/g,'').replace(/"/g,'').split('.');for(var tmpStartIdx=0;tmpStartIdx<Math.min(tmpParts.length-1,2);tmpStartIdx++){var tmpBaseColumn=tmpParts[tmpStartIdx];for(var s=0;s<pSchema.length;s++){if(pSchema[s].Column===tmpBaseColumn&&(pSchema[s].Type==='JSON'||pSchema[s].Type==='JSONProxy')){var tmpActualColumn=pSchema[s].Type==='JSONProxy'?pSchema[s].StorageColumn:tmpBaseColumn;var tmpJsonPath='$.'+tmpParts.slice(tmpStartIdx+1).join('.');return{column:tmpActualColumn,path:tmpJsonPath};}}}return null;};/**
@@ -1309,21 +1328,44 @@ tmpWhere+=' ['+tmpFilter[i].Column+'] '+tmpFilter[i].Operator+' ( @'+tmpColumnPa
1309
1328
  generateMSSQLParameterTypeEntry(pParameters,tmpColumnParameter,tmpFilter[i].Parameter);}else if(tmpFilter[i].Operator==='IS NULL'){// IS NULL is a special operator which doesn't require a value, or parameter
1310
1329
  tmpWhere+=' ['+tmpFilter[i].Column+'] '+tmpFilter[i].Operator;}else if(tmpFilter[i].Operator==='IS NOT NULL'){// IS NOT NULL is a special operator which doesn't require a value, or parameter
1311
1330
  tmpWhere+=' ['+tmpFilter[i].Column+'] '+tmpFilter[i].Operator;}else{tmpColumnParameter=tmpFilter[i].Parameter+'_w'+i;var tmpSchema=Array.isArray(pParameters.query.schema)?pParameters.query.schema:[];var tmpJsonRef=resolveJsonColumnPath(tmpFilter[i].Column,tmpSchema);if(tmpJsonRef){tmpWhere+=' JSON_VALUE(['+tmpJsonRef.column+"], '"+tmpJsonRef.path+"') "+tmpFilter[i].Operator+' :'+tmpColumnParameter;}else{tmpWhere+=' ['+tmpFilter[i].Column+'] '+tmpFilter[i].Operator+' @'+tmpColumnParameter;}pParameters.query.parameters[tmpColumnParameter]=tmpFilter[i].Value;generateMSSQLParameterTypeEntry(pParameters,tmpColumnParameter,tmpFilter[i].Parameter);}}return tmpWhere;};/**
1331
+ * Find the table's AutoIdentity primary-key column from the schema, if any.
1332
+ * Used as a deterministic default ORDER BY when the caller didn't set a
1333
+ * sort — MSSQL pagination (both OFFSET/FETCH and ROW_NUMBER) requires an
1334
+ * ORDER BY clause or it produces a syntax error.
1335
+ *
1336
+ * @param: {Object} pParameters SQL Query Parameters
1337
+ * @return: {String|null} The column name, or null if none found
1338
+ */var findPrimaryKeyColumn=function(pParameters){var tmpSchema=Array.isArray(pParameters.query.schema)?pParameters.query.schema:[];for(var i=0;i<tmpSchema.length;i++){if(tmpSchema[i].Type==='AutoIdentity'){return tmpSchema[i].Column;}}return null;};/**
1312
1339
  * Generate an ORDER BY clause from the sort array
1313
1340
  *
1314
1341
  * Each entry in the sort is an object like:
1315
1342
  * {Column:'Color',Direction:'Descending'}
1316
1343
  *
1344
+ * When no sort is specified but the query has a cap (pagination is
1345
+ * active), inject a default ORDER BY on the primary key so MSSQL
1346
+ * doesn't reject the OFFSET/FETCH or ROW_NUMBER clause. Without a
1347
+ * schema the PK can't be inferred — fall back to `ORDER BY (SELECT 1)`
1348
+ * which is legal for OFFSET/FETCH but not for ROW_NUMBER (the legacy
1349
+ * pagination path handles that case by refusing to paginate).
1350
+ *
1317
1351
  * @method: generateOrderBy
1318
1352
  * @param: {Object} pParameters SQL Query Parameters
1319
1353
  * @return: {String} Returns the field list clause
1320
- */var generateOrderBy=function(pParameters){var tmpOrderBy=pParameters.sort;if(!Array.isArray(tmpOrderBy)||tmpOrderBy.length<1){return'';}var tmpOrderClause=' ORDER BY';for(var i=0;i<tmpOrderBy.length;i++){if(i>0){tmpOrderClause+=',';}tmpOrderClause+=' ['+tmpOrderBy[i].Column+']';if(tmpOrderBy[i].Direction=='Descending'){tmpOrderClause+=' DESC';}}return tmpOrderClause;};/**
1354
+ */var generateOrderBy=function(pParameters){var tmpOrderBy=pParameters.sort;if(!Array.isArray(tmpOrderBy)||tmpOrderBy.length<1){if(pParameters.cap){var tmpPK=findPrimaryKeyColumn(pParameters);if(tmpPK){return' ORDER BY ['+tmpPK+']';}return' ORDER BY (SELECT 1)';}return'';}var tmpOrderClause=' ORDER BY';for(var i=0;i<tmpOrderBy.length;i++){if(i>0){tmpOrderClause+=',';}tmpOrderClause+=' ['+tmpOrderBy[i].Column+']';if(tmpOrderBy[i].Direction=='Descending'){tmpOrderClause+=' DESC';}}return tmpOrderClause;};/**
1321
1355
  * Generate the limit clause
1322
1356
  *
1357
+ * When `legacyPagination` is set on pParameters the limit is emitted
1358
+ * by the Read function using a ROW_NUMBER() subquery wrapper instead
1359
+ * (OFFSET/FETCH NEXT requires SQL Server 2012+ / compatibility level
1360
+ * 110+, which some customers don't have). In that case this function
1361
+ * returns an empty string.
1362
+ *
1323
1363
  * @method: generateLimit
1324
1364
  * @param: {Object} pParameters SQL Query Parameters
1325
1365
  * @return: {String} Returns the table limit clause
1326
- */var generateLimit=function(pParameters){if(!pParameters.cap){return'';}var tmpLimit=' OFFSET ';// If there is a begin record, we'll pass that in as well.
1366
+ */var generateLimit=function(pParameters){if(!pParameters.cap){return'';}if(pParameters.legacyPagination){// The Read function wraps the query in a ROW_NUMBER() subquery
1367
+ // instead of appending an OFFSET/FETCH tail clause.
1368
+ return'';}var tmpLimit=' OFFSET ';// If there is a begin record, we'll pass that in as well.
1327
1369
  if(pParameters.begin!==false){tmpLimit+=pParameters.begin;}else{tmpLimit+='0';}// Cap is required for a limit clause.
1328
1370
  tmpLimit+=` ROWS FETCH NEXT ${pParameters.cap} ROWS ONLY`;return tmpLimit;};/**
1329
1371
  * Generate the an index hinting clause
@@ -1456,7 +1498,22 @@ case'AutoIdentity':if(pParameters.query.disableAutoIdentity){if(tmpCreateSet!=''
1456
1498
  * @param {Object} pParameters SQL Query parameters
1457
1499
  * @return {String} Returns the current Query for chaining.
1458
1500
  */var Read=function(pParameters){var tmpFieldList=generateFieldList(pParameters);var tmpTableName=generateTableName(pParameters);var tmpWhere=generateWhere(pParameters);var tmpJoin=generateJoins(pParameters);var tmpOrderBy=generateOrderBy(pParameters);var tmpLimit=generateLimit(pParameters);var tmpIndexHints=generateIndexHints(pParameters);const tmpOptDistinct=pParameters.distinct?' DISTINCT':'';if(pParameters.queryOverride){try{var tmpQueryTemplate=_Fable.Utility.template(pParameters.queryOverride);return tmpQueryTemplate({FieldList:tmpFieldList,TableName:tmpTableName,Where:tmpWhere,Join:tmpJoin,OrderBy:tmpOrderBy,Limit:tmpLimit,IndexHints:tmpIndexHints,Distinct:tmpOptDistinct,_Params:pParameters});}catch(pError){// This pokemon is here to give us a convenient way of not throwing up totally if the query fails.
1459
- console.log('Error with custom Read Query ['+pParameters.queryOverride+']: '+pError);return false;}}return`SELECT${tmpOptDistinct}${tmpFieldList} FROM${tmpTableName}${tmpIndexHints}${tmpJoin}${tmpWhere}${tmpOrderBy}${tmpLimit};`;};var Update=function(pParameters){var tmpTableName=generateTableName(pParameters);var tmpWhere=generateWhere(pParameters);var tmpUpdateSetters=generateUpdateSetters(pParameters);if(!tmpUpdateSetters){return false;}return'UPDATE'+tmpTableName+' SET'+tmpUpdateSetters+tmpWhere+';';};var Delete=function(pParameters){var tmpTableName=generateTableName(pParameters);var tmpWhere=generateWhere(pParameters);var tmpUpdateDeleteSetters=generateUpdateDeleteSetters(pParameters);if(tmpUpdateDeleteSetters){//If it has a deleted bit, update it instead of actually deleting the record
1501
+ console.log('Error with custom Read Query ['+pParameters.queryOverride+']: '+pError);return false;}}// Legacy pagination path emit a ROW_NUMBER() wrapper instead of
1502
+ // OFFSET/FETCH. Required for SQL Server 2008 R2 and earlier, or
1503
+ // for databases running at a compatibility level below 110 (2012).
1504
+ // Enabled via pParameters.legacyPagination (forwarded from the
1505
+ // meadow-connection-mssql provider's LegacyPagination config).
1506
+ if(pParameters.legacyPagination&&pParameters.cap){var tmpBegin=pParameters.begin!==false?pParameters.begin:0;var tmpEnd=tmpBegin+pParameters.cap;// generateOrderBy always returns a usable ORDER BY when cap is
1507
+ // set. ROW_NUMBER()'s OVER() clause takes the same body but
1508
+ // without the leading space.
1509
+ var tmpOverClause=tmpOrderBy.replace(/^ /,'');// The outer SELECT's FROM is the subquery alias, not the base
1510
+ // table — so the default field list's "[Table].*" qualifier
1511
+ // won't resolve at the outer level. Compute an outer field
1512
+ // list that works regardless of whether the caller supplied
1513
+ // explicit dataElements or relied on the default.
1514
+ var tmpOuterFieldList=generateOuterFieldListForLegacyPagination(pParameters);// INDEX hints and JOINs live on the inner select (they apply
1515
+ // to the base table). [_RowNum] is confined to the subquery.
1516
+ return`SELECT${tmpOptDistinct}${tmpOuterFieldList} FROM (SELECT${tmpFieldList}, ROW_NUMBER() OVER (${tmpOverClause}) AS [_RowNum] FROM${tmpTableName}${tmpIndexHints}${tmpJoin}${tmpWhere}) AS [_Paged] WHERE [_RowNum] > ${tmpBegin} AND [_RowNum] <= ${tmpEnd};`;}return`SELECT${tmpOptDistinct}${tmpFieldList} FROM${tmpTableName}${tmpIndexHints}${tmpJoin}${tmpWhere}${tmpOrderBy}${tmpLimit};`;};var Update=function(pParameters){var tmpTableName=generateTableName(pParameters);var tmpWhere=generateWhere(pParameters);var tmpUpdateSetters=generateUpdateSetters(pParameters);if(!tmpUpdateSetters){return false;}return'UPDATE'+tmpTableName+' SET'+tmpUpdateSetters+tmpWhere+';';};var Delete=function(pParameters){var tmpTableName=generateTableName(pParameters);var tmpWhere=generateWhere(pParameters);var tmpUpdateDeleteSetters=generateUpdateDeleteSetters(pParameters);if(tmpUpdateDeleteSetters){//If it has a deleted bit, update it instead of actually deleting the record
1460
1517
  return'UPDATE'+tmpTableName+' SET'+tmpUpdateDeleteSetters+tmpWhere+';';}else{return'DELETE FROM'+tmpTableName+tmpWhere+';';}};var Undelete=function(pParameters){var tmpTableName=generateTableName(pParameters);// TODO: Fix these
1461
1518
  let tmpDeleteTrackingState=pParameters.query.disableDeleteTracking;pParameters.query.disableDeleteTracking=true;var tmpWhere=generateWhere(pParameters);var tmpUpdateUndeleteSetters=generateUpdateUndeleteSetters(pParameters);pParameters.query.disableDeleteTracking=tmpDeleteTrackingState;if(tmpUpdateUndeleteSetters){//If the table has a deleted bit, go forward with the update to change things.
1462
1519
  return'UPDATE'+tmpTableName+' SET'+tmpUpdateUndeleteSetters+tmpWhere+';';}else{// This is a no-op because the record can't be undeleted.
@@ -1553,7 +1610,7 @@ if(Array.isArray(tmpField)){tmpField=tmpField[0];}tmpField=stripTablePrefix(tmpF
1553
1610
  * @method generateUpdateDocument
1554
1611
  * @param {Object} pParameters SQL Query Parameters
1555
1612
  * @return {Object|false} Update document or false if no record
1556
- */var generateUpdateDocument=function(pParameters){var tmpRecords=pParameters.query.records;if(!Array.isArray(tmpRecords)||tmpRecords.length<1){return false;}var tmpSchema=Array.isArray(pParameters.query.schema)?pParameters.query.schema:[];var tmpUpdateDoc={};for(var tmpColumn in tmpRecords[0]){var tmpSchemaEntry=findSchemaEntry(tmpColumn,tmpSchema);if(pParameters.query.disableAutoDateStamp&&tmpSchemaEntry.Type==='UpdateDate'){continue;}if(pParameters.query.disableAutoUserStamp&&tmpSchemaEntry.Type==='UpdateIDUser'){continue;}switch(tmpSchemaEntry.Type){case'AutoIdentity':case'CreateDate':case'CreateIDUser':case'DeleteDate':case'DeleteIDUser':continue;}switch(tmpSchemaEntry.Type){case'UpdateDate':tmpUpdateDoc[tmpColumn]='$$NOW';break;case'UpdateIDUser':tmpUpdateDoc[tmpColumn]=pParameters.query.IDUser;break;default:tmpUpdateDoc[tmpColumn]=tmpRecords[0][tmpColumn];break;}}if(Object.keys(tmpUpdateDoc).length===0){return false;}return tmpUpdateDoc;};/**
1613
+ */var generateUpdateDocument=function(pParameters){var tmpRecords=pParameters.query.records;if(!Array.isArray(tmpRecords)||tmpRecords.length<1){return false;}var tmpSchema=Array.isArray(pParameters.query.schema)?pParameters.query.schema:[];var tmpUpdateDoc={};for(var tmpColumn in tmpRecords[0]){var tmpSchemaEntry=findSchemaEntry(tmpColumn,tmpSchema);if(pParameters.query.disableAutoUserStamp&&tmpSchemaEntry.Type==='UpdateIDUser'){continue;}switch(tmpSchemaEntry.Type){case'AutoIdentity':case'CreateDate':case'CreateIDUser':case'DeleteDate':case'DeleteIDUser':continue;}switch(tmpSchemaEntry.Type){case'UpdateDate':if(pParameters.query.disableAutoDateStamp){tmpUpdateDoc[tmpColumn]=tmpRecords[0][tmpColumn];}else{tmpUpdateDoc[tmpColumn]='$$NOW';}break;case'UpdateIDUser':tmpUpdateDoc[tmpColumn]=pParameters.query.IDUser;break;default:tmpUpdateDoc[tmpColumn]=tmpRecords[0][tmpColumn];break;}}if(Object.keys(tmpUpdateDoc).length===0){return false;}return tmpUpdateDoc;};/**
1557
1614
  * Generate the soft-delete $set document.
1558
1615
  * Returns false if no Deleted column exists or delete tracking is disabled.
1559
1616
  *
@@ -1726,11 +1783,10 @@ var tmpSchema=Array.isArray(pParameters.query.schema)?pParameters.query.schema:[
1726
1783
  var tmpCurrentColumn=0;for(var tmpColumn in tmpRecords[0]){// No hash table yet, so, we will just linear search it for now.
1727
1784
  // This uses the schema to decide if we want to treat a column differently on insert
1728
1785
  var tmpSchemaEntry={Column:tmpColumn,Type:'Default'};for(var i=0;i<tmpSchema.length;i++){if(tmpColumn==tmpSchema[i].Column){// There is a schema entry for it. Process it accordingly.
1729
- tmpSchemaEntry=tmpSchema[i];break;}}if(pParameters.query.disableAutoDateStamp&&tmpSchemaEntry.Type==='UpdateDate'){// This is ignored if flag is set
1730
- continue;}if(pParameters.query.disableAutoUserStamp&&tmpSchemaEntry.Type==='UpdateIDUser'){// This is ignored if flag is set
1786
+ tmpSchemaEntry=tmpSchema[i];break;}}if(pParameters.query.disableAutoUserStamp&&tmpSchemaEntry.Type==='UpdateIDUser'){// This is ignored if flag is set
1731
1787
  continue;}switch(tmpSchemaEntry.Type){case'AutoIdentity':case'CreateDate':case'CreateIDUser':case'DeleteDate':case'DeleteIDUser':// These are all ignored on update
1732
- continue;}if(tmpCurrentColumn>0){tmpUpdate+=',';}switch(tmpSchemaEntry.Type){case'UpdateDate':// This is an autoidentity, so we don't parameterize it and just pass in NULL
1733
- tmpUpdate+=' '+tmpColumn+' = '+SQL_NOW;break;case'UpdateIDUser':// This is the user ID, which we hope is in the query.
1788
+ continue;}if(tmpCurrentColumn>0){tmpUpdate+=',';}switch(tmpSchemaEntry.Type){case'UpdateDate':if(pParameters.query.disableAutoDateStamp){// Manual mode: use the record's value as-is
1789
+ var tmpColumnParameter=tmpColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+tmpColumn+' = :'+tmpColumnParameter;pParameters.query.parameters[tmpColumnParameter]=tmpRecords[0][tmpColumn];}else{tmpUpdate+=' '+tmpColumn+' = '+SQL_NOW;}break;case'UpdateIDUser':// This is the user ID, which we hope is in the query.
1734
1790
  // This is how to deal with a normal column
1735
1791
  var tmpColumnParameter=tmpColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+tmpColumn+' = :'+tmpColumnParameter;// Set the query parameter
1736
1792
  pParameters.query.parameters[tmpColumnParameter]=pParameters.query.IDUser;break;case'JSON':var tmpJSONUpdateParam=tmpColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+tmpColumn+' = :'+tmpJSONUpdateParam;pParameters.query.parameters[tmpJSONUpdateParam]=typeof tmpRecords[0][tmpColumn]==='string'?tmpRecords[0][tmpColumn]:JSON.stringify(tmpRecords[0][tmpColumn]||{});break;case'JSONProxy':var tmpProxyUpdateParam=tmpSchemaEntry.StorageColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+tmpSchemaEntry.StorageColumn+' = :'+tmpProxyUpdateParam;pParameters.query.parameters[tmpProxyUpdateParam]=typeof tmpRecords[0][tmpColumn]==='string'?tmpRecords[0][tmpColumn]:JSON.stringify(tmpRecords[0][tmpColumn]||{});break;default:var tmpColumnDefaultParameter=tmpColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+tmpColumn+' = :'+tmpColumnDefaultParameter;// Set the query parameter
@@ -1915,7 +1971,7 @@ var tmpSchema=Array.isArray(pParameters.query.schema)?pParameters.query.schema:[
1915
1971
  * @method: generateUpdateSetters
1916
1972
  * @param: {Object} pParameters SQL Query Parameters
1917
1973
  * @return: {String} Returns the table name clause
1918
- */var generateUpdateSetters=function(pParameters){var tmpRecords=pParameters.query.records;if(!Array.isArray(tmpRecords)||tmpRecords.length<1){return false;}var tmpSchema=Array.isArray(pParameters.query.schema)?pParameters.query.schema:[];var tmpUpdate='';var tmpCurrentColumn=0;for(var tmpColumn in tmpRecords[0]){var tmpSchemaEntry={Column:tmpColumn,Type:'Default'};for(var i=0;i<tmpSchema.length;i++){if(tmpColumn==tmpSchema[i].Column){tmpSchemaEntry=tmpSchema[i];break;}}if(pParameters.query.disableAutoDateStamp&&tmpSchemaEntry.Type==='UpdateDate'){continue;}if(pParameters.query.disableAutoUserStamp&&tmpSchemaEntry.Type==='UpdateIDUser'){continue;}switch(tmpSchemaEntry.Type){case'AutoIdentity':case'CreateDate':case'CreateIDUser':case'DeleteDate':case'DeleteIDUser':continue;}if(tmpCurrentColumn>0){tmpUpdate+=',';}switch(tmpSchemaEntry.Type){case'UpdateDate':tmpUpdate+=' '+generateSafeFieldName(tmpColumn)+' = '+SQL_NOW;break;case'UpdateIDUser':var tmpColumnParameter=tmpColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+generateSafeFieldName(tmpColumn)+' = :'+tmpColumnParameter;pParameters.query.parameters[tmpColumnParameter]=pParameters.query.IDUser;break;case'JSON':var tmpJSONUpdateParam=tmpColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+generateSafeFieldName(tmpColumn)+' = :'+tmpJSONUpdateParam;pParameters.query.parameters[tmpJSONUpdateParam]=typeof tmpRecords[0][tmpColumn]==='string'?tmpRecords[0][tmpColumn]:JSON.stringify(tmpRecords[0][tmpColumn]||{});break;case'JSONProxy':var tmpProxyUpdateParam=tmpSchemaEntry.StorageColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+generateSafeFieldName(tmpSchemaEntry.StorageColumn)+' = :'+tmpProxyUpdateParam;pParameters.query.parameters[tmpProxyUpdateParam]=typeof tmpRecords[0][tmpColumn]==='string'?tmpRecords[0][tmpColumn]:JSON.stringify(tmpRecords[0][tmpColumn]||{});break;default:var tmpColumnDefaultParameter=tmpColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+generateSafeFieldName(tmpColumn)+' = :'+tmpColumnDefaultParameter;pParameters.query.parameters[tmpColumnDefaultParameter]=tmpRecords[0][tmpColumn];break;}tmpCurrentColumn++;}if(tmpUpdate===''){return false;}return tmpUpdate;};/**
1974
+ */var generateUpdateSetters=function(pParameters){var tmpRecords=pParameters.query.records;if(!Array.isArray(tmpRecords)||tmpRecords.length<1){return false;}var tmpSchema=Array.isArray(pParameters.query.schema)?pParameters.query.schema:[];var tmpUpdate='';var tmpCurrentColumn=0;for(var tmpColumn in tmpRecords[0]){var tmpSchemaEntry={Column:tmpColumn,Type:'Default'};for(var i=0;i<tmpSchema.length;i++){if(tmpColumn==tmpSchema[i].Column){tmpSchemaEntry=tmpSchema[i];break;}}if(pParameters.query.disableAutoUserStamp&&tmpSchemaEntry.Type==='UpdateIDUser'){continue;}switch(tmpSchemaEntry.Type){case'AutoIdentity':case'CreateDate':case'CreateIDUser':case'DeleteDate':case'DeleteIDUser':continue;}if(tmpCurrentColumn>0){tmpUpdate+=',';}switch(tmpSchemaEntry.Type){case'UpdateDate':if(pParameters.query.disableAutoDateStamp){var tmpColumnParameter=tmpColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+generateSafeFieldName(tmpColumn)+' = :'+tmpColumnParameter;pParameters.query.parameters[tmpColumnParameter]=tmpRecords[0][tmpColumn];}else{tmpUpdate+=' '+generateSafeFieldName(tmpColumn)+' = '+SQL_NOW;}break;case'UpdateIDUser':var tmpColumnParameter=tmpColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+generateSafeFieldName(tmpColumn)+' = :'+tmpColumnParameter;pParameters.query.parameters[tmpColumnParameter]=pParameters.query.IDUser;break;case'JSON':var tmpJSONUpdateParam=tmpColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+generateSafeFieldName(tmpColumn)+' = :'+tmpJSONUpdateParam;pParameters.query.parameters[tmpJSONUpdateParam]=typeof tmpRecords[0][tmpColumn]==='string'?tmpRecords[0][tmpColumn]:JSON.stringify(tmpRecords[0][tmpColumn]||{});break;case'JSONProxy':var tmpProxyUpdateParam=tmpSchemaEntry.StorageColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+generateSafeFieldName(tmpSchemaEntry.StorageColumn)+' = :'+tmpProxyUpdateParam;pParameters.query.parameters[tmpProxyUpdateParam]=typeof tmpRecords[0][tmpColumn]==='string'?tmpRecords[0][tmpColumn]:JSON.stringify(tmpRecords[0][tmpColumn]||{});break;default:var tmpColumnDefaultParameter=tmpColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+generateSafeFieldName(tmpColumn)+' = :'+tmpColumnDefaultParameter;pParameters.query.parameters[tmpColumnDefaultParameter]=tmpRecords[0][tmpColumn];break;}tmpCurrentColumn++;}if(tmpUpdate===''){return false;}return tmpUpdate;};/**
1919
1975
  * Generate the update-delete SET clause
1920
1976
  *
1921
1977
  * @method: generateUpdateDeleteSetters
@@ -2055,11 +2111,10 @@ var tmpSchema=Array.isArray(pParameters.query.schema)?pParameters.query.schema:[
2055
2111
  var tmpCurrentColumn=0;for(var tmpColumn in tmpRecords[0]){// No hash table yet, so, we will just linear search it for now.
2056
2112
  // This uses the schema to decide if we want to treat a column differently on insert
2057
2113
  var tmpSchemaEntry={Column:tmpColumn,Type:'Default'};for(var i=0;i<tmpSchema.length;i++){if(tmpColumn==tmpSchema[i].Column){// There is a schema entry for it. Process it accordingly.
2058
- tmpSchemaEntry=tmpSchema[i];break;}}if(pParameters.query.disableAutoDateStamp&&tmpSchemaEntry.Type==='UpdateDate'){// This is ignored if flag is set
2059
- continue;}if(pParameters.query.disableAutoUserStamp&&tmpSchemaEntry.Type==='UpdateIDUser'){// This is ignored if flag is set
2114
+ tmpSchemaEntry=tmpSchema[i];break;}}if(pParameters.query.disableAutoUserStamp&&tmpSchemaEntry.Type==='UpdateIDUser'){// This is ignored if flag is set
2060
2115
  continue;}switch(tmpSchemaEntry.Type){case'AutoIdentity':case'CreateDate':case'CreateIDUser':case'DeleteDate':case'DeleteIDUser':// These are all ignored on update
2061
- continue;}if(tmpCurrentColumn>0){tmpUpdate+=',';}switch(tmpSchemaEntry.Type){case'UpdateDate':// This is an autoidentity, so we don't parameterize it and just pass in NULL
2062
- tmpUpdate+=' '+escapeColumn(tmpColumn,pParameters)+' = NOW()';break;case'UpdateIDUser':// This is the user ID, which we hope is in the query.
2116
+ continue;}if(tmpCurrentColumn>0){tmpUpdate+=',';}switch(tmpSchemaEntry.Type){case'UpdateDate':if(pParameters.query.disableAutoDateStamp){// Manual mode: use the record's value as-is
2117
+ var tmpColumnParameter=tmpColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+escapeColumn(tmpColumn,pParameters)+' = :'+tmpColumnParameter;pParameters.query.parameters[tmpColumnParameter]=tmpRecords[0][tmpColumn];}else{tmpUpdate+=' '+escapeColumn(tmpColumn,pParameters)+' = NOW()';}break;case'UpdateIDUser':// This is the user ID, which we hope is in the query.
2063
2118
  // This is how to deal with a normal column
2064
2119
  var tmpColumnParameter=tmpColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+escapeColumn(tmpColumn,pParameters)+' = :'+tmpColumnParameter;// Set the query parameter
2065
2120
  pParameters.query.parameters[tmpColumnParameter]=pParameters.query.IDUser;break;case'JSON':var tmpJSONUpdateParam=tmpColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+tmpColumn+' = :'+tmpJSONUpdateParam;pParameters.query.parameters[tmpJSONUpdateParam]=typeof tmpRecords[0][tmpColumn]==='string'?tmpRecords[0][tmpColumn]:JSON.stringify(tmpRecords[0][tmpColumn]||{});break;case'JSONProxy':var tmpProxyUpdateParam=tmpSchemaEntry.StorageColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+tmpSchemaEntry.StorageColumn+' = :'+tmpProxyUpdateParam;pParameters.query.parameters[tmpProxyUpdateParam]=typeof tmpRecords[0][tmpColumn]==='string'?tmpRecords[0][tmpColumn]:JSON.stringify(tmpRecords[0][tmpColumn]||{});break;default:var tmpColumnDefaultParameter=tmpColumn+'_'+tmpCurrentColumn;tmpUpdate+=' '+escapeColumn(tmpColumn,pParameters)+' = :'+tmpColumnDefaultParameter;// Set the query parameter
@@ -2245,7 +2300,7 @@ var tmpRootConditions=tmpStack[0];if(tmpRootConditions.length===0){return'';}var
2245
2300
  * @method generateUpdateDocument
2246
2301
  * @param {Object} pParameters Query Parameters
2247
2302
  * @return {Object|false} Atomic update document or false
2248
- */var generateUpdateDocument=function(pParameters){var tmpRecords=pParameters.query.records;if(!Array.isArray(tmpRecords)||tmpRecords.length<1){return false;}var tmpSchema=Array.isArray(pParameters.query.schema)?pParameters.query.schema:[];var tmpUpdateDoc={};for(var tmpColumn in tmpRecords[0]){var tmpSchemaEntry=findSchemaEntry(tmpColumn,tmpSchema);if(pParameters.query.disableAutoDateStamp&&tmpSchemaEntry.Type==='UpdateDate'){continue;}if(pParameters.query.disableAutoUserStamp&&tmpSchemaEntry.Type==='UpdateIDUser'){continue;}switch(tmpSchemaEntry.Type){case'AutoIdentity':case'CreateDate':case'CreateIDUser':case'DeleteDate':case'DeleteIDUser':continue;}switch(tmpSchemaEntry.Type){case'UpdateDate':tmpUpdateDoc[tmpColumn]={'set':'$$NOW'};break;case'UpdateIDUser':tmpUpdateDoc[tmpColumn]={'set':pParameters.query.IDUser};break;default:tmpUpdateDoc[tmpColumn]={'set':tmpRecords[0][tmpColumn]};break;}}if(Object.keys(tmpUpdateDoc).length===0){return false;}return tmpUpdateDoc;};/**
2303
+ */var generateUpdateDocument=function(pParameters){var tmpRecords=pParameters.query.records;if(!Array.isArray(tmpRecords)||tmpRecords.length<1){return false;}var tmpSchema=Array.isArray(pParameters.query.schema)?pParameters.query.schema:[];var tmpUpdateDoc={};for(var tmpColumn in tmpRecords[0]){var tmpSchemaEntry=findSchemaEntry(tmpColumn,tmpSchema);if(pParameters.query.disableAutoUserStamp&&tmpSchemaEntry.Type==='UpdateIDUser'){continue;}switch(tmpSchemaEntry.Type){case'AutoIdentity':case'CreateDate':case'CreateIDUser':case'DeleteDate':case'DeleteIDUser':continue;}switch(tmpSchemaEntry.Type){case'UpdateDate':if(pParameters.query.disableAutoDateStamp){tmpUpdateDoc[tmpColumn]={'set':tmpRecords[0][tmpColumn]};}else{tmpUpdateDoc[tmpColumn]={'set':'$$NOW'};}break;case'UpdateIDUser':tmpUpdateDoc[tmpColumn]={'set':pParameters.query.IDUser};break;default:tmpUpdateDoc[tmpColumn]={'set':tmpRecords[0][tmpColumn]};break;}}if(Object.keys(tmpUpdateDoc).length===0){return false;}return tmpUpdateDoc;};/**
2249
2304
  * Generate the soft-delete atomic update fields.
2250
2305
  *
2251
2306
  * @method generateDeleteSetters
@@ -2303,7 +2358,7 @@ var tmpDeleteTrackingState=pParameters.query.disableDeleteTracking;pParameters.q
2303
2358
  * @property name
2304
2359
  * @type string
2305
2360
  */Object.defineProperty(tmpDialect,'name',{get:function(){return'Solr';},enumerable:true});return tmpDialect;};module.exports=FoxHoundDialectSolr;},{}],59:[function(require,module,exports){'use strict';/* eslint no-invalid-this: 1 */var ERROR_MESSAGE='Function.prototype.bind called on incompatible ';var toStr=Object.prototype.toString;var max=Math.max;var funcType='[object Function]';var concatty=function concatty(a,b){var arr=[];for(var i=0;i<a.length;i+=1){arr[i]=a[i];}for(var j=0;j<b.length;j+=1){arr[j+a.length]=b[j];}return arr;};var slicy=function slicy(arrLike,offset){var arr=[];for(var i=offset||0,j=0;i<arrLike.length;i+=1,j+=1){arr[j]=arrLike[i];}return arr;};var joiny=function(arr,joiner){var str='';for(var i=0;i<arr.length;i+=1){str+=arr[i];if(i+1<arr.length){str+=joiner;}}return str;};module.exports=function bind(that){var target=this;if(typeof target!=='function'||toStr.apply(target)!==funcType){throw new TypeError(ERROR_MESSAGE+target);}var args=slicy(arguments,1);var bound;var binder=function(){if(this instanceof bound){var result=target.apply(this,concatty(args,arguments));if(Object(result)===result){return result;}return this;}return target.apply(that,concatty(args,arguments));};var boundLength=max(0,target.length-args.length);var boundArgs=[];for(var i=0;i<boundLength;i++){boundArgs[i]='$'+i;}bound=Function('binder','return function ('+joiny(boundArgs,',')+'){ return binder.apply(this,arguments); }')(binder);if(target.prototype){var Empty=function Empty(){};Empty.prototype=target.prototype;bound.prototype=new Empty();Empty.prototype=null;}return bound;};},{}],60:[function(require,module,exports){'use strict';var implementation=require('./implementation');module.exports=Function.prototype.bind||implementation;},{"./implementation":59}],61:[function(require,module,exports){var util=require('util');var isProperty=require('is-property');var INDENT_START=/[\{\[]/;var INDENT_END=/[\}\]]/;// from https://mathiasbynens.be/notes/reserved-keywords
2306
- var RESERVED=['do','if','in','for','let','new','try','var','case','else','enum','eval','null','this','true','void','with','await','break','catch','class','const','false','super','throw','while','yield','delete','export','import','public','return','static','switch','typeof','default','extends','finally','package','private','continue','debugger','function','arguments','interface','protected','implements','instanceof','NaN','undefined'];var RESERVED_MAP={};for(var i=0;i<RESERVED.length;i++){RESERVED_MAP[RESERVED[i]]=true;}var isVariable=function(name){return isProperty(name)&&!RESERVED_MAP.hasOwnProperty(name);};var formats={s:function(s){return''+s;},d:function(d){return''+Number(d);},o:function(o){return JSON.stringify(o);}};var genfun=function(){var lines=[];var indent=0;var vars={};var push=function(str){var spaces='';while(spaces.length<indent*2)spaces+=' ';lines.push(spaces+str);};var pushLine=function(line){if(INDENT_END.test(line.trim()[0])&&INDENT_START.test(line[line.length-1])){indent--;push(line);indent++;return;}if(INDENT_START.test(line[line.length-1])){push(line);indent++;return;}if(INDENT_END.test(line.trim()[0])){indent--;push(line);return;}push(line);};var line=function(fmt){if(!fmt)return line;if(arguments.length===1&&fmt.indexOf('\n')>-1){var lines=fmt.trim().split('\n');for(var i=0;i<lines.length;i++){pushLine(lines[i].trim());}}else{pushLine(util.format.apply(util,arguments));}return line;};line.scope={};line.formats=formats;line.sym=function(name){if(!name||!isVariable(name))name='tmp';if(!vars[name])vars[name]=0;return name+(vars[name]++||'');};line.property=function(obj,name){if(arguments.length===1){name=obj;obj='';}name=name+'';if(isProperty(name))return obj?obj+'.'+name:name;return obj?obj+'['+JSON.stringify(name)+']':JSON.stringify(name);};line.toString=function(){return lines.join('\n');};line.toFunction=function(scope){if(!scope)scope={};var src='return ('+line.toString()+')';Object.keys(line.scope).forEach(function(key){if(!scope[key])scope[key]=line.scope[key];});var keys=Object.keys(scope).map(function(key){return key;});var vals=keys.map(function(key){return scope[key];});return Function.apply(null,keys.concat(src)).apply(null,vals);};if(arguments.length)line.apply(null,arguments);return line;};genfun.formats=formats;module.exports=genfun;},{"is-property":84,"util":186}],62:[function(require,module,exports){var isProperty=require('is-property');var gen=function(obj,prop){return isProperty(prop)?obj+'.'+prop:obj+'['+JSON.stringify(prop)+']';};gen.valid=isProperty;gen.property=function(prop){return isProperty(prop)?prop:JSON.stringify(prop);};module.exports=gen;},{"is-property":84}],63:[function(require,module,exports){'use strict';/** @type {GeneratorFunctionConstructor | false} */var cached;/** @type {import('./index.js')} */module.exports=function getGeneratorFunction(){if(typeof cached==='undefined'){try{// eslint-disable-next-line no-new-func
2361
+ var RESERVED=['do','if','in','for','let','new','try','var','case','else','enum','eval','null','this','true','void','with','await','break','catch','class','const','false','super','throw','while','yield','delete','export','import','public','return','static','switch','typeof','default','extends','finally','package','private','continue','debugger','function','arguments','interface','protected','implements','instanceof','NaN','undefined'];var RESERVED_MAP={};for(var i=0;i<RESERVED.length;i++){RESERVED_MAP[RESERVED[i]]=true;}var isVariable=function(name){return isProperty(name)&&!RESERVED_MAP.hasOwnProperty(name);};var formats={s:function(s){return''+s;},d:function(d){return''+Number(d);},o:function(o){return JSON.stringify(o);}};var genfun=function(){var lines=[];var indent=0;var vars={};var push=function(str){var spaces='';while(spaces.length<indent*2)spaces+=' ';lines.push(spaces+str);};var pushLine=function(line){if(INDENT_END.test(line.trim()[0])&&INDENT_START.test(line[line.length-1])){indent--;push(line);indent++;return;}if(INDENT_START.test(line[line.length-1])){push(line);indent++;return;}if(INDENT_END.test(line.trim()[0])){indent--;push(line);return;}push(line);};var line=function(fmt){if(!fmt)return line;if(arguments.length===1&&fmt.indexOf('\n')>-1){var lines=fmt.trim().split('\n');for(var i=0;i<lines.length;i++){pushLine(lines[i].trim());}}else{pushLine(util.format.apply(util,arguments));}return line;};line.scope={};line.formats=formats;line.sym=function(name){if(!name||!isVariable(name))name='tmp';if(!vars[name])vars[name]=0;return name+(vars[name]++||'');};line.property=function(obj,name){if(arguments.length===1){name=obj;obj='';}name=name+'';if(isProperty(name))return obj?obj+'.'+name:name;return obj?obj+'['+JSON.stringify(name)+']':JSON.stringify(name);};line.toString=function(){return lines.join('\n');};line.toFunction=function(scope){if(!scope)scope={};var src='return ('+line.toString()+')';Object.keys(line.scope).forEach(function(key){if(!scope[key])scope[key]=line.scope[key];});var keys=Object.keys(scope).map(function(key){return key;});var vals=keys.map(function(key){return scope[key];});return Function.apply(null,keys.concat(src)).apply(null,vals);};if(arguments.length)line.apply(null,arguments);return line;};genfun.formats=formats;module.exports=genfun;},{"is-property":84,"util":187}],62:[function(require,module,exports){var isProperty=require('is-property');var gen=function(obj,prop){return isProperty(prop)?obj+'.'+prop:obj+'['+JSON.stringify(prop)+']';};gen.valid=isProperty;gen.property=function(prop){return isProperty(prop)?prop:JSON.stringify(prop);};module.exports=gen;},{"is-property":84}],63:[function(require,module,exports){'use strict';/** @type {GeneratorFunctionConstructor | false} */var cached;/** @type {import('./index.js')} */module.exports=function getGeneratorFunction(){if(typeof cached==='undefined'){try{// eslint-disable-next-line no-new-func
2307
2362
  cached=Function('return function* () {}')().constructor;}catch(e){cached=false;}}return cached;};},{}],64:[function(require,module,exports){'use strict';var undefined;var $Object=require('es-object-atoms');var $Error=require('es-errors');var $EvalError=require('es-errors/eval');var $RangeError=require('es-errors/range');var $ReferenceError=require('es-errors/ref');var $SyntaxError=require('es-errors/syntax');var $TypeError=require('es-errors/type');var $URIError=require('es-errors/uri');var abs=require('math-intrinsics/abs');var floor=require('math-intrinsics/floor');var max=require('math-intrinsics/max');var min=require('math-intrinsics/min');var pow=require('math-intrinsics/pow');var round=require('math-intrinsics/round');var sign=require('math-intrinsics/sign');var $Function=Function;// eslint-disable-next-line consistent-return
2308
2363
  var getEvalledConstructor=function(expressionSyntax){try{return $Function('"use strict"; return ('+expressionSyntax+').constructor;')();}catch(e){}};var $gOPD=require('gopd');var $defineProperty=require('es-define-property');var throwTypeError=function(){throw new $TypeError();};var ThrowTypeError=$gOPD?function(){try{// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties
2309
2364
  arguments.callee;// IE 8 does not throw here
@@ -2332,7 +2387,7 @@ return true;}};module.exports=hasPropertyDescriptors;},{"es-define-property":35}
2332
2387
  // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
2333
2388
  var symVal=42;obj[sym]=symVal;for(var _ in obj){return false;}// eslint-disable-line no-restricted-syntax, no-unreachable-loop
2334
2389
  if(typeof Object.keys==='function'&&Object.keys(obj).length!==0){return false;}if(typeof Object.getOwnPropertyNames==='function'&&Object.getOwnPropertyNames(obj).length!==0){return false;}var syms=Object.getOwnPropertySymbols(obj);if(syms.length!==1||syms[0]!==sym){return false;}if(!Object.prototype.propertyIsEnumerable.call(obj,sym)){return false;}if(typeof Object.getOwnPropertyDescriptor==='function'){// eslint-disable-next-line no-extra-parens
2335
- var descriptor=/** @type {PropertyDescriptor} */Object.getOwnPropertyDescriptor(obj,sym);if(descriptor.value!==symVal||descriptor.enumerable!==true){return false;}}return true;};},{}],73:[function(require,module,exports){'use strict';var hasSymbols=require('has-symbols/shams');/** @type {import('.')} */module.exports=function hasToStringTagShams(){return hasSymbols()&&!!Symbol.toStringTag;};},{"has-symbols/shams":72}],74:[function(require,module,exports){'use strict';var call=Function.prototype.call;var $hasOwn=Object.prototype.hasOwnProperty;var bind=require('function-bind');/** @type {import('.')} */module.exports=bind.call(call,$hasOwn);},{"function-bind":60}],75:[function(require,module,exports){var http=require('http');var url=require('url');var https=module.exports;for(var key in http){if(http.hasOwnProperty(key))https[key]=http[key];}https.request=function(params,cb){params=validateParams(params);return http.request.call(this,params,cb);};https.get=function(params,cb){params=validateParams(params);return http.get.call(this,params,cb);};function validateParams(params){if(typeof params==='string'){params=url.parse(params);}if(!params.protocol){params.protocol='https:';}if(params.protocol!=='https:'){throw new Error('Protocol "'+params.protocol+'" not supported. Expected "https:"');}return params;}},{"http":159,"url":182}],76:[function(require,module,exports){/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m;var eLen=nBytes*8-mLen-1;var eMax=(1<<eLen)-1;var eBias=eMax>>1;var nBits=-7;var i=isLE?nBytes-1:0;var d=isLE?-1:1;var s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8){}m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8){}if(e===0){e=1-eBias;}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity;}else{m=m+Math.pow(2,mLen);e=e-eBias;}return(s?-1:1)*m*Math.pow(2,e-mLen);};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c;var eLen=nBytes*8-mLen-1;var eMax=(1<<eLen)-1;var eBias=eMax>>1;var rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0;var i=isLE?0:nBytes-1;var d=isLE?1:-1;var s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax;}else{e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2;}if(e+eBias>=1){value+=rt/c;}else{value+=rt*Math.pow(2,1-eBias);}if(value*c>=2){e++;c/=2;}if(e+eBias>=eMax){m=0;e=eMax;}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias;}else{m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0;}}for(;mLen>=8;buffer[offset+i]=m&0xff,i+=d,m/=256,mLen-=8){}e=e<<mLen|m;eLen+=mLen;for(;eLen>0;buffer[offset+i]=e&0xff,i+=d,e/=256,eLen-=8){}buffer[offset+i-d]|=s*128;};},{}],77:[function(require,module,exports){if(typeof Object.create==='function'){// implementation from standard node.js 'util' module
2390
+ var descriptor=/** @type {PropertyDescriptor} */Object.getOwnPropertyDescriptor(obj,sym);if(descriptor.value!==symVal||descriptor.enumerable!==true){return false;}}return true;};},{}],73:[function(require,module,exports){'use strict';var hasSymbols=require('has-symbols/shams');/** @type {import('.')} */module.exports=function hasToStringTagShams(){return hasSymbols()&&!!Symbol.toStringTag;};},{"has-symbols/shams":72}],74:[function(require,module,exports){'use strict';var call=Function.prototype.call;var $hasOwn=Object.prototype.hasOwnProperty;var bind=require('function-bind');/** @type {import('.')} */module.exports=bind.call(call,$hasOwn);},{"function-bind":60}],75:[function(require,module,exports){var http=require('http');var url=require('url');var https=module.exports;for(var key in http){if(http.hasOwnProperty(key))https[key]=http[key];}https.request=function(params,cb){params=validateParams(params);return http.request.call(this,params,cb);};https.get=function(params,cb){params=validateParams(params);return http.get.call(this,params,cb);};function validateParams(params){if(typeof params==='string'){params=url.parse(params);}if(!params.protocol){params.protocol='https:';}if(params.protocol!=='https:'){throw new Error('Protocol "'+params.protocol+'" not supported. Expected "https:"');}return params;}},{"http":160,"url":183}],76:[function(require,module,exports){/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m;var eLen=nBytes*8-mLen-1;var eMax=(1<<eLen)-1;var eBias=eMax>>1;var nBits=-7;var i=isLE?nBytes-1:0;var d=isLE?-1:1;var s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8){}m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8){}if(e===0){e=1-eBias;}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity;}else{m=m+Math.pow(2,mLen);e=e-eBias;}return(s?-1:1)*m*Math.pow(2,e-mLen);};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c;var eLen=nBytes*8-mLen-1;var eMax=(1<<eLen)-1;var eBias=eMax>>1;var rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0;var i=isLE?0:nBytes-1;var d=isLE?1:-1;var s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax;}else{e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2;}if(e+eBias>=1){value+=rt/c;}else{value+=rt*Math.pow(2,1-eBias);}if(value*c>=2){e++;c/=2;}if(e+eBias>=eMax){m=0;e=eMax;}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias;}else{m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0;}}for(;mLen>=8;buffer[offset+i]=m&0xff,i+=d,m/=256,mLen-=8){}e=e<<mLen|m;eLen+=mLen;for(;eLen>0;buffer[offset+i]=e&0xff,i+=d,e/=256,eLen-=8){}buffer[offset+i-d]|=s*128;};},{}],77:[function(require,module,exports){if(typeof Object.create==='function'){// implementation from standard node.js 'util' module
2336
2391
  module.exports=function inherits(ctor,superCtor){if(superCtor){ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}});}};}else{// old school shim for old browsers
2337
2392
  module.exports=function inherits(ctor,superCtor){if(superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor();ctor.prototype.constructor=ctor;}};}},{}],78:[function(require,module,exports){'use strict';var hasToStringTag=require('has-tostringtag/shams')();var callBound=require('call-bound');var $toString=callBound('Object.prototype.toString');/** @type {import('.')} */var isStandardArguments=function isArguments(value){if(hasToStringTag&&value&&typeof value==='object'&&Symbol.toStringTag in value){return false;}return $toString(value)==='[object Arguments]';};/** @type {import('.')} */var isLegacyArguments=function isArguments(value){if(isStandardArguments(value)){return true;}return value!==null&&typeof value==='object'&&'length'in value&&typeof value.length==='number'&&value.length>=0&&$toString(value)!=='[object Array]'&&'callee'in value&&$toString(value.callee)==='[object Function]';};var supportsStandardArguments=function(){return isStandardArguments(arguments);}();// @ts-expect-error TODO make this not error
2338
2393
  isStandardArguments.isLegacyArguments=isLegacyArguments;// for tests
@@ -2347,17 +2402,17 @@ var all=document.all;if(toStr.call(all)===toStr.call(document.all)){isDDA=functi
2347
2402
  if((isIE68||!value)&&(typeof value==='undefined'||typeof value==='object')){try{var str=toStr.call(value);return(str===ddaClass||str===ddaClass2||str===ddaClass3// opera 12.16
2348
2403
  ||str===objectClass// IE 6-8
2349
2404
  )&&value('')==null;// eslint-disable-line eqeqeq
2350
- }catch(e){/**/}}return false;};}}module.exports=reflectApply?function isCallable(value){if(isDDA(value)){return true;}if(!value){return false;}if(typeof value!=='function'&&typeof value!=='object'){return false;}try{reflectApply(value,null,badArrayLike);}catch(e){if(e!==isCallableMarker){return false;}}return!isES6ClassFn(value)&&tryFunctionObject(value);}:function isCallable(value){if(isDDA(value)){return true;}if(!value){return false;}if(typeof value!=='function'&&typeof value!=='object'){return false;}if(hasToStringTag){return tryFunctionObject(value);}if(isES6ClassFn(value)){return false;}var strClass=toStr.call(value);if(strClass!==fnClass&&strClass!==genClass&&!/^\[object HTML/.test(strClass)){return false;}return tryFunctionObject(value);};},{}],80:[function(require,module,exports){'use strict';var callBound=require('call-bound');var safeRegexTest=require('safe-regex-test');var isFnRegex=safeRegexTest(/^\s*(?:function)?\*/);var hasToStringTag=require('has-tostringtag/shams')();var getProto=require('get-proto');var toStr=callBound('Object.prototype.toString');var fnToStr=callBound('Function.prototype.toString');var getGeneratorFunction=require('generator-function');/** @type {import('.')} */module.exports=function isGeneratorFunction(fn){if(typeof fn!=='function'){return false;}if(isFnRegex(fnToStr(fn))){return true;}if(!hasToStringTag){var str=toStr(fn);return str==='[object GeneratorFunction]';}if(!getProto){return false;}var GeneratorFunction=getGeneratorFunction();return GeneratorFunction&&getProto(fn)===GeneratorFunction.prototype;};},{"call-bound":32,"generator-function":63,"get-proto":67,"has-tostringtag/shams":73,"safe-regex-test":136}],81:[function(require,module,exports){var reIpv4FirstPass=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;var reSubnetString=/\/\d{1,3}(?=%|$)/;var reForwardSlash=/\//;var reZone=/%.*$/;var reBadCharacters=/([^0-9a-f:/%])/i;var reBadAddress=/([0-9a-f]{5,}|:{3,}|[^:]:$|^:[^:]|\/$)/i;function validate4(input){if(!reIpv4FirstPass.test(input))return false;var parts=input.split('.');if(parts.length!==4)return false;if(parts[0][0]==='0'&&parts[0].length>1)return false;if(parts[1][0]==='0'&&parts[1].length>1)return false;if(parts[2][0]==='0'&&parts[2].length>1)return false;if(parts[3][0]==='0'&&parts[3].length>1)return false;var n0=Number(parts[0]);var n1=Number(parts[1]);var n2=Number(parts[2]);var n3=Number(parts[3]);return n0>=0&&n0<256&&n1>=0&&n1<256&&n2>=0&&n2<256&&n3>=0&&n3<256;}function validate6(input){var withoutSubnet=input.replace(reSubnetString,'');var hasSubnet=input.length!==withoutSubnet.length;// FIXME: this should probably be an option in the future
2405
+ }catch(e){/**/}}return false;};}}module.exports=reflectApply?function isCallable(value){if(isDDA(value)){return true;}if(!value){return false;}if(typeof value!=='function'&&typeof value!=='object'){return false;}try{reflectApply(value,null,badArrayLike);}catch(e){if(e!==isCallableMarker){return false;}}return!isES6ClassFn(value)&&tryFunctionObject(value);}:function isCallable(value){if(isDDA(value)){return true;}if(!value){return false;}if(typeof value!=='function'&&typeof value!=='object'){return false;}if(hasToStringTag){return tryFunctionObject(value);}if(isES6ClassFn(value)){return false;}var strClass=toStr.call(value);if(strClass!==fnClass&&strClass!==genClass&&!/^\[object HTML/.test(strClass)){return false;}return tryFunctionObject(value);};},{}],80:[function(require,module,exports){'use strict';var callBound=require('call-bound');var safeRegexTest=require('safe-regex-test');var isFnRegex=safeRegexTest(/^\s*(?:function)?\*/);var hasToStringTag=require('has-tostringtag/shams')();var getProto=require('get-proto');var toStr=callBound('Object.prototype.toString');var fnToStr=callBound('Function.prototype.toString');var getGeneratorFunction=require('generator-function');/** @type {import('.')} */module.exports=function isGeneratorFunction(fn){if(typeof fn!=='function'){return false;}if(isFnRegex(fnToStr(fn))){return true;}if(!hasToStringTag){var str=toStr(fn);return str==='[object GeneratorFunction]';}if(!getProto){return false;}var GeneratorFunction=getGeneratorFunction();return GeneratorFunction&&getProto(fn)===GeneratorFunction.prototype;};},{"call-bound":32,"generator-function":63,"get-proto":67,"has-tostringtag/shams":73,"safe-regex-test":137}],81:[function(require,module,exports){var reIpv4FirstPass=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;var reSubnetString=/\/\d{1,3}(?=%|$)/;var reForwardSlash=/\//;var reZone=/%.*$/;var reBadCharacters=/([^0-9a-f:/%])/i;var reBadAddress=/([0-9a-f]{5,}|:{3,}|[^:]:$|^:[^:]|\/$)/i;function validate4(input){if(!reIpv4FirstPass.test(input))return false;var parts=input.split('.');if(parts.length!==4)return false;if(parts[0][0]==='0'&&parts[0].length>1)return false;if(parts[1][0]==='0'&&parts[1].length>1)return false;if(parts[2][0]==='0'&&parts[2].length>1)return false;if(parts[3][0]==='0'&&parts[3].length>1)return false;var n0=Number(parts[0]);var n1=Number(parts[1]);var n2=Number(parts[2]);var n3=Number(parts[3]);return n0>=0&&n0<256&&n1>=0&&n1<256&&n2>=0&&n2<256&&n3>=0&&n3<256;}function validate6(input){var withoutSubnet=input.replace(reSubnetString,'');var hasSubnet=input.length!==withoutSubnet.length;// FIXME: this should probably be an option in the future
2351
2406
  if(hasSubnet)return false;if(!hasSubnet){if(reForwardSlash.test(input))return false;}var withoutZone=withoutSubnet.replace(reZone,'');var lastPartSeparator=withoutZone.lastIndexOf(':');if(lastPartSeparator===-1)return false;var lastPart=withoutZone.substring(lastPartSeparator+1);var hasV4Part=validate4(lastPart);var address=hasV4Part?withoutZone.substring(0,lastPartSeparator+1)+'1234:5678':withoutZone;if(reBadCharacters.test(address))return false;if(reBadAddress.test(address))return false;var halves=address.split('::');if(halves.length>2)return false;if(halves.length===2){var first=halves[0]===''?[]:halves[0].split(':');var last=halves[1]===''?[]:halves[1].split(':');var remainingLength=8-(first.length+last.length);if(remainingLength<=0)return false;}else{if(address.split(':').length!==8)return false;}return true;}function validate(input){return validate4(input)||validate6(input);}module.exports=function validator(options){if(!options)options={};if(options.version===4)return validate4;if(options.version===6)return validate6;if(options.version==null)return validate;throw new Error('Unknown version: '+options.version);};module.exports['__all_regexes__']=[reIpv4FirstPass,reSubnetString,reForwardSlash,reZone,reBadCharacters,reBadAddress];},{}],82:[function(require,module,exports){var createIpValidator=require('is-my-ip-valid');var reEmailWhitespace=/\s/;var reHostnameFirstPass=/^[a-zA-Z0-9.-]+$/;var reHostnamePart=/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/;var rePhoneFirstPass=/^\+[0-9][0-9 ]{5,27}[0-9]$/;var rePhoneDoubleSpace=/ {2}/;var rePhoneGlobalSpace=/ /g;exports['date-time']=/^\d{4}-(?:0[0-9]{1}|1[0-2]{1})-[0-9]{2}[tT ]\d{2}:\d{2}:\d{2}(?:\.\d+|)([zZ]|[+-]\d{2}:\d{2})$/;exports['date']=/^\d{4}-(?:0[0-9]{1}|1[0-2]{1})-[0-9]{2}$/;exports['time']=/^\d{2}:\d{2}:\d{2}$/;exports['email']=function(input){return input.indexOf('@')!==-1&&!reEmailWhitespace.test(input);};exports['ip-address']=exports['ipv4']=createIpValidator({version:4});exports['ipv6']=createIpValidator({version:6});exports['uri']=/^[a-zA-Z][a-zA-Z0-9+\-.]*:[^\s]*$/;exports['color']=/(#?([0-9A-Fa-f]{3,6})\b)|(aqua)|(black)|(blue)|(fuchsia)|(gray)|(green)|(lime)|(maroon)|(navy)|(olive)|(orange)|(purple)|(red)|(silver)|(teal)|(white)|(yellow)|(rgb\(\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*,\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*,\s*\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b\s*\))|(rgb\(\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*,\s*(\d?\d%|100%)+\s*\))/;exports['hostname']=function(input){if(!reHostnameFirstPass.test(input))return false;var parts=input.split('.');for(var i=0;i<parts.length;i++){if(!reHostnamePart.test(parts[i]))return false;}return true;};exports['alpha']=/^[a-zA-Z]+$/;exports['alphanumeric']=/^[a-zA-Z0-9]+$/;exports['style']=/.:\s*[^;]/g;exports['phone']=function(input){if(!rePhoneFirstPass.test(input))return false;if(rePhoneDoubleSpace.test(input))return false;var digits=input.substring(1).replace(rePhoneGlobalSpace,'').length;return digits>=7&&digits<=15;};exports['utc-millisec']=/^[0-9]{1,15}\.?[0-9]{0,15}$/;},{"is-my-ip-valid":81}],83:[function(require,module,exports){var genobj=require('generate-object-property');var genfun=require('generate-function');var jsonpointer=require('jsonpointer');var xtend=require('xtend');var formats=require('./formats');var get=function(obj,additionalSchemas,ptr){var visit=function(sub){if(sub&&sub.id===ptr)return sub;if(typeof sub!=='object'||!sub)return null;return Object.keys(sub).reduce(function(res,k){return res||visit(sub[k]);},null);};var res=visit(obj);if(res)return res;ptr=ptr.replace(/^#/,'');ptr=ptr.replace(/\/$/,'');try{return jsonpointer.get(obj,decodeURI(ptr));}catch(err){var end=ptr.indexOf('#');var other;// external reference
2352
2407
  if(end!==0){// fragment doesn't exist.
2353
2408
  if(end===-1){other=additionalSchemas[ptr];}else{var ext=ptr.slice(0,end);other=additionalSchemas[ext];var fragment=ptr.slice(end).replace(/^#/,'');try{return jsonpointer.get(other,fragment);}catch(err){}}}else{other=additionalSchemas[ptr];}return other||null;}};var types={};types.any=function(){return'true';};types.null=function(name){return name+' === null';};types.boolean=function(name){return'typeof '+name+' === "boolean"';};types.array=function(name){return'Array.isArray('+name+')';};types.object=function(name){return'typeof '+name+' === "object" && '+name+' && !Array.isArray('+name+')';};types.number=function(name){return'typeof '+name+' === "number" && isFinite('+name+')';};types.integer=function(name){return'typeof '+name+' === "number" && (Math.floor('+name+') === '+name+' || '+name+' > 9007199254740992 || '+name+' < -9007199254740992)';};types.string=function(name){return'typeof '+name+' === "string"';};var unique=function(array,len){len=Math.min(len===-1?array.length:len,array.length);var list=[];for(var i=0;i<len;i++){list.push(typeof array[i]==='object'?JSON.stringify(array[i]):array[i]);}for(var i=1;i<list.length;i++){if(list.indexOf(list[i])!==i)return false;}return true;};var isMultipleOf=function(name,multipleOf){var res;var factor=(multipleOf|0)!==multipleOf?Math.pow(10,multipleOf.toString().split('.').pop().length):1;if(factor>1){var factorName=(name|0)!==name?Math.pow(10,name.toString().split('.').pop().length):1;if(factorName>factor)res=true;else res=Math.round(factor*name)%(factor*multipleOf);}else res=name%multipleOf;return!res;};var testLimitedRegex=function(r,s,maxLength){if(maxLength>-1&&s.length>maxLength)return true;return r.test(s);};var compile=function(schema,cache,root,reporter,opts){var fmts=opts?xtend(formats,opts.formats):formats;var scope={unique:unique,formats:fmts,isMultipleOf:isMultipleOf,testLimitedRegex:testLimitedRegex};var verbose=opts?!!opts.verbose:false;var greedy=opts&&opts.greedy!==undefined?opts.greedy:false;var syms={};var allocated=[];var gensym=function(name){var res=name+(syms[name]=(syms[name]||0)+1);allocated.push(res);return res;};var formatName=function(field){var s=JSON.stringify(field);try{var pattern=/\[([^\[\]"]+)\]/;while(pattern.test(s))s=s.replace(pattern,replacer);return s;}catch(_){return JSON.stringify(field);}function replacer(match,v){if(allocated.indexOf(v)===-1)throw new Error('Unreplaceable');return'." + '+v+' + "';}};var reversePatterns={};var patterns=function(p){if(reversePatterns[p])return reversePatterns[p];var n=gensym('pattern');scope[n]=new RegExp(p);reversePatterns[p]=n;return n;};var vars=['i','j','k','l','m','n','o','p','q','r','s','t','u','v','x','y','z'];var genloop=function(){var v=vars.shift();vars.push(v+v[0]);allocated.push(v);return v;};var visit=function(name,node,reporter,filter,schemaPath){var properties=node.properties;var type=node.type;var tuple=false;if(Array.isArray(node.items)){// tuple type
2354
2409
  properties={};node.items.forEach(function(item,i){properties[i]=item;});type='array';tuple=true;}var indent=0;var error=function(msg,prop,value){validate('errors++');if(reporter===true){validate('if (validate.errors === null) validate.errors = []');if(verbose){validate('validate.errors.push({field:%s,message:%s,value:%s,type:%s,schemaPath:%s})',formatName(prop||name),JSON.stringify(msg),value||name,JSON.stringify(type),JSON.stringify(schemaPath));}else{validate('validate.errors.push({field:%s,message:%s})',formatName(prop||name),JSON.stringify(msg));}}};if(node.required===true){indent++;validate('if (%s === undefined) {',name);error('is required');validate('} else {');}else{indent++;validate('if (%s !== undefined) {',name);}var valid=[].concat(type).map(function(t){if(t&&!types.hasOwnProperty(t)){throw new Error('Unknown type: '+t);}return types[t||'any'](name);}).join(' || ')||'true';if(valid!=='true'){indent++;validate('if (!(%s)) {',valid);error('is the wrong type');validate('} else {');}if(tuple){if(node.additionalItems===false){validate('if (%s.length > %d) {',name,node.items.length);error('has additional items');validate('}');}else if(node.additionalItems){var i=genloop();validate('for (var %s = %d; %s < %s.length; %s++) {',i,node.items.length,i,name,i);visit(name+'['+i+']',node.additionalItems,reporter,filter,schemaPath.concat('additionalItems'));validate('}');}}if(node.format&&fmts[node.format]){if(type!=='string'&&formats[node.format])validate('if (%s) {',types.string(name));var n=gensym('format');scope[n]=fmts[node.format];if(typeof scope[n]==='function')validate('if (!%s(%s)) {',n,name);else validate('if (!testLimitedRegex(%s, %s, %d)) {',n,name,typeof node.maxLength==='undefined'?-1:node.maxLength);error('must be '+node.format+' format');validate('}');if(type!=='string'&&formats[node.format])validate('}');}if(Array.isArray(node.required)){var n=gensym('missing');validate('var %s = 0',n);var checkRequired=function(req){var prop=genobj(name,req);validate('if (%s === undefined) {',prop);error('is required',prop);validate('%s++',n);validate('}');};validate('if ((%s)) {',type!=='object'?types.object(name):'true');node.required.map(checkRequired);validate('}');if(!greedy){validate('if (%s === 0) {',n);indent++;}}if(node.uniqueItems){if(type!=='array')validate('if (%s) {',types.array(name));validate('if (!(unique(%s, %d))) {',name,node.maxItems||-1);error('must be unique');validate('}');if(type!=='array')validate('}');}if(node.enum){var complex=node.enum.some(function(e){return typeof e==='object';});var compare=complex?function(e){return'JSON.stringify('+name+')'+' !== JSON.stringify('+JSON.stringify(e)+')';}:function(e){return name+' !== '+JSON.stringify(e);};validate('if (%s) {',node.enum.map(compare).join(' && ')||'false');error('must be an enum value');validate('}');}if(node.dependencies){if(type!=='object')validate('if (%s) {',types.object(name));Object.keys(node.dependencies).forEach(function(key){var deps=node.dependencies[key];if(typeof deps==='string')deps=[deps];var exists=function(k){return genobj(name,k)+' !== undefined';};if(Array.isArray(deps)){validate('if (%s !== undefined && !(%s)) {',genobj(name,key),deps.map(exists).join(' && ')||'true');error('dependencies not set');validate('}');}if(typeof deps==='object'){validate('if (%s !== undefined) {',genobj(name,key));visit(name,deps,reporter,filter,schemaPath.concat(['dependencies',key]));validate('}');}});if(type!=='object')validate('}');}if(node.additionalProperties||node.additionalProperties===false){if(type!=='object')validate('if (%s) {',types.object(name));var i=genloop();var keys=gensym('keys');var toCompare=function(p){return keys+'['+i+'] !== '+JSON.stringify(p);};var toTest=function(p){return'!'+patterns(p)+'.test('+keys+'['+i+'])';};var additionalProp=Object.keys(properties||{}).map(toCompare).concat(Object.keys(node.patternProperties||{}).map(toTest)).join(' && ')||'true';validate('var %s = Object.keys(%s)',keys,name)('for (var %s = 0; %s < %s.length; %s++) {',i,i,keys,i)('if (%s) {',additionalProp);if(node.additionalProperties===false){if(filter)validate('delete %s',name+'['+keys+'['+i+']]');error('has additional properties',null,JSON.stringify(name+'.')+' + '+keys+'['+i+']');}else{visit(name+'['+keys+'['+i+']]',node.additionalProperties,reporter,filter,schemaPath.concat(['additionalProperties']));}validate('}')('}');if(type!=='object')validate('}');}if(node.$ref){var sub=get(root,opts&&opts.schemas||{},node.$ref);if(sub){var fn=cache[node.$ref];if(!fn){cache[node.$ref]=function proxy(data){return fn(data);};fn=compile(sub,cache,root,false,opts);}var n=gensym('ref');scope[n]=fn;validate('if (!(%s(%s))) {',n,name);error('referenced schema does not match');validate('}');}}if(node.not){var prev=gensym('prev');validate('var %s = errors',prev);visit(name,node.not,false,filter,schemaPath.concat('not'));validate('if (%s === errors) {',prev);error('negative schema matches');validate('} else {')('errors = %s',prev)('}');}if(node.items&&!tuple){if(type!=='array')validate('if (%s) {',types.array(name));var i=genloop();validate('for (var %s = 0; %s < %s.length; %s++) {',i,i,name,i);visit(name+'['+i+']',node.items,reporter,filter,schemaPath.concat('items'));validate('}');if(type!=='array')validate('}');}if(node.patternProperties){if(type!=='object')validate('if (%s) {',types.object(name));var keys=gensym('keys');var i=genloop();validate('var %s = Object.keys(%s)',keys,name)('for (var %s = 0; %s < %s.length; %s++) {',i,i,keys,i);Object.keys(node.patternProperties).forEach(function(key){var p=patterns(key);validate('if (%s.test(%s)) {',p,keys+'['+i+']');visit(name+'['+keys+'['+i+']]',node.patternProperties[key],reporter,filter,schemaPath.concat(['patternProperties',key]));validate('}');});validate('}');if(type!=='object')validate('}');}if(node.pattern){var p=patterns(node.pattern);if(type!=='string')validate('if (%s) {',types.string(name));validate('if (!(testLimitedRegex(%s, %s, %d))) {',p,name,typeof node.maxLength==='undefined'?-1:node.maxLength);error('pattern mismatch');validate('}');if(type!=='string')validate('}');}if(node.allOf){node.allOf.forEach(function(sch,key){visit(name,sch,reporter,filter,schemaPath.concat(['allOf',key]));});}if(node.anyOf&&node.anyOf.length){var prev=gensym('prev');node.anyOf.forEach(function(sch,i){if(i===0){validate('var %s = errors',prev);}else{validate('if (errors !== %s) {',prev)('errors = %s',prev);}visit(name,sch,false,false,schemaPath);});node.anyOf.forEach(function(sch,i){if(i)validate('}');});validate('if (%s !== errors) {',prev);error('no schemas match');validate('}');}if(node.oneOf&&node.oneOf.length){var prev=gensym('prev');var passes=gensym('passes');validate('var %s = errors',prev)('var %s = 0',passes);node.oneOf.forEach(function(sch,i){visit(name,sch,false,false,schemaPath);validate('if (%s === errors) {',prev)('%s++',passes)('} else {')('errors = %s',prev)('}');});validate('if (%s !== 1) {',passes);error('no (or more than one) schemas match');validate('}');}if(node.multipleOf!==undefined){if(type!=='number'&&type!=='integer')validate('if (%s) {',types.number(name));validate('if (!isMultipleOf(%s, %d)) {',name,node.multipleOf);error('has a remainder');validate('}');if(type!=='number'&&type!=='integer')validate('}');}if(node.maxProperties!==undefined){if(type!=='object')validate('if (%s) {',types.object(name));validate('if (Object.keys(%s).length > %d) {',name,node.maxProperties);error('has more properties than allowed');validate('}');if(type!=='object')validate('}');}if(node.minProperties!==undefined){if(type!=='object')validate('if (%s) {',types.object(name));validate('if (Object.keys(%s).length < %d) {',name,node.minProperties);error('has less properties than allowed');validate('}');if(type!=='object')validate('}');}if(node.maxItems!==undefined){if(type!=='array')validate('if (%s) {',types.array(name));validate('if (%s.length > %d) {',name,node.maxItems);error('has more items than allowed');validate('}');if(type!=='array')validate('}');}if(node.minItems!==undefined){if(type!=='array')validate('if (%s) {',types.array(name));validate('if (%s.length < %d) {',name,node.minItems);error('has less items than allowed');validate('}');if(type!=='array')validate('}');}if(node.maxLength!==undefined){if(type!=='string')validate('if (%s) {',types.string(name));validate('if (%s.length > %d) {',name,node.maxLength);error('has longer length than allowed');validate('}');if(type!=='string')validate('}');}if(node.minLength!==undefined){if(type!=='string')validate('if (%s) {',types.string(name));validate('if (%s.length < %d) {',name,node.minLength);error('has less length than allowed');validate('}');if(type!=='string')validate('}');}if(node.minimum!==undefined){if(type!=='number'&&type!=='integer')validate('if (%s) {',types.number(name));validate('if (%s %s %d) {',name,node.exclusiveMinimum?'<=':'<',node.minimum);error('is less than minimum');validate('}');if(type!=='number'&&type!=='integer')validate('}');}if(node.maximum!==undefined){if(type!=='number'&&type!=='integer')validate('if (%s) {',types.number(name));validate('if (%s %s %d) {',name,node.exclusiveMaximum?'>=':'>',node.maximum);error('is more than maximum');validate('}');if(type!=='number'&&type!=='integer')validate('}');}if(properties){Object.keys(properties).forEach(function(p){if(Array.isArray(type)&&type.indexOf('null')!==-1)validate('if (%s !== null) {',name);visit(genobj(name,p),properties[p],reporter,filter,schemaPath.concat(tuple?p:['properties',p]));if(Array.isArray(type)&&type.indexOf('null')!==-1)validate('}');});}while(indent--)validate('}');};var validate=genfun('function validate(data) {')// Since undefined is not a valid JSON value, we coerce to null and other checks will catch this
2355
- ('if (data === undefined) data = null')('validate.errors = null')('var errors = 0');visit('data',schema,reporter,opts&&opts.filter,[]);validate('return errors === 0')('}');validate=validate.toFunction(scope);validate.errors=null;if(Object.defineProperty){Object.defineProperty(validate,'error',{get:function(){if(!validate.errors)return'';return validate.errors.map(function(err){return err.field+' '+err.message;}).join('\n');}});}validate.toJSON=function(){return schema;};return validate;};module.exports=function(schema,opts){if(typeof schema==='string')schema=JSON.parse(schema);return compile(schema,{},schema,true,opts);};module.exports.filter=function(schema,opts){var validate=module.exports(schema,xtend(opts,{filter:true}));return function(sch){validate(sch);return sch;};};},{"./formats":82,"generate-function":61,"generate-object-property":62,"jsonpointer":88,"xtend":189}],84:[function(require,module,exports){"use strict";function isProperty(str){return /^[$A-Z\_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc][$A-Z\_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc0-9\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e4-\u08fe\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d02\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19b0-\u19c0\u19c8\u19c9\u19d0-\u19d9\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1dc0-\u1de6\u1dfc-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f1\ua900-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f]*$/.test(str);}module.exports=isProperty;},{}],85:[function(require,module,exports){'use strict';var callBound=require('call-bound');var hasToStringTag=require('has-tostringtag/shams')();var hasOwn=require('hasown');var gOPD=require('gopd');/** @type {import('.')} */var fn;if(hasToStringTag){/** @type {(receiver: ThisParameterType<typeof RegExp.prototype.exec>, ...args: Parameters<typeof RegExp.prototype.exec>) => ReturnType<typeof RegExp.prototype.exec>} */var $exec=callBound('RegExp.prototype.exec');/** @type {object} */var isRegexMarker={};var throwRegexMarker=function(){throw isRegexMarker;};/** @type {{ toString(): never, valueOf(): never, [Symbol.toPrimitive]?(): never }} */var badStringifier={toString:throwRegexMarker,valueOf:throwRegexMarker};if(typeof Symbol.toPrimitive==='symbol'){badStringifier[Symbol.toPrimitive]=throwRegexMarker;}/** @type {import('.')} */// @ts-expect-error TS can't figure out that the $exec call always throws
2410
+ ('if (data === undefined) data = null')('validate.errors = null')('var errors = 0');visit('data',schema,reporter,opts&&opts.filter,[]);validate('return errors === 0')('}');validate=validate.toFunction(scope);validate.errors=null;if(Object.defineProperty){Object.defineProperty(validate,'error',{get:function(){if(!validate.errors)return'';return validate.errors.map(function(err){return err.field+' '+err.message;}).join('\n');}});}validate.toJSON=function(){return schema;};return validate;};module.exports=function(schema,opts){if(typeof schema==='string')schema=JSON.parse(schema);return compile(schema,{},schema,true,opts);};module.exports.filter=function(schema,opts){var validate=module.exports(schema,xtend(opts,{filter:true}));return function(sch){validate(sch);return sch;};};},{"./formats":82,"generate-function":61,"generate-object-property":62,"jsonpointer":88,"xtend":190}],84:[function(require,module,exports){"use strict";function isProperty(str){return /^[$A-Z\_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc][$A-Z\_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc0-9\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e4-\u08fe\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d02\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19b0-\u19c0\u19c8\u19c9\u19d0-\u19d9\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1dc0-\u1de6\u1dfc-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f1\ua900-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f]*$/.test(str);}module.exports=isProperty;},{}],85:[function(require,module,exports){'use strict';var callBound=require('call-bound');var hasToStringTag=require('has-tostringtag/shams')();var hasOwn=require('hasown');var gOPD=require('gopd');/** @type {import('.')} */var fn;if(hasToStringTag){/** @type {(receiver: ThisParameterType<typeof RegExp.prototype.exec>, ...args: Parameters<typeof RegExp.prototype.exec>) => ReturnType<typeof RegExp.prototype.exec>} */var $exec=callBound('RegExp.prototype.exec');/** @type {object} */var isRegexMarker={};var throwRegexMarker=function(){throw isRegexMarker;};/** @type {{ toString(): never, valueOf(): never, [Symbol.toPrimitive]?(): never }} */var badStringifier={toString:throwRegexMarker,valueOf:throwRegexMarker};if(typeof Symbol.toPrimitive==='symbol'){badStringifier[Symbol.toPrimitive]=throwRegexMarker;}/** @type {import('.')} */// @ts-expect-error TS can't figure out that the $exec call always throws
2356
2411
  // eslint-disable-next-line consistent-return
2357
2412
  fn=function isRegex(value){if(!value||typeof value!=='object'){return false;}// eslint-disable-next-line no-extra-parens
2358
2413
  var descriptor=/** @type {NonNullable<typeof gOPD>} */gOPD(/** @type {{ lastIndex?: unknown }} */value,'lastIndex');var hasLastIndexDataProperty=descriptor&&hasOwn(descriptor,'value');if(!hasLastIndexDataProperty){return false;}try{// eslint-disable-next-line no-extra-parens
2359
2414
  $exec(value,/** @type {string} *//** @type {unknown} */badStringifier);}catch(e){return e===isRegexMarker;}};}else{/** @type {(receiver: ThisParameterType<typeof Object.prototype.toString>, ...args: Parameters<typeof Object.prototype.toString>) => ReturnType<typeof Object.prototype.toString>} */var $toString=callBound('Object.prototype.toString');/** @const @type {'[object RegExp]'} */var regexClass='[object RegExp]';/** @type {import('.')} */fn=function isRegex(value){// In older browsers, typeof regex incorrectly returns 'function'
2360
- if(!value||typeof value!=='object'&&typeof value!=='function'){return false;}return $toString(value)===regexClass;};}module.exports=fn;},{"call-bound":32,"gopd":69,"has-tostringtag/shams":73,"hasown":74}],86:[function(require,module,exports){'use strict';var whichTypedArray=require('which-typed-array');/** @type {import('.')} */module.exports=function isTypedArray(value){return!!whichTypedArray(value);};},{"which-typed-array":187}],87:[function(require,module,exports){(function(Buffer){(function(){/*global Buffer*/// Named constants with unique integer values
2415
+ if(!value||typeof value!=='object'&&typeof value!=='function'){return false;}return $toString(value)===regexClass;};}module.exports=fn;},{"call-bound":32,"gopd":69,"has-tostringtag/shams":73,"hasown":74}],86:[function(require,module,exports){'use strict';var whichTypedArray=require('which-typed-array');/** @type {import('.')} */module.exports=function isTypedArray(value){return!!whichTypedArray(value);};},{"which-typed-array":188}],87:[function(require,module,exports){(function(Buffer){(function(){/*global Buffer*/// Named constants with unique integer values
2361
2416
  var C={};// Tokens
2362
2417
  var LEFT_BRACE=C.LEFT_BRACE=0x1;var RIGHT_BRACE=C.RIGHT_BRACE=0x2;var LEFT_BRACKET=C.LEFT_BRACKET=0x3;var RIGHT_BRACKET=C.RIGHT_BRACKET=0x4;var COLON=C.COLON=0x5;var COMMA=C.COMMA=0x6;var TRUE=C.TRUE=0x7;var FALSE=C.FALSE=0x8;var NULL=C.NULL=0x9;var STRING=C.STRING=0xa;var NUMBER=C.NUMBER=0xb;// Tokenizer States
2363
2418
  var START=C.START=0x11;var STOP=C.STOP=0x12;var TRUE1=C.TRUE1=0x21;var TRUE2=C.TRUE2=0x22;var TRUE3=C.TRUE3=0x23;var FALSE1=C.FALSE1=0x31;var FALSE2=C.FALSE2=0x32;var FALSE3=C.FALSE3=0x33;var FALSE4=C.FALSE4=0x34;var NULL1=C.NULL1=0x41;var NULL2=C.NULL2=0x42;var NULL3=C.NULL3=0x43;var NUMBER1=C.NUMBER1=0x51;var NUMBER3=C.NUMBER3=0x53;var STRING1=C.STRING1=0x61;var STRING2=C.STRING2=0x62;var STRING3=C.STRING3=0x63;var STRING4=C.STRING4=0x64;var STRING5=C.STRING5=0x65;var STRING6=C.STRING6=0x66;// Parser States
@@ -2813,7 +2868,7 @@ var _DefaultIdentifier='ID'+_Scope;var _DefaultGUIdentifier='GUID'+_Scope;/**
2813
2868
  * @method setProvider
2814
2869
  * @param {String} pProviderName The provider for query generation.
2815
2870
  * @return {Object} Returns the current Meadow for chaining.
2816
- */var _PROVIDERS={'ALASQL':require(`./providers/Meadow-Provider-ALASQL.js`),'MeadowEndpoints':require(`./providers/Meadow-Provider-MeadowEndpoints.js`),'MySQL':require(`./providers/Meadow-Provider-MySQL.js`),'MSSQL':require(`./providers/Meadow-Provider-MSSQL.js`),'SQLite':require(`./providers/Meadow-Provider-SQLite.js`),'PostgreSQL':require(`./providers/Meadow-Provider-PostgreSQL.js`),'MongoDB':require(`./providers/Meadow-Provider-MongoDB.js`),'DGraph':require(`./providers/Meadow-Provider-DGraph.js`),'Solr':require(`./providers/Meadow-Provider-Solr.js`),'RocksDB':require(`./providers/Meadow-Provider-RocksDB.js`),'None':require(`./providers/Meadow-Provider-None.js`)};var setProvider=function(pProviderName){if(typeof pProviderName!=='string'){pProviderName='None';}try{_Provider=_PROVIDERS[pProviderName].new(_Fable);// Give the provider access to the schema object
2871
+ */var _PROVIDERS={'ALASQL':require(`./providers/Meadow-Provider-ALASQL.js`),'MeadowEndpoints':require(`./providers/Meadow-Provider-MeadowEndpoints.js`),'MySQL':require(`./providers/Meadow-Provider-MySQL.js`),'MSSQL':require(`./providers/Meadow-Provider-MSSQL.js`),'SQLite':require(`./providers/Meadow-Provider-SQLite.js`),'PostgreSQL':require(`./providers/Meadow-Provider-PostgreSQL.js`),'MongoDB':require(`./providers/Meadow-Provider-MongoDB.js`),'DGraph':require(`./providers/Meadow-Provider-DGraph.js`),'Solr':require(`./providers/Meadow-Provider-Solr.js`),'RocksDB':require(`./providers/Meadow-Provider-RocksDB.js`),'RetoldDataBeacon':require(`./providers/Meadow-Provider-RetoldDataBeacon.js`),'None':require(`./providers/Meadow-Provider-None.js`)};var setProvider=function(pProviderName){if(typeof pProviderName!=='string'){pProviderName='None';}try{_Provider=_PROVIDERS[pProviderName].new(_Fable);// Give the provider access to the schema object
2817
2872
  updateProviderState();_ProviderName=pProviderName;}catch(pError){_Fable.log.error('Provider not set - require load problem',{InvalidProvider:pProviderName,error:pError});setProvider('None');}return this;};setProvider(_Fable.settings.MeadowProvider);/**
2818
2873
  * Set the schema to be something else
2819
2874
  *
@@ -2937,7 +2992,7 @@ tmpQuery.query.schema=_Schema.schema;return tmpQuery;},enumerable:true});/**
2937
2992
  * @type object
2938
2993
  */Object.defineProperty(tmpNewMeadowObject,'providerName',{get:function(){return _ProviderName;},enumerable:true});// addServices removed in fable 2.x
2939
2994
  if(typeof _Fable.addServices==='function'){_Fable.addServices(tmpNewMeadowObject);}else{// bring over addServices implementation from Fable 1.x for backward compatibility
2940
- Object.defineProperty(tmpNewMeadowObject,'fable',{get:function(){return _Fable;},enumerable:false});Object.defineProperty(tmpNewMeadowObject,'settings',{get:function(){return _Fable.settings;},enumerable:false});Object.defineProperty(tmpNewMeadowObject,'log',{get:function(){return _Fable.log;},enumerable:false});}return tmpNewMeadowObject;}return createNew();};module.exports=new Meadow();},{"./Meadow-PackageFileLoader.js":99,"./Meadow-PackageObjectLoader.js":100,"./Meadow-RawQuery.js":101,"./Meadow-Schema.js":102,"./behaviors/Meadow-Count.js":104,"./behaviors/Meadow-Create.js":105,"./behaviors/Meadow-Delete.js":106,"./behaviors/Meadow-Read.js":107,"./behaviors/Meadow-Reads.js":108,"./behaviors/Meadow-Undelete.js":109,"./behaviors/Meadow-Update.js":110,"./providers/Meadow-Provider-ALASQL.js":111,"./providers/Meadow-Provider-DGraph.js":112,"./providers/Meadow-Provider-MSSQL.js":113,"./providers/Meadow-Provider-MeadowEndpoints.js":114,"./providers/Meadow-Provider-MongoDB.js":115,"./providers/Meadow-Provider-MySQL.js":116,"./providers/Meadow-Provider-None.js":117,"./providers/Meadow-Provider-PostgreSQL.js":118,"./providers/Meadow-Provider-RocksDB.js":119,"./providers/Meadow-Provider-SQLite.js":120,"./providers/Meadow-Provider-Solr.js":121,"foxhound":46}],104:[function(require,module,exports){// ##### Part of the **[retold](https://stevenvelozo.github.io/retold/)** system
2995
+ Object.defineProperty(tmpNewMeadowObject,'fable',{get:function(){return _Fable;},enumerable:false});Object.defineProperty(tmpNewMeadowObject,'settings',{get:function(){return _Fable.settings;},enumerable:false});Object.defineProperty(tmpNewMeadowObject,'log',{get:function(){return _Fable.log;},enumerable:false});}return tmpNewMeadowObject;}return createNew();};module.exports=new Meadow();},{"./Meadow-PackageFileLoader.js":99,"./Meadow-PackageObjectLoader.js":100,"./Meadow-RawQuery.js":101,"./Meadow-Schema.js":102,"./behaviors/Meadow-Count.js":104,"./behaviors/Meadow-Create.js":105,"./behaviors/Meadow-Delete.js":106,"./behaviors/Meadow-Read.js":107,"./behaviors/Meadow-Reads.js":108,"./behaviors/Meadow-Undelete.js":109,"./behaviors/Meadow-Update.js":110,"./providers/Meadow-Provider-ALASQL.js":111,"./providers/Meadow-Provider-DGraph.js":112,"./providers/Meadow-Provider-MSSQL.js":113,"./providers/Meadow-Provider-MeadowEndpoints.js":114,"./providers/Meadow-Provider-MongoDB.js":115,"./providers/Meadow-Provider-MySQL.js":116,"./providers/Meadow-Provider-None.js":117,"./providers/Meadow-Provider-PostgreSQL.js":118,"./providers/Meadow-Provider-RetoldDataBeacon.js":119,"./providers/Meadow-Provider-RocksDB.js":120,"./providers/Meadow-Provider-SQLite.js":121,"./providers/Meadow-Provider-Solr.js":122,"foxhound":46}],104:[function(require,module,exports){// ##### Part of the **[retold](https://stevenvelozo.github.io/retold/)** system
2941
2996
  /**
2942
2997
  * @license MIT
2943
2998
  * @author <steven@velozo.com>
@@ -3162,25 +3217,25 @@ let tmpParameterTypeKeys=Object.keys(pQuery.query.parameterTypes);const tmpColum
3162
3217
  // BEFORE WE ADD THIS BEHAVIOR, DECIDE CONCISTENCY WITH OTHER PROVIDERS WHO ALLOW OVERFLOWING STRINGS
3163
3218
  let tmpParameterEntry=false;if(tmpParameterType==='Char'||tmpParameterType==='VarChar'){tmpParameterEntry=_Fable.MeadowMSSQLProvider.MSSQL[tmpParameterType](_Fable.MeadowMSSQLProvider.MSSQL.Max);}// TODO: There is a bug with Text and schemata in ArtifactTypes at least.
3164
3219
  else if(tmpParameterType==='Text'){tmpParameterEntry=_Fable.MeadowMSSQLProvider.MSSQL.VarChar(_Fable.MeadowMSSQLProvider.MSSQL.Max);}else if(tmpParameterType==='Decimal'){const tmpSize=tmpSchemaByColumn[tmpParameterTypeKeys[i]]?.Size;if(tmpSize&&typeof tmpSize==='string'){let[tmpDigitsStr,tmpDecimalDigitsStr]=tmpSize.split(',');const tmpDigits=parseInt(tmpDigitsStr.trim());const tmpDecimalDigits=tmpDecimalDigitsStr?parseInt(tmpDecimalDigitsStr.trim()):0;tmpParameterEntry=_Fable.MeadowMSSQLProvider.MSSQL.Decimal(tmpDigits,tmpDecimalDigits);}else{tmpParameterEntry=_Fable.MeadowMSSQLProvider.MSSQL.Decimal(18,8);}}else{tmpParameterEntry=_Fable.MeadowMSSQLProvider.MSSQL[tmpParameterType];}tmpPreparedStatement.input(tmpParameterTypeKeys[i],tmpParameterEntry);}return tmpPreparedStatement;};var Create=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MSSQL').buildCreateQuery();// TODO: Test the query before executing
3165
- if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}let tmpPreparedStatement=getPreparedStatementFromQuery(pQuery);let tmpQueryBody=`${pQuery.query.body} \nSELECT SCOPE_IDENTITY() AS value;`;if(pQuery.AllowIdentityInsert){tmpQueryBody=`SET IDENTITY_INSERT [${pQuery.parameters.scope}] ON; \n${tmpQueryBody} \nSET IDENTITY_INSERT [${pQuery.parameters.scope}] OFF;`;}tmpPreparedStatement.prepare(tmpQueryBody,pPrepareError=>{// TODO: This will likely blow up the world. It will definitely happen when the schema doesn't generate good constraints from the inputs.
3166
- if(pPrepareError){_Fable.log.error(`CREATE Error preparing prepared statement: ${pPrepareError}`,pPrepareError);}tmpPreparedStatement.execute(pQuery.query.parameters,(pPreparedExecutionError,pPreparedResult)=>{// release the connection after queries are executed
3220
+ if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}let tmpPreparedStatement=getPreparedStatementFromQuery(pQuery);let tmpQueryBody=`${pQuery.query.body} \nSELECT SCOPE_IDENTITY() AS value;`;if(pQuery.AllowIdentityInsert){tmpQueryBody=`SET IDENTITY_INSERT [${pQuery.parameters.scope}] ON; \n${tmpQueryBody} \nSET IDENTITY_INSERT [${pQuery.parameters.scope}] OFF;`;}tmpPreparedStatement.prepare(tmpQueryBody,pPrepareError=>{if(pPrepareError){_Fable.log.error(`CREATE Error preparing prepared statement: ${pPrepareError}`,pPrepareError);tmpResult.error=pPrepareError;tmpResult.executed=true;return fCallback();}tmpPreparedStatement.execute(pQuery.query.parameters,(pPreparedExecutionError,pPreparedResult)=>{// release the connection after queries are executed
3167
3221
  tmpPreparedStatement.unprepare(pPreparedStatementUnprepareError=>{if(pPreparedStatementUnprepareError){_Fable.log.error(`CREATE Error unpreparing prepared statement: ${pPreparedStatementUnprepareError}`,pPreparedStatementUnprepareError);}tmpResult.error=pPreparedExecutionError;if(pPreparedResult&&Array.isArray(pPreparedResult.recordset)&&pPreparedResult.recordset.length>0&&pPreparedResult.recordset[0].value){tmpResult.value=pPreparedResult.recordset[0].value;}tmpResult.executed=true;// TODO: Fix very old pattern by es6-izing this whole bash
3168
3222
  return fCallback();});});});};// This is a synchronous read, good for a few records.
3169
3223
  // TODO: Add a pipe-able read for huge sets
3170
- var Read=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MSSQL').buildReadQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}let tmpPreparedStatement=getPreparedStatementFromQuery(pQuery);tmpPreparedStatement.prepare(pQuery.query.body,pPrepareError=>{// TODO: This will likely blow up the world. It will definitely happen when the schema doesn't generate good constraints from the inputs.
3171
- if(pPrepareError){_Fable.log.error(`READ Error preparing prepared statement: ${pPrepareError}`,pPrepareError);}tmpPreparedStatement.execute(pQuery.query.parameters,(pPreparedExecutionError,pPreparedResult)=>{// release the connection after queries are executed
3224
+ var Read=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;// Propagate the MSSQL LegacyPagination setting (configured on
3225
+ // meadow-connection-mssql) onto the FoxHound parameters so the
3226
+ // dialect can emit a ROW_NUMBER() wrapper instead of OFFSET/FETCH
3227
+ // for customers whose database compatibility level is < 110
3228
+ // (SQL Server 2008 R2 and earlier, or older compat levels on
3229
+ // newer servers).
3230
+ if(_Fable.settings.MSSQL&&_Fable.settings.MSSQL.LegacyPagination){pQuery.parameters.legacyPagination=true;}pQuery.setDialect('MSSQL').buildReadQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}let tmpPreparedStatement=getPreparedStatementFromQuery(pQuery);tmpPreparedStatement.prepare(pQuery.query.body,pPrepareError=>{if(pPrepareError){_Fable.log.error(`READ Error preparing prepared statement: ${pPrepareError}`,pPrepareError);tmpResult.error=pPrepareError;tmpResult.executed=true;return fCallback();}tmpPreparedStatement.execute(pQuery.query.parameters,(pPreparedExecutionError,pPreparedResult)=>{// release the connection after queries are executed
3172
3231
  tmpPreparedStatement.unprepare(pPreparedStatementUnprepareError=>{if(pPreparedStatementUnprepareError){_Fable.log.error(`READ Error unpreparing prepared statement: ${pPreparedStatementUnprepareError}`,pPreparedStatementUnprepareError);}//_Fable.log.info(`Prepared statement returned...`, pPreparedResult);
3173
- tmpResult.error=pPreparedExecutionError;try{tmpResult.value=pPreparedResult.recordset;}catch(pMarshalError){_Fable.log.error(`READ Error marshaling prepared statement result: ${pMarshalError}`,pMarshalError);}tmpResult.executed=true;return fCallback();});});});};var Update=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MSSQL').buildUpdateQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}let tmpPreparedStatement=getPreparedStatementFromQuery(pQuery);tmpPreparedStatement.prepare(pQuery.query.body,pPrepareError=>{// TODO: This will likely blow up the world. It will definitely happen when the schema doesn't generate good constraints from the inputs.
3174
- if(pPrepareError){_Fable.log.error(`UPDATE Error preparing prepared statement: ${pPrepareError}`,pPrepareError);}tmpPreparedStatement.execute(pQuery.query.parameters,(pPreparedExecutionError,pPreparedResult)=>{// release the connection after queries are executed
3232
+ tmpResult.error=pPreparedExecutionError;try{tmpResult.value=pPreparedResult.recordset;}catch(pMarshalError){_Fable.log.error(`READ Error marshaling prepared statement result: ${pMarshalError}`,pMarshalError);}tmpResult.executed=true;return fCallback();});});});};var Update=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MSSQL').buildUpdateQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}let tmpPreparedStatement=getPreparedStatementFromQuery(pQuery);tmpPreparedStatement.prepare(pQuery.query.body,pPrepareError=>{if(pPrepareError){_Fable.log.error(`UPDATE Error preparing prepared statement: ${pPrepareError}`,pPrepareError);tmpResult.error=pPrepareError;tmpResult.executed=true;return fCallback();}tmpPreparedStatement.execute(pQuery.query.parameters,(pPreparedExecutionError,pPreparedResult)=>{// release the connection after queries are executed
3175
3233
  tmpPreparedStatement.unprepare(pPreparedStatementUnprepareError=>{if(pPreparedStatementUnprepareError){_Fable.log.error(`UPDATE Error unpreparing prepared statement: ${pPreparedStatementUnprepareError}`,pPreparedStatementUnprepareError);}//_Fable.log.info(`Prepared statement returned...`, pPreparedResult);
3176
- tmpResult.error=pPreparedExecutionError;tmpResult.value=pPreparedResult;tmpResult.executed=true;return fCallback();});});});};var Delete=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MSSQL').buildDeleteQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}let tmpPreparedStatement=getPreparedStatementFromQuery(pQuery);tmpPreparedStatement.prepare(pQuery.query.body,pPrepareError=>{// TODO: This will likely blow up the world. It will definitely happen when the schema doesn't generate good constraints from the inputs.
3177
- if(pPrepareError){_Fable.log.error(`DELETE Error preparing prepared statement: ${pPrepareError}`,pPrepareError);}tmpPreparedStatement.execute(pQuery.query.parameters,(pPreparedExecutionError,pPreparedResult)=>{// release the connection after queries are executed
3234
+ tmpResult.error=pPreparedExecutionError;tmpResult.value=pPreparedResult;tmpResult.executed=true;return fCallback();});});});};var Delete=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MSSQL').buildDeleteQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}let tmpPreparedStatement=getPreparedStatementFromQuery(pQuery);tmpPreparedStatement.prepare(pQuery.query.body,pPrepareError=>{if(pPrepareError){_Fable.log.error(`DELETE Error preparing prepared statement: ${pPrepareError}`,pPrepareError);tmpResult.error=pPrepareError;tmpResult.executed=true;return fCallback();}tmpPreparedStatement.execute(pQuery.query.parameters,(pPreparedExecutionError,pPreparedResult)=>{// release the connection after queries are executed
3178
3235
  tmpPreparedStatement.unprepare(pPreparedStatementUnprepareError=>{if(pPreparedStatementUnprepareError){_Fable.log.error(`DELETE Error unpreparing prepared statement: ${pPreparedStatementUnprepareError}`,pPreparedStatementUnprepareError);}//_Fable.log.info(`Prepared statement returned...`, pPreparedResult);
3179
- tmpResult.error=pPreparedExecutionError;tmpResult.value=false;try{tmpResult.value=pPreparedResult.rowsAffected[0];}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting affected rowcount during delete query',{Body:pQuery.query.body,Parameters:pQuery.query.parameters});}tmpResult.executed=true;return fCallback();});});});};var Undelete=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MSSQL').buildUndeleteQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}let tmpPreparedStatement=getPreparedStatementFromQuery(pQuery);tmpPreparedStatement.prepare(pQuery.query.body,pPrepareError=>{// TODO: This will likely blow up the world. It will definitely happen when the schema doesn't generate good constraints from the inputs.
3180
- if(pPrepareError){_Fable.log.error(`UNDELETE Error preparing prepared statement: ${pPrepareError}`,pPrepareError);}tmpPreparedStatement.execute(pQuery.query.parameters,(pPreparedExecutionError,pPreparedResult)=>{// release the connection after queries are executed
3236
+ tmpResult.error=pPreparedExecutionError;tmpResult.value=false;try{tmpResult.value=pPreparedResult.rowsAffected[0];}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting affected rowcount during delete query',{Body:pQuery.query.body,Parameters:pQuery.query.parameters});}tmpResult.executed=true;return fCallback();});});});};var Undelete=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MSSQL').buildUndeleteQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}let tmpPreparedStatement=getPreparedStatementFromQuery(pQuery);tmpPreparedStatement.prepare(pQuery.query.body,pPrepareError=>{if(pPrepareError){_Fable.log.error(`UNDELETE Error preparing prepared statement: ${pPrepareError}`,pPrepareError);tmpResult.error=pPrepareError;tmpResult.executed=true;return fCallback();}tmpPreparedStatement.execute(pQuery.query.parameters,(pPreparedExecutionError,pPreparedResult)=>{// release the connection after queries are executed
3181
3237
  tmpPreparedStatement.unprepare(pPreparedStatementUnprepareError=>{if(pPreparedStatementUnprepareError){_Fable.log.error(`UNDELETE Error unpreparing prepared statement: ${pPreparedStatementUnprepareError}`,pPreparedStatementUnprepareError);}//_Fable.log.info(`Prepared statement returned...`, pPreparedResult);
3182
- tmpResult.error=pPreparedExecutionError;tmpResult.value=false;try{tmpResult.value=pPreparedResult.rowsAffected[0];}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting affected rowcount during undelete query',{Body:pQuery.query.body,Parameters:pQuery.query.parameters});}tmpResult.executed=true;return fCallback();});});});};var Count=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MSSQL').buildCountQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}let tmpPreparedStatement=getPreparedStatementFromQuery(pQuery);tmpPreparedStatement.prepare(pQuery.query.body,pPrepareError=>{// TODO: This will likely blow up the world. It will definitely happen when the schema doesn't generate good constraints from the inputs.
3183
- if(pPrepareError){_Fable.log.error(`COUNT Error preparing prepared statement: ${pPrepareError}`,pPrepareError);}tmpPreparedStatement.execute(pQuery.query.parameters,(pPreparedExecutionError,pPreparedResult)=>{// release the connection after queries are executed
3238
+ tmpResult.error=pPreparedExecutionError;tmpResult.value=false;try{tmpResult.value=pPreparedResult.rowsAffected[0];}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting affected rowcount during undelete query',{Body:pQuery.query.body,Parameters:pQuery.query.parameters});}tmpResult.executed=true;return fCallback();});});});};var Count=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MSSQL').buildCountQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}let tmpPreparedStatement=getPreparedStatementFromQuery(pQuery);tmpPreparedStatement.prepare(pQuery.query.body,pPrepareError=>{if(pPrepareError){_Fable.log.error(`COUNT Error preparing prepared statement: ${pPrepareError}`,pPrepareError);tmpResult.error=pPrepareError;tmpResult.executed=true;return fCallback();}tmpPreparedStatement.execute(pQuery.query.parameters,(pPreparedExecutionError,pPreparedResult)=>{// release the connection after queries are executed
3184
3239
  tmpPreparedStatement.unprepare(pPreparedStatementUnprepareError=>{if(pPreparedStatementUnprepareError){_Fable.log.error(`COUNT Error unpreparing prepared statement: ${pPreparedStatementUnprepareError}`,pPreparedStatementUnprepareError);}//_Fable.log.info(`Prepared statement returned...`, pPreparedResult);
3185
3240
  tmpResult.error=pPreparedExecutionError;tmpResult.value=false;try{tmpResult.value=pPreparedResult.recordset[0].Row_Count;}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting affected rowcount during count query',{Body:pQuery.query.body,Parameters:pQuery.query.parameters});}tmpResult.executed=true;return fCallback();});});});};var tmpNewProvider={marshalRecordFromSourceToObject:marshalRecordFromSourceToObject,Create:Create,Read:Read,Update:Update,Delete:Delete,Undelete:Undelete,Count:Count,getProvider:getProvider,providerCreatesSupported:true,new:createNew};return tmpNewProvider;}return createNew();};module.exports=new MeadowProvider();},{}],114:[function(require,module,exports){// ##### Part of the **[retold](https://stevenvelozo.github.io/retold/)** system
3186
3241
  /**
@@ -3199,7 +3254,7 @@ if(!pQuery.query.records.length>0){tmpResult.error='No records passed for proxyi
3199
3254
  // an object). The subsequent Read step uses the existing
3200
3255
  // filters to re-read the updated record.
3201
3256
  if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.debug(`==> PUT completed data size ${tmpData.length}b received`,tmpResult);}return fCallback();});});};var Delete=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect(_Dialect).buildDeleteQuery();let tmpRequestOptions=buildRequestOptions(pQuery);libSimpleGet.delete(tmpRequestOptions,(pError,pResponse)=>{tmpResult.error=pError;tmpResult.executed=true;if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug(`--> DEL request connected`);if(pError){return fCallback(tmpResult);}let tmpData='';pResponse.on('data',pChunk=>{if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug(`--> DEL data chunk size ${pChunk.length}b received`);tmpData+=pChunk;});pResponse.on('end',()=>{if(tmpData){try{tmpResult.value=JSON.parse(tmpData);}catch(pParseError){tmpResult.error=new Error(`Failed to parse Delete response as JSON: ${pParseError.message}`);return fCallback();}}if(tmpResult.value&&tmpResult.value.hasOwnProperty('Count')){tmpResult.value=tmpResult.value.Count;}if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.debug(`==> DEL completed data size ${tmpData.length}b received`,tmpResult);}fCallback();});});};var Count=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect(_Dialect).buildCountQuery();let tmpRequestOptions=buildRequestOptions(pQuery);libSimpleGet.get(tmpRequestOptions,(pError,pResponse)=>{tmpResult.error=pError;tmpResult.executed=true;if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug(`--> GET request connected`);if(pError){return fCallback(tmpResult);}let tmpData='';pResponse.on('data',pChunk=>{if(pQuery.logLevel>0||_GlobalLogLevel>0)_Fable.log.debug(`--> GET data chunk size ${pChunk.length}b received`);tmpData+=pChunk;});pResponse.on('end',()=>{if(tmpData){try{tmpResult.value=JSON.parse(tmpData);}catch(pParseError){tmpResult.error=new Error(`Failed to parse Count response as JSON: ${pParseError.message}`);return fCallback();}}try{tmpResult.value=tmpResult.value.Count;}catch(pErrorGettingRowcount){// This is an error state...
3202
- tmpResult.value=-1;_Fable.log.warn('Error getting rowcount during count query',{Body:pQuery.query.body,Parameters:pQuery.query.parameters});}if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.debug(`==> GET completed data size ${tmpData.length}b received`,tmpResult);}fCallback();});});};var tmpNewProvider={marshalRecordFromSourceToObject:marshalRecordFromSourceToObject,Create:Create,Read:Read,Update:Update,Delete:Delete,Count:Count,getProvider:{},providerCreatesSupported:false,new:createNew};return tmpNewProvider;}return createNew();};module.exports=new MeadowProvider();},{"simple-get":143}],115:[function(require,module,exports){// ##### Part of the **[retold](https://stevenvelozo.github.io/retold/)** system
3257
+ tmpResult.value=-1;_Fable.log.warn('Error getting rowcount during count query',{Body:pQuery.query.body,Parameters:pQuery.query.parameters});}if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.debug(`==> GET completed data size ${tmpData.length}b received`,tmpResult);}fCallback();});});};var tmpNewProvider={marshalRecordFromSourceToObject:marshalRecordFromSourceToObject,Create:Create,Read:Read,Update:Update,Delete:Delete,Count:Count,getProvider:{},providerCreatesSupported:false,new:createNew};return tmpNewProvider;}return createNew();};module.exports=new MeadowProvider();},{"simple-get":144}],115:[function(require,module,exports){// ##### Part of the **[retold](https://stevenvelozo.github.io/retold/)** system
3203
3258
  /**
3204
3259
  * @license MIT
3205
3260
  * @author <steven@velozo.com>
@@ -3244,14 +3299,14 @@ var tmpJsonColumns={};var tmpProxyColumns={};if(Array.isArray(pSchema)){for(var
3244
3299
  try{pObject[tmpColumn]=typeof pRecord[tmpColumn]==='string'?JSON.parse(pRecord[tmpColumn]):pRecord[tmpColumn]||{};}catch(pParseError){pObject[tmpColumn]={};}}else if(tmpProxyColumns.hasOwnProperty(tmpColumn)){// JSONProxy: storage column -> parse and assign to virtual column name
3245
3300
  var tmpVirtualColumn=tmpProxyColumns[tmpColumn];try{pObject[tmpVirtualColumn]=typeof pRecord[tmpColumn]==='string'?JSON.parse(pRecord[tmpColumn]):pRecord[tmpColumn]||{};}catch(pParseError){pObject[tmpVirtualColumn]={};}// Do NOT copy the storage column to the output object
3246
3301
  }else{pObject[tmpColumn]=pRecord[tmpColumn];}}};var Create=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MySQL').buildCreateQuery();// TODO: Test the query before executing
3247
- if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}getSQLPool().getConnection(function(pError,pDBConnection){pDBConnection.query(pQuery.query.body,pQuery.query.parameters,// The MySQL library also returns the Fields as the third parameter
3302
+ if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}var tmpPool=getSQLPool();if(!tmpPool){tmpResult.error=new Error('No MySQL connection pool available.');tmpResult.executed=true;return fCallback();}tmpPool.getConnection(function(pError,pDBConnection){if(pError||!pDBConnection){_Fable.log.error('Error getting connection from MySQL pool during create query: '+(pError?pError.message:'no connection returned'),{Body:pQuery.query.body});tmpResult.error=pError||new Error('No connection returned from pool.');tmpResult.executed=true;return fCallback();}pDBConnection.query(pQuery.query.body,pQuery.query.parameters,// The MySQL library also returns the Fields as the third parameter
3248
3303
  function(pError,pRows){pDBConnection.release();tmpResult.error=pError;tmpResult.value=false;try{tmpResult.value=pRows.insertId;}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting insert ID during create query',{Body:pQuery.query.body,Parameters:pQuery.query.parameters});}tmpResult.executed=true;return fCallback();});});};// This is a synchronous read, good for a few records.
3249
3304
  // TODO: Add a pipe-able read for huge sets
3250
- var Read=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MySQL').buildReadQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}getSQLPool().getConnection(function(pError,pDBConnection){pDBConnection.query(pQuery.query.body,pQuery.query.parameters,// The MySQL library also returns the Fields as the third parameter
3251
- function(pError,pRows){pDBConnection.release();tmpResult.error=pError;tmpResult.value=pRows;tmpResult.executed=true;return fCallback();});});};var Update=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MySQL').buildUpdateQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}getSQLPool().getConnection(function(pError,pDBConnection){pDBConnection.query(pQuery.query.body,pQuery.query.parameters,// The MySQL library also returns the Fields as the third parameter
3252
- function(pError,pRows){pDBConnection.release();tmpResult.error=pError;tmpResult.value=pRows;tmpResult.executed=true;return fCallback();});});};var Delete=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MySQL').buildDeleteQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}getSQLPool().getConnection(function(pError,pDBConnection){pDBConnection.query(pQuery.query.body,pQuery.query.parameters,// The MySQL library also returns the Fields as the third parameter
3253
- function(pError,pRows){pDBConnection.release();tmpResult.error=pError;tmpResult.value=false;try{tmpResult.value=pRows.affectedRows;}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting affected rowcount during delete query',{Body:pQuery.query.body,Parameters:pQuery.query.parameters});}tmpResult.executed=true;return fCallback();});});};var Undelete=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MySQL').buildUndeleteQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}getSQLPool().getConnection(function(pError,pDBConnection){pDBConnection.query(pQuery.query.body,pQuery.query.parameters,// The MySQL library also returns the Fields as the third parameter
3254
- function(pError,pRows){pDBConnection.release();tmpResult.error=pError;tmpResult.value=false;try{tmpResult.value=pRows.affectedRows;}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting affected rowcount during delete query',{Body:pQuery.query.body,Parameters:pQuery.query.parameters});}tmpResult.executed=true;return fCallback();});});};var Count=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MySQL').buildCountQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}getSQLPool().getConnection(function(pError,pDBConnection){pDBConnection.query(pQuery.query.body,pQuery.query.parameters,// The MySQL library also returns the Fields as the third parameter
3305
+ var Read=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MySQL').buildReadQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}var tmpPool=getSQLPool();if(!tmpPool){tmpResult.error=new Error('No MySQL connection pool available.');tmpResult.executed=true;return fCallback();}tmpPool.getConnection(function(pError,pDBConnection){if(pError||!pDBConnection){_Fable.log.error('Error getting connection from MySQL pool during read query: '+(pError?pError.message:'no connection returned'),{Body:pQuery.query.body});tmpResult.error=pError||new Error('No connection returned from pool.');tmpResult.executed=true;return fCallback();}pDBConnection.query(pQuery.query.body,pQuery.query.parameters,// The MySQL library also returns the Fields as the third parameter
3306
+ function(pError,pRows){pDBConnection.release();tmpResult.error=pError;tmpResult.value=pRows;tmpResult.executed=true;return fCallback();});});};var Update=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MySQL').buildUpdateQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}var tmpPool=getSQLPool();if(!tmpPool){tmpResult.error=new Error('No MySQL connection pool available.');tmpResult.executed=true;return fCallback();}tmpPool.getConnection(function(pError,pDBConnection){if(pError||!pDBConnection){_Fable.log.error('Error getting connection from MySQL pool during update query: '+(pError?pError.message:'no connection returned'),{Body:pQuery.query.body});tmpResult.error=pError||new Error('No connection returned from pool.');tmpResult.executed=true;return fCallback();}pDBConnection.query(pQuery.query.body,pQuery.query.parameters,// The MySQL library also returns the Fields as the third parameter
3307
+ function(pError,pRows){pDBConnection.release();tmpResult.error=pError;tmpResult.value=pRows;tmpResult.executed=true;return fCallback();});});};var Delete=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MySQL').buildDeleteQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}var tmpPool=getSQLPool();if(!tmpPool){tmpResult.error=new Error('No MySQL connection pool available.');tmpResult.executed=true;return fCallback();}tmpPool.getConnection(function(pError,pDBConnection){if(pError||!pDBConnection){_Fable.log.error('Error getting connection from MySQL pool during delete query: '+(pError?pError.message:'no connection returned'),{Body:pQuery.query.body});tmpResult.error=pError||new Error('No connection returned from pool.');tmpResult.executed=true;return fCallback();}pDBConnection.query(pQuery.query.body,pQuery.query.parameters,// The MySQL library also returns the Fields as the third parameter
3308
+ function(pError,pRows){pDBConnection.release();tmpResult.error=pError;tmpResult.value=false;try{tmpResult.value=pRows.affectedRows;}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting affected rowcount during delete query',{Body:pQuery.query.body,Parameters:pQuery.query.parameters});}tmpResult.executed=true;return fCallback();});});};var Undelete=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MySQL').buildUndeleteQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}var tmpPool=getSQLPool();if(!tmpPool){tmpResult.error=new Error('No MySQL connection pool available.');tmpResult.executed=true;return fCallback();}tmpPool.getConnection(function(pError,pDBConnection){if(pError||!pDBConnection){_Fable.log.error('Error getting connection from MySQL pool during undelete query: '+(pError?pError.message:'no connection returned'),{Body:pQuery.query.body});tmpResult.error=pError||new Error('No connection returned from pool.');tmpResult.executed=true;return fCallback();}pDBConnection.query(pQuery.query.body,pQuery.query.parameters,// The MySQL library also returns the Fields as the third parameter
3309
+ function(pError,pRows){pDBConnection.release();tmpResult.error=pError;tmpResult.value=false;try{tmpResult.value=pRows.affectedRows;}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting affected rowcount during delete query',{Body:pQuery.query.body,Parameters:pQuery.query.parameters});}tmpResult.executed=true;return fCallback();});});};var Count=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('MySQL').buildCountQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}var tmpPool=getSQLPool();if(!tmpPool){tmpResult.error=new Error('No MySQL connection pool available.');tmpResult.executed=true;return fCallback();}tmpPool.getConnection(function(pError,pDBConnection){if(pError||!pDBConnection){_Fable.log.error('Error getting connection from MySQL pool during count query: '+(pError?pError.message:'no connection returned'),{Body:pQuery.query.body});tmpResult.error=pError||new Error('No connection returned from pool.');tmpResult.executed=true;return fCallback();}pDBConnection.query(pQuery.query.body,pQuery.query.parameters,// The MySQL library also returns the Fields as the third parameter
3255
3310
  function(pError,pRows){pDBConnection.release();tmpResult.executed=true;tmpResult.error=pError;tmpResult.value=false;try{tmpResult.value=pRows[0].RowCount;}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting rowcount during count query',{Body:pQuery.query.body,Parameters:pQuery.query.parameters});}return fCallback();});});};var tmpNewProvider={marshalRecordFromSourceToObject:marshalRecordFromSourceToObject,Create:Create,Read:Read,Update:Update,Delete:Delete,Undelete:Undelete,Count:Count,getProvider:getProvider,providerCreatesSupported:false,new:createNew};return tmpNewProvider;}return createNew();};module.exports=new MeadowProvider();},{}],117:[function(require,module,exports){// ##### Part of the **[retold](https://stevenvelozo.github.io/retold/)** system
3256
3311
  /**
3257
3312
  * @license MIT
@@ -3300,6 +3355,33 @@ if(pDBResult&&pDBResult.rows&&pDBResult.rows.length>0){var tmpSchema=Array.isArr
3300
3355
  var tmpFirstKey=Object.keys(pDBResult.rows[0])[0];tmpResult.value=pDBResult.rows[0][tmpFirstKey];}}}catch(pErrorGettingID){_Fable.log.warn('Error getting insert ID during create query',{Body:pQuery.query.body,Parameters:pQuery.query.parameters});}tmpResult.executed=true;return fCallback();});};// This is a synchronous read, good for a few records.
3301
3356
  var Read=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('PostgreSQL').buildReadQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}var tmpConverted=convertNamedToPositional(pQuery.query.body,pQuery.query.parameters);getSQLPool().query(tmpConverted.text,tmpConverted.values,function(pError,pDBResult){tmpResult.error=pError;tmpResult.value=pDBResult?pDBResult.rows:[];tmpResult.executed=true;return fCallback();});};var Update=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('PostgreSQL').buildUpdateQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}var tmpConverted=convertNamedToPositional(pQuery.query.body,pQuery.query.parameters);getSQLPool().query(tmpConverted.text,tmpConverted.values,function(pError,pDBResult){tmpResult.error=pError;tmpResult.value=pDBResult?pDBResult.rows:[];tmpResult.executed=true;return fCallback();});};var Delete=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('PostgreSQL').buildDeleteQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}var tmpConverted=convertNamedToPositional(pQuery.query.body,pQuery.query.parameters);getSQLPool().query(tmpConverted.text,tmpConverted.values,function(pError,pDBResult){tmpResult.error=pError;tmpResult.value=false;try{tmpResult.value=pDBResult?pDBResult.rowCount:0;}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting affected rowcount during delete query',{Body:pQuery.query.body,Parameters:pQuery.query.parameters});}tmpResult.executed=true;return fCallback();});};var Undelete=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('PostgreSQL').buildUndeleteQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}var tmpConverted=convertNamedToPositional(pQuery.query.body,pQuery.query.parameters);getSQLPool().query(tmpConverted.text,tmpConverted.values,function(pError,pDBResult){tmpResult.error=pError;tmpResult.value=false;try{tmpResult.value=pDBResult?pDBResult.rowCount:0;}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting affected rowcount during undelete query',{Body:pQuery.query.body,Parameters:pQuery.query.parameters});}tmpResult.executed=true;return fCallback();});};var Count=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('PostgreSQL').buildCountQuery();if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQuery.query.parameters);}var tmpConverted=convertNamedToPositional(pQuery.query.body,pQuery.query.parameters);getSQLPool().query(tmpConverted.text,tmpConverted.values,function(pError,pDBResult){tmpResult.executed=true;tmpResult.error=pError;tmpResult.value=false;try{// PostgreSQL COUNT(*) returns bigint, which the pg library delivers as a string
3302
3357
  tmpResult.value=parseInt(pDBResult.rows[0].rowcount,10);}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting rowcount during count query',{Body:pQuery.query.body,Parameters:pQuery.query.parameters});}return fCallback();});};var tmpNewProvider={marshalRecordFromSourceToObject:marshalRecordFromSourceToObject,Create:Create,Read:Read,Update:Update,Delete:Delete,Undelete:Undelete,Count:Count,getProvider:getProvider,providerCreatesSupported:false,new:createNew};return tmpNewProvider;}return createNew();};module.exports=new MeadowProvider();},{}],119:[function(require,module,exports){// ##### Part of the **[retold](https://stevenvelozo.github.io/retold/)** system
3358
+ /**
3359
+ * Meadow provider that relays CRUD operations to a remote retold-databeacon
3360
+ * agent through an Ultravisor mesh. Structurally parallel to the
3361
+ * Meadow-Provider-MeadowEndpoints provider — it reuses the same FoxHound
3362
+ * `MeadowEndpoints` dialect to build the HTTP request descriptor, then
3363
+ * ships the descriptor as a work item addressed to a specific beacon.
3364
+ *
3365
+ * Required on the fable:
3366
+ * _Fable.MeadowRetoldDataBeaconProvider — the connection instance (from
3367
+ * meadow-connection-retold-databeacon). Exposes dispatchRequest(
3368
+ * { Method, Path, Body }, fCallback) where fCallback receives
3369
+ * (pError, pResponseBodyString).
3370
+ *
3371
+ * @license MIT
3372
+ * @author <steven@velozo.com>
3373
+ */var MeadowProvider=function(){function createNew(pFable){// If a valid Fable object isn't passed in, return a constructor
3374
+ if(typeof pFable!=='object'){return{new:createNew};}var _Fable=pFable;var _GlobalLogLevel=0;var _Dialect='MeadowEndpoints';// Dispatch an HTTP request descriptor through the remote-databeacon
3375
+ // connection, returning the parsed JSON response.
3376
+ var dispatch=function(pQuery,pMethod,fCallback){var tmpResult=pQuery.parameters.result;tmpResult.executed=true;var tmpConn=_Fable.MeadowRetoldDataBeaconProvider;if(!tmpConn||typeof tmpConn.dispatchRequest!=='function'){tmpResult.error=new Error('MeadowProviderRetoldDataBeacon: no connection registered on _Fable.MeadowRetoldDataBeaconProvider');return fCallback();}// Build the path with the connection hash prefix so the remote
3377
+ // databeacon's hash-namespaced route receives the request.
3378
+ var tmpHash=tmpConn._TargetConnectionHash||'';var tmpRelative=pQuery.query.body||'';var tmpPath;if(tmpHash){tmpPath='/1.0/'+tmpHash+'/'+tmpRelative;}else if(tmpRelative.charAt(0)!=='/'){tmpPath='/1.0/'+tmpRelative;}else{tmpPath=tmpRelative;}var tmpBody=null;if((pMethod==='POST'||pMethod==='PUT')&&pQuery.query.records&&pQuery.query.records.length>0){tmpBody=pQuery.query.records[0];}tmpConn.dispatchRequest({Method:pMethod,Path:tmpPath,Body:tmpBody!==null?JSON.stringify(tmpBody):''},function(pError,pResponseString){if(pError){tmpResult.error=pError;return fCallback();}if(pResponseString&&pResponseString.length>0){try{tmpResult.value=JSON.parse(pResponseString);}catch(pParseError){tmpResult.error=new Error('MeadowProviderRetoldDataBeacon: failed to parse response as JSON: '+pParseError.message);return fCallback();}}if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.debug(`==> ${pMethod} ${tmpPath} completed`,tmpResult);}return fCallback();});};var marshalRecordFromSourceToObject=function(pObject,pRecord){for(var tmpColumn in pRecord){pObject[tmpColumn]=pRecord[tmpColumn];}};var Create=function(pQuery,fCallback){pQuery.setDialect(_Dialect).buildCreateQuery();if(!pQuery.query.records||pQuery.query.records.length===0){pQuery.parameters.result.error='No records passed for proxying to Retold-DataBeacon.';return fCallback();}dispatch(pQuery,'POST',function(){var tmpResult=pQuery.parameters.result;// Mirror MeadowEndpoints behavior — unwrap the identity column
3379
+ // so downstream behaviors get the scalar ID.
3380
+ var tmpIdentityColumn=`ID${pQuery.parameters.scope}`;if(tmpResult.value&&tmpResult.value.hasOwnProperty(tmpIdentityColumn)){tmpResult.value=tmpResult.value[tmpIdentityColumn];}return fCallback();});};var Read=function(pQuery,fCallback){pQuery.setDialect(_Dialect).buildReadQuery();dispatch(pQuery,'GET',function(){var tmpResult=pQuery.parameters.result;// If the URL is a singular read (<scope>/<id>), wrap as array
3381
+ // so downstream Meadow-Read.js behavior gets the shape it expects.
3382
+ if(pQuery.query.body&&pQuery.query.body.startsWith(`${pQuery.parameters.scope}/`)){if(tmpResult.value!==undefined&&tmpResult.value!==null){tmpResult.value=[tmpResult.value];}}return fCallback();});};var Update=function(pQuery,fCallback){pQuery.setDialect(_Dialect).buildUpdateQuery();if(!pQuery.query.records||pQuery.query.records.length===0){pQuery.parameters.result.error='No records passed for proxying to Retold-DataBeacon.';return fCallback();}dispatch(pQuery,'PUT',function(){// Meadow Update waterfall's typeof check expects an object.
3383
+ // Leave tmpResult.value as-is.
3384
+ return fCallback();});};var Delete=function(pQuery,fCallback){pQuery.setDialect(_Dialect).buildDeleteQuery();dispatch(pQuery,'DELETE',function(){var tmpResult=pQuery.parameters.result;if(tmpResult.value&&tmpResult.value.hasOwnProperty('Count')){tmpResult.value=tmpResult.value.Count;}return fCallback();});};var Count=function(pQuery,fCallback){pQuery.setDialect(_Dialect).buildCountQuery();dispatch(pQuery,'GET',function(){var tmpResult=pQuery.parameters.result;try{tmpResult.value=tmpResult.value.Count;}catch(pErrorGettingRowCount){tmpResult.value=-1;_Fable.log.warn('MeadowProviderRetoldDataBeacon: error getting rowcount during count query',{Body:pQuery.query.body,Parameters:pQuery.query.parameters});}return fCallback();});};var tmpNewProvider={marshalRecordFromSourceToObject:marshalRecordFromSourceToObject,Create:Create,Read:Read,Update:Update,Delete:Delete,Count:Count,getProvider:{},providerCreatesSupported:false,new:createNew};return tmpNewProvider;}return createNew();};module.exports=new MeadowProvider();},{}],120:[function(require,module,exports){// ##### Part of the **[retold](https://stevenvelozo.github.io/retold/)** system
3303
3385
  /**
3304
3386
  * @license MIT
3305
3387
  * @author <steven@velozo.com>
@@ -3428,7 +3510,7 @@ var tmpFilterArray=buildFilterArray(pQuery,true);readMatchingRecords(tmpDB,_Scop
3428
3510
  readMatchingRecords(tmpDB,_Scope,tmpFilterArray,false,false,false,function(pReadError,pRecords){if(pReadError){tmpResult.error=pReadError;tmpResult.value=false;tmpResult.executed=true;return fCallback();}tmpResult.error=null;tmpResult.value=pRecords.length;tmpResult.executed=true;return fCallback();});};// ============================================================
3429
3511
  // Provider Export
3430
3512
  // ============================================================
3431
- var tmpNewProvider={marshalRecordFromSourceToObject:marshalRecordFromSourceToObject,Create:Create,Read:Read,Update:Update,Delete:Delete,Undelete:Undelete,Count:Count,setSchema:setSchema,getProvider:getProvider,providerCreatesSupported:true,new:createNew};return tmpNewProvider;}return createNew();};module.exports=new MeadowProvider();},{}],120:[function(require,module,exports){/**
3513
+ var tmpNewProvider={marshalRecordFromSourceToObject:marshalRecordFromSourceToObject,Create:Create,Read:Read,Update:Update,Delete:Delete,Undelete:Undelete,Count:Count,setSchema:setSchema,getProvider:getProvider,providerCreatesSupported:true,new:createNew};return tmpNewProvider;}return createNew();};module.exports=new MeadowProvider();},{}],121:[function(require,module,exports){/**
3432
3514
  * Meadow Provider - SQLite (via better-sqlite3)
3433
3515
  *
3434
3516
  * @license MIT
@@ -3466,7 +3548,7 @@ var marshalRecordFromSourceToObject=function(pObject,pRecord,pSchema){// Build l
3466
3548
  var tmpJsonColumns={};var tmpProxyColumns={};if(Array.isArray(pSchema)){for(var s=0;s<pSchema.length;s++){if(pSchema[s].Type==='JSON'){tmpJsonColumns[pSchema[s].Column]=true;}else if(pSchema[s].Type==='JSONProxy'&&pSchema[s].StorageColumn){tmpProxyColumns[pSchema[s].StorageColumn]=pSchema[s].Column;}}}for(var tmpColumn in pRecord){if(tmpJsonColumns[tmpColumn]){// JSON type: parse string from DB into object on the same column name
3467
3549
  try{pObject[tmpColumn]=typeof pRecord[tmpColumn]==='string'?JSON.parse(pRecord[tmpColumn]):pRecord[tmpColumn]||{};}catch(pParseError){pObject[tmpColumn]={};}}else if(tmpProxyColumns.hasOwnProperty(tmpColumn)){// JSONProxy: storage column -> parse and assign to virtual column name
3468
3550
  var tmpVirtualColumn=tmpProxyColumns[tmpColumn];try{pObject[tmpVirtualColumn]=typeof pRecord[tmpColumn]==='string'?JSON.parse(pRecord[tmpColumn]):pRecord[tmpColumn]||{};}catch(pParseError){pObject[tmpVirtualColumn]={};}// Do NOT copy the storage column to the output object
3469
- }else{pObject[tmpColumn]=pRecord[tmpColumn];}}};var Create=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('SQLite').buildCreateQuery();var tmpQueryBody=fixDateFunctions(pQuery.query.body);coerceParameters(pQuery.query.parameters);if(pQuery.logLevel>0){_Fable.log.trace(tmpQueryBody,pQuery.query.parameters);}try{var tmpDB=getDB();if(!tmpDB){tmpResult.error=new Error('No SQLite database connection available.');tmpResult.executed=true;return fCallback();}var tmpStatement=tmpDB.prepare(tmpQueryBody);var tmpInfo=tmpStatement.run(pQuery.query.parameters);tmpResult.error=null;tmpResult.value=false;try{tmpResult.value=Number(tmpInfo.lastInsertRowid);}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting insert ID during create query',{Body:tmpQueryBody,Parameters:pQuery.query.parameters});}tmpResult.executed=true;return fCallback();}catch(pError){tmpResult.error=pError;tmpResult.value=false;tmpResult.executed=true;return fCallback();}};var Read=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('SQLite').buildReadQuery();var tmpQueryBody=fixDateFunctions(pQuery.query.body);coerceParameters(pQuery.query.parameters);if(pQuery.logLevel>0){_Fable.log.trace(tmpQueryBody,pQuery.query.parameters);}try{var tmpDB=getDB();if(!tmpDB){tmpResult.error=new Error('No SQLite database connection available.');tmpResult.executed=true;return fCallback();}var tmpStatement=tmpDB.prepare(tmpQueryBody);var tmpRows=tmpStatement.all(pQuery.query.parameters);tmpResult.error=null;tmpResult.value=tmpRows;tmpResult.executed=true;return fCallback();}catch(pError){tmpResult.error=pError;tmpResult.value=false;tmpResult.executed=true;return fCallback();}};var Update=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('SQLite').buildUpdateQuery();var tmpQueryBody=fixDateFunctions(pQuery.query.body);coerceParameters(pQuery.query.parameters);if(pQuery.logLevel>0){_Fable.log.trace(tmpQueryBody,pQuery.query.parameters);}try{var tmpDB=getDB();if(!tmpDB){tmpResult.error=new Error('No SQLite database connection available.');tmpResult.executed=true;return fCallback();}var tmpStatement=tmpDB.prepare(tmpQueryBody);var tmpInfo=tmpStatement.run(pQuery.query.parameters);tmpResult.error=null;tmpResult.value=tmpInfo;tmpResult.executed=true;return fCallback();}catch(pError){tmpResult.error=pError;tmpResult.value=false;tmpResult.executed=true;return fCallback();}};var Delete=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('SQLite').buildDeleteQuery();var tmpQueryBody=fixDateFunctions(pQuery.query.body);coerceParameters(pQuery.query.parameters);if(pQuery.logLevel>0){_Fable.log.trace(tmpQueryBody,pQuery.query.parameters);}try{var tmpDB=getDB();if(!tmpDB){tmpResult.error=new Error('No SQLite database connection available.');tmpResult.executed=true;return fCallback();}var tmpStatement=tmpDB.prepare(tmpQueryBody);var tmpInfo=tmpStatement.run(pQuery.query.parameters);tmpResult.error=null;tmpResult.value=false;try{tmpResult.value=tmpInfo.changes;}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting affected rowcount during delete query',{Body:tmpQueryBody,Parameters:pQuery.query.parameters});}tmpResult.executed=true;return fCallback();}catch(pError){tmpResult.error=pError;tmpResult.value=false;tmpResult.executed=true;return fCallback();}};var Undelete=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('SQLite').buildUndeleteQuery();var tmpQueryBody=fixDateFunctions(pQuery.query.body);coerceParameters(pQuery.query.parameters);if(pQuery.logLevel>0){_Fable.log.trace(tmpQueryBody,pQuery.query.parameters);}try{var tmpDB=getDB();if(!tmpDB){tmpResult.error=new Error('No SQLite database connection available.');tmpResult.executed=true;return fCallback();}var tmpStatement=tmpDB.prepare(tmpQueryBody);var tmpInfo=tmpStatement.run(pQuery.query.parameters);tmpResult.error=null;tmpResult.value=false;try{tmpResult.value=tmpInfo.changes;}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting affected rowcount during undelete query',{Body:tmpQueryBody,Parameters:pQuery.query.parameters});}tmpResult.executed=true;return fCallback();}catch(pError){tmpResult.error=pError;tmpResult.value=false;tmpResult.executed=true;return fCallback();}};var Count=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('SQLite').buildCountQuery();var tmpQueryBody=fixDateFunctions(pQuery.query.body);coerceParameters(pQuery.query.parameters);if(pQuery.logLevel>0){_Fable.log.trace(tmpQueryBody,pQuery.query.parameters);}try{var tmpDB=getDB();if(!tmpDB){tmpResult.error=new Error('No SQLite database connection available.');tmpResult.executed=true;return fCallback();}var tmpStatement=tmpDB.prepare(tmpQueryBody);var tmpRows=tmpStatement.all(pQuery.query.parameters);tmpResult.executed=true;tmpResult.error=null;tmpResult.value=false;try{tmpResult.value=tmpRows[0].RowCount;}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting rowcount during count query',{Body:tmpQueryBody,Parameters:pQuery.query.parameters});}return fCallback();}catch(pError){tmpResult.error=pError;tmpResult.value=false;tmpResult.executed=true;return fCallback();}};var tmpNewProvider={marshalRecordFromSourceToObject:marshalRecordFromSourceToObject,Create:Create,Read:Read,Update:Update,Delete:Delete,Undelete:Undelete,Count:Count,getProvider:getProvider,providerCreatesSupported:true,new:createNew};return tmpNewProvider;}return createNew();};module.exports=new MeadowProvider();},{}],121:[function(require,module,exports){// ##### Part of the **[retold](https://stevenvelozo.github.io/retold/)** system
3551
+ }else{pObject[tmpColumn]=pRecord[tmpColumn];}}};var Create=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('SQLite').buildCreateQuery();var tmpQueryBody=fixDateFunctions(pQuery.query.body);coerceParameters(pQuery.query.parameters);if(pQuery.logLevel>0){_Fable.log.trace(tmpQueryBody,pQuery.query.parameters);}try{var tmpDB=getDB();if(!tmpDB){tmpResult.error=new Error('No SQLite database connection available.');tmpResult.executed=true;return fCallback();}var tmpStatement=tmpDB.prepare(tmpQueryBody);var tmpInfo=tmpStatement.run(pQuery.query.parameters);tmpResult.error=null;tmpResult.value=false;try{tmpResult.value=Number(tmpInfo.lastInsertRowid);}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting insert ID during create query',{Body:tmpQueryBody,Parameters:pQuery.query.parameters});}tmpResult.executed=true;}catch(pError){tmpResult.error=pError;tmpResult.value=false;tmpResult.executed=true;}return fCallback();};var Read=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('SQLite').buildReadQuery();var tmpQueryBody=fixDateFunctions(pQuery.query.body);coerceParameters(pQuery.query.parameters);if(pQuery.logLevel>0){_Fable.log.trace(tmpQueryBody,pQuery.query.parameters);}try{var tmpDB=getDB();if(!tmpDB){tmpResult.error=new Error('No SQLite database connection available.');tmpResult.executed=true;return fCallback();}var tmpStatement=tmpDB.prepare(tmpQueryBody);var tmpRows=tmpStatement.all(pQuery.query.parameters);tmpResult.error=null;tmpResult.value=tmpRows;tmpResult.executed=true;}catch(pError){tmpResult.error=pError;tmpResult.value=false;tmpResult.executed=true;}return fCallback();};var Update=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('SQLite').buildUpdateQuery();var tmpQueryBody=fixDateFunctions(pQuery.query.body);coerceParameters(pQuery.query.parameters);if(pQuery.logLevel>0){_Fable.log.trace(tmpQueryBody,pQuery.query.parameters);}try{var tmpDB=getDB();if(!tmpDB){tmpResult.error=new Error('No SQLite database connection available.');tmpResult.executed=true;return fCallback();}var tmpStatement=tmpDB.prepare(tmpQueryBody);var tmpInfo=tmpStatement.run(pQuery.query.parameters);tmpResult.error=null;tmpResult.value=tmpInfo;tmpResult.executed=true;}catch(pError){tmpResult.error=pError;tmpResult.value=false;tmpResult.executed=true;}return fCallback();};var Delete=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('SQLite').buildDeleteQuery();var tmpQueryBody=fixDateFunctions(pQuery.query.body);coerceParameters(pQuery.query.parameters);if(pQuery.logLevel>0){_Fable.log.trace(tmpQueryBody,pQuery.query.parameters);}try{var tmpDB=getDB();if(!tmpDB){tmpResult.error=new Error('No SQLite database connection available.');tmpResult.executed=true;return fCallback();}var tmpStatement=tmpDB.prepare(tmpQueryBody);var tmpInfo=tmpStatement.run(pQuery.query.parameters);tmpResult.error=null;tmpResult.value=false;try{tmpResult.value=tmpInfo.changes;}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting affected rowcount during delete query',{Body:tmpQueryBody,Parameters:pQuery.query.parameters});}tmpResult.executed=true;}catch(pError){tmpResult.error=pError;tmpResult.value=false;tmpResult.executed=true;}return fCallback();};var Undelete=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('SQLite').buildUndeleteQuery();var tmpQueryBody=fixDateFunctions(pQuery.query.body);coerceParameters(pQuery.query.parameters);if(pQuery.logLevel>0){_Fable.log.trace(tmpQueryBody,pQuery.query.parameters);}try{var tmpDB=getDB();if(!tmpDB){tmpResult.error=new Error('No SQLite database connection available.');tmpResult.executed=true;return fCallback();}var tmpStatement=tmpDB.prepare(tmpQueryBody);var tmpInfo=tmpStatement.run(pQuery.query.parameters);tmpResult.error=null;tmpResult.value=false;try{tmpResult.value=tmpInfo.changes;}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting affected rowcount during undelete query',{Body:tmpQueryBody,Parameters:pQuery.query.parameters});}tmpResult.executed=true;}catch(pError){tmpResult.error=pError;tmpResult.value=false;tmpResult.executed=true;}return fCallback();};var Count=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result;pQuery.setDialect('SQLite').buildCountQuery();var tmpQueryBody=fixDateFunctions(pQuery.query.body);coerceParameters(pQuery.query.parameters);if(pQuery.logLevel>0){_Fable.log.trace(tmpQueryBody,pQuery.query.parameters);}try{var tmpDB=getDB();if(!tmpDB){tmpResult.error=new Error('No SQLite database connection available.');tmpResult.executed=true;return fCallback();}var tmpStatement=tmpDB.prepare(tmpQueryBody);var tmpRows=tmpStatement.all(pQuery.query.parameters);tmpResult.executed=true;tmpResult.error=null;tmpResult.value=false;try{tmpResult.value=tmpRows[0].RowCount;}catch(pErrorGettingRowcount){_Fable.log.warn('Error getting rowcount during count query',{Body:tmpQueryBody,Parameters:pQuery.query.parameters});}}catch(pError){tmpResult.error=pError;tmpResult.value=false;tmpResult.executed=true;}return fCallback();};var tmpNewProvider={marshalRecordFromSourceToObject:marshalRecordFromSourceToObject,Create:Create,Read:Read,Update:Update,Delete:Delete,Undelete:Undelete,Count:Count,getProvider:getProvider,providerCreatesSupported:true,new:createNew};return tmpNewProvider;}return createNew();};module.exports=new MeadowProvider();},{}],122:[function(require,module,exports){// ##### Part of the **[retold](https://stevenvelozo.github.io/retold/)** system
3470
3552
  /**
3471
3553
  * @license MIT
3472
3554
  * @author <steven@velozo.com>
@@ -3503,7 +3585,7 @@ var tmpSearchQuery=tmpClient.query().q(tmpOp.filterQuery||'*:*').fl('id').rows(1
3503
3585
  // Use JSON facet API for distinct count
3504
3586
  var tmpFacetFields={};for(var i=0;i<tmpOp.distinctFields.length;i++){tmpFacetFields[tmpOp.distinctFields[i]]='$'+tmpOp.distinctFields[i];}// Use group.field for distinct counting
3505
3587
  tmpSearchQuery=tmpSearchQuery.groupBy(tmpOp.distinctFields[0]).groupNGroups(true);}tmpClient.search(tmpSearchQuery,function(pSearchError,pSearchResult){if(pSearchError){tmpResult.error=pSearchError;tmpResult.value=false;tmpResult.executed=true;return fCallback();}tmpResult.error=null;if(tmpOp.distinct&&pSearchResult&&pSearchResult.grouped){// Get ngroups from grouped response
3506
- var tmpGroupKeys=Object.keys(pSearchResult.grouped);if(tmpGroupKeys.length>0){tmpResult.value=pSearchResult.grouped[tmpGroupKeys[0]].ngroups||0;}else{tmpResult.value=0;}}else{tmpResult.value=pSearchResult&&pSearchResult.response?pSearchResult.response.numFound:0;}tmpResult.executed=true;return fCallback();});};var tmpNewProvider={marshalRecordFromSourceToObject:marshalRecordFromSourceToObject,Create:Create,Read:Read,Update:Update,Delete:Delete,Undelete:Undelete,Count:Count,getProvider:getProvider,providerCreatesSupported:true,new:createNew};return tmpNewProvider;}return createNew();};module.exports=new MeadowProvider();},{}],122:[function(require,module,exports){(function(global){(function(){var hasMap=typeof Map==='function'&&Map.prototype;var mapSizeDescriptor=Object.getOwnPropertyDescriptor&&hasMap?Object.getOwnPropertyDescriptor(Map.prototype,'size'):null;var mapSize=hasMap&&mapSizeDescriptor&&typeof mapSizeDescriptor.get==='function'?mapSizeDescriptor.get:null;var mapForEach=hasMap&&Map.prototype.forEach;var hasSet=typeof Set==='function'&&Set.prototype;var setSizeDescriptor=Object.getOwnPropertyDescriptor&&hasSet?Object.getOwnPropertyDescriptor(Set.prototype,'size'):null;var setSize=hasSet&&setSizeDescriptor&&typeof setSizeDescriptor.get==='function'?setSizeDescriptor.get:null;var setForEach=hasSet&&Set.prototype.forEach;var hasWeakMap=typeof WeakMap==='function'&&WeakMap.prototype;var weakMapHas=hasWeakMap?WeakMap.prototype.has:null;var hasWeakSet=typeof WeakSet==='function'&&WeakSet.prototype;var weakSetHas=hasWeakSet?WeakSet.prototype.has:null;var hasWeakRef=typeof WeakRef==='function'&&WeakRef.prototype;var weakRefDeref=hasWeakRef?WeakRef.prototype.deref:null;var booleanValueOf=Boolean.prototype.valueOf;var objectToString=Object.prototype.toString;var functionToString=Function.prototype.toString;var $match=String.prototype.match;var $slice=String.prototype.slice;var $replace=String.prototype.replace;var $toUpperCase=String.prototype.toUpperCase;var $toLowerCase=String.prototype.toLowerCase;var $test=RegExp.prototype.test;var $concat=Array.prototype.concat;var $join=Array.prototype.join;var $arrSlice=Array.prototype.slice;var $floor=Math.floor;var bigIntValueOf=typeof BigInt==='function'?BigInt.prototype.valueOf:null;var gOPS=Object.getOwnPropertySymbols;var symToString=typeof Symbol==='function'&&typeof Symbol.iterator==='symbol'?Symbol.prototype.toString:null;var hasShammedSymbols=typeof Symbol==='function'&&typeof Symbol.iterator==='object';// ie, `has-tostringtag/shams
3588
+ var tmpGroupKeys=Object.keys(pSearchResult.grouped);if(tmpGroupKeys.length>0){tmpResult.value=pSearchResult.grouped[tmpGroupKeys[0]].ngroups||0;}else{tmpResult.value=0;}}else{tmpResult.value=pSearchResult&&pSearchResult.response?pSearchResult.response.numFound:0;}tmpResult.executed=true;return fCallback();});};var tmpNewProvider={marshalRecordFromSourceToObject:marshalRecordFromSourceToObject,Create:Create,Read:Read,Update:Update,Delete:Delete,Undelete:Undelete,Count:Count,getProvider:getProvider,providerCreatesSupported:true,new:createNew};return tmpNewProvider;}return createNew();};module.exports=new MeadowProvider();},{}],123:[function(require,module,exports){(function(global){(function(){var hasMap=typeof Map==='function'&&Map.prototype;var mapSizeDescriptor=Object.getOwnPropertyDescriptor&&hasMap?Object.getOwnPropertyDescriptor(Map.prototype,'size'):null;var mapSize=hasMap&&mapSizeDescriptor&&typeof mapSizeDescriptor.get==='function'?mapSizeDescriptor.get:null;var mapForEach=hasMap&&Map.prototype.forEach;var hasSet=typeof Set==='function'&&Set.prototype;var setSizeDescriptor=Object.getOwnPropertyDescriptor&&hasSet?Object.getOwnPropertyDescriptor(Set.prototype,'size'):null;var setSize=hasSet&&setSizeDescriptor&&typeof setSizeDescriptor.get==='function'?setSizeDescriptor.get:null;var setForEach=hasSet&&Set.prototype.forEach;var hasWeakMap=typeof WeakMap==='function'&&WeakMap.prototype;var weakMapHas=hasWeakMap?WeakMap.prototype.has:null;var hasWeakSet=typeof WeakSet==='function'&&WeakSet.prototype;var weakSetHas=hasWeakSet?WeakSet.prototype.has:null;var hasWeakRef=typeof WeakRef==='function'&&WeakRef.prototype;var weakRefDeref=hasWeakRef?WeakRef.prototype.deref:null;var booleanValueOf=Boolean.prototype.valueOf;var objectToString=Object.prototype.toString;var functionToString=Function.prototype.toString;var $match=String.prototype.match;var $slice=String.prototype.slice;var $replace=String.prototype.replace;var $toUpperCase=String.prototype.toUpperCase;var $toLowerCase=String.prototype.toLowerCase;var $test=RegExp.prototype.test;var $concat=Array.prototype.concat;var $join=Array.prototype.join;var $arrSlice=Array.prototype.slice;var $floor=Math.floor;var bigIntValueOf=typeof BigInt==='function'?BigInt.prototype.valueOf:null;var gOPS=Object.getOwnPropertySymbols;var symToString=typeof Symbol==='function'&&typeof Symbol.iterator==='symbol'?Symbol.prototype.toString:null;var hasShammedSymbols=typeof Symbol==='function'&&typeof Symbol.iterator==='object';// ie, `has-tostringtag/shams
3507
3589
  var toStringTag=typeof Symbol==='function'&&Symbol.toStringTag&&(typeof Symbol.toStringTag===hasShammedSymbols?'object':'symbol')?Symbol.toStringTag:null;var isEnumerable=Object.prototype.propertyIsEnumerable;var gPO=(typeof Reflect==='function'?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype// eslint-disable-line no-proto
3508
3590
  ?function(O){return O.__proto__;// eslint-disable-line no-proto
3509
3591
  }:null);function addNumericSeparator(num,str){if(num===Infinity||num===-Infinity||num!==num||num&&num>-1000&&num<1000||$test.call(/e/,str)){return str;}var sepRegex=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof num==='number'){var int=num<0?-$floor(-num):$floor(num);// trunc(num)
@@ -3520,7 +3602,7 @@ if(!has(obj,key)){continue;}// eslint-disable-line no-restricted-syntax, no-cont
3520
3602
  if(isArr&&String(Number(key))===key&&key<obj.length){continue;}// eslint-disable-line no-restricted-syntax, no-continue
3521
3603
  if(hasShammedSymbols&&symMap['$'+key]instanceof Symbol){// this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section
3522
3604
  continue;// eslint-disable-line no-restricted-syntax, no-continue
3523
- }else if($test.call(/[^\w$]/,key)){xs.push(inspect(key,obj)+': '+inspect(obj[key],obj));}else{xs.push(key+': '+inspect(obj[key],obj));}}if(typeof gOPS==='function'){for(var j=0;j<syms.length;j++){if(isEnumerable.call(obj,syms[j])){xs.push('['+inspect(syms[j])+']: '+inspect(obj[syms[j]],obj));}}}return xs;}}).call(this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{"./util.inspect":21}],123:[function(require,module,exports){var wrappy=require('wrappy');module.exports=wrappy(once);module.exports.strict=wrappy(onceStrict);once.proto=once(function(){Object.defineProperty(Function.prototype,'once',{value:function(){return once(this);},configurable:true});Object.defineProperty(Function.prototype,'onceStrict',{value:function(){return onceStrict(this);},configurable:true});});function once(fn){var f=function(){if(f.called)return f.value;f.called=true;return f.value=fn.apply(this,arguments);};f.called=false;return f;}function onceStrict(fn){var f=function(){if(f.called)throw new Error(f.onceError);f.called=true;return f.value=fn.apply(this,arguments);};var name=fn.name||'Function wrapped with `once`';f.onceError=name+" shouldn't be called more than once";f.called=false;return f;}},{"wrappy":188}],124:[function(require,module,exports){'use strict';/** @type {import('.')} */module.exports=['Float16Array','Float32Array','Float64Array','Int8Array','Int16Array','Int32Array','Uint8Array','Uint8ClampedArray','Uint16Array','Uint32Array','BigInt64Array','BigUint64Array'];},{}],125:[function(require,module,exports){// shim for using process in browser
3605
+ }else if($test.call(/[^\w$]/,key)){xs.push(inspect(key,obj)+': '+inspect(obj[key],obj));}else{xs.push(key+': '+inspect(obj[key],obj));}}if(typeof gOPS==='function'){for(var j=0;j<syms.length;j++){if(isEnumerable.call(obj,syms[j])){xs.push('['+inspect(syms[j])+']: '+inspect(obj[syms[j]],obj));}}}return xs;}}).call(this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{"./util.inspect":21}],124:[function(require,module,exports){var wrappy=require('wrappy');module.exports=wrappy(once);module.exports.strict=wrappy(onceStrict);once.proto=once(function(){Object.defineProperty(Function.prototype,'once',{value:function(){return once(this);},configurable:true});Object.defineProperty(Function.prototype,'onceStrict',{value:function(){return onceStrict(this);},configurable:true});});function once(fn){var f=function(){if(f.called)return f.value;f.called=true;return f.value=fn.apply(this,arguments);};f.called=false;return f;}function onceStrict(fn){var f=function(){if(f.called)throw new Error(f.onceError);f.called=true;return f.value=fn.apply(this,arguments);};var name=fn.name||'Function wrapped with `once`';f.onceError=name+" shouldn't be called more than once";f.called=false;return f;}},{"wrappy":189}],125:[function(require,module,exports){'use strict';/** @type {import('.')} */module.exports=['Float16Array','Float32Array','Float64Array','Int8Array','Int16Array','Int32Array','Uint8Array','Uint8ClampedArray','Uint16Array','Uint32Array','BigInt64Array','BigUint64Array'];},{}],126:[function(require,module,exports){// shim for using process in browser
3524
3606
  var process=module.exports={};// cached from whatever global is present so that test runners that stub it
3525
3607
  // don't break things. But we need to wrap it in a try catch in case it is
3526
3608
  // wrapped in strict mode code which doesn't define any globals. It's inside a
@@ -3538,7 +3620,7 @@ return cachedClearTimeout.call(null,marker);}catch(e){// same as above but when
3538
3620
  // Some versions of I.E. have different rules for clearTimeout vs setTimeout
3539
3621
  return cachedClearTimeout.call(this,marker);}}}var queue=[];var draining=false;var currentQueue;var queueIndex=-1;function cleanUpNextTick(){if(!draining||!currentQueue){return;}draining=false;if(currentQueue.length){queue=currentQueue.concat(queue);}else{queueIndex=-1;}if(queue.length){drainQueue();}}function drainQueue(){if(draining){return;}var timeout=runTimeout(cleanUpNextTick);draining=true;var len=queue.length;while(len){currentQueue=queue;queue=[];while(++queueIndex<len){if(currentQueue){currentQueue[queueIndex].run();}}queueIndex=-1;len=queue.length;}currentQueue=null;draining=false;runClearTimeout(timeout);}process.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1){for(var i=1;i<arguments.length;i++){args[i-1]=arguments[i];}}queue.push(new Item(fun,args));if(queue.length===1&&!draining){runTimeout(drainQueue);}};// v8 likes predictible objects
3540
3622
  function Item(fun,array){this.fun=fun;this.array=array;}Item.prototype.run=function(){this.fun.apply(null,this.array);};process.title='browser';process.browser=true;process.env={};process.argv=[];process.version='';// empty string to avoid regexp issues
3541
- process.versions={};function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.prependListener=noop;process.prependOnceListener=noop;process.listeners=function(name){return[];};process.binding=function(name){throw new Error('process.binding is not supported');};process.cwd=function(){return'/';};process.chdir=function(dir){throw new Error('process.chdir is not supported');};process.umask=function(){return 0;};},{}],126:[function(require,module,exports){(function(global){(function(){/*! https://mths.be/punycode v1.4.1 by @mathias */;(function(root){/** Detect free variables */var freeExports=typeof exports=='object'&&exports&&!exports.nodeType&&exports;var freeModule=typeof module=='object'&&module&&!module.nodeType&&module;var freeGlobal=typeof global=='object'&&global;if(freeGlobal.global===freeGlobal||freeGlobal.window===freeGlobal||freeGlobal.self===freeGlobal){root=freeGlobal;}/**
3623
+ process.versions={};function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.prependListener=noop;process.prependOnceListener=noop;process.listeners=function(name){return[];};process.binding=function(name){throw new Error('process.binding is not supported');};process.cwd=function(){return'/';};process.chdir=function(dir){throw new Error('process.chdir is not supported');};process.umask=function(){return 0;};},{}],127:[function(require,module,exports){(function(global){(function(){/*! https://mths.be/punycode v1.4.1 by @mathias */;(function(root){/** Detect free variables */var freeExports=typeof exports=='object'&&exports&&!exports.nodeType&&exports;var freeModule=typeof module=='object'&&module&&!module.nodeType&&module;var freeGlobal=typeof global=='object'&&global;if(freeGlobal.global===freeGlobal||freeGlobal.window===freeGlobal||freeGlobal.self===freeGlobal){root=freeGlobal;}/**
3542
3624
  * The `punycode` object.
3543
3625
  * @name punycode
3544
3626
  * @type Object
@@ -3693,7 +3775,7 @@ for/* no condition */(q=delta,k=base;;k+=base){t=k<=bias?tMin:k>=bias+tMax?tMax:
3693
3775
  if(typeof define=='function'&&typeof define.amd=='object'&&define.amd){define('punycode',function(){return punycode;});}else if(freeExports&&freeModule){if(module.exports==freeExports){// in Node.js, io.js, or RingoJS v0.8.0+
3694
3776
  freeModule.exports=punycode;}else{// in Narwhal or RingoJS v0.7.0-
3695
3777
  for(key in punycode){punycode.hasOwnProperty(key)&&(freeExports[key]=punycode[key]);}}}else{// in Rhino or a web browser
3696
- root.punycode=punycode;}})(this);}).call(this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{}],127:[function(require,module,exports){'use strict';var replace=String.prototype.replace;var percentTwenties=/%20/g;var Format={RFC1738:'RFC1738',RFC3986:'RFC3986'};module.exports={'default':Format.RFC3986,formatters:{RFC1738:function(value){return replace.call(value,percentTwenties,'+');},RFC3986:function(value){return String(value);}},RFC1738:Format.RFC1738,RFC3986:Format.RFC3986};},{}],128:[function(require,module,exports){'use strict';var stringify=require('./stringify');var parse=require('./parse');var formats=require('./formats');module.exports={formats:formats,parse:parse,stringify:stringify};},{"./formats":127,"./parse":129,"./stringify":130}],129:[function(require,module,exports){'use strict';var utils=require('./utils');var has=Object.prototype.hasOwnProperty;var isArray=Array.isArray;var defaults={allowDots:false,allowEmptyArrays:false,allowPrototypes:false,allowSparse:false,arrayLimit:20,charset:'utf-8',charsetSentinel:false,comma:false,decodeDotInKeys:false,decoder:utils.decode,delimiter:'&',depth:5,duplicates:'combine',ignoreQueryPrefix:false,interpretNumericEntities:false,parameterLimit:1000,parseArrays:true,plainObjects:false,strictDepth:false,strictMerge:true,strictNullHandling:false,throwOnLimitExceeded:false};var interpretNumericEntities=function(str){return str.replace(/&#(\d+);/g,function($0,numberStr){return String.fromCharCode(parseInt(numberStr,10));});};var parseArrayValue=function(val,options,currentArrayLength){if(val&&typeof val==='string'&&options.comma&&val.indexOf(',')>-1){return val.split(',');}if(options.throwOnLimitExceeded&&currentArrayLength>=options.arrayLimit){throw new RangeError('Array limit exceeded. Only '+options.arrayLimit+' element'+(options.arrayLimit===1?'':'s')+' allowed in an array.');}return val;};// This is what browsers will submit when the ✓ character occurs in an
3778
+ root.punycode=punycode;}})(this);}).call(this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{}],128:[function(require,module,exports){'use strict';var replace=String.prototype.replace;var percentTwenties=/%20/g;var Format={RFC1738:'RFC1738',RFC3986:'RFC3986'};module.exports={'default':Format.RFC3986,formatters:{RFC1738:function(value){return replace.call(value,percentTwenties,'+');},RFC3986:function(value){return String(value);}},RFC1738:Format.RFC1738,RFC3986:Format.RFC3986};},{}],129:[function(require,module,exports){'use strict';var stringify=require('./stringify');var parse=require('./parse');var formats=require('./formats');module.exports={formats:formats,parse:parse,stringify:stringify};},{"./formats":128,"./parse":130,"./stringify":131}],130:[function(require,module,exports){'use strict';var utils=require('./utils');var has=Object.prototype.hasOwnProperty;var isArray=Array.isArray;var defaults={allowDots:false,allowEmptyArrays:false,allowPrototypes:false,allowSparse:false,arrayLimit:20,charset:'utf-8',charsetSentinel:false,comma:false,decodeDotInKeys:false,decoder:utils.decode,delimiter:'&',depth:5,duplicates:'combine',ignoreQueryPrefix:false,interpretNumericEntities:false,parameterLimit:1000,parseArrays:true,plainObjects:false,strictDepth:false,strictMerge:true,strictNullHandling:false,throwOnLimitExceeded:false};var interpretNumericEntities=function(str){return str.replace(/&#(\d+);/g,function($0,numberStr){return String.fromCharCode(parseInt(numberStr,10));});};var parseArrayValue=function(val,options,currentArrayLength){if(val&&typeof val==='string'&&options.comma&&val.indexOf(',')>-1){return val.split(',');}if(options.throwOnLimitExceeded&&currentArrayLength>=options.arrayLimit){throw new RangeError('Array limit exceeded. Only '+options.arrayLimit+' element'+(options.arrayLimit===1?'':'s')+' allowed in an array.');}return val;};// This is what browsers will submit when the ✓ character occurs in an
3697
3779
  // application/x-www-form-urlencoded body and the encoding of the page containing
3698
3780
  // the form is iso-8859-1, or when the submitted form has an accept-charset
3699
3781
  // attribute of iso-8859-1. Presumably also with other charsets that do not contain
@@ -3706,13 +3788,13 @@ var i;var charset=options.charset;if(options.charsetSentinel){for(i=0;i<parts.le
3706
3788
  }}}for(i=0;i<parts.length;++i){if(i===skipIndex){continue;}var part=parts[i];var bracketEqualsPos=part.indexOf(']=');var pos=bracketEqualsPos===-1?part.indexOf('='):bracketEqualsPos+1;var key;var val;if(pos===-1){key=options.decoder(part,defaults.decoder,charset,'key');val=options.strictNullHandling?null:'';}else{key=options.decoder(part.slice(0,pos),defaults.decoder,charset,'key');if(key!==null){val=utils.maybeMap(parseArrayValue(part.slice(pos+1),options,isArray(obj[key])?obj[key].length:0),function(encodedVal){return options.decoder(encodedVal,defaults.decoder,charset,'value');});}}if(val&&options.interpretNumericEntities&&charset==='iso-8859-1'){val=interpretNumericEntities(String(val));}if(part.indexOf('[]=')>-1){val=isArray(val)?[val]:val;}if(options.comma&&isArray(val)&&val.length>options.arrayLimit){if(options.throwOnLimitExceeded){throw new RangeError('Array limit exceeded. Only '+options.arrayLimit+' element'+(options.arrayLimit===1?'':'s')+' allowed in an array.');}val=utils.combine([],val,options.arrayLimit,options.plainObjects);}if(key!==null){var existing=has.call(obj,key);if(existing&&(options.duplicates==='combine'||part.indexOf('[]=')>-1)){obj[key]=utils.combine(obj[key],val,options.arrayLimit,options.plainObjects);}else if(!existing||options.duplicates==='last'){obj[key]=val;}}}return obj;};var parseObject=function(chain,val,options,valuesParsed){var currentArrayLength=0;if(chain.length>0&&chain[chain.length-1]==='[]'){var parentKey=chain.slice(0,-1).join('');currentArrayLength=Array.isArray(val)&&val[parentKey]?val[parentKey].length:0;}var leaf=valuesParsed?val:parseArrayValue(val,options,currentArrayLength);for(var i=chain.length-1;i>=0;--i){var obj;var root=chain[i];if(root==='[]'&&options.parseArrays){if(utils.isOverflow(leaf)){// leaf is already an overflow object, preserve it
3707
3789
  obj=leaf;}else{obj=options.allowEmptyArrays&&(leaf===''||options.strictNullHandling&&leaf===null)?[]:utils.combine([],leaf,options.arrayLimit,options.plainObjects);}}else{obj=options.plainObjects?{__proto__:null}:{};var cleanRoot=root.charAt(0)==='['&&root.charAt(root.length-1)===']'?root.slice(1,-1):root;var decodedRoot=options.decodeDotInKeys?cleanRoot.replace(/%2E/g,'.'):cleanRoot;var index=parseInt(decodedRoot,10);var isValidArrayIndex=!isNaN(index)&&root!==decodedRoot&&String(index)===decodedRoot&&index>=0&&options.parseArrays;if(!options.parseArrays&&decodedRoot===''){obj={0:leaf};}else if(isValidArrayIndex&&index<options.arrayLimit){obj=[];obj[index]=leaf;}else if(isValidArrayIndex&&options.throwOnLimitExceeded){throw new RangeError('Array limit exceeded. Only '+options.arrayLimit+' element'+(options.arrayLimit===1?'':'s')+' allowed in an array.');}else if(isValidArrayIndex){obj[index]=leaf;utils.markOverflow(obj,index);}else if(decodedRoot!=='__proto__'){obj[decodedRoot]=leaf;}}leaf=obj;}return leaf;};var splitKeyIntoSegments=function splitKeyIntoSegments(givenKey,options){var key=options.allowDots?givenKey.replace(/\.([^.[]+)/g,'[$1]'):givenKey;if(options.depth<=0){if(!options.plainObjects&&has.call(Object.prototype,key)){if(!options.allowPrototypes){return;}}return[key];}var brackets=/(\[[^[\]]*])/;var child=/(\[[^[\]]*])/g;var segment=brackets.exec(key);var parent=segment?key.slice(0,segment.index):key;var keys=[];if(parent){if(!options.plainObjects&&has.call(Object.prototype,parent)){if(!options.allowPrototypes){return;}}keys[keys.length]=parent;}var i=0;while((segment=child.exec(key))!==null&&i<options.depth){i+=1;var segmentContent=segment[1].slice(1,-1);if(!options.plainObjects&&has.call(Object.prototype,segmentContent)){if(!options.allowPrototypes){return;}}keys[keys.length]=segment[1];}if(segment){if(options.strictDepth===true){throw new RangeError('Input depth exceeded depth option of '+options.depth+' and strictDepth is true');}keys[keys.length]='['+key.slice(segment.index)+']';}return keys;};var parseKeys=function parseQueryStringKeys(givenKey,val,options,valuesParsed){if(!givenKey){return;}var keys=splitKeyIntoSegments(givenKey,options);if(!keys){return;}return parseObject(keys,val,options,valuesParsed);};var normalizeParseOptions=function normalizeParseOptions(opts){if(!opts){return defaults;}if(typeof opts.allowEmptyArrays!=='undefined'&&typeof opts.allowEmptyArrays!=='boolean'){throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');}if(typeof opts.decodeDotInKeys!=='undefined'&&typeof opts.decodeDotInKeys!=='boolean'){throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided');}if(opts.decoder!==null&&typeof opts.decoder!=='undefined'&&typeof opts.decoder!=='function'){throw new TypeError('Decoder has to be a function.');}if(typeof opts.charset!=='undefined'&&opts.charset!=='utf-8'&&opts.charset!=='iso-8859-1'){throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');}if(typeof opts.throwOnLimitExceeded!=='undefined'&&typeof opts.throwOnLimitExceeded!=='boolean'){throw new TypeError('`throwOnLimitExceeded` option must be a boolean');}var charset=typeof opts.charset==='undefined'?defaults.charset:opts.charset;var duplicates=typeof opts.duplicates==='undefined'?defaults.duplicates:opts.duplicates;if(duplicates!=='combine'&&duplicates!=='first'&&duplicates!=='last'){throw new TypeError('The duplicates option must be either combine, first, or last');}var allowDots=typeof opts.allowDots==='undefined'?opts.decodeDotInKeys===true?true:defaults.allowDots:!!opts.allowDots;return{allowDots:allowDots,allowEmptyArrays:typeof opts.allowEmptyArrays==='boolean'?!!opts.allowEmptyArrays:defaults.allowEmptyArrays,allowPrototypes:typeof opts.allowPrototypes==='boolean'?opts.allowPrototypes:defaults.allowPrototypes,allowSparse:typeof opts.allowSparse==='boolean'?opts.allowSparse:defaults.allowSparse,arrayLimit:typeof opts.arrayLimit==='number'?opts.arrayLimit:defaults.arrayLimit,charset:charset,charsetSentinel:typeof opts.charsetSentinel==='boolean'?opts.charsetSentinel:defaults.charsetSentinel,comma:typeof opts.comma==='boolean'?opts.comma:defaults.comma,decodeDotInKeys:typeof opts.decodeDotInKeys==='boolean'?opts.decodeDotInKeys:defaults.decodeDotInKeys,decoder:typeof opts.decoder==='function'?opts.decoder:defaults.decoder,delimiter:typeof opts.delimiter==='string'||utils.isRegExp(opts.delimiter)?opts.delimiter:defaults.delimiter,// eslint-disable-next-line no-implicit-coercion, no-extra-parens
3708
3790
  depth:typeof opts.depth==='number'||opts.depth===false?+opts.depth:defaults.depth,duplicates:duplicates,ignoreQueryPrefix:opts.ignoreQueryPrefix===true,interpretNumericEntities:typeof opts.interpretNumericEntities==='boolean'?opts.interpretNumericEntities:defaults.interpretNumericEntities,parameterLimit:typeof opts.parameterLimit==='number'?opts.parameterLimit:defaults.parameterLimit,parseArrays:opts.parseArrays!==false,plainObjects:typeof opts.plainObjects==='boolean'?opts.plainObjects:defaults.plainObjects,strictDepth:typeof opts.strictDepth==='boolean'?!!opts.strictDepth:defaults.strictDepth,strictMerge:typeof opts.strictMerge==='boolean'?!!opts.strictMerge:defaults.strictMerge,strictNullHandling:typeof opts.strictNullHandling==='boolean'?opts.strictNullHandling:defaults.strictNullHandling,throwOnLimitExceeded:typeof opts.throwOnLimitExceeded==='boolean'?opts.throwOnLimitExceeded:false};};module.exports=function(str,opts){var options=normalizeParseOptions(opts);if(str===''||str===null||typeof str==='undefined'){return options.plainObjects?{__proto__:null}:{};}var tempObj=typeof str==='string'?parseValues(str,options):str;var obj=options.plainObjects?{__proto__:null}:{};// Iterate over the keys and setup the new object
3709
- var keys=Object.keys(tempObj);for(var i=0;i<keys.length;++i){var key=keys[i];var newObj=parseKeys(key,tempObj[key],options,typeof str==='string');obj=utils.merge(obj,newObj,options);}if(options.allowSparse===true){return obj;}return utils.compact(obj);};},{"./utils":131}],130:[function(require,module,exports){'use strict';var getSideChannel=require('side-channel');var utils=require('./utils');var formats=require('./formats');var has=Object.prototype.hasOwnProperty;var arrayPrefixGenerators={brackets:function brackets(prefix){return prefix+'[]';},comma:'comma',indices:function indices(prefix,key){return prefix+'['+key+']';},repeat:function repeat(prefix){return prefix;}};var isArray=Array.isArray;var push=Array.prototype.push;var pushToArray=function(arr,valueOrArray){push.apply(arr,isArray(valueOrArray)?valueOrArray:[valueOrArray]);};var toISO=Date.prototype.toISOString;var defaultFormat=formats['default'];var defaults={addQueryPrefix:false,allowDots:false,allowEmptyArrays:false,arrayFormat:'indices',charset:'utf-8',charsetSentinel:false,commaRoundTrip:false,delimiter:'&',encode:true,encodeDotInKeys:false,encoder:utils.encode,encodeValuesOnly:false,filter:void undefined,format:defaultFormat,formatter:formats.formatters[defaultFormat],// deprecated
3791
+ var keys=Object.keys(tempObj);for(var i=0;i<keys.length;++i){var key=keys[i];var newObj=parseKeys(key,tempObj[key],options,typeof str==='string');obj=utils.merge(obj,newObj,options);}if(options.allowSparse===true){return obj;}return utils.compact(obj);};},{"./utils":132}],131:[function(require,module,exports){'use strict';var getSideChannel=require('side-channel');var utils=require('./utils');var formats=require('./formats');var has=Object.prototype.hasOwnProperty;var arrayPrefixGenerators={brackets:function brackets(prefix){return prefix+'[]';},comma:'comma',indices:function indices(prefix,key){return prefix+'['+key+']';},repeat:function repeat(prefix){return prefix;}};var isArray=Array.isArray;var push=Array.prototype.push;var pushToArray=function(arr,valueOrArray){push.apply(arr,isArray(valueOrArray)?valueOrArray:[valueOrArray]);};var toISO=Date.prototype.toISOString;var defaultFormat=formats['default'];var defaults={addQueryPrefix:false,allowDots:false,allowEmptyArrays:false,arrayFormat:'indices',charset:'utf-8',charsetSentinel:false,commaRoundTrip:false,delimiter:'&',encode:true,encodeDotInKeys:false,encoder:utils.encode,encodeValuesOnly:false,filter:void undefined,format:defaultFormat,formatter:formats.formatters[defaultFormat],// deprecated
3710
3792
  indices:false,serializeDate:function serializeDate(date){return toISO.call(date);},skipNulls:false,strictNullHandling:false};var isNonNullishPrimitive=function isNonNullishPrimitive(v){return typeof v==='string'||typeof v==='number'||typeof v==='boolean'||typeof v==='symbol'||typeof v==='bigint';};var sentinel={};var stringify=function stringify(object,prefix,generateArrayPrefix,commaRoundTrip,allowEmptyArrays,strictNullHandling,skipNulls,encodeDotInKeys,encoder,filter,sort,allowDots,serializeDate,format,formatter,encodeValuesOnly,charset,sideChannel){var obj=object;var tmpSc=sideChannel;var step=0;var findFlag=false;while((tmpSc=tmpSc.get(sentinel))!==void undefined&&!findFlag){// Where object last appeared in the ref tree
3711
3793
  var pos=tmpSc.get(object);step+=1;if(typeof pos!=='undefined'){if(pos===step){throw new RangeError('Cyclic object value');}else{findFlag=true;// Break while
3712
3794
  }}if(typeof tmpSc.get(sentinel)==='undefined'){step=0;}}if(typeof filter==='function'){obj=filter(prefix,obj);}else if(obj instanceof Date){obj=serializeDate(obj);}else if(generateArrayPrefix==='comma'&&isArray(obj)){obj=utils.maybeMap(obj,function(value){if(value instanceof Date){return serializeDate(value);}return value;});}if(obj===null){if(strictNullHandling){return encoder&&!encodeValuesOnly?encoder(prefix,defaults.encoder,charset,'key',format):prefix;}obj='';}if(isNonNullishPrimitive(obj)||utils.isBuffer(obj)){if(encoder){var keyValue=encodeValuesOnly?prefix:encoder(prefix,defaults.encoder,charset,'key',format);return[formatter(keyValue)+'='+formatter(encoder(obj,defaults.encoder,charset,'value',format))];}return[formatter(prefix)+'='+formatter(String(obj))];}var values=[];if(typeof obj==='undefined'){return values;}var objKeys;if(generateArrayPrefix==='comma'&&isArray(obj)){// we need to join elements in
3713
3795
  if(encodeValuesOnly&&encoder){obj=utils.maybeMap(obj,encoder);}objKeys=[{value:obj.length>0?obj.join(',')||null:void undefined}];}else if(isArray(filter)){objKeys=filter;}else{var keys=Object.keys(obj);objKeys=sort?keys.sort(sort):keys;}var encodedPrefix=encodeDotInKeys?String(prefix).replace(/\./g,'%2E'):String(prefix);var adjustedPrefix=commaRoundTrip&&isArray(obj)&&obj.length===1?encodedPrefix+'[]':encodedPrefix;if(allowEmptyArrays&&isArray(obj)&&obj.length===0){return adjustedPrefix+'[]';}for(var j=0;j<objKeys.length;++j){var key=objKeys[j];var value=typeof key==='object'&&key&&typeof key.value!=='undefined'?key.value:obj[key];if(skipNulls&&value===null){continue;}var encodedKey=allowDots&&encodeDotInKeys?String(key).replace(/\./g,'%2E'):String(key);var keyPrefix=isArray(obj)?typeof generateArrayPrefix==='function'?generateArrayPrefix(adjustedPrefix,encodedKey):adjustedPrefix:adjustedPrefix+(allowDots?'.'+encodedKey:'['+encodedKey+']');sideChannel.set(object,step);var valueSideChannel=getSideChannel();valueSideChannel.set(sentinel,sideChannel);pushToArray(values,stringify(value,keyPrefix,generateArrayPrefix,commaRoundTrip,allowEmptyArrays,strictNullHandling,skipNulls,encodeDotInKeys,generateArrayPrefix==='comma'&&encodeValuesOnly&&isArray(obj)?null:encoder,filter,sort,allowDots,serializeDate,format,formatter,encodeValuesOnly,charset,valueSideChannel));}return values;};var normalizeStringifyOptions=function normalizeStringifyOptions(opts){if(!opts){return defaults;}if(typeof opts.allowEmptyArrays!=='undefined'&&typeof opts.allowEmptyArrays!=='boolean'){throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');}if(typeof opts.encodeDotInKeys!=='undefined'&&typeof opts.encodeDotInKeys!=='boolean'){throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');}if(opts.encoder!==null&&typeof opts.encoder!=='undefined'&&typeof opts.encoder!=='function'){throw new TypeError('Encoder has to be a function.');}var charset=opts.charset||defaults.charset;if(typeof opts.charset!=='undefined'&&opts.charset!=='utf-8'&&opts.charset!=='iso-8859-1'){throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');}var format=formats['default'];if(typeof opts.format!=='undefined'){if(!has.call(formats.formatters,opts.format)){throw new TypeError('Unknown format option provided.');}format=opts.format;}var formatter=formats.formatters[format];var filter=defaults.filter;if(typeof opts.filter==='function'||isArray(opts.filter)){filter=opts.filter;}var arrayFormat;if(opts.arrayFormat in arrayPrefixGenerators){arrayFormat=opts.arrayFormat;}else if('indices'in opts){arrayFormat=opts.indices?'indices':'repeat';}else{arrayFormat=defaults.arrayFormat;}if('commaRoundTrip'in opts&&typeof opts.commaRoundTrip!=='boolean'){throw new TypeError('`commaRoundTrip` must be a boolean, or absent');}var allowDots=typeof opts.allowDots==='undefined'?opts.encodeDotInKeys===true?true:defaults.allowDots:!!opts.allowDots;return{addQueryPrefix:typeof opts.addQueryPrefix==='boolean'?opts.addQueryPrefix:defaults.addQueryPrefix,allowDots:allowDots,allowEmptyArrays:typeof opts.allowEmptyArrays==='boolean'?!!opts.allowEmptyArrays:defaults.allowEmptyArrays,arrayFormat:arrayFormat,charset:charset,charsetSentinel:typeof opts.charsetSentinel==='boolean'?opts.charsetSentinel:defaults.charsetSentinel,commaRoundTrip:!!opts.commaRoundTrip,delimiter:typeof opts.delimiter==='undefined'?defaults.delimiter:opts.delimiter,encode:typeof opts.encode==='boolean'?opts.encode:defaults.encode,encodeDotInKeys:typeof opts.encodeDotInKeys==='boolean'?opts.encodeDotInKeys:defaults.encodeDotInKeys,encoder:typeof opts.encoder==='function'?opts.encoder:defaults.encoder,encodeValuesOnly:typeof opts.encodeValuesOnly==='boolean'?opts.encodeValuesOnly:defaults.encodeValuesOnly,filter:filter,format:format,formatter:formatter,serializeDate:typeof opts.serializeDate==='function'?opts.serializeDate:defaults.serializeDate,skipNulls:typeof opts.skipNulls==='boolean'?opts.skipNulls:defaults.skipNulls,sort:typeof opts.sort==='function'?opts.sort:null,strictNullHandling:typeof opts.strictNullHandling==='boolean'?opts.strictNullHandling:defaults.strictNullHandling};};module.exports=function(object,opts){var obj=object;var options=normalizeStringifyOptions(opts);var objKeys;var filter;if(typeof options.filter==='function'){filter=options.filter;obj=filter('',obj);}else if(isArray(options.filter)){filter=options.filter;objKeys=filter;}var keys=[];if(typeof obj!=='object'||obj===null){return'';}var generateArrayPrefix=arrayPrefixGenerators[options.arrayFormat];var commaRoundTrip=generateArrayPrefix==='comma'&&options.commaRoundTrip;if(!objKeys){objKeys=Object.keys(obj);}if(options.sort){objKeys.sort(options.sort);}var sideChannel=getSideChannel();for(var i=0;i<objKeys.length;++i){var key=objKeys[i];var value=obj[key];if(options.skipNulls&&value===null){continue;}pushToArray(keys,stringify(value,key,generateArrayPrefix,commaRoundTrip,options.allowEmptyArrays,options.strictNullHandling,options.skipNulls,options.encodeDotInKeys,options.encode?options.encoder:null,options.filter,options.sort,options.allowDots,options.serializeDate,options.format,options.formatter,options.encodeValuesOnly,options.charset,sideChannel));}var joined=keys.join(options.delimiter);var prefix=options.addQueryPrefix===true?'?':'';if(options.charsetSentinel){if(options.charset==='iso-8859-1'){// encodeURIComponent('&#10003;'), the "numeric entity" representation of a checkmark
3714
3796
  prefix+='utf8=%26%2310003%3B&';}else{// encodeURIComponent('✓')
3715
- prefix+='utf8=%E2%9C%93&';}}return joined.length>0?prefix+joined:'';};},{"./formats":127,"./utils":131,"side-channel":141}],131:[function(require,module,exports){'use strict';var formats=require('./formats');var getSideChannel=require('side-channel');var has=Object.prototype.hasOwnProperty;var isArray=Array.isArray;// Track objects created from arrayLimit overflow using side-channel
3797
+ prefix+='utf8=%E2%9C%93&';}}return joined.length>0?prefix+joined:'';};},{"./formats":128,"./utils":132,"side-channel":142}],132:[function(require,module,exports){'use strict';var formats=require('./formats');var getSideChannel=require('side-channel');var has=Object.prototype.hasOwnProperty;var isArray=Array.isArray;// Track objects created from arrayLimit overflow using side-channel
3716
3798
  // Stores the current max numeric index for O(1) lookup
3717
3799
  var overflowChannel=getSideChannel();var markOverflow=function markOverflow(obj,maxIndex){overflowChannel.set(obj,maxIndex);return obj;};var isOverflow=function isOverflow(obj){return overflowChannel.has(obj);};var getMaxIndex=function getMaxIndex(obj){return overflowChannel.get(obj);};var setMaxIndex=function setMaxIndex(obj,maxIndex){overflowChannel.set(obj,maxIndex);};var hexTable=function(){var array=[];for(var i=0;i<256;++i){array[array.length]='%'+((i<16?'0':'')+i.toString(16)).toUpperCase();}return array;}();var compactQueue=function compactQueue(queue){while(queue.length>1){var item=queue.pop();var obj=item.obj[item.prop];if(isArray(obj)){var compacted=[];for(var j=0;j<obj.length;++j){if(typeof obj[j]!=='undefined'){compacted[compacted.length]=obj[j];}}item.obj[item.prop]=compacted;}}};var arrayToObject=function arrayToObject(source,options){var obj=options&&options.plainObjects?{__proto__:null}:{};for(var i=0;i<source.length;++i){if(typeof source[i]!=='undefined'){obj[i]=source[i];}}return obj;};var merge=function merge(target,source,options){/* eslint no-param-reassign: 0 */if(!source){return target;}if(typeof source!=='object'&&typeof source!=='function'){if(isArray(target)){var nextIndex=target.length;if(options&&typeof options.arrayLimit==='number'&&nextIndex>options.arrayLimit){return markOverflow(arrayToObject(target.concat(source),options),nextIndex);}target[nextIndex]=source;}else if(target&&typeof target==='object'){if(isOverflow(target)){// Add at next numeric index for overflow objects
3718
3800
  var newIndex=getMaxIndex(target)+1;target[newIndex]=source;setMaxIndex(target,newIndex);}else if(options&&options.strictMerge){return[target,source];}else if(options&&(options.plainObjects||options.allowPrototypes)||!has.call(Object.prototype,source)){target[source]=true;}}else{return[target,source];}return target;}if(!target||typeof target!=='object'){if(isOverflow(source)){// Create new object with target at 0, source values shifted by 1
@@ -3729,7 +3811,7 @@ if(str.length===0){return str;}var string=str;if(typeof str==='symbol'){string=S
3729
3811
  ||c>=0x61&&c<=0x7A// A-Z
3730
3812
  ||format===formats.RFC1738&&(c===0x28||c===0x29)// ( )
3731
3813
  ){arr[arr.length]=segment.charAt(i);continue;}if(c<0x80){arr[arr.length]=hexTable[c];continue;}if(c<0x800){arr[arr.length]=hexTable[0xC0|c>>6]+hexTable[0x80|c&0x3F];continue;}if(c<0xD800||c>=0xE000){arr[arr.length]=hexTable[0xE0|c>>12]+hexTable[0x80|c>>6&0x3F]+hexTable[0x80|c&0x3F];continue;}i+=1;c=0x10000+((c&0x3FF)<<10|segment.charCodeAt(i)&0x3FF);arr[arr.length]=hexTable[0xF0|c>>18]+hexTable[0x80|c>>12&0x3F]+hexTable[0x80|c>>6&0x3F]+hexTable[0x80|c&0x3F];}out+=arr.join('');}return out;};var compact=function compact(value){var queue=[{obj:{o:value},prop:'o'}];var refs=[];for(var i=0;i<queue.length;++i){var item=queue[i];var obj=item.obj[item.prop];var keys=Object.keys(obj);for(var j=0;j<keys.length;++j){var key=keys[j];var val=obj[key];if(typeof val==='object'&&val!==null&&refs.indexOf(val)===-1){queue[queue.length]={obj:obj,prop:key};refs[refs.length]=val;}}}compactQueue(queue);return value;};var isRegExp=function isRegExp(obj){return Object.prototype.toString.call(obj)==='[object RegExp]';};var isBuffer=function isBuffer(obj){if(!obj||typeof obj!=='object'){return false;}return!!(obj.constructor&&obj.constructor.isBuffer&&obj.constructor.isBuffer(obj));};var combine=function combine(a,b,arrayLimit,plainObjects){// If 'a' is already an overflow object, add to it
3732
- if(isOverflow(a)){var newIndex=getMaxIndex(a)+1;a[newIndex]=b;setMaxIndex(a,newIndex);return a;}var result=[].concat(a,b);if(result.length>arrayLimit){return markOverflow(arrayToObject(result,{plainObjects:plainObjects}),result.length-1);}return result;};var maybeMap=function maybeMap(val,fn){if(isArray(val)){var mapped=[];for(var i=0;i<val.length;i+=1){mapped[mapped.length]=fn(val[i]);}return mapped;}return fn(val);};module.exports={arrayToObject:arrayToObject,assign:assign,combine:combine,compact:compact,decode:decode,encode:encode,isBuffer:isBuffer,isOverflow:isOverflow,isRegExp:isRegExp,markOverflow:markOverflow,maybeMap:maybeMap,merge:merge};},{"./formats":127,"side-channel":141}],132:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.
3814
+ if(isOverflow(a)){var newIndex=getMaxIndex(a)+1;a[newIndex]=b;setMaxIndex(a,newIndex);return a;}var result=[].concat(a,b);if(result.length>arrayLimit){return markOverflow(arrayToObject(result,{plainObjects:plainObjects}),result.length-1);}return result;};var maybeMap=function maybeMap(val,fn){if(isArray(val)){var mapped=[];for(var i=0;i<val.length;i+=1){mapped[mapped.length]=fn(val[i]);}return mapped;}return fn(val);};module.exports={arrayToObject:arrayToObject,assign:assign,combine:combine,compact:compact,decode:decode,encode:encode,isBuffer:isBuffer,isOverflow:isOverflow,isRegExp:isRegExp,markOverflow:markOverflow,maybeMap:maybeMap,merge:merge};},{"./formats":128,"side-channel":142}],133:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.
3733
3815
  //
3734
3816
  // Permission is hereby granted, free of charge, to any person obtaining a
3735
3817
  // copy of this software and associated documentation files (the
@@ -3753,7 +3835,7 @@ if(isOverflow(a)){var newIndex=getMaxIndex(a)+1;a[newIndex]=b;setMaxIndex(a,newI
3753
3835
  // obj.hasOwnProperty(prop) will break.
3754
3836
  // See: https://github.com/joyent/node/issues/1707
3755
3837
  function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop);}module.exports=function(qs,sep,eq,options){sep=sep||'&';eq=eq||'=';var obj={};if(typeof qs!=='string'||qs.length===0){return obj;}var regexp=/\+/g;qs=qs.split(sep);var maxKeys=1000;if(options&&typeof options.maxKeys==='number'){maxKeys=options.maxKeys;}var len=qs.length;// maxKeys <= 0 means that we should not limit keys count
3756
- if(maxKeys>0&&len>maxKeys){len=maxKeys;}for(var i=0;i<len;++i){var x=qs[i].replace(regexp,'%20'),idx=x.indexOf(eq),kstr,vstr,k,v;if(idx>=0){kstr=x.substr(0,idx);vstr=x.substr(idx+1);}else{kstr=x;vstr='';}k=decodeURIComponent(kstr);v=decodeURIComponent(vstr);if(!hasOwnProperty(obj,k)){obj[k]=v;}else if(isArray(obj[k])){obj[k].push(v);}else{obj[k]=[obj[k],v];}}return obj;};var isArray=Array.isArray||function(xs){return Object.prototype.toString.call(xs)==='[object Array]';};},{}],133:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.
3838
+ if(maxKeys>0&&len>maxKeys){len=maxKeys;}for(var i=0;i<len;++i){var x=qs[i].replace(regexp,'%20'),idx=x.indexOf(eq),kstr,vstr,k,v;if(idx>=0){kstr=x.substr(0,idx);vstr=x.substr(idx+1);}else{kstr=x;vstr='';}k=decodeURIComponent(kstr);v=decodeURIComponent(vstr);if(!hasOwnProperty(obj,k)){obj[k]=v;}else if(isArray(obj[k])){obj[k].push(v);}else{obj[k]=[obj[k],v];}}return obj;};var isArray=Array.isArray||function(xs){return Object.prototype.toString.call(xs)==='[object Array]';};},{}],134:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.
3757
3839
  //
3758
3840
  // Permission is hereby granted, free of charge, to any person obtaining a
3759
3841
  // copy of this software and associated documentation files (the
@@ -3773,10 +3855,10 @@ if(maxKeys>0&&len>maxKeys){len=maxKeys;}for(var i=0;i<len;++i){var x=qs[i].repla
3773
3855
  // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
3774
3856
  // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
3775
3857
  // USE OR OTHER DEALINGS IN THE SOFTWARE.
3776
- 'use strict';var stringifyPrimitive=function(v){switch(typeof v){case'string':return v;case'boolean':return v?'true':'false';case'number':return isFinite(v)?v:'';default:return'';}};module.exports=function(obj,sep,eq,name){sep=sep||'&';eq=eq||'=';if(obj===null){obj=undefined;}if(typeof obj==='object'){return map(objectKeys(obj),function(k){var ks=encodeURIComponent(stringifyPrimitive(k))+eq;if(isArray(obj[k])){return map(obj[k],function(v){return ks+encodeURIComponent(stringifyPrimitive(v));}).join(sep);}else{return ks+encodeURIComponent(stringifyPrimitive(obj[k]));}}).join(sep);}if(!name)return'';return encodeURIComponent(stringifyPrimitive(name))+eq+encodeURIComponent(stringifyPrimitive(obj));};var isArray=Array.isArray||function(xs){return Object.prototype.toString.call(xs)==='[object Array]';};function map(xs,f){if(xs.map)return xs.map(f);var res=[];for(var i=0;i<xs.length;i++){res.push(f(xs[i],i));}return res;}var objectKeys=Object.keys||function(obj){var res=[];for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key))res.push(key);}return res;};},{}],134:[function(require,module,exports){'use strict';exports.decode=exports.parse=require('./decode');exports.encode=exports.stringify=require('./encode');},{"./decode":132,"./encode":133}],135:[function(require,module,exports){/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *//* eslint-disable node/no-deprecated-api */var buffer=require('buffer');var Buffer=buffer.Buffer;// alternative to using Object.keys for old browsers
3858
+ 'use strict';var stringifyPrimitive=function(v){switch(typeof v){case'string':return v;case'boolean':return v?'true':'false';case'number':return isFinite(v)?v:'';default:return'';}};module.exports=function(obj,sep,eq,name){sep=sep||'&';eq=eq||'=';if(obj===null){obj=undefined;}if(typeof obj==='object'){return map(objectKeys(obj),function(k){var ks=encodeURIComponent(stringifyPrimitive(k))+eq;if(isArray(obj[k])){return map(obj[k],function(v){return ks+encodeURIComponent(stringifyPrimitive(v));}).join(sep);}else{return ks+encodeURIComponent(stringifyPrimitive(obj[k]));}}).join(sep);}if(!name)return'';return encodeURIComponent(stringifyPrimitive(name))+eq+encodeURIComponent(stringifyPrimitive(obj));};var isArray=Array.isArray||function(xs){return Object.prototype.toString.call(xs)==='[object Array]';};function map(xs,f){if(xs.map)return xs.map(f);var res=[];for(var i=0;i<xs.length;i++){res.push(f(xs[i],i));}return res;}var objectKeys=Object.keys||function(obj){var res=[];for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key))res.push(key);}return res;};},{}],135:[function(require,module,exports){'use strict';exports.decode=exports.parse=require('./decode');exports.encode=exports.stringify=require('./encode');},{"./decode":133,"./encode":134}],136:[function(require,module,exports){/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *//* eslint-disable node/no-deprecated-api */var buffer=require('buffer');var Buffer=buffer.Buffer;// alternative to using Object.keys for old browsers
3777
3859
  function copyProps(src,dst){for(var key in src){dst[key]=src[key];}}if(Buffer.from&&Buffer.alloc&&Buffer.allocUnsafe&&Buffer.allocUnsafeSlow){module.exports=buffer;}else{// Copy properties from require('buffer')
3778
3860
  copyProps(buffer,exports);exports.Buffer=SafeBuffer;}function SafeBuffer(arg,encodingOrOffset,length){return Buffer(arg,encodingOrOffset,length);}SafeBuffer.prototype=Object.create(Buffer.prototype);// Copy static methods from Buffer
3779
- copyProps(Buffer,SafeBuffer);SafeBuffer.from=function(arg,encodingOrOffset,length){if(typeof arg==='number'){throw new TypeError('Argument must not be a number');}return Buffer(arg,encodingOrOffset,length);};SafeBuffer.alloc=function(size,fill,encoding){if(typeof size!=='number'){throw new TypeError('Argument must be a number');}var buf=Buffer(size);if(fill!==undefined){if(typeof encoding==='string'){buf.fill(fill,encoding);}else{buf.fill(fill);}}else{buf.fill(0);}return buf;};SafeBuffer.allocUnsafe=function(size){if(typeof size!=='number'){throw new TypeError('Argument must be a number');}return Buffer(size);};SafeBuffer.allocUnsafeSlow=function(size){if(typeof size!=='number'){throw new TypeError('Argument must be a number');}return buffer.SlowBuffer(size);};},{"buffer":23}],136:[function(require,module,exports){'use strict';var callBound=require('call-bound');var isRegex=require('is-regex');var $exec=callBound('RegExp.prototype.exec');var $TypeError=require('es-errors/type');/** @type {import('.')} */module.exports=function regexTester(regex){if(!isRegex(regex)){throw new $TypeError('`regex` must be a RegExp');}return function test(s){return $exec(regex,s)!==null;};};},{"call-bound":32,"es-errors/type":41,"is-regex":85}],137:[function(require,module,exports){'use strict';var GetIntrinsic=require('get-intrinsic');var define=require('define-data-property');var hasDescriptors=require('has-property-descriptors')();var gOPD=require('gopd');var $TypeError=require('es-errors/type');var $floor=GetIntrinsic('%Math.floor%');/** @type {import('.')} */module.exports=function setFunctionLength(fn,length){if(typeof fn!=='function'){throw new $TypeError('`fn` is not a function');}if(typeof length!=='number'||length<0||length>0xFFFFFFFF||$floor(length)!==length){throw new $TypeError('`length` must be a positive 32-bit integer');}var loose=arguments.length>2&&!!arguments[2];var functionLengthIsConfigurable=true;var functionLengthIsWritable=true;if('length'in fn&&gOPD){var desc=gOPD(fn,'length');if(desc&&!desc.configurable){functionLengthIsConfigurable=false;}if(desc&&!desc.writable){functionLengthIsWritable=false;}}if(functionLengthIsConfigurable||functionLengthIsWritable||!loose){if(hasDescriptors){define(/** @type {Parameters<define>[0]} */fn,'length',length,true,true);}else{define(/** @type {Parameters<define>[0]} */fn,'length',length);}}return fn;};},{"define-data-property":33,"es-errors/type":41,"get-intrinsic":64,"gopd":69,"has-property-descriptors":70}],138:[function(require,module,exports){'use strict';var inspect=require('object-inspect');var $TypeError=require('es-errors/type');/*
3861
+ copyProps(Buffer,SafeBuffer);SafeBuffer.from=function(arg,encodingOrOffset,length){if(typeof arg==='number'){throw new TypeError('Argument must not be a number');}return Buffer(arg,encodingOrOffset,length);};SafeBuffer.alloc=function(size,fill,encoding){if(typeof size!=='number'){throw new TypeError('Argument must be a number');}var buf=Buffer(size);if(fill!==undefined){if(typeof encoding==='string'){buf.fill(fill,encoding);}else{buf.fill(fill);}}else{buf.fill(0);}return buf;};SafeBuffer.allocUnsafe=function(size){if(typeof size!=='number'){throw new TypeError('Argument must be a number');}return Buffer(size);};SafeBuffer.allocUnsafeSlow=function(size){if(typeof size!=='number'){throw new TypeError('Argument must be a number');}return buffer.SlowBuffer(size);};},{"buffer":23}],137:[function(require,module,exports){'use strict';var callBound=require('call-bound');var isRegex=require('is-regex');var $exec=callBound('RegExp.prototype.exec');var $TypeError=require('es-errors/type');/** @type {import('.')} */module.exports=function regexTester(regex){if(!isRegex(regex)){throw new $TypeError('`regex` must be a RegExp');}return function test(s){return $exec(regex,s)!==null;};};},{"call-bound":32,"es-errors/type":41,"is-regex":85}],138:[function(require,module,exports){'use strict';var GetIntrinsic=require('get-intrinsic');var define=require('define-data-property');var hasDescriptors=require('has-property-descriptors')();var gOPD=require('gopd');var $TypeError=require('es-errors/type');var $floor=GetIntrinsic('%Math.floor%');/** @type {import('.')} */module.exports=function setFunctionLength(fn,length){if(typeof fn!=='function'){throw new $TypeError('`fn` is not a function');}if(typeof length!=='number'||length<0||length>0xFFFFFFFF||$floor(length)!==length){throw new $TypeError('`length` must be a positive 32-bit integer');}var loose=arguments.length>2&&!!arguments[2];var functionLengthIsConfigurable=true;var functionLengthIsWritable=true;if('length'in fn&&gOPD){var desc=gOPD(fn,'length');if(desc&&!desc.configurable){functionLengthIsConfigurable=false;}if(desc&&!desc.writable){functionLengthIsWritable=false;}}if(functionLengthIsConfigurable||functionLengthIsWritable||!loose){if(hasDescriptors){define(/** @type {Parameters<define>[0]} */fn,'length',length,true,true);}else{define(/** @type {Parameters<define>[0]} */fn,'length',length);}}return fn;};},{"define-data-property":33,"es-errors/type":41,"get-intrinsic":64,"gopd":69,"has-property-descriptors":70}],139:[function(require,module,exports){'use strict';var inspect=require('object-inspect');var $TypeError=require('es-errors/type');/*
3780
3862
  * This function traverses the list returning the node corresponding to the given key.
3781
3863
  *
3782
3864
  * That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list.
@@ -3791,13 +3873,13 @@ key:key,next:objects.next,value:value};}};/** @type {import('./list.d.ts').listH
3791
3873
  var listDelete=function(objects,key){if(objects){return listGetNode(objects,key,true);}};/** @type {import('.')} */module.exports=function getSideChannelList(){/** @typedef {ReturnType<typeof getSideChannelList>} Channel *//** @typedef {Parameters<Channel['get']>[0]} K *//** @typedef {Parameters<Channel['set']>[1]} V *//** @type {import('./list.d.ts').RootNode<V, K> | undefined} */var $o;/** @type {Channel} */var channel={assert:function(key){if(!channel.has(key)){throw new $TypeError('Side channel does not contain '+inspect(key));}},'delete':function(key){var root=$o&&$o.next;var deletedNode=listDelete($o,key);if(deletedNode&&root&&root===deletedNode){$o=void undefined;}return!!deletedNode;},get:function(key){return listGet($o,key);},has:function(key){return listHas($o,key);},set:function(key,value){if(!$o){// Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head
3792
3874
  $o={next:void undefined};}// eslint-disable-next-line no-extra-parens
3793
3875
  listSet(/** @type {NonNullable<typeof $o>} */$o,key,value);}};// @ts-expect-error TODO: figure out why this is erroring
3794
- return channel;};},{"es-errors/type":41,"object-inspect":122}],139:[function(require,module,exports){'use strict';var GetIntrinsic=require('get-intrinsic');var callBound=require('call-bound');var inspect=require('object-inspect');var $TypeError=require('es-errors/type');var $Map=GetIntrinsic('%Map%',true);/** @type {<K, V>(thisArg: Map<K, V>, key: K) => V} */var $mapGet=callBound('Map.prototype.get',true);/** @type {<K, V>(thisArg: Map<K, V>, key: K, value: V) => void} */var $mapSet=callBound('Map.prototype.set',true);/** @type {<K, V>(thisArg: Map<K, V>, key: K) => boolean} */var $mapHas=callBound('Map.prototype.has',true);/** @type {<K, V>(thisArg: Map<K, V>, key: K) => boolean} */var $mapDelete=callBound('Map.prototype.delete',true);/** @type {<K, V>(thisArg: Map<K, V>) => number} */var $mapSize=callBound('Map.prototype.size',true);/** @type {import('.')} */module.exports=!!$Map&&/** @type {Exclude<import('.'), false>} */function getSideChannelMap(){/** @typedef {ReturnType<typeof getSideChannelMap>} Channel *//** @typedef {Parameters<Channel['get']>[0]} K *//** @typedef {Parameters<Channel['set']>[1]} V *//** @type {Map<K, V> | undefined} */var $m;/** @type {Channel} */var channel={assert:function(key){if(!channel.has(key)){throw new $TypeError('Side channel does not contain '+inspect(key));}},'delete':function(key){if($m){var result=$mapDelete($m,key);if($mapSize($m)===0){$m=void undefined;}return result;}return false;},get:function(key){// eslint-disable-line consistent-return
3876
+ return channel;};},{"es-errors/type":41,"object-inspect":123}],140:[function(require,module,exports){'use strict';var GetIntrinsic=require('get-intrinsic');var callBound=require('call-bound');var inspect=require('object-inspect');var $TypeError=require('es-errors/type');var $Map=GetIntrinsic('%Map%',true);/** @type {<K, V>(thisArg: Map<K, V>, key: K) => V} */var $mapGet=callBound('Map.prototype.get',true);/** @type {<K, V>(thisArg: Map<K, V>, key: K, value: V) => void} */var $mapSet=callBound('Map.prototype.set',true);/** @type {<K, V>(thisArg: Map<K, V>, key: K) => boolean} */var $mapHas=callBound('Map.prototype.has',true);/** @type {<K, V>(thisArg: Map<K, V>, key: K) => boolean} */var $mapDelete=callBound('Map.prototype.delete',true);/** @type {<K, V>(thisArg: Map<K, V>) => number} */var $mapSize=callBound('Map.prototype.size',true);/** @type {import('.')} */module.exports=!!$Map&&/** @type {Exclude<import('.'), false>} */function getSideChannelMap(){/** @typedef {ReturnType<typeof getSideChannelMap>} Channel *//** @typedef {Parameters<Channel['get']>[0]} K *//** @typedef {Parameters<Channel['set']>[1]} V *//** @type {Map<K, V> | undefined} */var $m;/** @type {Channel} */var channel={assert:function(key){if(!channel.has(key)){throw new $TypeError('Side channel does not contain '+inspect(key));}},'delete':function(key){if($m){var result=$mapDelete($m,key);if($mapSize($m)===0){$m=void undefined;}return result;}return false;},get:function(key){// eslint-disable-line consistent-return
3795
3877
  if($m){return $mapGet($m,key);}},has:function(key){if($m){return $mapHas($m,key);}return false;},set:function(key,value){if(!$m){// @ts-expect-error TS can't handle narrowing a variable inside a closure
3796
3878
  $m=new $Map();}$mapSet($m,key,value);}};// @ts-expect-error TODO: figure out why TS is erroring here
3797
- return channel;};},{"call-bound":32,"es-errors/type":41,"get-intrinsic":64,"object-inspect":122}],140:[function(require,module,exports){'use strict';var GetIntrinsic=require('get-intrinsic');var callBound=require('call-bound');var inspect=require('object-inspect');var getSideChannelMap=require('side-channel-map');var $TypeError=require('es-errors/type');var $WeakMap=GetIntrinsic('%WeakMap%',true);/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => V} */var $weakMapGet=callBound('WeakMap.prototype.get',true);/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K, value: V) => void} */var $weakMapSet=callBound('WeakMap.prototype.set',true);/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => boolean} */var $weakMapHas=callBound('WeakMap.prototype.has',true);/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => boolean} */var $weakMapDelete=callBound('WeakMap.prototype.delete',true);/** @type {import('.')} */module.exports=$WeakMap?/** @type {Exclude<import('.'), false>} */function getSideChannelWeakMap(){/** @typedef {ReturnType<typeof getSideChannelWeakMap>} Channel *//** @typedef {Parameters<Channel['get']>[0]} K *//** @typedef {Parameters<Channel['set']>[1]} V *//** @type {WeakMap<K & object, V> | undefined} */var $wm;/** @type {Channel | undefined} */var $m;/** @type {Channel} */var channel={assert:function(key){if(!channel.has(key)){throw new $TypeError('Side channel does not contain '+inspect(key));}},'delete':function(key){if($WeakMap&&key&&(typeof key==='object'||typeof key==='function')){if($wm){return $weakMapDelete($wm,key);}}else if(getSideChannelMap){if($m){return $m['delete'](key);}}return false;},get:function(key){if($WeakMap&&key&&(typeof key==='object'||typeof key==='function')){if($wm){return $weakMapGet($wm,key);}}return $m&&$m.get(key);},has:function(key){if($WeakMap&&key&&(typeof key==='object'||typeof key==='function')){if($wm){return $weakMapHas($wm,key);}}return!!$m&&$m.has(key);},set:function(key,value){if($WeakMap&&key&&(typeof key==='object'||typeof key==='function')){if(!$wm){$wm=new $WeakMap();}$weakMapSet($wm,key,value);}else if(getSideChannelMap){if(!$m){$m=getSideChannelMap();}// eslint-disable-next-line no-extra-parens
3879
+ return channel;};},{"call-bound":32,"es-errors/type":41,"get-intrinsic":64,"object-inspect":123}],141:[function(require,module,exports){'use strict';var GetIntrinsic=require('get-intrinsic');var callBound=require('call-bound');var inspect=require('object-inspect');var getSideChannelMap=require('side-channel-map');var $TypeError=require('es-errors/type');var $WeakMap=GetIntrinsic('%WeakMap%',true);/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => V} */var $weakMapGet=callBound('WeakMap.prototype.get',true);/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K, value: V) => void} */var $weakMapSet=callBound('WeakMap.prototype.set',true);/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => boolean} */var $weakMapHas=callBound('WeakMap.prototype.has',true);/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => boolean} */var $weakMapDelete=callBound('WeakMap.prototype.delete',true);/** @type {import('.')} */module.exports=$WeakMap?/** @type {Exclude<import('.'), false>} */function getSideChannelWeakMap(){/** @typedef {ReturnType<typeof getSideChannelWeakMap>} Channel *//** @typedef {Parameters<Channel['get']>[0]} K *//** @typedef {Parameters<Channel['set']>[1]} V *//** @type {WeakMap<K & object, V> | undefined} */var $wm;/** @type {Channel | undefined} */var $m;/** @type {Channel} */var channel={assert:function(key){if(!channel.has(key)){throw new $TypeError('Side channel does not contain '+inspect(key));}},'delete':function(key){if($WeakMap&&key&&(typeof key==='object'||typeof key==='function')){if($wm){return $weakMapDelete($wm,key);}}else if(getSideChannelMap){if($m){return $m['delete'](key);}}return false;},get:function(key){if($WeakMap&&key&&(typeof key==='object'||typeof key==='function')){if($wm){return $weakMapGet($wm,key);}}return $m&&$m.get(key);},has:function(key){if($WeakMap&&key&&(typeof key==='object'||typeof key==='function')){if($wm){return $weakMapHas($wm,key);}}return!!$m&&$m.has(key);},set:function(key,value){if($WeakMap&&key&&(typeof key==='object'||typeof key==='function')){if(!$wm){$wm=new $WeakMap();}$weakMapSet($wm,key,value);}else if(getSideChannelMap){if(!$m){$m=getSideChannelMap();}// eslint-disable-next-line no-extra-parens
3798
3880
  /** @type {NonNullable<typeof $m>} */$m.set(key,value);}}};// @ts-expect-error TODO: figure out why this is erroring
3799
- return channel;}:getSideChannelMap;},{"call-bound":32,"es-errors/type":41,"get-intrinsic":64,"object-inspect":122,"side-channel-map":139}],141:[function(require,module,exports){'use strict';var $TypeError=require('es-errors/type');var inspect=require('object-inspect');var getSideChannelList=require('side-channel-list');var getSideChannelMap=require('side-channel-map');var getSideChannelWeakMap=require('side-channel-weakmap');var makeChannel=getSideChannelWeakMap||getSideChannelMap||getSideChannelList;/** @type {import('.')} */module.exports=function getSideChannel(){/** @typedef {ReturnType<typeof getSideChannel>} Channel *//** @type {Channel | undefined} */var $channelData;/** @type {Channel} */var channel={assert:function(key){if(!channel.has(key)){throw new $TypeError('Side channel does not contain '+inspect(key));}},'delete':function(key){return!!$channelData&&$channelData['delete'](key);},get:function(key){return $channelData&&$channelData.get(key);},has:function(key){return!!$channelData&&$channelData.has(key);},set:function(key,value){if(!$channelData){$channelData=makeChannel();}$channelData.set(key,value);}};// @ts-expect-error TODO: figure out why this is erroring
3800
- return channel;};},{"es-errors/type":41,"object-inspect":122,"side-channel-list":138,"side-channel-map":139,"side-channel-weakmap":140}],142:[function(require,module,exports){(function(Buffer){(function(){/*! simple-concat. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */module.exports=function(stream,cb){var chunks=[];stream.on('data',function(chunk){chunks.push(chunk);});stream.once('end',function(){if(cb)cb(null,Buffer.concat(chunks));cb=null;});stream.once('error',function(err){if(cb)cb(err);cb=null;});};}).call(this);}).call(this,require("buffer").Buffer);},{"buffer":23}],143:[function(require,module,exports){(function(Buffer){(function(){/*! simple-get. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */module.exports=simpleGet;const concat=require('simple-concat');const decompressResponse=require('decompress-response');// excluded from browser build
3881
+ return channel;}:getSideChannelMap;},{"call-bound":32,"es-errors/type":41,"get-intrinsic":64,"object-inspect":123,"side-channel-map":140}],142:[function(require,module,exports){'use strict';var $TypeError=require('es-errors/type');var inspect=require('object-inspect');var getSideChannelList=require('side-channel-list');var getSideChannelMap=require('side-channel-map');var getSideChannelWeakMap=require('side-channel-weakmap');var makeChannel=getSideChannelWeakMap||getSideChannelMap||getSideChannelList;/** @type {import('.')} */module.exports=function getSideChannel(){/** @typedef {ReturnType<typeof getSideChannel>} Channel *//** @type {Channel | undefined} */var $channelData;/** @type {Channel} */var channel={assert:function(key){if(!channel.has(key)){throw new $TypeError('Side channel does not contain '+inspect(key));}},'delete':function(key){return!!$channelData&&$channelData['delete'](key);},get:function(key){return $channelData&&$channelData.get(key);},has:function(key){return!!$channelData&&$channelData.has(key);},set:function(key,value){if(!$channelData){$channelData=makeChannel();}$channelData.set(key,value);}};// @ts-expect-error TODO: figure out why this is erroring
3882
+ return channel;};},{"es-errors/type":41,"object-inspect":123,"side-channel-list":139,"side-channel-map":140,"side-channel-weakmap":141}],143:[function(require,module,exports){(function(Buffer){(function(){/*! simple-concat. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */module.exports=function(stream,cb){var chunks=[];stream.on('data',function(chunk){chunks.push(chunk);});stream.once('end',function(){if(cb)cb(null,Buffer.concat(chunks));cb=null;});stream.once('error',function(err){if(cb)cb(err);cb=null;});};}).call(this);}).call(this,require("buffer").Buffer);},{"buffer":23}],144:[function(require,module,exports){(function(Buffer){(function(){/*! simple-get. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */module.exports=simpleGet;const concat=require('simple-concat');const decompressResponse=require('decompress-response');// excluded from browser build
3801
3883
  const http=require('http');const https=require('https');const once=require('once');const querystring=require('querystring');const url=require('url');const isStream=o=>o!==null&&typeof o==='object'&&typeof o.pipe==='function';function simpleGet(opts,cb){opts=Object.assign({maxRedirects:10},typeof opts==='string'?{url:opts}:opts);cb=once(cb);if(opts.url){const{hostname,port,protocol,auth,path}=url.parse(opts.url);// eslint-disable-line node/no-deprecated-api
3802
3884
  delete opts.url;if(!hostname&&!port&&!protocol&&!auth)opts.path=path;// Relative redirect
3803
3885
  else Object.assign(opts,{hostname,port,protocol,auth,path});// Absolute redirect
@@ -3809,7 +3891,7 @@ res.resume();// Discard response
3809
3891
  const redirectHost=url.parse(opts.url).hostname;// eslint-disable-line node/no-deprecated-api
3810
3892
  // If redirected host is different than original host, drop headers to prevent cookie leak (#73)
3811
3893
  if(redirectHost!==null&&redirectHost!==originalHost){delete opts.headers.cookie;delete opts.headers.authorization;}if(opts.method==='POST'&&[301,302].includes(res.statusCode)){opts.method='GET';// On 301/302 redirect, change POST to GET (see #35)
3812
- delete opts.headers['content-length'];delete opts.headers['content-type'];}if(opts.maxRedirects--===0)return cb(new Error('too many redirects'));else return simpleGet(opts,cb);}const tryUnzip=typeof decompressResponse==='function'&&opts.method!=='HEAD';cb(null,tryUnzip?decompressResponse(res):res);});req.on('timeout',()=>{req.abort();cb(new Error('Request timed out'));});req.on('error',cb);if(isStream(body))body.on('error',cb).pipe(req);else req.end(body);return req;}simpleGet.concat=(opts,cb)=>{return simpleGet(opts,(err,res)=>{if(err)return cb(err);concat(res,(err,data)=>{if(err)return cb(err);if(opts.json){try{data=JSON.parse(data.toString());}catch(err){return cb(err,res,data);}}cb(null,res,data);});});};['get','post','put','patch','head','delete'].forEach(method=>{simpleGet[method]=(opts,cb)=>{if(typeof opts==='string')opts={url:opts};return simpleGet(Object.assign({method:method.toUpperCase()},opts),cb);};});}).call(this);}).call(this,require("buffer").Buffer);},{"buffer":23,"decompress-response":21,"http":159,"https":75,"once":123,"querystring":134,"simple-concat":142,"url":182}],144:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.
3894
+ delete opts.headers['content-length'];delete opts.headers['content-type'];}if(opts.maxRedirects--===0)return cb(new Error('too many redirects'));else return simpleGet(opts,cb);}const tryUnzip=typeof decompressResponse==='function'&&opts.method!=='HEAD';cb(null,tryUnzip?decompressResponse(res):res);});req.on('timeout',()=>{req.abort();cb(new Error('Request timed out'));});req.on('error',cb);if(isStream(body))body.on('error',cb).pipe(req);else req.end(body);return req;}simpleGet.concat=(opts,cb)=>{return simpleGet(opts,(err,res)=>{if(err)return cb(err);concat(res,(err,data)=>{if(err)return cb(err);if(opts.json){try{data=JSON.parse(data.toString());}catch(err){return cb(err,res,data);}}cb(null,res,data);});});};['get','post','put','patch','head','delete'].forEach(method=>{simpleGet[method]=(opts,cb)=>{if(typeof opts==='string')opts={url:opts};return simpleGet(Object.assign({method:method.toUpperCase()},opts),cb);};});}).call(this);}).call(this,require("buffer").Buffer);},{"buffer":23,"decompress-response":21,"http":160,"https":75,"once":124,"querystring":135,"simple-concat":143,"url":183}],145:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.
3813
3895
  //
3814
3896
  // Permission is hereby granted, free of charge, to any person obtaining a
3815
3897
  // copy of this software and associated documentation files (the
@@ -3838,13 +3920,13 @@ if(!dest._isStdio&&(!options||options.end!==false)){source.on('end',onend);sourc
3838
3920
  function onerror(er){cleanup();if(EE.listenerCount(this,'error')===0){throw er;// Unhandled stream error in pipe.
3839
3921
  }}source.on('error',onerror);dest.on('error',onerror);// remove all the event listeners that were added.
3840
3922
  function cleanup(){source.removeListener('data',ondata);dest.removeListener('drain',ondrain);source.removeListener('end',onend);source.removeListener('close',onclose);source.removeListener('error',onerror);dest.removeListener('error',onerror);source.removeListener('end',cleanup);source.removeListener('close',cleanup);dest.removeListener('close',cleanup);}source.on('end',cleanup);source.on('close',cleanup);dest.on('close',cleanup);dest.emit('pipe',source);// Allow for unix-like usage: A.pipe(B).pipe(C)
3841
- return dest;};},{"events":44,"inherits":77,"readable-stream/lib/_stream_duplex.js":146,"readable-stream/lib/_stream_passthrough.js":147,"readable-stream/lib/_stream_readable.js":148,"readable-stream/lib/_stream_transform.js":149,"readable-stream/lib/_stream_writable.js":150,"readable-stream/lib/internal/streams/end-of-stream.js":154,"readable-stream/lib/internal/streams/pipeline.js":156}],145:[function(require,module,exports){'use strict';function _inheritsLoose(subClass,superClass){subClass.prototype=Object.create(superClass.prototype);subClass.prototype.constructor=subClass;subClass.__proto__=superClass;}var codes={};function createErrorType(code,message,Base){if(!Base){Base=Error;}function getMessage(arg1,arg2,arg3){if(typeof message==='string'){return message;}else{return message(arg1,arg2,arg3);}}var NodeError=/*#__PURE__*/function(_Base){_inheritsLoose(NodeError,_Base);function NodeError(arg1,arg2,arg3){return _Base.call(this,getMessage(arg1,arg2,arg3))||this;}return NodeError;}(Base);NodeError.prototype.name=Base.name;NodeError.prototype.code=code;codes[code]=NodeError;}// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js
3923
+ return dest;};},{"events":44,"inherits":77,"readable-stream/lib/_stream_duplex.js":147,"readable-stream/lib/_stream_passthrough.js":148,"readable-stream/lib/_stream_readable.js":149,"readable-stream/lib/_stream_transform.js":150,"readable-stream/lib/_stream_writable.js":151,"readable-stream/lib/internal/streams/end-of-stream.js":155,"readable-stream/lib/internal/streams/pipeline.js":157}],146:[function(require,module,exports){'use strict';function _inheritsLoose(subClass,superClass){subClass.prototype=Object.create(superClass.prototype);subClass.prototype.constructor=subClass;subClass.__proto__=superClass;}var codes={};function createErrorType(code,message,Base){if(!Base){Base=Error;}function getMessage(arg1,arg2,arg3){if(typeof message==='string'){return message;}else{return message(arg1,arg2,arg3);}}var NodeError=/*#__PURE__*/function(_Base){_inheritsLoose(NodeError,_Base);function NodeError(arg1,arg2,arg3){return _Base.call(this,getMessage(arg1,arg2,arg3))||this;}return NodeError;}(Base);NodeError.prototype.name=Base.name;NodeError.prototype.code=code;codes[code]=NodeError;}// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js
3842
3924
  function oneOf(expected,thing){if(Array.isArray(expected)){var len=expected.length;expected=expected.map(function(i){return String(i);});if(len>2){return"one of ".concat(thing," ").concat(expected.slice(0,len-1).join(', '),", or ")+expected[len-1];}else if(len===2){return"one of ".concat(thing," ").concat(expected[0]," or ").concat(expected[1]);}else{return"of ".concat(thing," ").concat(expected[0]);}}else{return"of ".concat(thing," ").concat(String(expected));}}// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith
3843
3925
  function startsWith(str,search,pos){return str.substr(!pos||pos<0?0:+pos,search.length)===search;}// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith
3844
3926
  function endsWith(str,search,this_len){if(this_len===undefined||this_len>str.length){this_len=str.length;}return str.substring(this_len-search.length,this_len)===search;}// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes
3845
3927
  function includes(str,search,start){if(typeof start!=='number'){start=0;}if(start+search.length>str.length){return false;}else{return str.indexOf(search,start)!==-1;}}createErrorType('ERR_INVALID_OPT_VALUE',function(name,value){return'The value "'+value+'" is invalid for option "'+name+'"';},TypeError);createErrorType('ERR_INVALID_ARG_TYPE',function(name,expected,actual){// determiner: 'must be' or 'must not be'
3846
3928
  var determiner;if(typeof expected==='string'&&startsWith(expected,'not ')){determiner='must not be';expected=expected.replace(/^not /,'');}else{determiner='must be';}var msg;if(endsWith(name,' argument')){// For cases like 'first argument'
3847
- msg="The ".concat(name," ").concat(determiner," ").concat(oneOf(expected,'type'));}else{var type=includes(name,'.')?'property':'argument';msg="The \"".concat(name,"\" ").concat(type," ").concat(determiner," ").concat(oneOf(expected,'type'));}msg+=". Received type ".concat(typeof actual);return msg;},TypeError);createErrorType('ERR_STREAM_PUSH_AFTER_EOF','stream.push() after EOF');createErrorType('ERR_METHOD_NOT_IMPLEMENTED',function(name){return'The '+name+' method is not implemented';});createErrorType('ERR_STREAM_PREMATURE_CLOSE','Premature close');createErrorType('ERR_STREAM_DESTROYED',function(name){return'Cannot call '+name+' after a stream was destroyed';});createErrorType('ERR_MULTIPLE_CALLBACK','Callback called multiple times');createErrorType('ERR_STREAM_CANNOT_PIPE','Cannot pipe, not readable');createErrorType('ERR_STREAM_WRITE_AFTER_END','write after end');createErrorType('ERR_STREAM_NULL_VALUES','May not write null values to stream',TypeError);createErrorType('ERR_UNKNOWN_ENCODING',function(arg){return'Unknown encoding: '+arg;},TypeError);createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT','stream.unshift() after end event');module.exports.codes=codes;},{}],146:[function(require,module,exports){(function(process){(function(){// Copyright Joyent, Inc. and other Node contributors.
3929
+ msg="The ".concat(name," ").concat(determiner," ").concat(oneOf(expected,'type'));}else{var type=includes(name,'.')?'property':'argument';msg="The \"".concat(name,"\" ").concat(type," ").concat(determiner," ").concat(oneOf(expected,'type'));}msg+=". Received type ".concat(typeof actual);return msg;},TypeError);createErrorType('ERR_STREAM_PUSH_AFTER_EOF','stream.push() after EOF');createErrorType('ERR_METHOD_NOT_IMPLEMENTED',function(name){return'The '+name+' method is not implemented';});createErrorType('ERR_STREAM_PREMATURE_CLOSE','Premature close');createErrorType('ERR_STREAM_DESTROYED',function(name){return'Cannot call '+name+' after a stream was destroyed';});createErrorType('ERR_MULTIPLE_CALLBACK','Callback called multiple times');createErrorType('ERR_STREAM_CANNOT_PIPE','Cannot pipe, not readable');createErrorType('ERR_STREAM_WRITE_AFTER_END','write after end');createErrorType('ERR_STREAM_NULL_VALUES','May not write null values to stream',TypeError);createErrorType('ERR_UNKNOWN_ENCODING',function(arg){return'Unknown encoding: '+arg;},TypeError);createErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT','stream.unshift() after end event');module.exports.codes=codes;},{}],147:[function(require,module,exports){(function(process){(function(){// Copyright Joyent, Inc. and other Node contributors.
3848
3930
  //
3849
3931
  // Permission is hereby granted, free of charge, to any person obtaining a
3850
3932
  // copy of this software and associated documentation files (the
@@ -3889,7 +3971,7 @@ enumerable:false,get:function get(){if(this._readableState===undefined||this._wr
3889
3971
  // has not been initialized yet
3890
3972
  if(this._readableState===undefined||this._writableState===undefined){return;}// backward compatibility, the user is explicitly
3891
3973
  // managing destroyed
3892
- this._readableState.destroyed=value;this._writableState.destroyed=value;}});}).call(this);}).call(this,require('_process'));},{"./_stream_readable":148,"./_stream_writable":150,"_process":125,"inherits":77}],147:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.
3974
+ this._readableState.destroyed=value;this._writableState.destroyed=value;}});}).call(this);}).call(this,require('_process'));},{"./_stream_readable":149,"./_stream_writable":151,"_process":126,"inherits":77}],148:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.
3893
3975
  //
3894
3976
  // Permission is hereby granted, free of charge, to any person obtaining a
3895
3977
  // copy of this software and associated documentation files (the
@@ -3912,7 +3994,7 @@ this._readableState.destroyed=value;this._writableState.destroyed=value;}});}).c
3912
3994
  // a passthrough stream.
3913
3995
  // basically just the most minimal sort of Transform stream.
3914
3996
  // Every written chunk gets output as-is.
3915
- 'use strict';module.exports=PassThrough;var Transform=require('./_stream_transform');require('inherits')(PassThrough,Transform);function PassThrough(options){if(!(this instanceof PassThrough))return new PassThrough(options);Transform.call(this,options);}PassThrough.prototype._transform=function(chunk,encoding,cb){cb(null,chunk);};},{"./_stream_transform":149,"inherits":77}],148:[function(require,module,exports){(function(process,global){(function(){// Copyright Joyent, Inc. and other Node contributors.
3997
+ 'use strict';module.exports=PassThrough;var Transform=require('./_stream_transform');require('inherits')(PassThrough,Transform);function PassThrough(options){if(!(this instanceof PassThrough))return new PassThrough(options);Transform.call(this,options);}PassThrough.prototype._transform=function(chunk,encoding,cb){cb(null,chunk);};},{"./_stream_transform":150,"inherits":77}],149:[function(require,module,exports){(function(process,global){(function(){// Copyright Joyent, Inc. and other Node contributors.
3916
3998
  //
3917
3999
  // Permission is hereby granted, free of charge, to any person obtaining a
3918
4000
  // copy of this software and associated documentation files (the
@@ -4164,7 +4246,7 @@ if(state.decoder)ret=state.buffer.join('');else if(state.buffer.length===1)ret=s
4164
4246
  ret=state.buffer.consume(n,state.decoder);}return ret;}function endReadable(stream){var state=stream._readableState;debug('endReadable',state.endEmitted);if(!state.endEmitted){state.ended=true;process.nextTick(endReadableNT,state,stream);}}function endReadableNT(state,stream){debug('endReadableNT',state.endEmitted,state.length);// Check that we didn't get one last unshift.
4165
4247
  if(!state.endEmitted&&state.length===0){state.endEmitted=true;stream.readable=false;stream.emit('end');if(state.autoDestroy){// In case of duplex streams we need a way to detect
4166
4248
  // if the writable side is ready for autoDestroy as well
4167
- var wState=stream._writableState;if(!wState||wState.autoDestroy&&wState.finished){stream.destroy();}}}}if(typeof Symbol==='function'){Readable.from=function(iterable,opts){if(from===undefined){from=require('./internal/streams/from');}return from(Readable,iterable,opts);};}function indexOf(xs,x){for(var i=0,l=xs.length;i<l;i++){if(xs[i]===x)return i;}return-1;}}).call(this);}).call(this,require('_process'),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{"../errors":145,"./_stream_duplex":146,"./internal/streams/async_iterator":151,"./internal/streams/buffer_list":152,"./internal/streams/destroy":153,"./internal/streams/from":155,"./internal/streams/state":157,"./internal/streams/stream":158,"_process":125,"buffer":23,"events":44,"inherits":77,"string_decoder/":178,"util":21}],149:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.
4249
+ var wState=stream._writableState;if(!wState||wState.autoDestroy&&wState.finished){stream.destroy();}}}}if(typeof Symbol==='function'){Readable.from=function(iterable,opts){if(from===undefined){from=require('./internal/streams/from');}return from(Readable,iterable,opts);};}function indexOf(xs,x){for(var i=0,l=xs.length;i<l;i++){if(xs[i]===x)return i;}return-1;}}).call(this);}).call(this,require('_process'),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{"../errors":146,"./_stream_duplex":147,"./internal/streams/async_iterator":152,"./internal/streams/buffer_list":153,"./internal/streams/destroy":154,"./internal/streams/from":156,"./internal/streams/state":158,"./internal/streams/stream":159,"_process":126,"buffer":23,"events":44,"inherits":77,"string_decoder/":179,"util":21}],150:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.
4168
4250
  //
4169
4251
  // Permission is hereby granted, free of charge, to any person obtaining a
4170
4252
  // copy of this software and associated documentation files (the
@@ -4250,7 +4332,7 @@ ts.needTransform=true;}};Transform.prototype._destroy=function(err,cb){Duplex.pr
4250
4332
  stream.push(data);// TODO(BridgeAR): Write a test for these two error cases
4251
4333
  // if there's nothing in the write buffer, then that means
4252
4334
  // that nothing more will ever be provided
4253
- if(stream._writableState.length)throw new ERR_TRANSFORM_WITH_LENGTH_0();if(stream._transformState.transforming)throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();return stream.push(null);}},{"../errors":145,"./_stream_duplex":146,"inherits":77}],150:[function(require,module,exports){(function(process,global){(function(){// Copyright Joyent, Inc. and other Node contributors.
4335
+ if(stream._writableState.length)throw new ERR_TRANSFORM_WITH_LENGTH_0();if(stream._transformState.transforming)throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();return stream.push(null);}},{"../errors":146,"./_stream_duplex":147,"inherits":77}],151:[function(require,module,exports){(function(process,global){(function(){// Copyright Joyent, Inc. and other Node contributors.
4254
4336
  //
4255
4337
  // Permission is hereby granted, free of charge, to any person obtaining a
4256
4338
  // copy of this software and associated documentation files (the
@@ -4385,7 +4467,7 @@ enumerable:false,get:function get(){if(this._writableState===undefined){return f
4385
4467
  // has not been initialized yet
4386
4468
  if(!this._writableState){return;}// backward compatibility, the user is explicitly
4387
4469
  // managing destroyed
4388
- this._writableState.destroyed=value;}});Writable.prototype.destroy=destroyImpl.destroy;Writable.prototype._undestroy=destroyImpl.undestroy;Writable.prototype._destroy=function(err,cb){cb(err);};}).call(this);}).call(this,require('_process'),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{"../errors":145,"./_stream_duplex":146,"./internal/streams/destroy":153,"./internal/streams/state":157,"./internal/streams/stream":158,"_process":125,"buffer":23,"inherits":77,"util-deprecate":183}],151:[function(require,module,exports){(function(process){(function(){'use strict';var _Object$setPrototypeO;function _defineProperty(obj,key,value){key=_toPropertyKey(key);if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _toPropertyKey(arg){var key=_toPrimitive(arg,"string");return typeof key==="symbol"?key:String(key);}function _toPrimitive(input,hint){if(typeof input!=="object"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==undefined){var res=prim.call(input,hint||"default");if(typeof res!=="object")return res;throw new TypeError("@@toPrimitive must return a primitive value.");}return(hint==="string"?String:Number)(input);}var finished=require('./end-of-stream');var kLastResolve=Symbol('lastResolve');var kLastReject=Symbol('lastReject');var kError=Symbol('error');var kEnded=Symbol('ended');var kLastPromise=Symbol('lastPromise');var kHandlePromise=Symbol('handlePromise');var kStream=Symbol('stream');function createIterResult(value,done){return{value:value,done:done};}function readAndResolve(iter){var resolve=iter[kLastResolve];if(resolve!==null){var data=iter[kStream].read();// we defer if data is null
4470
+ this._writableState.destroyed=value;}});Writable.prototype.destroy=destroyImpl.destroy;Writable.prototype._undestroy=destroyImpl.undestroy;Writable.prototype._destroy=function(err,cb){cb(err);};}).call(this);}).call(this,require('_process'),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{"../errors":146,"./_stream_duplex":147,"./internal/streams/destroy":154,"./internal/streams/state":158,"./internal/streams/stream":159,"_process":126,"buffer":23,"inherits":77,"util-deprecate":184}],152:[function(require,module,exports){(function(process){(function(){'use strict';var _Object$setPrototypeO;function _defineProperty(obj,key,value){key=_toPropertyKey(key);if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _toPropertyKey(arg){var key=_toPrimitive(arg,"string");return typeof key==="symbol"?key:String(key);}function _toPrimitive(input,hint){if(typeof input!=="object"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==undefined){var res=prim.call(input,hint||"default");if(typeof res!=="object")return res;throw new TypeError("@@toPrimitive must return a primitive value.");}return(hint==="string"?String:Number)(input);}var finished=require('./end-of-stream');var kLastResolve=Symbol('lastResolve');var kLastReject=Symbol('lastReject');var kError=Symbol('error');var kEnded=Symbol('ended');var kLastPromise=Symbol('lastPromise');var kHandlePromise=Symbol('handlePromise');var kStream=Symbol('stream');function createIterResult(value,done){return{value:value,done:done};}function readAndResolve(iter){var resolve=iter[kLastResolve];if(resolve!==null){var data=iter[kStream].read();// we defer if data is null
4389
4471
  // we can be expecting either 'end' or
4390
4472
  // 'error'
4391
4473
  if(data!==null){iter[kLastPromise]=null;iter[kLastResolve]=null;iter[kLastReject]=null;resolve(createIterResult(data,false));}}}function onReadable(iter){// we wait for the next tick, because it might
@@ -4407,7 +4489,7 @@ var data=this[kStream].read();if(data!==null){return Promise.resolve(createIterR
4407
4489
  // Readable class this is attached to
4408
4490
  return new Promise(function(resolve,reject){_this2[kStream].destroy(null,function(err){if(err){reject(err);return;}resolve(createIterResult(undefined,true));});});}),_Object$setPrototypeO),AsyncIteratorPrototype);var createReadableStreamAsyncIterator=function createReadableStreamAsyncIterator(stream){var _Object$create;var iterator=Object.create(ReadableStreamAsyncIteratorPrototype,(_Object$create={},_defineProperty(_Object$create,kStream,{value:stream,writable:true}),_defineProperty(_Object$create,kLastResolve,{value:null,writable:true}),_defineProperty(_Object$create,kLastReject,{value:null,writable:true}),_defineProperty(_Object$create,kError,{value:null,writable:true}),_defineProperty(_Object$create,kEnded,{value:stream._readableState.endEmitted,writable:true}),_defineProperty(_Object$create,kHandlePromise,{value:function value(resolve,reject){var data=iterator[kStream].read();if(data){iterator[kLastPromise]=null;iterator[kLastResolve]=null;iterator[kLastReject]=null;resolve(createIterResult(data,false));}else{iterator[kLastResolve]=resolve;iterator[kLastReject]=reject;}},writable:true}),_Object$create));iterator[kLastPromise]=null;finished(stream,function(err){if(err&&err.code!=='ERR_STREAM_PREMATURE_CLOSE'){var reject=iterator[kLastReject];// reject if we are waiting for data in the Promise
4409
4491
  // returned by next() and store the error
4410
- if(reject!==null){iterator[kLastPromise]=null;iterator[kLastResolve]=null;iterator[kLastReject]=null;reject(err);}iterator[kError]=err;return;}var resolve=iterator[kLastResolve];if(resolve!==null){iterator[kLastPromise]=null;iterator[kLastResolve]=null;iterator[kLastReject]=null;resolve(createIterResult(undefined,true));}iterator[kEnded]=true;});stream.on('readable',onReadable.bind(null,iterator));return iterator;};module.exports=createReadableStreamAsyncIterator;}).call(this);}).call(this,require('_process'));},{"./end-of-stream":154,"_process":125}],152:[function(require,module,exports){'use strict';function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;})),keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}return target;}function _defineProperty(obj,key,value){key=_toPropertyKey(key);if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,_toPropertyKey(descriptor.key),descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);Object.defineProperty(Constructor,"prototype",{writable:false});return Constructor;}function _toPropertyKey(arg){var key=_toPrimitive(arg,"string");return typeof key==="symbol"?key:String(key);}function _toPrimitive(input,hint){if(typeof input!=="object"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==undefined){var res=prim.call(input,hint||"default");if(typeof res!=="object")return res;throw new TypeError("@@toPrimitive must return a primitive value.");}return(hint==="string"?String:Number)(input);}var _require=require('buffer'),Buffer=_require.Buffer;var _require2=require('util'),inspect=_require2.inspect;var custom=inspect&&inspect.custom||'inspect';function copyBuffer(src,target,offset){Buffer.prototype.copy.call(src,target,offset);}module.exports=/*#__PURE__*/function(){function BufferList(){_classCallCheck(this,BufferList);this.head=null;this.tail=null;this.length=0;}_createClass(BufferList,[{key:"push",value:function push(v){var entry={data:v,next:null};if(this.length>0)this.tail.next=entry;else this.head=entry;this.tail=entry;++this.length;}},{key:"unshift",value:function unshift(v){var entry={data:v,next:this.head};if(this.length===0)this.tail=entry;this.head=entry;++this.length;}},{key:"shift",value:function shift(){if(this.length===0)return;var ret=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;--this.length;return ret;}},{key:"clear",value:function clear(){this.head=this.tail=null;this.length=0;}},{key:"join",value:function join(s){if(this.length===0)return'';var p=this.head;var ret=''+p.data;while(p=p.next)ret+=s+p.data;return ret;}},{key:"concat",value:function concat(n){if(this.length===0)return Buffer.alloc(0);var ret=Buffer.allocUnsafe(n>>>0);var p=this.head;var i=0;while(p){copyBuffer(p.data,ret,i);i+=p.data.length;p=p.next;}return ret;}// Consumes a specified amount of bytes or characters from the buffered data.
4492
+ if(reject!==null){iterator[kLastPromise]=null;iterator[kLastResolve]=null;iterator[kLastReject]=null;reject(err);}iterator[kError]=err;return;}var resolve=iterator[kLastResolve];if(resolve!==null){iterator[kLastPromise]=null;iterator[kLastResolve]=null;iterator[kLastReject]=null;resolve(createIterResult(undefined,true));}iterator[kEnded]=true;});stream.on('readable',onReadable.bind(null,iterator));return iterator;};module.exports=createReadableStreamAsyncIterator;}).call(this);}).call(this,require('_process'));},{"./end-of-stream":155,"_process":126}],153:[function(require,module,exports){'use strict';function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;})),keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}return target;}function _defineProperty(obj,key,value){key=_toPropertyKey(key);if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,_toPropertyKey(descriptor.key),descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);Object.defineProperty(Constructor,"prototype",{writable:false});return Constructor;}function _toPropertyKey(arg){var key=_toPrimitive(arg,"string");return typeof key==="symbol"?key:String(key);}function _toPrimitive(input,hint){if(typeof input!=="object"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==undefined){var res=prim.call(input,hint||"default");if(typeof res!=="object")return res;throw new TypeError("@@toPrimitive must return a primitive value.");}return(hint==="string"?String:Number)(input);}var _require=require('buffer'),Buffer=_require.Buffer;var _require2=require('util'),inspect=_require2.inspect;var custom=inspect&&inspect.custom||'inspect';function copyBuffer(src,target,offset){Buffer.prototype.copy.call(src,target,offset);}module.exports=/*#__PURE__*/function(){function BufferList(){_classCallCheck(this,BufferList);this.head=null;this.tail=null;this.length=0;}_createClass(BufferList,[{key:"push",value:function push(v){var entry={data:v,next:null};if(this.length>0)this.tail.next=entry;else this.head=entry;this.tail=entry;++this.length;}},{key:"unshift",value:function unshift(v){var entry={data:v,next:this.head};if(this.length===0)this.tail=entry;this.head=entry;++this.length;}},{key:"shift",value:function shift(){if(this.length===0)return;var ret=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;--this.length;return ret;}},{key:"clear",value:function clear(){this.head=this.tail=null;this.length=0;}},{key:"join",value:function join(s){if(this.length===0)return'';var p=this.head;var ret=''+p.data;while(p=p.next)ret+=s+p.data;return ret;}},{key:"concat",value:function concat(n){if(this.length===0)return Buffer.alloc(0);var ret=Buffer.allocUnsafe(n>>>0);var p=this.head;var i=0;while(p){copyBuffer(p.data,ret,i);i+=p.data.length;p=p.next;}return ret;}// Consumes a specified amount of bytes or characters from the buffered data.
4411
4493
  },{key:"consume",value:function consume(n,hasStrings){var ret;if(n<this.head.data.length){// `slice` is the same for buffers and strings.
4412
4494
  ret=this.head.data.slice(0,n);this.head.data=this.head.data.slice(n);}else if(n===this.head.data.length){// First chunk is a perfect match.
4413
4495
  ret=this.shift();}else{// Result spans more than one buffer.
@@ -4416,7 +4498,7 @@ ret=hasStrings?this._getString(n):this._getBuffer(n);}return ret;}},{key:"first"
4416
4498
  },{key:"_getBuffer",value:function _getBuffer(n){var ret=Buffer.allocUnsafe(n);var p=this.head;var c=1;p.data.copy(ret);n-=p.data.length;while(p=p.next){var buf=p.data;var nb=n>buf.length?buf.length:n;buf.copy(ret,ret.length-n,0,nb);n-=nb;if(n===0){if(nb===buf.length){++c;if(p.next)this.head=p.next;else this.head=this.tail=null;}else{this.head=p;p.data=buf.slice(nb);}break;}++c;}this.length-=c;return ret;}// Make sure the linked list only shows the minimal necessary information.
4417
4499
  },{key:custom,value:function value(_,options){return inspect(this,_objectSpread(_objectSpread({},options),{},{// Only inspect one level.
4418
4500
  depth:0,// It should not recurse.
4419
- customInspect:false}));}}]);return BufferList;}();},{"buffer":23,"util":21}],153:[function(require,module,exports){(function(process){(function(){'use strict';// undocumented cb() API, needed for core, not for public API
4501
+ customInspect:false}));}}]);return BufferList;}();},{"buffer":23,"util":21}],154:[function(require,module,exports){(function(process){(function(){'use strict';// undocumented cb() API, needed for core, not for public API
4420
4502
  function destroy(err,cb){var _this=this;var readableDestroyed=this._readableState&&this._readableState.destroyed;var writableDestroyed=this._writableState&&this._writableState.destroyed;if(readableDestroyed||writableDestroyed){if(cb){cb(err);}else if(err){if(!this._writableState){process.nextTick(emitErrorNT,this,err);}else if(!this._writableState.errorEmitted){this._writableState.errorEmitted=true;process.nextTick(emitErrorNT,this,err);}}return this;}// we set destroyed to true before firing error callbacks in order
4421
4503
  // to make it re-entrance safe in case destroy() is called within callbacks
4422
4504
  if(this._readableState){this._readableState.destroyed=true;}// if this is a duplex stream mark the writable part as destroyed as well
@@ -4425,21 +4507,21 @@ if(this._writableState){this._writableState.destroyed=true;}this._destroy(err||n
4425
4507
  // For now when you opt-in to autoDestroy we allow
4426
4508
  // the error to be emitted nextTick. In a future
4427
4509
  // semver major update we should change the default to this.
4428
- var rState=stream._readableState;var wState=stream._writableState;if(rState&&rState.autoDestroy||wState&&wState.autoDestroy)stream.destroy(err);else stream.emit('error',err);}module.exports={destroy:destroy,undestroy:undestroy,errorOrDestroy:errorOrDestroy};}).call(this);}).call(this,require('_process'));},{"_process":125}],154:[function(require,module,exports){// Ported from https://github.com/mafintosh/end-of-stream with
4510
+ var rState=stream._readableState;var wState=stream._writableState;if(rState&&rState.autoDestroy||wState&&wState.autoDestroy)stream.destroy(err);else stream.emit('error',err);}module.exports={destroy:destroy,undestroy:undestroy,errorOrDestroy:errorOrDestroy};}).call(this);}).call(this,require('_process'));},{"_process":126}],155:[function(require,module,exports){// Ported from https://github.com/mafintosh/end-of-stream with
4429
4511
  // permission from the author, Mathias Buus (@mafintosh).
4430
4512
  'use strict';var ERR_STREAM_PREMATURE_CLOSE=require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;function once(callback){var called=false;return function(){if(called)return;called=true;for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}callback.apply(this,args);};}function noop(){}function isRequest(stream){return stream.setHeader&&typeof stream.abort==='function';}function eos(stream,opts,callback){if(typeof opts==='function')return eos(stream,null,opts);if(!opts)opts={};callback=once(callback||noop);var readable=opts.readable||opts.readable!==false&&stream.readable;var writable=opts.writable||opts.writable!==false&&stream.writable;var onlegacyfinish=function onlegacyfinish(){if(!stream.writable)onfinish();};var writableEnded=stream._writableState&&stream._writableState.finished;var onfinish=function onfinish(){writable=false;writableEnded=true;if(!readable)callback.call(stream);};var readableEnded=stream._readableState&&stream._readableState.endEmitted;var onend=function onend(){readable=false;readableEnded=true;if(!writable)callback.call(stream);};var onerror=function onerror(err){callback.call(stream,err);};var onclose=function onclose(){var err;if(readable&&!readableEnded){if(!stream._readableState||!stream._readableState.ended)err=new ERR_STREAM_PREMATURE_CLOSE();return callback.call(stream,err);}if(writable&&!writableEnded){if(!stream._writableState||!stream._writableState.ended)err=new ERR_STREAM_PREMATURE_CLOSE();return callback.call(stream,err);}};var onrequest=function onrequest(){stream.req.on('finish',onfinish);};if(isRequest(stream)){stream.on('complete',onfinish);stream.on('abort',onclose);if(stream.req)onrequest();else stream.on('request',onrequest);}else if(writable&&!stream._writableState){// legacy streams
4431
- stream.on('end',onlegacyfinish);stream.on('close',onlegacyfinish);}stream.on('end',onend);stream.on('finish',onfinish);if(opts.error!==false)stream.on('error',onerror);stream.on('close',onclose);return function(){stream.removeListener('complete',onfinish);stream.removeListener('abort',onclose);stream.removeListener('request',onrequest);if(stream.req)stream.req.removeListener('finish',onfinish);stream.removeListener('end',onlegacyfinish);stream.removeListener('close',onlegacyfinish);stream.removeListener('finish',onfinish);stream.removeListener('end',onend);stream.removeListener('error',onerror);stream.removeListener('close',onclose);};}module.exports=eos;},{"../../../errors":145}],155:[function(require,module,exports){module.exports=function(){throw new Error('Readable.from is not available in the browser');};},{}],156:[function(require,module,exports){// Ported from https://github.com/mafintosh/pump with
4513
+ stream.on('end',onlegacyfinish);stream.on('close',onlegacyfinish);}stream.on('end',onend);stream.on('finish',onfinish);if(opts.error!==false)stream.on('error',onerror);stream.on('close',onclose);return function(){stream.removeListener('complete',onfinish);stream.removeListener('abort',onclose);stream.removeListener('request',onrequest);if(stream.req)stream.req.removeListener('finish',onfinish);stream.removeListener('end',onlegacyfinish);stream.removeListener('close',onlegacyfinish);stream.removeListener('finish',onfinish);stream.removeListener('end',onend);stream.removeListener('error',onerror);stream.removeListener('close',onclose);};}module.exports=eos;},{"../../../errors":146}],156:[function(require,module,exports){module.exports=function(){throw new Error('Readable.from is not available in the browser');};},{}],157:[function(require,module,exports){// Ported from https://github.com/mafintosh/pump with
4432
4514
  // permission from the author, Mathias Buus (@mafintosh).
4433
4515
  'use strict';var eos;function once(callback){var called=false;return function(){if(called)return;called=true;callback.apply(void 0,arguments);};}var _require$codes=require('../../../errors').codes,ERR_MISSING_ARGS=_require$codes.ERR_MISSING_ARGS,ERR_STREAM_DESTROYED=_require$codes.ERR_STREAM_DESTROYED;function noop(err){// Rethrow the error if it exists to avoid swallowing it
4434
4516
  if(err)throw err;}function isRequest(stream){return stream.setHeader&&typeof stream.abort==='function';}function destroyer(stream,reading,writing,callback){callback=once(callback);var closed=false;stream.on('close',function(){closed=true;});if(eos===undefined)eos=require('./end-of-stream');eos(stream,{readable:reading,writable:writing},function(err){if(err)return callback(err);closed=true;callback();});var destroyed=false;return function(err){if(closed)return;if(destroyed)return;destroyed=true;// request.destroy just do .end - .abort is what we want
4435
- if(isRequest(stream))return stream.abort();if(typeof stream.destroy==='function')return stream.destroy();callback(err||new ERR_STREAM_DESTROYED('pipe'));};}function call(fn){fn();}function pipe(from,to){return from.pipe(to);}function popCallback(streams){if(!streams.length)return noop;if(typeof streams[streams.length-1]!=='function')return noop;return streams.pop();}function pipeline(){for(var _len=arguments.length,streams=new Array(_len),_key=0;_key<_len;_key++){streams[_key]=arguments[_key];}var callback=popCallback(streams);if(Array.isArray(streams[0]))streams=streams[0];if(streams.length<2){throw new ERR_MISSING_ARGS('streams');}var error;var destroys=streams.map(function(stream,i){var reading=i<streams.length-1;var writing=i>0;return destroyer(stream,reading,writing,function(err){if(!error)error=err;if(err)destroys.forEach(call);if(reading)return;destroys.forEach(call);callback(error);});});return streams.reduce(pipe);}module.exports=pipeline;},{"../../../errors":145,"./end-of-stream":154}],157:[function(require,module,exports){'use strict';var ERR_INVALID_OPT_VALUE=require('../../../errors').codes.ERR_INVALID_OPT_VALUE;function highWaterMarkFrom(options,isDuplex,duplexKey){return options.highWaterMark!=null?options.highWaterMark:isDuplex?options[duplexKey]:null;}function getHighWaterMark(state,options,duplexKey,isDuplex){var hwm=highWaterMarkFrom(options,isDuplex,duplexKey);if(hwm!=null){if(!(isFinite(hwm)&&Math.floor(hwm)===hwm)||hwm<0){var name=isDuplex?duplexKey:'highWaterMark';throw new ERR_INVALID_OPT_VALUE(name,hwm);}return Math.floor(hwm);}// Default value
4436
- return state.objectMode?16:16*1024;}module.exports={getHighWaterMark:getHighWaterMark};},{"../../../errors":145}],158:[function(require,module,exports){module.exports=require('events').EventEmitter;},{"events":44}],159:[function(require,module,exports){(function(global){(function(){var ClientRequest=require('./lib/request');var response=require('./lib/response');var extend=require('xtend');var statusCodes=require('builtin-status-codes');var url=require('url');var http=exports;http.request=function(opts,cb){if(typeof opts==='string')opts=url.parse(opts);else opts=extend(opts);// Normally, the page is loaded from http or https, so not specifying a protocol
4517
+ if(isRequest(stream))return stream.abort();if(typeof stream.destroy==='function')return stream.destroy();callback(err||new ERR_STREAM_DESTROYED('pipe'));};}function call(fn){fn();}function pipe(from,to){return from.pipe(to);}function popCallback(streams){if(!streams.length)return noop;if(typeof streams[streams.length-1]!=='function')return noop;return streams.pop();}function pipeline(){for(var _len=arguments.length,streams=new Array(_len),_key=0;_key<_len;_key++){streams[_key]=arguments[_key];}var callback=popCallback(streams);if(Array.isArray(streams[0]))streams=streams[0];if(streams.length<2){throw new ERR_MISSING_ARGS('streams');}var error;var destroys=streams.map(function(stream,i){var reading=i<streams.length-1;var writing=i>0;return destroyer(stream,reading,writing,function(err){if(!error)error=err;if(err)destroys.forEach(call);if(reading)return;destroys.forEach(call);callback(error);});});return streams.reduce(pipe);}module.exports=pipeline;},{"../../../errors":146,"./end-of-stream":155}],158:[function(require,module,exports){'use strict';var ERR_INVALID_OPT_VALUE=require('../../../errors').codes.ERR_INVALID_OPT_VALUE;function highWaterMarkFrom(options,isDuplex,duplexKey){return options.highWaterMark!=null?options.highWaterMark:isDuplex?options[duplexKey]:null;}function getHighWaterMark(state,options,duplexKey,isDuplex){var hwm=highWaterMarkFrom(options,isDuplex,duplexKey);if(hwm!=null){if(!(isFinite(hwm)&&Math.floor(hwm)===hwm)||hwm<0){var name=isDuplex?duplexKey:'highWaterMark';throw new ERR_INVALID_OPT_VALUE(name,hwm);}return Math.floor(hwm);}// Default value
4518
+ return state.objectMode?16:16*1024;}module.exports={getHighWaterMark:getHighWaterMark};},{"../../../errors":146}],159:[function(require,module,exports){module.exports=require('events').EventEmitter;},{"events":44}],160:[function(require,module,exports){(function(global){(function(){var ClientRequest=require('./lib/request');var response=require('./lib/response');var extend=require('xtend');var statusCodes=require('builtin-status-codes');var url=require('url');var http=exports;http.request=function(opts,cb){if(typeof opts==='string')opts=url.parse(opts);else opts=extend(opts);// Normally, the page is loaded from http or https, so not specifying a protocol
4437
4519
  // will result in a (valid) protocol-relative url. However, this won't work if
4438
4520
  // the protocol is something else, like 'file:'
4439
4521
  var defaultProtocol=global.location.protocol.search(/^https?:$/)===-1?'http:':'';var protocol=opts.protocol||defaultProtocol;var host=opts.hostname||opts.host;var port=opts.port;var path=opts.path||'/';// Necessary for IPv6 addresses
4440
4522
  if(host&&host.indexOf(':')!==-1)host='['+host+']';// This may be a relative url. The browser should always be able to interpret it correctly.
4441
4523
  opts.url=(host?protocol+'//'+host:'')+(port?':'+port:'')+path;opts.method=(opts.method||'GET').toUpperCase();opts.headers=opts.headers||{};// Also valid opts.auth, opts.mode
4442
- var req=new ClientRequest(opts);if(cb)req.on('response',cb);return req;};http.get=function get(opts,cb){var req=http.request(opts,cb);req.end();return req;};http.ClientRequest=ClientRequest;http.IncomingMessage=response.IncomingMessage;http.Agent=function(){};http.Agent.defaultMaxSockets=4;http.globalAgent=new http.Agent();http.STATUS_CODES=statusCodes;http.METHODS=['CHECKOUT','CONNECT','COPY','DELETE','GET','HEAD','LOCK','M-SEARCH','MERGE','MKACTIVITY','MKCOL','MOVE','NOTIFY','OPTIONS','PATCH','POST','PROPFIND','PROPPATCH','PURGE','PUT','REPORT','SEARCH','SUBSCRIBE','TRACE','UNLOCK','UNSUBSCRIBE'];}).call(this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{"./lib/request":161,"./lib/response":162,"builtin-status-codes":24,"url":182,"xtend":189}],160:[function(require,module,exports){(function(global){(function(){exports.fetch=isFunction(global.fetch)&&isFunction(global.ReadableStream);exports.writableStream=isFunction(global.WritableStream);exports.abortController=isFunction(global.AbortController);// The xhr request to example.com may violate some restrictive CSP configurations,
4524
+ var req=new ClientRequest(opts);if(cb)req.on('response',cb);return req;};http.get=function get(opts,cb){var req=http.request(opts,cb);req.end();return req;};http.ClientRequest=ClientRequest;http.IncomingMessage=response.IncomingMessage;http.Agent=function(){};http.Agent.defaultMaxSockets=4;http.globalAgent=new http.Agent();http.STATUS_CODES=statusCodes;http.METHODS=['CHECKOUT','CONNECT','COPY','DELETE','GET','HEAD','LOCK','M-SEARCH','MERGE','MKACTIVITY','MKCOL','MOVE','NOTIFY','OPTIONS','PATCH','POST','PROPFIND','PROPPATCH','PURGE','PUT','REPORT','SEARCH','SUBSCRIBE','TRACE','UNLOCK','UNSUBSCRIBE'];}).call(this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{"./lib/request":162,"./lib/response":163,"builtin-status-codes":24,"url":183,"xtend":190}],161:[function(require,module,exports){(function(global){(function(){exports.fetch=isFunction(global.fetch)&&isFunction(global.ReadableStream);exports.writableStream=isFunction(global.WritableStream);exports.abortController=isFunction(global.AbortController);// The xhr request to example.com may violate some restrictive CSP configurations,
4443
4525
  // so if we're running in a browser that supports `fetch`, avoid calling getXHR()
4444
4526
  // and assume support for certain features below.
4445
4527
  var xhr;function getXHR(){// Cache the xhr value
@@ -4454,7 +4536,7 @@ exports.arraybuffer=exports.fetch||checkTypeSupport('arraybuffer');// These next
4454
4536
  exports.msstream=!exports.fetch&&checkTypeSupport('ms-stream');exports.mozchunkedarraybuffer=!exports.fetch&&checkTypeSupport('moz-chunked-arraybuffer');// If fetch is supported, then overrideMimeType will be supported too. Skip calling
4455
4537
  // getXHR().
4456
4538
  exports.overrideMimeType=exports.fetch||(getXHR()?isFunction(getXHR().overrideMimeType):false);function isFunction(value){return typeof value==='function';}xhr=null;// Help gc
4457
- }).call(this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{}],161:[function(require,module,exports){(function(process,global,Buffer){(function(){var capability=require('./capability');var inherits=require('inherits');var response=require('./response');var stream=require('readable-stream');var IncomingMessage=response.IncomingMessage;var rStates=response.readyStates;function decideMode(preferBinary,useFetch){if(capability.fetch&&useFetch){return'fetch';}else if(capability.mozchunkedarraybuffer){return'moz-chunked-arraybuffer';}else if(capability.msstream){return'ms-stream';}else if(capability.arraybuffer&&preferBinary){return'arraybuffer';}else{return'text';}}var ClientRequest=module.exports=function(opts){var self=this;stream.Writable.call(self);self._opts=opts;self._body=[];self._headers={};if(opts.auth)self.setHeader('Authorization','Basic '+Buffer.from(opts.auth).toString('base64'));Object.keys(opts.headers).forEach(function(name){self.setHeader(name,opts.headers[name]);});var preferBinary;var useFetch=true;if(opts.mode==='disable-fetch'||'requestTimeout'in opts&&!capability.abortController){// If the use of XHR should be preferred. Not typically needed.
4539
+ }).call(this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{}],162:[function(require,module,exports){(function(process,global,Buffer){(function(){var capability=require('./capability');var inherits=require('inherits');var response=require('./response');var stream=require('readable-stream');var IncomingMessage=response.IncomingMessage;var rStates=response.readyStates;function decideMode(preferBinary,useFetch){if(capability.fetch&&useFetch){return'fetch';}else if(capability.mozchunkedarraybuffer){return'moz-chunked-arraybuffer';}else if(capability.msstream){return'ms-stream';}else if(capability.arraybuffer&&preferBinary){return'arraybuffer';}else{return'text';}}var ClientRequest=module.exports=function(opts){var self=this;stream.Writable.call(self);self._opts=opts;self._body=[];self._headers={};if(opts.auth)self.setHeader('Authorization','Basic '+Buffer.from(opts.auth).toString('base64'));Object.keys(opts.headers).forEach(function(name){self.setHeader(name,opts.headers[name]);});var preferBinary;var useFetch=true;if(opts.mode==='disable-fetch'||'requestTimeout'in opts&&!capability.abortController){// If the use of XHR should be preferred. Not typically needed.
4458
4540
  useFetch=false;preferBinary=true;}else if(opts.mode==='prefer-streaming'){// If streaming is a high priority but binary compatibility and
4459
4541
  // the accuracy of the 'content-type' header aren't
4460
4542
  preferBinary=false;}else if(opts.mode==='allow-wrong-content-type'){// If streaming is more important than preserving the 'content-type' header
@@ -4471,7 +4553,7 @@ if(self._mode==='moz-chunked-arraybuffer'){xhr.onprogress=function(){self._onXHR
4471
4553
  * Even though the spec says it should be available in readyState 3,
4472
4554
  * accessing it throws an exception in IE8
4473
4555
  */function statusValid(xhr){try{var status=xhr.status;return status!==null&&status!==0;}catch(e){return false;}}ClientRequest.prototype._onXHRProgress=function(){var self=this;self._resetTimers(false);if(!statusValid(self._xhr)||self._destroyed)return;if(!self._response)self._connect();self._response._onXHRProgress(self._resetTimers.bind(self));};ClientRequest.prototype._connect=function(){var self=this;if(self._destroyed)return;self._response=new IncomingMessage(self._xhr,self._fetchResponse,self._mode,self._resetTimers.bind(self));self._response.on('error',function(err){self.emit('error',err);});self.emit('response',self._response);};ClientRequest.prototype._write=function(chunk,encoding,cb){var self=this;self._body.push(chunk);cb();};ClientRequest.prototype._resetTimers=function(done){var self=this;global.clearTimeout(self._socketTimer);self._socketTimer=null;if(done){global.clearTimeout(self._fetchTimer);self._fetchTimer=null;}else if(self._socketTimeout){self._socketTimer=global.setTimeout(function(){self.emit('timeout');},self._socketTimeout);}};ClientRequest.prototype.abort=ClientRequest.prototype.destroy=function(err){var self=this;self._destroyed=true;self._resetTimers(true);if(self._response)self._response._destroyed=true;if(self._xhr)self._xhr.abort();else if(self._fetchAbortController)self._fetchAbortController.abort();if(err)self.emit('error',err);};ClientRequest.prototype.end=function(data,encoding,cb){var self=this;if(typeof data==='function'){cb=data;data=undefined;}stream.Writable.prototype.end.call(self,data,encoding,cb);};ClientRequest.prototype.setTimeout=function(timeout,cb){var self=this;if(cb)self.once('timeout',cb);self._socketTimeout=timeout;self._resetTimers(false);};ClientRequest.prototype.flushHeaders=function(){};ClientRequest.prototype.setNoDelay=function(){};ClientRequest.prototype.setSocketKeepAlive=function(){};// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method
4474
- var unsafeHeaders=['accept-charset','accept-encoding','access-control-request-headers','access-control-request-method','connection','content-length','cookie','cookie2','date','dnt','expect','host','keep-alive','origin','referer','te','trailer','transfer-encoding','upgrade','via'];}).call(this);}).call(this,require('_process'),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{},require("buffer").Buffer);},{"./capability":160,"./response":162,"_process":125,"buffer":23,"inherits":77,"readable-stream":177}],162:[function(require,module,exports){(function(process,global,Buffer){(function(){var capability=require('./capability');var inherits=require('inherits');var stream=require('readable-stream');var rStates=exports.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4};var IncomingMessage=exports.IncomingMessage=function(xhr,response,mode,resetTimers){var self=this;stream.Readable.call(self);self._mode=mode;self.headers={};self.rawHeaders=[];self.trailers={};self.rawTrailers=[];// Fake the 'close' event, but only once 'end' fires
4556
+ var unsafeHeaders=['accept-charset','accept-encoding','access-control-request-headers','access-control-request-method','connection','content-length','cookie','cookie2','date','dnt','expect','host','keep-alive','origin','referer','te','trailer','transfer-encoding','upgrade','via'];}).call(this);}).call(this,require('_process'),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{},require("buffer").Buffer);},{"./capability":161,"./response":163,"_process":126,"buffer":23,"inherits":77,"readable-stream":178}],163:[function(require,module,exports){(function(process,global,Buffer){(function(){var capability=require('./capability');var inherits=require('inherits');var stream=require('readable-stream');var rStates=exports.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4};var IncomingMessage=exports.IncomingMessage=function(xhr,response,mode,resetTimers){var self=this;stream.Readable.call(self);self._mode=mode;self.headers={};self.rawHeaders=[];self.trailers={};self.rawTrailers=[];// Fake the 'close' event, but only once 'end' fires
4475
4557
  self.on('end',function(){// The nextTick is necessary to prevent the 'request' module from causing an infinite loop
4476
4558
  process.nextTick(function(){self.emit('close');});});if(mode==='fetch'){self._fetchResponse=response;self.url=response.url;self.statusCode=response.status;self.statusMessage=response.statusText;response.headers.forEach(function(header,key){self.headers[key.toLowerCase()]=header;self.rawHeaders.push(key,header);});if(capability.writableStream){var writable=new WritableStream({write:function(chunk){resetTimers(false);return new Promise(function(resolve,reject){if(self._destroyed){reject();}else if(self.push(Buffer.from(chunk))){resolve();}else{self._resumeFetch=resolve;}});},close:function(){resetTimers(true);if(!self._destroyed)self.push(null);},abort:function(err){resetTimers(true);if(!self._destroyed)self.emit('error',err);}});try{response.body.pipeTo(writable).catch(function(err){resetTimers(true);if(!self._destroyed)self.emit('error',err);});return;}catch(e){}// pipeTo method isn't defined. Can't find a better way to feature test this
4477
4559
  }// fallback for when writableStream or pipeTo aren't available
@@ -4479,7 +4561,7 @@ var reader=response.body.getReader();function read(){reader.read().then(function
4479
4561
  }}};inherits(IncomingMessage,stream.Readable);IncomingMessage.prototype._read=function(){var self=this;var resolve=self._resumeFetch;if(resolve){self._resumeFetch=null;resolve();}};IncomingMessage.prototype._onXHRProgress=function(resetTimers){var self=this;var xhr=self._xhr;var response=null;switch(self._mode){case'text':response=xhr.responseText;if(response.length>self._pos){var newData=response.substr(self._pos);if(self._charset==='x-user-defined'){var buffer=Buffer.alloc(newData.length);for(var i=0;i<newData.length;i++)buffer[i]=newData.charCodeAt(i)&0xff;self.push(buffer);}else{self.push(newData,self._charset);}self._pos=response.length;}break;case'arraybuffer':if(xhr.readyState!==rStates.DONE||!xhr.response)break;response=xhr.response;self.push(Buffer.from(new Uint8Array(response)));break;case'moz-chunked-arraybuffer':// take whole
4480
4562
  response=xhr.response;if(xhr.readyState!==rStates.LOADING||!response)break;self.push(Buffer.from(new Uint8Array(response)));break;case'ms-stream':response=xhr.response;if(xhr.readyState!==rStates.LOADING)break;var reader=new global.MSStreamReader();reader.onprogress=function(){if(reader.result.byteLength>self._pos){self.push(Buffer.from(new Uint8Array(reader.result.slice(self._pos))));self._pos=reader.result.byteLength;}};reader.onload=function(){resetTimers(true);self.push(null);};// reader.onerror = ??? // TODO: this
4481
4563
  reader.readAsArrayBuffer(response);break;}// The ms-stream case handles end separately in reader.onload()
4482
- if(self._xhr.readyState===rStates.DONE&&self._mode!=='ms-stream'){resetTimers(true);self.push(null);}};}).call(this);}).call(this,require('_process'),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{},require("buffer").Buffer);},{"./capability":160,"_process":125,"buffer":23,"inherits":77,"readable-stream":177}],163:[function(require,module,exports){arguments[4][145][0].apply(exports,arguments);},{"dup":145}],164:[function(require,module,exports){(function(process){(function(){// Copyright Joyent, Inc. and other Node contributors.
4564
+ if(self._xhr.readyState===rStates.DONE&&self._mode!=='ms-stream'){resetTimers(true);self.push(null);}};}).call(this);}).call(this,require('_process'),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{},require("buffer").Buffer);},{"./capability":161,"_process":126,"buffer":23,"inherits":77,"readable-stream":178}],164:[function(require,module,exports){arguments[4][146][0].apply(exports,arguments);},{"dup":146}],165:[function(require,module,exports){(function(process){(function(){// Copyright Joyent, Inc. and other Node contributors.
4483
4565
  //
4484
4566
  // Permission is hereby granted, free of charge, to any person obtaining a
4485
4567
  // copy of this software and associated documentation files (the
@@ -4524,7 +4606,7 @@ enumerable:false,get:function get(){if(this._readableState===undefined||this._wr
4524
4606
  // has not been initialized yet
4525
4607
  if(this._readableState===undefined||this._writableState===undefined){return;}// backward compatibility, the user is explicitly
4526
4608
  // managing destroyed
4527
- this._readableState.destroyed=value;this._writableState.destroyed=value;}});}).call(this);}).call(this,require('_process'));},{"./_stream_readable":166,"./_stream_writable":168,"_process":125,"inherits":77}],165:[function(require,module,exports){arguments[4][147][0].apply(exports,arguments);},{"./_stream_transform":167,"dup":147,"inherits":77}],166:[function(require,module,exports){(function(process,global){(function(){// Copyright Joyent, Inc. and other Node contributors.
4609
+ this._readableState.destroyed=value;this._writableState.destroyed=value;}});}).call(this);}).call(this,require('_process'));},{"./_stream_readable":167,"./_stream_writable":169,"_process":126,"inherits":77}],166:[function(require,module,exports){arguments[4][148][0].apply(exports,arguments);},{"./_stream_transform":168,"dup":148,"inherits":77}],167:[function(require,module,exports){(function(process,global){(function(){// Copyright Joyent, Inc. and other Node contributors.
4528
4610
  //
4529
4611
  // Permission is hereby granted, free of charge, to any person obtaining a
4530
4612
  // copy of this software and associated documentation files (the
@@ -4776,7 +4858,7 @@ if(state.decoder)ret=state.buffer.join('');else if(state.buffer.length===1)ret=s
4776
4858
  ret=state.buffer.consume(n,state.decoder);}return ret;}function endReadable(stream){var state=stream._readableState;debug('endReadable',state.endEmitted);if(!state.endEmitted){state.ended=true;process.nextTick(endReadableNT,state,stream);}}function endReadableNT(state,stream){debug('endReadableNT',state.endEmitted,state.length);// Check that we didn't get one last unshift.
4777
4859
  if(!state.endEmitted&&state.length===0){state.endEmitted=true;stream.readable=false;stream.emit('end');if(state.autoDestroy){// In case of duplex streams we need a way to detect
4778
4860
  // if the writable side is ready for autoDestroy as well
4779
- var wState=stream._writableState;if(!wState||wState.autoDestroy&&wState.finished){stream.destroy();}}}}if(typeof Symbol==='function'){Readable.from=function(iterable,opts){if(from===undefined){from=require('./internal/streams/from');}return from(Readable,iterable,opts);};}function indexOf(xs,x){for(var i=0,l=xs.length;i<l;i++){if(xs[i]===x)return i;}return-1;}}).call(this);}).call(this,require('_process'),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{"../errors":163,"./_stream_duplex":164,"./internal/streams/async_iterator":169,"./internal/streams/buffer_list":170,"./internal/streams/destroy":171,"./internal/streams/from":173,"./internal/streams/state":175,"./internal/streams/stream":176,"_process":125,"buffer":23,"events":44,"inherits":77,"string_decoder/":178,"util":21}],167:[function(require,module,exports){arguments[4][149][0].apply(exports,arguments);},{"../errors":163,"./_stream_duplex":164,"dup":149,"inherits":77}],168:[function(require,module,exports){(function(process,global){(function(){// Copyright Joyent, Inc. and other Node contributors.
4861
+ var wState=stream._writableState;if(!wState||wState.autoDestroy&&wState.finished){stream.destroy();}}}}if(typeof Symbol==='function'){Readable.from=function(iterable,opts){if(from===undefined){from=require('./internal/streams/from');}return from(Readable,iterable,opts);};}function indexOf(xs,x){for(var i=0,l=xs.length;i<l;i++){if(xs[i]===x)return i;}return-1;}}).call(this);}).call(this,require('_process'),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{"../errors":164,"./_stream_duplex":165,"./internal/streams/async_iterator":170,"./internal/streams/buffer_list":171,"./internal/streams/destroy":172,"./internal/streams/from":174,"./internal/streams/state":176,"./internal/streams/stream":177,"_process":126,"buffer":23,"events":44,"inherits":77,"string_decoder/":179,"util":21}],168:[function(require,module,exports){arguments[4][150][0].apply(exports,arguments);},{"../errors":164,"./_stream_duplex":165,"dup":150,"inherits":77}],169:[function(require,module,exports){(function(process,global){(function(){// Copyright Joyent, Inc. and other Node contributors.
4780
4862
  //
4781
4863
  // Permission is hereby granted, free of charge, to any person obtaining a
4782
4864
  // copy of this software and associated documentation files (the
@@ -4911,7 +4993,7 @@ enumerable:false,get:function get(){if(this._writableState===undefined){return f
4911
4993
  // has not been initialized yet
4912
4994
  if(!this._writableState){return;}// backward compatibility, the user is explicitly
4913
4995
  // managing destroyed
4914
- this._writableState.destroyed=value;}});Writable.prototype.destroy=destroyImpl.destroy;Writable.prototype._undestroy=destroyImpl.undestroy;Writable.prototype._destroy=function(err,cb){cb(err);};}).call(this);}).call(this,require('_process'),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{"../errors":163,"./_stream_duplex":164,"./internal/streams/destroy":171,"./internal/streams/state":175,"./internal/streams/stream":176,"_process":125,"buffer":23,"inherits":77,"util-deprecate":183}],169:[function(require,module,exports){(function(process){(function(){'use strict';var _Object$setPrototypeO;function _defineProperty(obj,key,value){key=_toPropertyKey(key);if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _toPropertyKey(arg){var key=_toPrimitive(arg,"string");return typeof key==="symbol"?key:String(key);}function _toPrimitive(input,hint){if(typeof input!=="object"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==undefined){var res=prim.call(input,hint||"default");if(typeof res!=="object")return res;throw new TypeError("@@toPrimitive must return a primitive value.");}return(hint==="string"?String:Number)(input);}var finished=require('./end-of-stream');var kLastResolve=Symbol('lastResolve');var kLastReject=Symbol('lastReject');var kError=Symbol('error');var kEnded=Symbol('ended');var kLastPromise=Symbol('lastPromise');var kHandlePromise=Symbol('handlePromise');var kStream=Symbol('stream');function createIterResult(value,done){return{value:value,done:done};}function readAndResolve(iter){var resolve=iter[kLastResolve];if(resolve!==null){var data=iter[kStream].read();// we defer if data is null
4996
+ this._writableState.destroyed=value;}});Writable.prototype.destroy=destroyImpl.destroy;Writable.prototype._undestroy=destroyImpl.undestroy;Writable.prototype._destroy=function(err,cb){cb(err);};}).call(this);}).call(this,require('_process'),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{"../errors":164,"./_stream_duplex":165,"./internal/streams/destroy":172,"./internal/streams/state":176,"./internal/streams/stream":177,"_process":126,"buffer":23,"inherits":77,"util-deprecate":184}],170:[function(require,module,exports){(function(process){(function(){'use strict';var _Object$setPrototypeO;function _defineProperty(obj,key,value){key=_toPropertyKey(key);if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _toPropertyKey(arg){var key=_toPrimitive(arg,"string");return typeof key==="symbol"?key:String(key);}function _toPrimitive(input,hint){if(typeof input!=="object"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==undefined){var res=prim.call(input,hint||"default");if(typeof res!=="object")return res;throw new TypeError("@@toPrimitive must return a primitive value.");}return(hint==="string"?String:Number)(input);}var finished=require('./end-of-stream');var kLastResolve=Symbol('lastResolve');var kLastReject=Symbol('lastReject');var kError=Symbol('error');var kEnded=Symbol('ended');var kLastPromise=Symbol('lastPromise');var kHandlePromise=Symbol('handlePromise');var kStream=Symbol('stream');function createIterResult(value,done){return{value:value,done:done};}function readAndResolve(iter){var resolve=iter[kLastResolve];if(resolve!==null){var data=iter[kStream].read();// we defer if data is null
4915
4997
  // we can be expecting either 'end' or
4916
4998
  // 'error'
4917
4999
  if(data!==null){iter[kLastPromise]=null;iter[kLastResolve]=null;iter[kLastReject]=null;resolve(createIterResult(data,false));}}}function onReadable(iter){// we wait for the next tick, because it might
@@ -4933,7 +5015,7 @@ var data=this[kStream].read();if(data!==null){return Promise.resolve(createIterR
4933
5015
  // Readable class this is attached to
4934
5016
  return new Promise(function(resolve,reject){_this2[kStream].destroy(null,function(err){if(err){reject(err);return;}resolve(createIterResult(undefined,true));});});}),_Object$setPrototypeO),AsyncIteratorPrototype);var createReadableStreamAsyncIterator=function createReadableStreamAsyncIterator(stream){var _Object$create;var iterator=Object.create(ReadableStreamAsyncIteratorPrototype,(_Object$create={},_defineProperty(_Object$create,kStream,{value:stream,writable:true}),_defineProperty(_Object$create,kLastResolve,{value:null,writable:true}),_defineProperty(_Object$create,kLastReject,{value:null,writable:true}),_defineProperty(_Object$create,kError,{value:null,writable:true}),_defineProperty(_Object$create,kEnded,{value:stream._readableState.endEmitted,writable:true}),_defineProperty(_Object$create,kHandlePromise,{value:function value(resolve,reject){var data=iterator[kStream].read();if(data){iterator[kLastPromise]=null;iterator[kLastResolve]=null;iterator[kLastReject]=null;resolve(createIterResult(data,false));}else{iterator[kLastResolve]=resolve;iterator[kLastReject]=reject;}},writable:true}),_Object$create));iterator[kLastPromise]=null;finished(stream,function(err){if(err&&err.code!=='ERR_STREAM_PREMATURE_CLOSE'){var reject=iterator[kLastReject];// reject if we are waiting for data in the Promise
4935
5017
  // returned by next() and store the error
4936
- if(reject!==null){iterator[kLastPromise]=null;iterator[kLastResolve]=null;iterator[kLastReject]=null;reject(err);}iterator[kError]=err;return;}var resolve=iterator[kLastResolve];if(resolve!==null){iterator[kLastPromise]=null;iterator[kLastResolve]=null;iterator[kLastReject]=null;resolve(createIterResult(undefined,true));}iterator[kEnded]=true;});stream.on('readable',onReadable.bind(null,iterator));return iterator;};module.exports=createReadableStreamAsyncIterator;}).call(this);}).call(this,require('_process'));},{"./end-of-stream":172,"_process":125}],170:[function(require,module,exports){arguments[4][152][0].apply(exports,arguments);},{"buffer":23,"dup":152,"util":21}],171:[function(require,module,exports){(function(process){(function(){'use strict';// undocumented cb() API, needed for core, not for public API
5018
+ if(reject!==null){iterator[kLastPromise]=null;iterator[kLastResolve]=null;iterator[kLastReject]=null;reject(err);}iterator[kError]=err;return;}var resolve=iterator[kLastResolve];if(resolve!==null){iterator[kLastPromise]=null;iterator[kLastResolve]=null;iterator[kLastReject]=null;resolve(createIterResult(undefined,true));}iterator[kEnded]=true;});stream.on('readable',onReadable.bind(null,iterator));return iterator;};module.exports=createReadableStreamAsyncIterator;}).call(this);}).call(this,require('_process'));},{"./end-of-stream":173,"_process":126}],171:[function(require,module,exports){arguments[4][153][0].apply(exports,arguments);},{"buffer":23,"dup":153,"util":21}],172:[function(require,module,exports){(function(process){(function(){'use strict';// undocumented cb() API, needed for core, not for public API
4937
5019
  function destroy(err,cb){var _this=this;var readableDestroyed=this._readableState&&this._readableState.destroyed;var writableDestroyed=this._writableState&&this._writableState.destroyed;if(readableDestroyed||writableDestroyed){if(cb){cb(err);}else if(err){if(!this._writableState){process.nextTick(emitErrorNT,this,err);}else if(!this._writableState.errorEmitted){this._writableState.errorEmitted=true;process.nextTick(emitErrorNT,this,err);}}return this;}// we set destroyed to true before firing error callbacks in order
4938
5020
  // to make it re-entrance safe in case destroy() is called within callbacks
4939
5021
  if(this._readableState){this._readableState.destroyed=true;}// if this is a duplex stream mark the writable part as destroyed as well
@@ -4942,7 +5024,7 @@ if(this._writableState){this._writableState.destroyed=true;}this._destroy(err||n
4942
5024
  // For now when you opt-in to autoDestroy we allow
4943
5025
  // the error to be emitted nextTick. In a future
4944
5026
  // semver major update we should change the default to this.
4945
- var rState=stream._readableState;var wState=stream._writableState;if(rState&&rState.autoDestroy||wState&&wState.autoDestroy)stream.destroy(err);else stream.emit('error',err);}module.exports={destroy:destroy,undestroy:undestroy,errorOrDestroy:errorOrDestroy};}).call(this);}).call(this,require('_process'));},{"_process":125}],172:[function(require,module,exports){arguments[4][154][0].apply(exports,arguments);},{"../../../errors":163,"dup":154}],173:[function(require,module,exports){arguments[4][155][0].apply(exports,arguments);},{"dup":155}],174:[function(require,module,exports){arguments[4][156][0].apply(exports,arguments);},{"../../../errors":163,"./end-of-stream":172,"dup":156}],175:[function(require,module,exports){arguments[4][157][0].apply(exports,arguments);},{"../../../errors":163,"dup":157}],176:[function(require,module,exports){arguments[4][158][0].apply(exports,arguments);},{"dup":158,"events":44}],177:[function(require,module,exports){exports=module.exports=require('./lib/_stream_readable.js');exports.Stream=exports;exports.Readable=exports;exports.Writable=require('./lib/_stream_writable.js');exports.Duplex=require('./lib/_stream_duplex.js');exports.Transform=require('./lib/_stream_transform.js');exports.PassThrough=require('./lib/_stream_passthrough.js');exports.finished=require('./lib/internal/streams/end-of-stream.js');exports.pipeline=require('./lib/internal/streams/pipeline.js');},{"./lib/_stream_duplex.js":164,"./lib/_stream_passthrough.js":165,"./lib/_stream_readable.js":166,"./lib/_stream_transform.js":167,"./lib/_stream_writable.js":168,"./lib/internal/streams/end-of-stream.js":172,"./lib/internal/streams/pipeline.js":174}],178:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.
5027
+ var rState=stream._readableState;var wState=stream._writableState;if(rState&&rState.autoDestroy||wState&&wState.autoDestroy)stream.destroy(err);else stream.emit('error',err);}module.exports={destroy:destroy,undestroy:undestroy,errorOrDestroy:errorOrDestroy};}).call(this);}).call(this,require('_process'));},{"_process":126}],173:[function(require,module,exports){arguments[4][155][0].apply(exports,arguments);},{"../../../errors":164,"dup":155}],174:[function(require,module,exports){arguments[4][156][0].apply(exports,arguments);},{"dup":156}],175:[function(require,module,exports){arguments[4][157][0].apply(exports,arguments);},{"../../../errors":164,"./end-of-stream":173,"dup":157}],176:[function(require,module,exports){arguments[4][158][0].apply(exports,arguments);},{"../../../errors":164,"dup":158}],177:[function(require,module,exports){arguments[4][159][0].apply(exports,arguments);},{"dup":159,"events":44}],178:[function(require,module,exports){exports=module.exports=require('./lib/_stream_readable.js');exports.Stream=exports;exports.Readable=exports;exports.Writable=require('./lib/_stream_writable.js');exports.Duplex=require('./lib/_stream_duplex.js');exports.Transform=require('./lib/_stream_transform.js');exports.PassThrough=require('./lib/_stream_passthrough.js');exports.finished=require('./lib/internal/streams/end-of-stream.js');exports.pipeline=require('./lib/internal/streams/pipeline.js');},{"./lib/_stream_duplex.js":165,"./lib/_stream_passthrough.js":166,"./lib/_stream_readable.js":167,"./lib/_stream_transform.js":168,"./lib/_stream_writable.js":169,"./lib/internal/streams/end-of-stream.js":173,"./lib/internal/streams/pipeline.js":175}],179:[function(require,module,exports){// Copyright Joyent, Inc. and other Node contributors.
4946
5028
  //
4947
5029
  // Permission is hereby granted, free of charge, to any person obtaining a
4948
5030
  // copy of this software and associated documentation files (the
@@ -4996,7 +5078,7 @@ function utf8End(buf){var r=buf&&buf.length?this.write(buf):'';if(this.lastNeed)
4996
5078
  function utf16Text(buf,i){if((buf.length-i)%2===0){var r=buf.toString('utf16le',i);if(r){var c=r.charCodeAt(r.length-1);if(c>=0xD800&&c<=0xDBFF){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=buf[buf.length-2];this.lastChar[1]=buf[buf.length-1];return r.slice(0,-1);}}return r;}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=buf[buf.length-1];return buf.toString('utf16le',i,buf.length-1);}// For UTF-16LE we do not explicitly append special replacement characters if we
4997
5079
  // end on a partial character, we simply let v8 handle that.
4998
5080
  function utf16End(buf){var r=buf&&buf.length?this.write(buf):'';if(this.lastNeed){var end=this.lastTotal-this.lastNeed;return r+this.lastChar.toString('utf16le',0,end);}return r;}function base64Text(buf,i){var n=(buf.length-i)%3;if(n===0)return buf.toString('base64',i);this.lastNeed=3-n;this.lastTotal=3;if(n===1){this.lastChar[0]=buf[buf.length-1];}else{this.lastChar[0]=buf[buf.length-2];this.lastChar[1]=buf[buf.length-1];}return buf.toString('base64',i,buf.length-n);}function base64End(buf){var r=buf&&buf.length?this.write(buf):'';if(this.lastNeed)return r+this.lastChar.toString('base64',0,3-this.lastNeed);return r;}// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)
4999
- function simpleWrite(buf){return buf.toString(this.encoding);}function simpleEnd(buf){return buf&&buf.length?this.write(buf):'';}},{"safe-buffer":135}],179:[function(require,module,exports){(function(process){(function(){var Stream=require('stream');// through
5081
+ function simpleWrite(buf){return buf.toString(this.encoding);}function simpleEnd(buf){return buf&&buf.length?this.write(buf):'';}},{"safe-buffer":136}],180:[function(require,module,exports){(function(process){(function(){var Stream=require('stream');// through
5000
5082
  //
5001
5083
  // a stream that does nothing but re-emit the input.
5002
5084
  // useful for aggregating a series of changing but not ending streams into one stream)
@@ -5011,13 +5093,13 @@ if(_ended)return stream;if(data===null)_ended=true;buffer.push(data);drain();ret
5011
5093
  stream.on('end',function(){stream.readable=false;if(!stream.writable&&stream.autoDestroy)process.nextTick(function(){stream.destroy();});});function _end(){stream.writable=false;end.call(stream);if(!stream.readable&&stream.autoDestroy)stream.destroy();}stream.end=function(data){if(ended)return;ended=true;if(arguments.length)stream.write(data);_end();// will emit or queue
5012
5094
  return stream;};stream.destroy=function(){if(destroyed)return;destroyed=true;ended=true;buffer.length=0;stream.writable=stream.readable=false;stream.emit('close');return stream;};stream.pause=function(){if(stream.paused)return;stream.paused=true;return stream;};stream.resume=function(){if(stream.paused){stream.paused=false;stream.emit('resume');}drain();//may have become paused again,
5013
5095
  //as drain emits 'data'.
5014
- if(!stream.paused)stream.emit('drain');return stream;};return stream;}}).call(this);}).call(this,require('_process'));},{"_process":125,"stream":144}],180:[function(require,module,exports){(function(setImmediate,clearImmediate){(function(){var nextTick=require('process/browser.js').nextTick;var apply=Function.prototype.apply;var slice=Array.prototype.slice;var immediateIds={};var nextImmediateId=0;// DOM APIs, for completeness
5096
+ if(!stream.paused)stream.emit('drain');return stream;};return stream;}}).call(this);}).call(this,require('_process'));},{"_process":126,"stream":145}],181:[function(require,module,exports){(function(setImmediate,clearImmediate){(function(){var nextTick=require('process/browser.js').nextTick;var apply=Function.prototype.apply;var slice=Array.prototype.slice;var immediateIds={};var nextImmediateId=0;// DOM APIs, for completeness
5015
5097
  exports.setTimeout=function(){return new Timeout(apply.call(setTimeout,window,arguments),clearTimeout);};exports.setInterval=function(){return new Timeout(apply.call(setInterval,window,arguments),clearInterval);};exports.clearTimeout=exports.clearInterval=function(timeout){timeout.close();};function Timeout(id,clearFn){this._id=id;this._clearFn=clearFn;}Timeout.prototype.unref=Timeout.prototype.ref=function(){};Timeout.prototype.close=function(){this._clearFn.call(window,this._id);};// Does not start the time, just sets up the members needed.
5016
5098
  exports.enroll=function(item,msecs){clearTimeout(item._idleTimeoutId);item._idleTimeout=msecs;};exports.unenroll=function(item){clearTimeout(item._idleTimeoutId);item._idleTimeout=-1;};exports._unrefActive=exports.active=function(item){clearTimeout(item._idleTimeoutId);var msecs=item._idleTimeout;if(msecs>=0){item._idleTimeoutId=setTimeout(function onTimeout(){if(item._onTimeout)item._onTimeout();},msecs);}};// That's not how node.js implements it but the exposed api is the same.
5017
5099
  exports.setImmediate=typeof setImmediate==="function"?setImmediate:function(fn){var id=nextImmediateId++;var args=arguments.length<2?false:slice.call(arguments,1);immediateIds[id]=true;nextTick(function onNextTick(){if(immediateIds[id]){// fn.call() is faster so we optimize for the common use-case
5018
5100
  // @see http://jsperf.com/call-apply-segu
5019
5101
  if(args){fn.apply(null,args);}else{fn.call(null);}// Prevent ids from leaking
5020
- exports.clearImmediate(id);}});return id;};exports.clearImmediate=typeof clearImmediate==="function"?clearImmediate:function(id){delete immediateIds[id];};}).call(this);}).call(this,require("timers").setImmediate,require("timers").clearImmediate);},{"process/browser.js":125,"timers":180}],181:[function(require,module,exports){(function(global){(function(){(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory():typeof define==='function'&&define.amd?define('underscore',factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,function(){var current=global._;var exports=global._=factory();exports.noConflict=function(){global._=current;return exports;};}());})(this,function(){// Underscore.js 1.13.8
5102
+ exports.clearImmediate(id);}});return id;};exports.clearImmediate=typeof clearImmediate==="function"?clearImmediate:function(id){delete immediateIds[id];};}).call(this);}).call(this,require("timers").setImmediate,require("timers").clearImmediate);},{"process/browser.js":126,"timers":181}],182:[function(require,module,exports){(function(global){(function(){(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory():typeof define==='function'&&define.amd?define('underscore',factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,function(){var current=global._;var exports=global._=factory();exports.noConflict=function(){global._=current;return exports;};}());})(this,function(){// Underscore.js 1.13.8
5021
5103
  // https://underscorejs.org
5022
5104
  // (c) 2009-2026 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors
5023
5105
  // Underscore may be freely distributed under the MIT license.
@@ -5387,7 +5469,7 @@ each(['concat','join','slice'],function(name){var method=ArrayProto[name];_$1.pr
5387
5469
  var allExports={__proto__:null,VERSION:VERSION,restArguments:restArguments,isObject:isObject,isNull:isNull,isUndefined:isUndefined,isBoolean:isBoolean,isElement:isElement,isString:isString,isNumber:isNumber,isDate:isDate,isRegExp:isRegExp,isError:isError,isSymbol:isSymbol,isArrayBuffer:isArrayBuffer,isDataView:isDataView$1,isArray:isArray,isFunction:isFunction$1,isArguments:isArguments$1,isFinite:isFinite$1,isNaN:isNaN$1,isTypedArray:isTypedArray$1,isEmpty:isEmpty,isMatch:isMatch,isEqual:isEqual,isMap:isMap,isWeakMap:isWeakMap,isSet:isSet,isWeakSet:isWeakSet,keys:keys,allKeys:allKeys,values:values,pairs:pairs,invert:invert,functions:functions,methods:functions,extend:extend,extendOwn:extendOwn,assign:extendOwn,defaults:defaults,create:create,clone:clone,tap:tap,get:get,has:has,mapObject:mapObject,identity:identity,constant:constant,noop:noop,toPath:toPath$1,property:property,propertyOf:propertyOf,matcher:matcher,matches:matcher,times:times,random:random,now:now,escape:_escape,unescape:_unescape,templateSettings:templateSettings,template:template,result:result,uniqueId:uniqueId,chain:chain,iteratee:iteratee,partial:partial,bind:bind,bindAll:bindAll,memoize:memoize,delay:delay,defer:defer,throttle:throttle,debounce:debounce,wrap:wrap,negate:negate,compose:compose,after:after,before:before,once:once,findKey:findKey,findIndex:findIndex,findLastIndex:findLastIndex,sortedIndex:sortedIndex,indexOf:indexOf,lastIndexOf:lastIndexOf,find:find,detect:find,findWhere:findWhere,each:each,forEach:each,map:map,collect:map,reduce:reduce,foldl:reduce,inject:reduce,reduceRight:reduceRight,foldr:reduceRight,filter:filter,select:filter,reject:reject,every:every,all:every,some:some,any:some,contains:contains,includes:contains,include:contains,invoke:invoke,pluck:pluck,where:where,max:max,min:min,shuffle:shuffle,sample:sample,sortBy:sortBy,groupBy:groupBy,indexBy:indexBy,countBy:countBy,partition:partition,toArray:toArray,size:size,pick:pick,omit:omit,first:first,head:first,take:first,initial:initial,last:last,rest:rest,tail:rest,drop:rest,compact:compact,flatten:flatten,without:without,uniq:uniq,unique:uniq,union:union,intersection:intersection,difference:difference,unzip:unzip,transpose:unzip,zip:zip,object:object,range:range,chunk:chunk,mixin:mixin,'default':_$1};// Default Export
5388
5470
  // Add all of the Underscore functions to the wrapper object.
5389
5471
  var _=mixin(allExports);// Legacy Node.js API.
5390
- _._=_;return _;});}).call(this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{}],182:[function(require,module,exports){/*
5472
+ _._=_;return _;});}).call(this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{}],183:[function(require,module,exports){/*
5391
5473
  * Copyright Joyent, Inc. and other Node contributors.
5392
5474
  *
5393
5475
  * Permission is hereby granted, free of charge, to any person obtaining a
@@ -5565,7 +5647,7 @@ if(psychotic){result.hostname=isAbsolute?'':srcPath.length?srcPath.shift():'';re
5565
5647
  * this especially happens in cases like
5566
5648
  * url.resolveObject('mailto:local1@domain1', 'local2@domain2')
5567
5649
  */var authInHost=result.host&&result.host.indexOf('@')>0?result.host.split('@'):false;if(authInHost){result.auth=authInHost.shift();result.hostname=authInHost.shift();result.host=result.hostname;}}mustEndAbs=mustEndAbs||result.host&&srcPath.length;if(mustEndAbs&&!isAbsolute){srcPath.unshift('');}if(srcPath.length>0){result.pathname=srcPath.join('/');}else{result.pathname=null;result.path=null;}// to support request.http
5568
- if(result.pathname!==null||result.search!==null){result.path=(result.pathname?result.pathname:'')+(result.search?result.search:'');}result.auth=relative.auth||result.auth;result.slashes=result.slashes||relative.slashes;result.href=result.format();return result;};Url.prototype.parseHost=function(){var host=this.host;var port=portPattern.exec(host);if(port){port=port[0];if(port!==':'){this.port=port.substr(1);}host=host.substr(0,host.length-port.length);}if(host){this.hostname=host;}};exports.parse=urlParse;exports.resolve=urlResolve;exports.resolveObject=urlResolveObject;exports.format=urlFormat;exports.Url=Url;},{"punycode/":126,"qs":128}],183:[function(require,module,exports){(function(global){(function(){/**
5650
+ if(result.pathname!==null||result.search!==null){result.path=(result.pathname?result.pathname:'')+(result.search?result.search:'');}result.auth=relative.auth||result.auth;result.slashes=result.slashes||relative.slashes;result.href=result.format();return result;};Url.prototype.parseHost=function(){var host=this.host;var port=portPattern.exec(host);if(port){port=port[0];if(port!==':'){this.port=port.substr(1);}host=host.substr(0,host.length-port.length);}if(host){this.hostname=host;}};exports.parse=urlParse;exports.resolve=urlResolve;exports.resolveObject=urlResolveObject;exports.format=urlFormat;exports.Url=Url;},{"punycode/":127,"qs":129}],184:[function(require,module,exports){(function(global){(function(){/**
5569
5651
  * Module exports.
5570
5652
  */module.exports=deprecate;/**
5571
5653
  * Mark that a method should not be used.
@@ -5590,12 +5672,12 @@ if(result.pathname!==null||result.search!==null){result.path=(result.pathname?re
5590
5672
  * @returns {Boolean}
5591
5673
  * @api private
5592
5674
  */function config(name){// accessing global.localStorage can trigger a DOMException in sandboxed iframes
5593
- try{if(!global.localStorage)return false;}catch(_){return false;}var val=global.localStorage[name];if(null==val)return false;return String(val).toLowerCase()==='true';}}).call(this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{}],184:[function(require,module,exports){module.exports=function isBuffer(arg){return arg&&typeof arg==='object'&&typeof arg.copy==='function'&&typeof arg.fill==='function'&&typeof arg.readUInt8==='function';};},{}],185:[function(require,module,exports){// Currently in sync with Node.js lib/internal/util/types.js
5675
+ try{if(!global.localStorage)return false;}catch(_){return false;}var val=global.localStorage[name];if(null==val)return false;return String(val).toLowerCase()==='true';}}).call(this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{}],185:[function(require,module,exports){module.exports=function isBuffer(arg){return arg&&typeof arg==='object'&&typeof arg.copy==='function'&&typeof arg.fill==='function'&&typeof arg.readUInt8==='function';};},{}],186:[function(require,module,exports){// Currently in sync with Node.js lib/internal/util/types.js
5594
5676
  // https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9
5595
5677
  'use strict';var isArgumentsObject=require('is-arguments');var isGeneratorFunction=require('is-generator-function');var whichTypedArray=require('which-typed-array');var isTypedArray=require('is-typed-array');function uncurryThis(f){return f.call.bind(f);}var BigIntSupported=typeof BigInt!=='undefined';var SymbolSupported=typeof Symbol!=='undefined';var ObjectToString=uncurryThis(Object.prototype.toString);var numberValue=uncurryThis(Number.prototype.valueOf);var stringValue=uncurryThis(String.prototype.valueOf);var booleanValue=uncurryThis(Boolean.prototype.valueOf);if(BigIntSupported){var bigIntValue=uncurryThis(BigInt.prototype.valueOf);}if(SymbolSupported){var symbolValue=uncurryThis(Symbol.prototype.valueOf);}function checkBoxedPrimitive(value,prototypeValueOf){if(typeof value!=='object'){return false;}try{prototypeValueOf(value);return true;}catch(e){return false;}}exports.isArgumentsObject=isArgumentsObject;exports.isGeneratorFunction=isGeneratorFunction;exports.isTypedArray=isTypedArray;// Taken from here and modified for better browser support
5596
5678
  // https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js
5597
5679
  function isPromise(input){return typeof Promise!=='undefined'&&input instanceof Promise||input!==null&&typeof input==='object'&&typeof input.then==='function'&&typeof input.catch==='function';}exports.isPromise=isPromise;function isArrayBufferView(value){if(typeof ArrayBuffer!=='undefined'&&ArrayBuffer.isView){return ArrayBuffer.isView(value);}return isTypedArray(value)||isDataView(value);}exports.isArrayBufferView=isArrayBufferView;function isUint8Array(value){return whichTypedArray(value)==='Uint8Array';}exports.isUint8Array=isUint8Array;function isUint8ClampedArray(value){return whichTypedArray(value)==='Uint8ClampedArray';}exports.isUint8ClampedArray=isUint8ClampedArray;function isUint16Array(value){return whichTypedArray(value)==='Uint16Array';}exports.isUint16Array=isUint16Array;function isUint32Array(value){return whichTypedArray(value)==='Uint32Array';}exports.isUint32Array=isUint32Array;function isInt8Array(value){return whichTypedArray(value)==='Int8Array';}exports.isInt8Array=isInt8Array;function isInt16Array(value){return whichTypedArray(value)==='Int16Array';}exports.isInt16Array=isInt16Array;function isInt32Array(value){return whichTypedArray(value)==='Int32Array';}exports.isInt32Array=isInt32Array;function isFloat32Array(value){return whichTypedArray(value)==='Float32Array';}exports.isFloat32Array=isFloat32Array;function isFloat64Array(value){return whichTypedArray(value)==='Float64Array';}exports.isFloat64Array=isFloat64Array;function isBigInt64Array(value){return whichTypedArray(value)==='BigInt64Array';}exports.isBigInt64Array=isBigInt64Array;function isBigUint64Array(value){return whichTypedArray(value)==='BigUint64Array';}exports.isBigUint64Array=isBigUint64Array;function isMapToString(value){return ObjectToString(value)==='[object Map]';}isMapToString.working=typeof Map!=='undefined'&&isMapToString(new Map());function isMap(value){if(typeof Map==='undefined'){return false;}return isMapToString.working?isMapToString(value):value instanceof Map;}exports.isMap=isMap;function isSetToString(value){return ObjectToString(value)==='[object Set]';}isSetToString.working=typeof Set!=='undefined'&&isSetToString(new Set());function isSet(value){if(typeof Set==='undefined'){return false;}return isSetToString.working?isSetToString(value):value instanceof Set;}exports.isSet=isSet;function isWeakMapToString(value){return ObjectToString(value)==='[object WeakMap]';}isWeakMapToString.working=typeof WeakMap!=='undefined'&&isWeakMapToString(new WeakMap());function isWeakMap(value){if(typeof WeakMap==='undefined'){return false;}return isWeakMapToString.working?isWeakMapToString(value):value instanceof WeakMap;}exports.isWeakMap=isWeakMap;function isWeakSetToString(value){return ObjectToString(value)==='[object WeakSet]';}isWeakSetToString.working=typeof WeakSet!=='undefined'&&isWeakSetToString(new WeakSet());function isWeakSet(value){return isWeakSetToString(value);}exports.isWeakSet=isWeakSet;function isArrayBufferToString(value){return ObjectToString(value)==='[object ArrayBuffer]';}isArrayBufferToString.working=typeof ArrayBuffer!=='undefined'&&isArrayBufferToString(new ArrayBuffer());function isArrayBuffer(value){if(typeof ArrayBuffer==='undefined'){return false;}return isArrayBufferToString.working?isArrayBufferToString(value):value instanceof ArrayBuffer;}exports.isArrayBuffer=isArrayBuffer;function isDataViewToString(value){return ObjectToString(value)==='[object DataView]';}isDataViewToString.working=typeof ArrayBuffer!=='undefined'&&typeof DataView!=='undefined'&&isDataViewToString(new DataView(new ArrayBuffer(1),0,1));function isDataView(value){if(typeof DataView==='undefined'){return false;}return isDataViewToString.working?isDataViewToString(value):value instanceof DataView;}exports.isDataView=isDataView;// Store a copy of SharedArrayBuffer in case it's deleted elsewhere
5598
- var SharedArrayBufferCopy=typeof SharedArrayBuffer!=='undefined'?SharedArrayBuffer:undefined;function isSharedArrayBufferToString(value){return ObjectToString(value)==='[object SharedArrayBuffer]';}function isSharedArrayBuffer(value){if(typeof SharedArrayBufferCopy==='undefined'){return false;}if(typeof isSharedArrayBufferToString.working==='undefined'){isSharedArrayBufferToString.working=isSharedArrayBufferToString(new SharedArrayBufferCopy());}return isSharedArrayBufferToString.working?isSharedArrayBufferToString(value):value instanceof SharedArrayBufferCopy;}exports.isSharedArrayBuffer=isSharedArrayBuffer;function isAsyncFunction(value){return ObjectToString(value)==='[object AsyncFunction]';}exports.isAsyncFunction=isAsyncFunction;function isMapIterator(value){return ObjectToString(value)==='[object Map Iterator]';}exports.isMapIterator=isMapIterator;function isSetIterator(value){return ObjectToString(value)==='[object Set Iterator]';}exports.isSetIterator=isSetIterator;function isGeneratorObject(value){return ObjectToString(value)==='[object Generator]';}exports.isGeneratorObject=isGeneratorObject;function isWebAssemblyCompiledModule(value){return ObjectToString(value)==='[object WebAssembly.Module]';}exports.isWebAssemblyCompiledModule=isWebAssemblyCompiledModule;function isNumberObject(value){return checkBoxedPrimitive(value,numberValue);}exports.isNumberObject=isNumberObject;function isStringObject(value){return checkBoxedPrimitive(value,stringValue);}exports.isStringObject=isStringObject;function isBooleanObject(value){return checkBoxedPrimitive(value,booleanValue);}exports.isBooleanObject=isBooleanObject;function isBigIntObject(value){return BigIntSupported&&checkBoxedPrimitive(value,bigIntValue);}exports.isBigIntObject=isBigIntObject;function isSymbolObject(value){return SymbolSupported&&checkBoxedPrimitive(value,symbolValue);}exports.isSymbolObject=isSymbolObject;function isBoxedPrimitive(value){return isNumberObject(value)||isStringObject(value)||isBooleanObject(value)||isBigIntObject(value)||isSymbolObject(value);}exports.isBoxedPrimitive=isBoxedPrimitive;function isAnyArrayBuffer(value){return typeof Uint8Array!=='undefined'&&(isArrayBuffer(value)||isSharedArrayBuffer(value));}exports.isAnyArrayBuffer=isAnyArrayBuffer;['isProxy','isExternal','isModuleNamespaceObject'].forEach(function(method){Object.defineProperty(exports,method,{enumerable:false,value:function(){throw new Error(method+' is not supported in userland');}});});},{"is-arguments":78,"is-generator-function":80,"is-typed-array":86,"which-typed-array":187}],186:[function(require,module,exports){(function(process){(function(){// Copyright Joyent, Inc. and other Node contributors.
5680
+ var SharedArrayBufferCopy=typeof SharedArrayBuffer!=='undefined'?SharedArrayBuffer:undefined;function isSharedArrayBufferToString(value){return ObjectToString(value)==='[object SharedArrayBuffer]';}function isSharedArrayBuffer(value){if(typeof SharedArrayBufferCopy==='undefined'){return false;}if(typeof isSharedArrayBufferToString.working==='undefined'){isSharedArrayBufferToString.working=isSharedArrayBufferToString(new SharedArrayBufferCopy());}return isSharedArrayBufferToString.working?isSharedArrayBufferToString(value):value instanceof SharedArrayBufferCopy;}exports.isSharedArrayBuffer=isSharedArrayBuffer;function isAsyncFunction(value){return ObjectToString(value)==='[object AsyncFunction]';}exports.isAsyncFunction=isAsyncFunction;function isMapIterator(value){return ObjectToString(value)==='[object Map Iterator]';}exports.isMapIterator=isMapIterator;function isSetIterator(value){return ObjectToString(value)==='[object Set Iterator]';}exports.isSetIterator=isSetIterator;function isGeneratorObject(value){return ObjectToString(value)==='[object Generator]';}exports.isGeneratorObject=isGeneratorObject;function isWebAssemblyCompiledModule(value){return ObjectToString(value)==='[object WebAssembly.Module]';}exports.isWebAssemblyCompiledModule=isWebAssemblyCompiledModule;function isNumberObject(value){return checkBoxedPrimitive(value,numberValue);}exports.isNumberObject=isNumberObject;function isStringObject(value){return checkBoxedPrimitive(value,stringValue);}exports.isStringObject=isStringObject;function isBooleanObject(value){return checkBoxedPrimitive(value,booleanValue);}exports.isBooleanObject=isBooleanObject;function isBigIntObject(value){return BigIntSupported&&checkBoxedPrimitive(value,bigIntValue);}exports.isBigIntObject=isBigIntObject;function isSymbolObject(value){return SymbolSupported&&checkBoxedPrimitive(value,symbolValue);}exports.isSymbolObject=isSymbolObject;function isBoxedPrimitive(value){return isNumberObject(value)||isStringObject(value)||isBooleanObject(value)||isBigIntObject(value)||isSymbolObject(value);}exports.isBoxedPrimitive=isBoxedPrimitive;function isAnyArrayBuffer(value){return typeof Uint8Array!=='undefined'&&(isArrayBuffer(value)||isSharedArrayBuffer(value));}exports.isAnyArrayBuffer=isAnyArrayBuffer;['isProxy','isExternal','isModuleNamespaceObject'].forEach(function(method){Object.defineProperty(exports,method,{enumerable:false,value:function(){throw new Error(method+' is not supported in userland');}});});},{"is-arguments":78,"is-generator-function":80,"is-typed-array":86,"which-typed-array":188}],187:[function(require,module,exports){(function(process){(function(){// Copyright Joyent, Inc. and other Node contributors.
5599
5681
  //
5600
5682
  // Permission is hereby granted, free of charge, to any person obtaining a
5601
5683
  // copy of this software and associated documentation files (the
@@ -5675,19 +5757,19 @@ if(!reason){var newReason=new Error('Promise was rejected with a falsy value');n
5675
5757
  // and that the callback throwing will reject the promise.
5676
5758
  function callbackified(){var args=[];for(var i=0;i<arguments.length;i++){args.push(arguments[i]);}var maybeCb=args.pop();if(typeof maybeCb!=='function'){throw new TypeError('The last argument must be of type Function');}var self=this;var cb=function(){return maybeCb.apply(self,arguments);};// In true node style we process the callback on `nextTick` with all the
5677
5759
  // implications (stack, `uncaughtException`, `async_hooks`)
5678
- original.apply(this,args).then(function(ret){process.nextTick(cb.bind(null,null,ret));},function(rej){process.nextTick(callbackifyOnRejected.bind(null,rej,cb));});}Object.setPrototypeOf(callbackified,Object.getPrototypeOf(original));Object.defineProperties(callbackified,getOwnPropertyDescriptors(original));return callbackified;}exports.callbackify=callbackify;}).call(this);}).call(this,require('_process'));},{"./support/isBuffer":184,"./support/types":185,"_process":125,"inherits":77}],187:[function(require,module,exports){(function(global){(function(){'use strict';var forEach=require('for-each');var availableTypedArrays=require('available-typed-arrays');var callBind=require('call-bind');var callBound=require('call-bound');var gOPD=require('gopd');var getProto=require('get-proto');var $toString=callBound('Object.prototype.toString');var hasToStringTag=require('has-tostringtag/shams')();var g=typeof globalThis==='undefined'?global:globalThis;var typedArrays=availableTypedArrays();var $slice=callBound('String.prototype.slice');/** @type {<T = unknown>(array: readonly T[], value: unknown) => number} */var $indexOf=callBound('Array.prototype.indexOf',true)||function indexOf(array,value){for(var i=0;i<array.length;i+=1){if(array[i]===value){return i;}}return-1;};/** @typedef {import('./types').Getter} Getter *//** @type {import('./types').Cache} */var cache={__proto__:null};if(hasToStringTag&&gOPD&&getProto){forEach(typedArrays,function(typedArray){var arr=new g[typedArray]();if(Symbol.toStringTag in arr&&getProto){var proto=getProto(arr);// @ts-expect-error TS won't narrow inside a closure
5760
+ original.apply(this,args).then(function(ret){process.nextTick(cb.bind(null,null,ret));},function(rej){process.nextTick(callbackifyOnRejected.bind(null,rej,cb));});}Object.setPrototypeOf(callbackified,Object.getPrototypeOf(original));Object.defineProperties(callbackified,getOwnPropertyDescriptors(original));return callbackified;}exports.callbackify=callbackify;}).call(this);}).call(this,require('_process'));},{"./support/isBuffer":185,"./support/types":186,"_process":126,"inherits":77}],188:[function(require,module,exports){(function(global){(function(){'use strict';var forEach=require('for-each');var availableTypedArrays=require('available-typed-arrays');var callBind=require('call-bind');var callBound=require('call-bound');var gOPD=require('gopd');var getProto=require('get-proto');var $toString=callBound('Object.prototype.toString');var hasToStringTag=require('has-tostringtag/shams')();var g=typeof globalThis==='undefined'?global:globalThis;var typedArrays=availableTypedArrays();var $slice=callBound('String.prototype.slice');/** @type {<T = unknown>(array: readonly T[], value: unknown) => number} */var $indexOf=callBound('Array.prototype.indexOf',true)||function indexOf(array,value){for(var i=0;i<array.length;i+=1){if(array[i]===value){return i;}}return-1;};/** @typedef {import('./types').Getter} Getter *//** @type {import('./types').Cache} */var cache={__proto__:null};if(hasToStringTag&&gOPD&&getProto){forEach(typedArrays,function(typedArray){var arr=new g[typedArray]();if(Symbol.toStringTag in arr&&getProto){var proto=getProto(arr);// @ts-expect-error TS won't narrow inside a closure
5679
5761
  var descriptor=gOPD(proto,Symbol.toStringTag);if(!descriptor&&proto){var superProto=getProto(proto);// @ts-expect-error TS won't narrow inside a closure
5680
5762
  descriptor=gOPD(superProto,Symbol.toStringTag);}if(descriptor&&descriptor.get){var bound=callBind(descriptor.get);cache[(/** @type {`$${import('.').TypedArrayName}`} */'$'+typedArray)]=bound;}}});}else{forEach(typedArrays,function(typedArray){var arr=new g[typedArray]();var fn=arr.slice||arr.set;if(fn){var bound=/** @type {import('./types').BoundSlice | import('./types').BoundSet} */// @ts-expect-error TODO FIXME
5681
5763
  callBind(fn);cache[(/** @type {`$${import('.').TypedArrayName}`} */'$'+typedArray)]=bound;}});}/** @type {(value: object) => false | import('.').TypedArrayName} */var tryTypedArrays=function tryAllTypedArrays(value){/** @type {ReturnType<typeof tryAllTypedArrays>} */var found=false;forEach(/** @type {Record<`\$${import('.').TypedArrayName}`, Getter>} */cache,/** @type {(getter: Getter, name: `\$${import('.').TypedArrayName}`) => void} */function(getter,typedArray){if(!found){try{// @ts-expect-error a throw is fine here
5682
5764
  if('$'+getter(value)===typedArray){found=/** @type {import('.').TypedArrayName} */$slice(typedArray,1);}}catch(e){/**/}}});return found;};/** @type {(value: object) => false | import('.').TypedArrayName} */var trySlices=function tryAllSlices(value){/** @type {ReturnType<typeof tryAllSlices>} */var found=false;forEach(/** @type {Record<`\$${import('.').TypedArrayName}`, Getter>} */cache,/** @type {(getter: Getter, name: `\$${import('.').TypedArrayName}`) => void} */function(getter,name){if(!found){try{// @ts-expect-error a throw is fine here
5683
5765
  getter(value);found=/** @type {import('.').TypedArrayName} */$slice(name,1);}catch(e){/**/}}});return found;};/** @type {import('.')} */module.exports=function whichTypedArray(value){if(!value||typeof value!=='object'){return false;}if(!hasToStringTag){/** @type {string} */var tag=$slice($toString(value),8,-1);if($indexOf(typedArrays,tag)>-1){return tag;}if(tag!=='Object'){return false;}// node < 0.6 hits here on real Typed Arrays
5684
5766
  return trySlices(value);}if(!gOPD){return null;}// unknown engine
5685
- return tryTypedArrays(value);};}).call(this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{"available-typed-arrays":19,"call-bind":31,"call-bound":32,"for-each":45,"get-proto":67,"gopd":69,"has-tostringtag/shams":73}],188:[function(require,module,exports){// Returns a wrapper function that returns a wrapped callback
5767
+ return tryTypedArrays(value);};}).call(this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{"available-typed-arrays":19,"call-bind":31,"call-bound":32,"for-each":45,"get-proto":67,"gopd":69,"has-tostringtag/shams":73}],189:[function(require,module,exports){// Returns a wrapper function that returns a wrapped callback
5686
5768
  // The wrapper function should do some stuff, and return a
5687
5769
  // presumably different callback function.
5688
5770
  // This makes sure that own properties are retained, so that
5689
5771
  // decorations and such are not lost along the way.
5690
- module.exports=wrappy;function wrappy(fn,cb){if(fn&&cb)return wrappy(fn)(cb);if(typeof fn!=='function')throw new TypeError('need wrapper function');Object.keys(fn).forEach(function(k){wrapper[k]=fn[k];});return wrapper;function wrapper(){var args=new Array(arguments.length);for(var i=0;i<args.length;i++){args[i]=arguments[i];}var ret=fn.apply(this,args);var cb=args[args.length-1];if(typeof ret==='function'&&ret!==cb){Object.keys(cb).forEach(function(k){ret[k]=cb[k];});}return ret;}}},{}],189:[function(require,module,exports){module.exports=extend;var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(){var target={};for(var i=0;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;}},{}],190:[function(require,module,exports){/**
5772
+ module.exports=wrappy;function wrappy(fn,cb){if(fn&&cb)return wrappy(fn)(cb);if(typeof fn!=='function')throw new TypeError('need wrapper function');Object.keys(fn).forEach(function(k){wrapper[k]=fn[k];});return wrapper;function wrapper(){var args=new Array(arguments.length);for(var i=0;i<args.length;i++){args[i]=arguments[i];}var ret=fn.apply(this,args);var cb=args[args.length-1];if(typeof ret==='function'&&ret!==cb){Object.keys(cb).forEach(function(k){ret[k]=cb[k];});}return ret;}}},{}],190:[function(require,module,exports){module.exports=extend;var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(){var target={};for(var i=0;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;}},{}],191:[function(require,module,exports){/**
5691
5773
  * Meadow Endpoints Service Data Broker Library
5692
5774
  *
5693
5775
  * @license MIT
@@ -5707,10 +5789,10 @@ this._Endpoints={Create:require('./endpoints/create/Meadow-Endpoint-Create.js'),
5707
5789
  */Schema:require('./endpoints/schema/Meadow-Endpoint-Schema.js'),// Validate a passed-in JSON object for if it matches the schema
5708
5790
  Validate:require('./endpoints/schema/Meadow-Endpoint-Validate.js'),// Get an empty initialized JSON object for this.
5709
5791
  New:require('./endpoints/schema/Meadow-Endpoint-New.js')};}/**
5710
- * @return {import('./controller/Meadow-Endpoints-Controller-Base.js')} The controller instance
5711
- */get controller(){return this._Controller;}/**
5712
- * @param {import('./controller/Meadow-Endpoints-Controller-Base.js')} pController - The controller instance
5713
- */set controller(pController){this._Controller=pController;}/**
5792
+ * @return {import('./controller/Meadow-Endpoints-Controller-Base.js')} The controller instance
5793
+ */get controller(){return this._Controller;}/**
5794
+ * @param {import('./controller/Meadow-Endpoints-Controller-Base.js')} pController - The controller instance
5795
+ */set controller(pController){this._Controller=pController;}/**
5714
5796
  * Customize a default endpoint (or create more)
5715
5797
  *
5716
5798
  * @method setEndpoint
@@ -5718,28 +5800,28 @@ New:require('./endpoints/schema/Meadow-Endpoint-New.js')};}/**
5718
5800
  // technically block out the routes for the IDRecord 'Schema' (e.g. GET[/1.0/EntityName/Schema] ==NEEDS=> GET[/1.0/EntityName/100])
5719
5801
  if(this._EnabledBehaviorSets.Schema){this.connectRoute(pServiceServer,'get',`/Schema`,this._Endpoints.Schema,`the internal behavior _Endpoints.Schema`);}if(this._EnabledBehaviorSets.New){this.connectRoute(pServiceServer,'get',`/Schema/New`,this._Endpoints.New,`the internal behavior _Endpoints.New`);}if(this._EnabledBehaviorSets.Validate){this.connectRoute(pServiceServer,'postWithBodyParser',`/Schema/Validate`,this._Endpoints.Validate,`the internal behavior _Endpoints.Validate`);}// Standard CRUD and Count endpoints
5720
5802
  if(this._EnabledBehaviorSets.Create){this.connectRoute(pServiceServer,'postWithBodyParser',``,this._Endpoints.Create,`the internal behavior _Endpoints.Create`);this.connectRoute(pServiceServer,'postWithBodyParser',`s`,this._Endpoints.Creates,`the internal behavior _Endpoints.Creates`);}if(this._EnabledBehaviorSets.Read){this.connectRoute(pServiceServer,'get',`/Max/:ColumnName`,this._Endpoints.ReadMax,`the internal behavior _Endpoints.ReadMax`);this.connectRoute(pServiceServer,'get',`/:IDRecord`,this._Endpoints.Read,`the internal behavior _Endpoints.Read`);}if(this._EnabledBehaviorSets.Reads){this.connectRoute(pServiceServer,'get',`s`,this._Endpoints.Reads,`the internal behavior _Endpoints.Reads`);this.connectRoute(pServiceServer,'get',`s/By/:ByField/:ByValue`,this._Endpoints.ReadsBy,`the internal behavior _Endpoints.ReadsBy`);this.connectRoute(pServiceServer,'get',`s/By/:ByField/:ByValue/:Begin/:Cap`,this._Endpoints.ReadsBy,`the internal behavior _Endpoints.ReadsBy`);this.connectRoute(pServiceServer,'get',`s/FilteredTo/:Filter`,this._Endpoints.Reads,`the internal behavior _Endpoints.Reads`);this.connectRoute(pServiceServer,'get',`s/FilteredTo/:Filter/:Begin/:Cap`,this._Endpoints.Reads,`the internal behavior _Endpoints.Reads`);this.connectRoute(pServiceServer,'get',`Select`,this._Endpoints.ReadSelectList,`the internal behavior _Endpoints.ReadSelectList`);this.connectRoute(pServiceServer,'get',`Select/FilteredTo/:Filter`,this._Endpoints.ReadSelectList,`the internal behavior _Endpoints.ReadSelectList`);this.connectRoute(pServiceServer,'get',`Select/FilteredTo/:Filter/:Begin/:Cap`,this._Endpoints.ReadSelectList,`the internal behavior _Endpoints.ReadSelectList`);this.connectRoute(pServiceServer,'get',`Select/:Begin/:Cap`,this._Endpoints.ReadSelectList,`the internal behavior _Endpoints.ReadSelectList`);this.connectRoute(pServiceServer,'get',`s/Lite`,this._Endpoints.ReadLiteList,`the internal behavior _Endpoints.ReadLiteList`);this.connectRoute(pServiceServer,'get',`s/Lite/FilteredTo/:Filter`,this._Endpoints.ReadLiteList,`the internal behavior _Endpoints.ReadLiteList`);this.connectRoute(pServiceServer,'get',`s/Lite/FilteredTo/:Filter/:Begin/:Cap`,this._Endpoints.ReadLiteList,`the internal behavior _Endpoints.ReadLiteList`);this.connectRoute(pServiceServer,'get',`s/Lite/:Begin/:Cap`,this._Endpoints.ReadLiteList,`the internal behavior _Endpoints.ReadLiteList`);this.connectRoute(pServiceServer,'get',`s/LiteExtended/:ExtraColumns`,this._Endpoints.ReadLiteList,`the internal behavior _Endpoints.ReadLiteList`);this.connectRoute(pServiceServer,'get',`s/LiteExtended/:ExtraColumns/FilteredTo/:Filter`,this._Endpoints.ReadLiteList,`the internal behavior _Endpoints.ReadLiteList`);this.connectRoute(pServiceServer,'get',`s/LiteExtended/:ExtraColumns/FilteredTo/:Filter/:Begin/:Cap`,this._Endpoints.ReadLiteList,`the internal behavior _Endpoints.ReadLiteList`);this.connectRoute(pServiceServer,'get',`s/LiteExtended/:ExtraColumns/:Begin/:Cap`,this._Endpoints.ReadLiteList,`the internal behavior _Endpoints.ReadLiteList`);this.connectRoute(pServiceServer,'get',`s/Distinct/:Columns`,this._Endpoints.ReadDistinctList,`the internal behavior _Endpoints.ReadDistinctList`);this.connectRoute(pServiceServer,'get',`s/Distinct/:Columns/FilteredTo/:Filter`,this._Endpoints.ReadDistinctList,`the internal behavior _Endpoints.ReadDistinctList`);this.connectRoute(pServiceServer,'get',`s/Distinct/:Columns/FilteredTo/:Filter/:Begin/:Cap`,this._Endpoints.ReadDistinctList,`the internal behavior _Endpoints.ReadDistinctList`);this.connectRoute(pServiceServer,'get',`s/Distinct/:Columns/:Begin/:Cap`,this._Endpoints.ReadDistinctList,`the internal behavior _Endpoints.ReadDistinctList`);this.connectRoute(pServiceServer,'get',`s/:Begin/:Cap`,this._Endpoints.Reads,`the internal behavior _Endpoints.Reads`);}if(this._EnabledBehaviorSets.Update){this.connectRoute(pServiceServer,'putWithBodyParser',``,this._Endpoints.Update,`the internal behavior _Endpoints.Update`);this.connectRoute(pServiceServer,'putWithBodyParser',`s`,this._Endpoints.Updates,`the internal behavior _Endpoints.Updates`);this.connectRoute(pServiceServer,'putWithBodyParser',`/Upsert`,this._Endpoints.Upsert,`the internal behavior _Endpoints.Upsert`);this.connectRoute(pServiceServer,'putWithBodyParser',`/Upserts`,this._Endpoints.Upserts,`the internal behavior _Endpoints.Upserts`);}if(this._EnabledBehaviorSets.Delete){this.connectRoute(pServiceServer,'del',``,this._Endpoints.Delete,`the internal behavior _Endpoints.Delete`);this.connectRoute(pServiceServer,'del',`/:IDRecord`,this._Endpoints.Delete,`the internal behavior _Endpoints.Delete`);this.connectRoute(pServiceServer,'get',`/Undelete/:IDRecord`,this._Endpoints.Undelete,`the internal behavior _Endpoints.Undelete`);}if(this._EnabledBehaviorSets.Count){this.connectRoute(pServiceServer,'get',`s/Count`,this._Endpoints.Count,`the internal behavior _Endpoints.Count`);this.connectRoute(pServiceServer,'get',`s/Count/By/:ByField/:ByValue`,this._Endpoints.CountBy,`the internal behavior _Endpoints.CountBy`);this.connectRoute(pServiceServer,'get',`s/Count/FilteredTo/:Filter`,this._Endpoints.Count,`the internal behavior _Endpoints.Count`);}}}// This is for backwards compatibility
5721
- function autoConstruct(pMeadow,pControllerOptions){return new MeadowEndpoints(pMeadow,pControllerOptions);}module.exports=MeadowEndpoints;module.exports.new=autoConstruct;module.exports.Meadow=libMeadow;module.exports.BaseController=libMeadowEndpointsControllerBase;},{"./controller/Meadow-Endpoints-Controller-Base.js":191,"./endpoints/count/Meadow-Endpoint-Count.js":198,"./endpoints/count/Meadow-Endpoint-CountBy.js":199,"./endpoints/create/Meadow-Endpoint-BulkCreate.js":200,"./endpoints/create/Meadow-Endpoint-Create.js":201,"./endpoints/delete/Meadow-Endpoint-Delete.js":203,"./endpoints/delete/Meadow-Endpoint-Undelete.js":204,"./endpoints/read/Meadow-Endpoint-Read.js":205,"./endpoints/read/Meadow-Endpoint-ReadDistinctList.js":206,"./endpoints/read/Meadow-Endpoint-ReadLiteList.js":207,"./endpoints/read/Meadow-Endpoint-ReadMax.js":208,"./endpoints/read/Meadow-Endpoint-ReadSelectList.js":209,"./endpoints/read/Meadow-Endpoint-Reads.js":210,"./endpoints/read/Meadow-Endpoint-ReadsBy.js":211,"./endpoints/schema/Meadow-Endpoint-New.js":214,"./endpoints/schema/Meadow-Endpoint-Schema.js":215,"./endpoints/schema/Meadow-Endpoint-Validate.js":216,"./endpoints/update/Meadow-Endpoint-BulkUpdate.js":217,"./endpoints/update/Meadow-Endpoint-Update.js":218,"./endpoints/upsert/Meadow-Endpoint-BulkUpsert.js":220,"./endpoints/upsert/Meadow-Endpoint-Upsert.js":221,"meadow":103}],191:[function(require,module,exports){const libAsyncWaterfall=require('async/waterfall');const libBaseLogController=require('./components/Meadow-Endpoints-Controller-Log.js');const libBaseErrorController=require('./components/Meadow-Endpoints-Controller-Error.js');const libBaseBehaviorInjectionController=require('./components/Meadow-Endpoints-Controller-BehaviorInjection.js');const libMeadowEndpointsFilterParser=require('./utility/Meadow-Endpoints-Filter-Parser.js');const libMeadowEndpointsSessionMarshaler=require('./utility/Meadow-Endpoints-Session-Marshaler.js');const libMeadowEndpointsStreamRecordArray=require('./utility/Meadow-Endpoints-Stream-RecordArray.js');class MeadowEndpointControllerBase{/**
5722
- * @param {import('../Meadow-Endpoints.js')} pMeadowEndpoints
5723
- */constructor(pMeadowEndpoints){this.DAL=pMeadowEndpoints.DAL;this.ControllerOptions=pMeadowEndpoints._ControllerOptions;// Application Services
5803
+ function autoConstruct(pMeadow,pControllerOptions){return new MeadowEndpoints(pMeadow,pControllerOptions);}module.exports=MeadowEndpoints;module.exports.new=autoConstruct;module.exports.Meadow=libMeadow;module.exports.BaseController=libMeadowEndpointsControllerBase;},{"./controller/Meadow-Endpoints-Controller-Base.js":192,"./endpoints/count/Meadow-Endpoint-Count.js":199,"./endpoints/count/Meadow-Endpoint-CountBy.js":200,"./endpoints/create/Meadow-Endpoint-BulkCreate.js":201,"./endpoints/create/Meadow-Endpoint-Create.js":202,"./endpoints/delete/Meadow-Endpoint-Delete.js":204,"./endpoints/delete/Meadow-Endpoint-Undelete.js":205,"./endpoints/read/Meadow-Endpoint-Read.js":206,"./endpoints/read/Meadow-Endpoint-ReadDistinctList.js":207,"./endpoints/read/Meadow-Endpoint-ReadLiteList.js":208,"./endpoints/read/Meadow-Endpoint-ReadMax.js":209,"./endpoints/read/Meadow-Endpoint-ReadSelectList.js":210,"./endpoints/read/Meadow-Endpoint-Reads.js":211,"./endpoints/read/Meadow-Endpoint-ReadsBy.js":212,"./endpoints/schema/Meadow-Endpoint-New.js":215,"./endpoints/schema/Meadow-Endpoint-Schema.js":216,"./endpoints/schema/Meadow-Endpoint-Validate.js":217,"./endpoints/update/Meadow-Endpoint-BulkUpdate.js":218,"./endpoints/update/Meadow-Endpoint-Update.js":219,"./endpoints/upsert/Meadow-Endpoint-BulkUpsert.js":221,"./endpoints/upsert/Meadow-Endpoint-Upsert.js":222,"meadow":103}],192:[function(require,module,exports){const libAsyncWaterfall=require('async/waterfall');const libBaseLogController=require('./components/Meadow-Endpoints-Controller-Log.js');const libBaseErrorController=require('./components/Meadow-Endpoints-Controller-Error.js');const libBaseBehaviorInjectionController=require('./components/Meadow-Endpoints-Controller-BehaviorInjection.js');const libMeadowEndpointsFilterParser=require('./utility/Meadow-Endpoints-Filter-Parser.js');const libMeadowEndpointsSessionMarshaler=require('./utility/Meadow-Endpoints-Session-Marshaler.js');const libMeadowEndpointsStreamRecordArray=require('./utility/Meadow-Endpoints-Stream-RecordArray.js');class MeadowEndpointControllerBase{/**
5804
+ * @param {import('../Meadow-Endpoints.js')} pMeadowEndpoints
5805
+ */constructor(pMeadowEndpoints){this.DAL=pMeadowEndpoints.DAL;this.ControllerOptions=pMeadowEndpoints._ControllerOptions;// Application Services
5724
5806
  this._Settings=null;this._LogController=null;// Logic and Behavior
5725
5807
  this._BehaviorInjectionController=null;this._ErrorController=null;// Internal async utility functions
5726
5808
  this.waterfall=this.DAL.fable.Utility.waterfall;this.eachLimit=this.DAL.fable.Utility.eachLimit;this.extend=this.DAL.fable.Utility.extend;//FIXME: not sure what this is supposed to do, it was broken before
5727
5809
  //if ((typeof(this.ControllerOptions) != 'object') || this.ControllerOptions.hasOwnProperty('ControllerClass'))
5728
5810
  {this.initializeDefaultUnsetControllers(this);}// Behavior functions
5729
5811
  this._FilterParser=new libMeadowEndpointsFilterParser(this);this._SessionMarshaler=new libMeadowEndpointsSessionMarshaler(this);this._StreamRecordArray=new libMeadowEndpointsStreamRecordArray(this);}/**
5730
- * @param {import('./Meadow-Endpoints-Controller-Base.js')} pController
5731
- */initializeDefaultUnsetControllers(pController){// Application Services
5812
+ * @param {import('./Meadow-Endpoints-Controller-Base.js')} pController
5813
+ */initializeDefaultUnsetControllers(pController){// Application Services
5732
5814
  if(!this._Settings){this._Settings=pController.DAL.fable.settings;}if(!this._Settings.hasOwnProperty('MeadowEndpointsDefaultSessionObject')){this._Settings.MeadowEndpointsDefaultSessionObject={CustomerID:0,SessionID:'0x0000',DeviceID:'Unset',UserID:0,UserRole:'None',UserRoleIndex:0,LoggedIn:false};}if(!this._LogController){this._LogController=new libBaseLogController(pController);}if(!this._BehaviorInjectionController){this._BehaviorInjectionController=new libBaseBehaviorInjectionController(pController);}if(!this._ErrorController){this._ErrorController=new libBaseErrorController(pController);}}initializeRequestState(pRequest,pVerb){let tmpRequestState={};tmpRequestState.Verb=typeof pVerb=='string'?pVerb:'Unnamed_Custom_Behavior';tmpRequestState.SessionData=this.getSessionData(pRequest);return tmpRequestState;}// Clone the session data and verb to a new request state object
5733
5815
  cloneAsyncSafeRequestState(pRequestState,pNewVerb){let tmpSafeRequestState={ParentRequestState:pRequestState,SessionData:pRequestState.SessionData};tmpSafeRequestState.Verb=typeof pNewVerb=='string'?pNewVerb:pRequestState.Verb;return tmpSafeRequestState;}// Override this to provide an alternate ending function that is run with every endpoint.
5734
5816
  _BeginDataRequestFunction(pRequest,pResponse,fNext){return fNext();}beginMeadowRequest(pRequest,pResponse,fNext){this._BeginDataRequestFunction(pRequest,pResponse,fNext);}// Override this to provide an alternate ending function that is run with every endpoint.
5735
5817
  _EndDataRequestFunction(pRequest,pResponse,fNext){return fNext();}endMeadowRequest(pRequest,pResponse,fNext){this._EndDataRequestFunction(pRequest,pResponse,fNext);}// Application Services
5736
5818
  get settings(){return this._Settings;}set settings(pSettings){this._Settings=pSettings;}get log(){return this._LogController;}set log(pLogController){this._LogController=pLogController;}// Logic and Behavior
5737
5819
  get BehaviorInjection(){return this._BehaviorInjectionController;}set BehaviorInjection(pBehaviorInjectionController){this._BehaviorInjectionController=pBehaviorInjectionController;}get ErrorHandler(){return this._ErrorController;}set ErrorHandler(pErrorController){this._ErrorController=pErrorController;}parseFilter(pFilterString,pQuery){return this._FilterParser.parseFilter(pFilterString,pQuery);}doStreamRecordArray(pResponse,pRecords,fCallback){return this._StreamRecordArray.streamRecordArray(pResponse,pRecords,fCallback);}getSessionData(pRequest){return this._SessionMarshaler.getSessionData(pRequest);}}module.exports=MeadowEndpointControllerBase;// Export the base classes for the controller components, for inheritance
5738
- module.exports.BaseErrorController=libBaseErrorController;module.exports.BaseBehaviorInjectionController=libBaseBehaviorInjectionController;module.exports.BaseFilterParser=libMeadowEndpointsFilterParser;module.exports.BaseSessionMarshaler=libMeadowEndpointsSessionMarshaler;module.exports.BaseStreamRecordArray=libMeadowEndpointsStreamRecordArray;},{"./components/Meadow-Endpoints-Controller-BehaviorInjection.js":192,"./components/Meadow-Endpoints-Controller-Error.js":193,"./components/Meadow-Endpoints-Controller-Log.js":194,"./utility/Meadow-Endpoints-Filter-Parser.js":195,"./utility/Meadow-Endpoints-Session-Marshaler.js":196,"./utility/Meadow-Endpoints-Stream-RecordArray.js":197,"async/waterfall":18}],192:[function(require,module,exports){//TODO: This is only being referenced to allow compatibility with service_pieces
5820
+ module.exports.BaseErrorController=libBaseErrorController;module.exports.BaseBehaviorInjectionController=libBaseBehaviorInjectionController;module.exports.BaseFilterParser=libMeadowEndpointsFilterParser;module.exports.BaseSessionMarshaler=libMeadowEndpointsSessionMarshaler;module.exports.BaseStreamRecordArray=libMeadowEndpointsStreamRecordArray;},{"./components/Meadow-Endpoints-Controller-BehaviorInjection.js":193,"./components/Meadow-Endpoints-Controller-Error.js":194,"./components/Meadow-Endpoints-Controller-Log.js":195,"./utility/Meadow-Endpoints-Filter-Parser.js":196,"./utility/Meadow-Endpoints-Session-Marshaler.js":197,"./utility/Meadow-Endpoints-Stream-RecordArray.js":198,"async/waterfall":18}],193:[function(require,module,exports){//TODO: This is only being referenced to allow compatibility with service_pieces
5739
5821
  //TODO: There is risk of other incompatibilities until service_pieces is updated
5740
5822
  const libUnderscore=require('underscore');class MeadowEndpointsControllerBehaviorInjectionBase{/**
5741
- * @param {import('../Meadow-Endpoints-Controller-Base.js')} pController
5742
- */constructor(pController){this._Controller=pController;// The template compilation function
5823
+ * @param {import('../Meadow-Endpoints-Controller-Base.js')} pController
5824
+ */constructor(pController){this._Controller=pController;// The template compilation function
5743
5825
  //this.template = this._Controller.DAL.fable.Utility.template;
5744
5826
  this.template=libUnderscore.template;// An object to hold modifications to specific behaviors.
5745
5827
  this._BehaviorFunctions={};// A set of objects to hold the specific templates and their compiled functions
@@ -5750,10 +5832,10 @@ this._Templates={};this._TemplateFunctions={};}/**
5750
5832
  *
5751
5833
  * var someBehavior = function(pRequest, fCallback)
5752
5834
  * {
5753
- * // Do some stuff with pRequest...
5754
- * if (pRequest.UserSession.UserRoleIndex < 5)
5755
- * tmpRequestState.Query.addFilter('Customer', pRequest.UserSession.IDCustomer);
5756
- * return fCallback(false);
5835
+ * // Do some stuff with pRequest...
5836
+ * if (pRequest.UserSession.UserRoleIndex < 5)
5837
+ * tmpRequestState.Query.addFilter('Customer', pRequest.UserSession.IDCustomer);
5838
+ * return fCallback(false);
5757
5839
  * }
5758
5840
  *
5759
5841
  * It is important to note that the fCallback function expects false if no error, or a string message if there is one.
@@ -5777,10 +5859,16 @@ this._Templates[pTemplateHash]=pTemplate;this._TemplateFunctions[pTemplateHash]=
5777
5859
  if(tmpTemplateFunction===false){// If the template doesn't exist, try to use the passed-in default and set that as the template.
5778
5860
  // Otherwise make it empty.
5779
5861
  this.setTemplate(pTemplateHash,typeof pDefaultTemplate==='undefined'?'':pDefaultTemplate);tmpTemplateFunction=this.getTemplateFunction(pTemplateHash);}// Now process and return the underscore template.
5780
- return tmpTemplateFunction(tmpTemplateData);}}module.exports=MeadowEndpointsControllerBehaviorInjectionBase;},{"underscore":181}],193:[function(require,module,exports){class MeadowEndpointsControllerErrorBase{/**
5781
- * @param {import('../Meadow-Endpoints-Controller-Base.js')} pController
5782
- */constructor(pController){this._Controller=pController;}// Get the error object
5783
- getError(pMessage,pStatusCode,pSuppressSoftwareTrace){let tmpError=new Error(pMessage);// Default the error status code to 400 if none is passed
5862
+ return tmpTemplateFunction(tmpTemplateData);}}module.exports=MeadowEndpointsControllerBehaviorInjectionBase;},{"underscore":182}],194:[function(require,module,exports){/**
5863
+ * Error object extended with the extra response-shape metadata
5864
+ * meadow-endpoints attaches: an HTTP StatusCode and a flag telling
5865
+ * the error handler whether to include a stack trace in the response.
5866
+ *
5867
+ * @typedef {Error & { StatusCode?: number, SuppressSoftwareTrace?: boolean, code?: string }} MeadowEndpointError
5868
+ */class MeadowEndpointsControllerErrorBase{/**
5869
+ * @param {import('../Meadow-Endpoints-Controller-Base.js')} pController
5870
+ */constructor(pController){this._Controller=pController;}// Get the error object
5871
+ getError(pMessage,pStatusCode,pSuppressSoftwareTrace){const tmpError=/** @type {MeadowEndpointError} */new Error(pMessage);// Default the error status code to 400 if none is passed
5784
5872
  tmpError.StatusCode=typeof pStatusCode=='number'?pStatusCode:400;// This suppresses the stack trace from being sent back or logged.
5785
5873
  // And by default it does not send a stack trace, as we expect errors created this way to be protocol, schema or data related.
5786
5874
  tmpError.SuppressSoftwareTrace=typeof pSuppressSoftwareTrace!='undefined'?pSuppressSoftwareTrace:true;return tmpError;}// Handle an error if set -- some errors don't send the response back because they aren't fully errory errors.
@@ -5790,13 +5878,13 @@ if(!this._Controller.ControllerOptions.SendErrorStatusCodes){let tmpStatusCode=p
5790
5878
  prepareRequestContextOutputObject(pObjectToPopulate,pRequest,pRequestState,pError){// Internally created errors supress stack traces
5791
5879
  if(pError){pObjectToPopulate.Error=pError.message;pObjectToPopulate.Code=pError.code;pObjectToPopulate.StatusCode=pError.StatusCode;if(!pError.SuppressSoftwareTrace){pObjectToPopulate.Stack=pError.stack;}if(pRequestState.hasOwnProperty('Record')){pObjectToPopulate.Record=pRequestState.Record;}if(pRequestState.hasOwnProperty('Query')&&typeof pRequestState.Query=='object'){if(pRequestState.Query.query){if(typeof pRequestState.Query.query.body=='string'){pObjectToPopulate.Query=pRequestState.Query.query.body;}if(typeof pRequestState.Query.query.parameters=='object'){pObjectToPopulate.QueryParameters=pRequestState.Query.query.parameters;pObjectToPopulate.RebuiltQueryString=typeof pObjectToPopulate.Query=='string'?pObjectToPopulate.Query:'';// This gnarly bit of code attempts to reconstruct a non prepared string version of the query, to help.
5792
5880
  let tmpQueryParameterSet=Object.keys(pObjectToPopulate.QueryParameters);for(let i=0;i<tmpQueryParameterSet.length;i++){switch(typeof tmpQueryParameterSet[i]){case'number':pObjectToPopulate.RebuiltQueryString=pObjectToPopulate.RebuiltQueryString.replace(new RegExp(`:${tmpQueryParameterSet[i]}\\b`,'g'),`'${pObjectToPopulate.QueryParameters[tmpQueryParameterSet[i]]}'`);break;case'string':// TODO: This may need more ... nuance...
5793
- default:pObjectToPopulate.RebuiltQueryString=pObjectToPopulate.RebuiltQueryString.replace(new RegExp(`:${tmpQueryParameterSet[i]}\\b`,'g'),pObjectToPopulate.QueryParameters[tmpQueryParameterSet[i]]);break;}}}}}}return pObjectToPopulate;}}module.exports=MeadowEndpointsControllerErrorBase;},{}],194:[function(require,module,exports){class MeadowEndpointsControllerLogBase{/**
5794
- * @param {import('../Meadow-Endpoints-Controller-Base.js')} pController
5795
- */constructor(pController){this._Controller=pController;}// This is called for every successful request log line. Be careful what you add in overloads!
5881
+ default:pObjectToPopulate.RebuiltQueryString=pObjectToPopulate.RebuiltQueryString.replace(new RegExp(`:${tmpQueryParameterSet[i]}\\b`,'g'),pObjectToPopulate.QueryParameters[tmpQueryParameterSet[i]]);break;}}}}}}return pObjectToPopulate;}}module.exports=MeadowEndpointsControllerErrorBase;},{}],195:[function(require,module,exports){class MeadowEndpointsControllerLogBase{/**
5882
+ * @param {import('../Meadow-Endpoints-Controller-Base.js')} pController
5883
+ */constructor(pController){this._Controller=pController;}// This is called for every successful request log line. Be careful what you add in overloads!
5796
5884
  prepareLogData(pRequest,pRequestState,pLogData){// TODO: Discuss if these should be configurations
5797
5885
  if(pRequestState.hasOwnProperty('Record')){if(pRequestState.Record.hasOwnProperty(this._Controller.DAL.defaultIdentifier)){pLogData[this._Controller.DAL.defaultIdentifier]=pRequestState.Record[this._Controller.DAL.defaultIdentifier];}if(pRequestState.Record.hasOwnProperty(this._Controller.DAL.defaultGUIdentifier)){pLogData[this._Controller.DAL.defaultGUIdentifier]=pRequestState.Record[this._Controller.DAL.defaultGUIdentifier];}}if(pRequestState.hasOwnProperty('UpdatedRecords')){pLogData.UpdatedRecordCount=pRequestState.UpdatedRecords.length;}if(pRequestState.hasOwnProperty('CreatedRecords')){pLogData.UpdatedRecordCount=pRequestState.CreatedRecords.length;}if(pRequestState.hasOwnProperty('UpsertedRecords')){pLogData.UpdatedRecordCount=pRequestState.UpsertedRecords.length;}return pLogData;}// This is called whenever an endpoint is completed successfully
5798
5886
  requestCompletedSuccessfully(pRequest,pRequestState,pActionSummary){let tmpLogData={SessionID:pRequestState.SessionData.SessionID,RequestID:pRequest.RequestUUID,RequestURL:pRequest.url,Scope:this._Controller.DAL.scope,Action:`${this._Controller.DAL.scope}-${pRequestState.Verb}`,Verb:pRequestState.Verb};this._Controller.log.info(pActionSummary,this.prepareLogData(pRequest,pRequestState,tmpLogData));}// This is called whenever an endpoint is completed successfully
5799
- logRequestError(pRequest,pRequestState,pError){let tmpErrorLogData={SessionID:pRequestState.SessionData.SessionID,RequestID:pRequest.RequestUUID,RequestURL:pRequest.url,Scope:this._Controller.DAL.scope,Action:`${this._Controller.DAL.scope}-${pRequestState.Verb}`,Verb:pRequestState.Verb};tmpErrorLogData=this._Controller.ErrorHandler.prepareRequestContextOutputObject(tmpErrorLogData,pRequest,pRequestState,pError);this._Controller.log.error(pError.message,this.prepareLogData(pRequest,pRequestState,tmpErrorLogData));}trace(pLogText,pLogObject){this._Controller.DAL.log.trace(pLogText,pLogObject);}debug(pLogText,pLogObject){this._Controller.DAL.log.debug(pLogText,pLogObject);}info(pLogText,pLogObject){this._Controller.DAL.log.info(pLogText,pLogObject);}warn(pLogText,pLogObject){this._Controller.DAL.log.warn(pLogText,pLogObject);}error(pLogText,pLogObject){this._Controller.DAL.log.error(pLogText,pLogObject);}fatal(pLogText,pLogObject){this._Controller.DAL.log.fatal(pLogText,pLogObject);}}module.exports=MeadowEndpointsControllerLogBase;},{}],195:[function(require,module,exports){/**
5887
+ logRequestError(pRequest,pRequestState,pError){let tmpErrorLogData={SessionID:pRequestState.SessionData.SessionID,RequestID:pRequest.RequestUUID,RequestURL:pRequest.url,Scope:this._Controller.DAL.scope,Action:`${this._Controller.DAL.scope}-${pRequestState.Verb}`,Verb:pRequestState.Verb};tmpErrorLogData=this._Controller.ErrorHandler.prepareRequestContextOutputObject(tmpErrorLogData,pRequest,pRequestState,pError);this._Controller.log.error(pError.message,this.prepareLogData(pRequest,pRequestState,tmpErrorLogData));}trace(pLogText,pLogObject){this._Controller.DAL.log.trace(pLogText,pLogObject);}debug(pLogText,pLogObject){this._Controller.DAL.log.debug(pLogText,pLogObject);}info(pLogText,pLogObject){this._Controller.DAL.log.info(pLogText,pLogObject);}warn(pLogText,pLogObject){this._Controller.DAL.log.warn(pLogText,pLogObject);}error(pLogText,pLogObject){this._Controller.DAL.log.error(pLogText,pLogObject);}fatal(pLogText,pLogObject){this._Controller.DAL.log.fatal(pLogText,pLogObject);}}module.exports=MeadowEndpointsControllerLogBase;},{}],196:[function(require,module,exports){/**
5800
5888
  * Meadow Endpoint Utility Class - Parse a Filter String and put it into a Query.
5801
5889
  *
5802
5890
  * @license MIT
@@ -5804,49 +5892,49 @@ logRequestError(pRequest,pRequestState,pError){let tmpErrorLogData={SessionID:pR
5804
5892
  * @author Steven Velozo <steven@velozo.com>
5805
5893
  * @module Meadow
5806
5894
  */const{parse}=require('meadow-filter');class MeadowEndpointsFilterParser{/**
5807
- * @param {import('../Meadow-Endpoints-Controller-Base.js')} pController - The controller instance to which this parser belongs.
5808
- */constructor(pController){this._Controller=pController;}/**
5809
- * @param {string} pFilterString - The filter string to parse.
5810
- * @param {any} pQuery - The foxhound query object to populate.
5811
- *
5812
- * @return {boolean} - True if the filter was parsed successfully, false otherwise.
5813
- */parseFilter(pFilterString,pQuery){return parse(pFilterString,pQuery);}}module.exports=MeadowEndpointsFilterParser;},{"meadow-filter":98}],196:[function(require,module,exports){class MeadowEndpointsSessionMarshaler{/**
5814
- * @param {import('../Meadow-Endpoints-Controller-Base.js')} pController
5815
- */constructor(pController){this._Controller=pController;}getSessionData(pRequest){let tmpSession=Object.assign({},this._Controller.settings.MeadowEndpointsDefaultSessionObject);let tmpHeaderSessionString;switch(this._Controller.settings.MeadowEndpointsSessionDataSource||'Request'){default:this._Controller.log.warn(`Unknown session source configured: ${this._Controller.settings.MeadowEndpointsSessionDataSource} - defaulting to Request for backward compatibility`);case'Request':// noop - already set by orator-session
5895
+ * @param {import('../Meadow-Endpoints-Controller-Base.js')} pController - The controller instance to which this parser belongs.
5896
+ */constructor(pController){this._Controller=pController;}/**
5897
+ * @param {string} pFilterString - The filter string to parse.
5898
+ * @param {any} pQuery - The foxhound query object to populate.
5899
+ *
5900
+ * @return {boolean} - True if the filter was parsed successfully, false otherwise.
5901
+ */parseFilter(pFilterString,pQuery){return parse(pFilterString,pQuery);}}module.exports=MeadowEndpointsFilterParser;},{"meadow-filter":98}],197:[function(require,module,exports){class MeadowEndpointsSessionMarshaler{/**
5902
+ * @param {import('../Meadow-Endpoints-Controller-Base.js')} pController
5903
+ */constructor(pController){this._Controller=pController;}getSessionData(pRequest){let tmpSession=Object.assign({},this._Controller.settings.MeadowEndpointsDefaultSessionObject);let tmpHeaderSessionString;switch(this._Controller.settings.MeadowEndpointsSessionDataSource||'Request'){default:this._Controller.log.warn(`Unknown session source configured: ${this._Controller.settings.MeadowEndpointsSessionDataSource} - defaulting to Request for backward compatibility`);case'Request':// noop - already set by orator-session
5816
5904
  tmpSession=this._Controller.extend(tmpSession,pRequest.UserSession);break;case'None':break;case'Header':try{tmpHeaderSessionString=pRequest.headers['x-trusted-session'];if(!tmpHeaderSessionString){break;}const tmpHeaderSession=JSON.parse(tmpHeaderSessionString);tmpSession=this._Controller.extend(tmpSession,tmpHeaderSession);}catch(pError){this._Controller.log.error(`Meadow Endpoints attempted to process a Header Session String with value [${tmpHeaderSessionString}] and failed -- likely culprit is bad JSON.`);}break;}// Do we keep this here for backwards compatibility?
5817
5905
  // Yes this makes sense here.
5818
- pRequest.UserSession=tmpSession;return tmpSession;}}module.exports=MeadowEndpointsSessionMarshaler;},{}],197:[function(require,module,exports){/**
5906
+ pRequest.UserSession=tmpSession;return tmpSession;}}module.exports=MeadowEndpointsSessionMarshaler;},{}],198:[function(require,module,exports){/**
5819
5907
  * Meadow Endpoint Streamer - Stream an array of recods as JSON to an output stream.
5820
5908
  */const libAsyncEachSeries=require('async/eachSeries');const JSONStream=require('JSONStream');class MeadowEndpointsStreamRecordArray{/**
5821
- * @param {import('../Meadow-Endpoints-Controller-Base.js')} pController
5822
- */constructor(pController){this._Controller=pController;}chunk(pInput,pChunkSize,pChunkCache){let tmpInputArray=[...pInput];// Note lodash defaults to 1, underscore defaults to 0
5909
+ * @param {import('../Meadow-Endpoints-Controller-Base.js')} pController
5910
+ */constructor(pController){this._Controller=pController;}chunk(pInput,pChunkSize,pChunkCache){let tmpInputArray=[...pInput];// Note lodash defaults to 1, underscore defaults to 0
5823
5911
  let tmpChunkSize=typeof pChunkSize=='number'?pChunkSize:0;let tmpChunkCache=typeof pChunkCache!='undefined'?pChunkCache:[];if(tmpChunkSize<=0){return tmpChunkCache;}while(tmpInputArray.length){tmpChunkCache.push(tmpInputArray.splice(0,tmpChunkSize));}return tmpChunkCache;}streamRecordArray(pResponse,pRecords,fCallback){// for meadow invoke, writeHead isn't provided, so just call send(), which is the shim it uses...
5824
5912
  // also, for small arrays, don't bother with the async serialization; this threshold could use tuning
5825
5913
  if(!pResponse.writeHead||!Array.isArray(pRecords)||pRecords.length<2500){pResponse.send(pRecords);return fCallback();}pResponse.writeHead(200,{'content-type':'application/json'});const recordJsonMarshaller=JSONStream.stringify();recordJsonMarshaller.pipe(pResponse);// we write the records in chunks; doing one per loop is very inefficient, doing all is the same as not doing this at all
5826
- libAsyncEachSeries(this.chunk(pRecords,1000),(pRecordChunk,fNext)=>{pRecordChunk.forEach(recordJsonMarshaller.write);setTimeout(fNext,0);},error=>{recordJsonMarshaller.end();fCallback(error);});}}module.exports=MeadowEndpointsStreamRecordArray;},{"JSONStream":1,"async/eachSeries":4}],198:[function(require,module,exports){/**
5914
+ libAsyncEachSeries(this.chunk(pRecords,1000),(pRecordChunk,fNext)=>{pRecordChunk.forEach(recordJsonMarshaller.write);setTimeout(fNext,0);},error=>{recordJsonMarshaller.end();fCallback(error);});}}module.exports=MeadowEndpointsStreamRecordArray;},{"JSONStream":1,"async/eachSeries":4}],199:[function(require,module,exports){/**
5827
5915
  * Meadow Endpoint - Count a Record
5828
5916
  */const doAPIEndpointCount=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'Count');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};this.waterfall([fStageComplete=>{tmpRequestState.Query=this.DAL.query;if(typeof pRequest.params.Filter==='string'){// If a filter has been passed in, parse it and add the values to the query.
5829
- this.parseFilter(pRequest.params.Filter,tmpRequestState.Query);}else if(pRequest.params.Filter){tmpRequestState.Query.setFilter(pRequest.params.Filter);}return fStageComplete();},fBehaviorInjector(`Count-QueryConfiguration`),fStageComplete=>{this.DAL.doCount(tmpRequestState.Query,(pError,pQuery,pCount)=>{tmpRequestState.Result={Count:pCount};return fStageComplete(pError);});},fStageComplete=>{pResponse.send(tmpRequestState.Result);this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Delivered recordset count of ${tmpRequestState.Result.Count} for ${this.DAL.scope}.`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointCount;},{}],199:[function(require,module,exports){/**
5917
+ this.parseFilter(pRequest.params.Filter,tmpRequestState.Query);}else if(pRequest.params.Filter){tmpRequestState.Query.setFilter(pRequest.params.Filter);}return fStageComplete();},fBehaviorInjector(`Count-QueryConfiguration`),fStageComplete=>{this.DAL.doCount(tmpRequestState.Query,(pError,pQuery,pCount)=>{tmpRequestState.Result={Count:pCount};return fStageComplete(pError);});},fStageComplete=>{pResponse.send(tmpRequestState.Result);this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Delivered recordset count of ${tmpRequestState.Result.Count} for ${this.DAL.scope}.`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointCount;},{}],200:[function(require,module,exports){/**
5830
5918
  * Meadow Endpoint - Count a Record filtered by a single value
5831
- */const doAPIEndpointCountBy=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'CountBy');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};this.waterfall([fStageComplete=>{tmpRequestState.Query=this.DAL.query;tmpRequestState.Query.addFilter(pRequest.params.ByField,pRequest.params.ByValue,'=','AND','RequestByField');return fStageComplete();},fBehaviorInjector(`CountBy-QueryConfiguration`),fStageComplete=>{this.DAL.doCount(tmpRequestState.Query,(pError,pQuery,pCount)=>{tmpRequestState.Result={Count:pCount};return fStageComplete(pError);});},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,'Delivered recordset count of '+tmpRequestState.Result.Count+'.');pResponse.send(tmpRequestState.Result);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointCountBy;},{}],200:[function(require,module,exports){/**
5919
+ */const doAPIEndpointCountBy=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'CountBy');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};this.waterfall([fStageComplete=>{tmpRequestState.Query=this.DAL.query;tmpRequestState.Query.addFilter(pRequest.params.ByField,pRequest.params.ByValue,'=','AND','RequestByField');return fStageComplete();},fBehaviorInjector(`CountBy-QueryConfiguration`),fStageComplete=>{this.DAL.doCount(tmpRequestState.Query,(pError,pQuery,pCount)=>{tmpRequestState.Result={Count:pCount};return fStageComplete(pError);});},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,'Delivered recordset count of '+tmpRequestState.Result.Count+'.');pResponse.send(tmpRequestState.Result);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointCountBy;},{}],201:[function(require,module,exports){/**
5832
5920
  * Meadow Endpoint - Create a set of Record in Bulk
5833
5921
  */const doCreate=require('./Meadow-Operation-Create.js');const doAPIEndpointBulkCreate=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'CreateBulk');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};tmpRequestState.CreatedRecords=[];this.waterfall([fStageComplete=>{if(!Array.isArray(pRequest.body)){return fStageComplete(this.ErrorHandler.getError('Bulk record create failure - a valid array of records to create is required.',500));}pRequest.RecordsToBulkCreate=pRequest.body;return fStageComplete();},fBehaviorInjector(`CreateBulk-PreOperation`),fStageComplete=>{// TODO: Research parallelism opportunities from custom routes
5834
- this.eachLimit(pRequest.RecordsToBulkCreate,1,(pRecord,fCallback)=>{doCreate.call(this,pRecord,pRequest,tmpRequestState,pResponse,fCallback);},fStageComplete);},fBehaviorInjector(`CreateBulk-PostOperation`),fStageComplete=>{return this.doStreamRecordArray(pResponse,tmpRequestState.CreatedRecords,fStageComplete);},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Bulk created ${tmpRequestState.CreatedRecords.length} records`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointBulkCreate;},{"./Meadow-Operation-Create.js":202}],201:[function(require,module,exports){/**
5922
+ this.eachLimit(pRequest.RecordsToBulkCreate,1,(pRecord,fCallback)=>{doCreate.call(this,pRecord,pRequest,tmpRequestState,pResponse,fCallback);},fStageComplete);},fBehaviorInjector(`CreateBulk-PostOperation`),fStageComplete=>{return this.doStreamRecordArray(pResponse,tmpRequestState.CreatedRecords,fStageComplete);},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Bulk created ${tmpRequestState.CreatedRecords.length} records`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointBulkCreate;},{"./Meadow-Operation-Create.js":203}],202:[function(require,module,exports){/**
5835
5923
  * Meadow Endpoint - Create a Record
5836
- */const doCreate=require('./Meadow-Operation-Create.js');const doAPIEndpointCreate=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'Create');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};this.waterfall([fStageComplete=>{if(typeof pRequest.body!=='object'){return fStageComplete(this.ErrorHandler.getError('Record create failure - a valid record is required.',500));}return fStageComplete();},fStageComplete=>{doCreate.call(this,pRequest.body,pRequest,tmpRequestState,pResponse,fStageComplete);},fStageComplete=>{if(tmpRequestState.RecordCreateError){return fStageComplete(tmpRequestState.RecordCreateErrorObject);}if(tmpRequestState.CreatedRecords.length<1){return fStageComplete(this.ErrorHandler.getError('Unknown record create failure - no created records returned.',500));}tmpRequestState.Record=tmpRequestState.CreatedRecords[0];return fStageComplete();},fStageComplete=>{pResponse.send(tmpRequestState.Record);return fStageComplete();},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Created a ${this.DAL.scope} record ID ${tmpRequestState.Record[this.DAL.defaultIdentifier]}`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointCreate;},{"./Meadow-Operation-Create.js":202}],202:[function(require,module,exports){/**
5924
+ */const doCreate=require('./Meadow-Operation-Create.js');const doAPIEndpointCreate=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'Create');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};this.waterfall([fStageComplete=>{if(typeof pRequest.body!=='object'){return fStageComplete(this.ErrorHandler.getError('Record create failure - a valid record is required.',500));}return fStageComplete();},fStageComplete=>{doCreate.call(this,pRequest.body,pRequest,tmpRequestState,pResponse,fStageComplete);},fStageComplete=>{if(tmpRequestState.RecordCreateError){return fStageComplete(tmpRequestState.RecordCreateErrorObject);}if(tmpRequestState.CreatedRecords.length<1){return fStageComplete(this.ErrorHandler.getError('Unknown record create failure - no created records returned.',500));}tmpRequestState.Record=tmpRequestState.CreatedRecords[0];return fStageComplete();},fStageComplete=>{pResponse.send(tmpRequestState.Record);return fStageComplete();},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Created a ${this.DAL.scope} record ID ${tmpRequestState.Record[this.DAL.defaultIdentifier]}`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointCreate;},{"./Meadow-Operation-Create.js":203}],203:[function(require,module,exports){/**
5837
5925
  * Meadow Operation - Create a record function
5838
5926
  */const doCreate=function(pRecord,pRequest,pRequestState,pResponse,fCallback){// This is a virtual operation
5839
5927
  let tmpRequestState=this.cloneAsyncSafeRequestState(pRequestState,'doCreate');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};if(!Array.isArray(tmpRequestState.ParentRequestState.CreatedRecords)){tmpRequestState.ParentRequestState.CreatedRecords=[];}this.waterfall([fStageComplete=>{tmpRequestState.RecordToCreate=pRecord;//Make sure record gets created with a customerID
5840
- if(!tmpRequestState.RecordToCreate.hasOwnProperty('IDCustomer')&&this.DAL.jsonSchema.properties.hasOwnProperty('IDCustomer')){tmpRequestState.RecordToCreate.IDCustomer=tmpRequestState.SessionData.CustomerID||0;}return fStageComplete();},fStageComplete=>{this.BehaviorInjection.runBehavior(`Create-PreOperation`,this,pRequest,tmpRequestState,fStageComplete);},fStageComplete=>{// Prepare create query
5928
+ if(!tmpRequestState.RecordToCreate.hasOwnProperty('IDCustomer')&&this.DAL.jsonSchema&&this.DAL.jsonSchema.properties&&this.DAL.jsonSchema.properties.hasOwnProperty('IDCustomer')){tmpRequestState.RecordToCreate.IDCustomer=tmpRequestState.SessionData.CustomerID||0;}return fStageComplete();},fStageComplete=>{this.BehaviorInjection.runBehavior(`Create-PreOperation`,this,pRequest,tmpRequestState,fStageComplete);},fStageComplete=>{// Prepare create query
5841
5929
  tmpRequestState.Query=this.DAL.query;tmpRequestState.Query.setIDUser(tmpRequestState.SessionData.UserID);tmpRequestState.Query.addRecord(tmpRequestState.RecordToCreate);return fStageComplete();},fStageComplete=>{this.BehaviorInjection.runBehavior(`Create-QueryConfiguration`,this,pRequest,tmpRequestState,fStageComplete);},fStageComplete=>{// Do the actual create operation with the DAL
5842
- this.DAL.doCreate(tmpRequestState.Query,(pError,pQuery,pReadQuery,pNewRecord)=>{if(pError){return fStageComplete(pError);}if(!pNewRecord){return fStageComplete(this.ErrorHandler.getError(`Error in DAL Create: No record returned from persistence engine.`,500));}tmpRequestState.Record=pNewRecord;return fStageComplete();});},fStageComplete=>{return this.BehaviorInjection.runBehavior(`Create-PostOperation`,this,pRequest,tmpRequestState,fStageComplete);},fStageComplete=>{tmpRequestState.ParentRequestState.CreatedRecords.push(tmpRequestState.Record);this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Created a record with ${this.DAL.defaultIdentifier} = ${tmpRequestState.Record[this.DAL.defaultIdentifier]}`);return fStageComplete();}],pError=>{if(pError){tmpRequestState.RecordToCreate.Error=pError;tmpRequestState.ParentRequestState.RecordCreateError=true;tmpRequestState.ParentRequestState.RecordCreateErrorObject=pError;tmpRequestState.ParentRequestState.CreatedRecords.push(tmpRequestState.RecordToCreate);}return fCallback();});};module.exports=doCreate;},{}],203:[function(require,module,exports){/**
5930
+ this.DAL.doCreate(tmpRequestState.Query,(pError,pQuery,pReadQuery,pNewRecord)=>{if(pError){return fStageComplete(pError);}if(!pNewRecord){return fStageComplete(this.ErrorHandler.getError(`Error in DAL Create: No record returned from persistence engine.`,500));}tmpRequestState.Record=pNewRecord;return fStageComplete();});},fStageComplete=>{return this.BehaviorInjection.runBehavior(`Create-PostOperation`,this,pRequest,tmpRequestState,fStageComplete);},fStageComplete=>{tmpRequestState.ParentRequestState.CreatedRecords.push(tmpRequestState.Record);this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Created a record with ${this.DAL.defaultIdentifier} = ${tmpRequestState.Record[this.DAL.defaultIdentifier]}`);return fStageComplete();}],pError=>{if(pError){tmpRequestState.RecordToCreate.Error=pError;tmpRequestState.ParentRequestState.RecordCreateError=true;tmpRequestState.ParentRequestState.RecordCreateErrorObject=pError;tmpRequestState.ParentRequestState.CreatedRecords.push(tmpRequestState.RecordToCreate);}return fCallback();});};module.exports=doCreate;},{}],204:[function(require,module,exports){/**
5843
5931
  * Meadow Endpoint - Delete a Record
5844
5932
  */const doAPIEndpointDelete=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'Delete');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};tmpRequestState.IDRecord=0;tmpRequestState.RecordCount={Count:0};this.waterfall([fStageComplete=>{if(typeof pRequest.params.IDRecord==='string'){tmpRequestState.IDRecord=pRequest.params.IDRecord;}else if(typeof pRequest.body[this.DAL.defaultIdentifier]==='number'){tmpRequestState.IDRecord=pRequest.body[this.DAL.defaultIdentifier];}else if(typeof pRequest.body[this.DAL.defaultIdentifier]==='string'){tmpRequestState.IDRecord=pRequest.body[this.DAL.defaultIdentifier];}// Although the Meadow delete behavior does allow multiple deletes, we require an identifier.
5845
5933
  // If a developer wants bulk delete, it will require a custom endpoint.
5846
5934
  if(tmpRequestState.IDRecord<1){return fStageComplete(this.ErrorHandler.getError('Record delete failure - a valid record ID is required in the passed-in record.',500));}return fStageComplete();},fStageComplete=>{tmpRequestState.Query=this.DAL.query;tmpRequestState.Query.addFilter(this.DAL.defaultIdentifier,tmpRequestState.IDRecord);tmpRequestState.Query.setIDUser(tmpRequestState.SessionData.UserID);return fStageComplete();},fStageComplete=>{return this.BehaviorInjection.runBehavior(`Delete-QueryConfiguration`,this,pRequest,tmpRequestState,fStageComplete);},fStageComplete=>{// Load the record so we can do security checks on it
5847
5935
  this.DAL.doRead(tmpRequestState.Query,(pError,pQuery,pRecord)=>{if(!pRecord){return fStageComplete(this.ErrorHandler.getError('Record not found.',404));}tmpRequestState.Record=pRecord;return fStageComplete();});},fStageComplete=>{return this.BehaviorInjection.runBehavior(`Delete-PreOperation`,this,pRequest,tmpRequestState,fStageComplete);},fStageComplete=>{// Do the delete
5848
5936
  this.DAL.doDelete(tmpRequestState.Query,(pError,pQuery,pCount)=>{// MySQL returns the number of rows deleted
5849
- tmpRequestState.RecordCount.Count=pCount;return fStageComplete(pError);});},fStageComplete=>{return this.BehaviorInjection.runBehavior(`Delete-PostOperation`,this,pRequest,tmpRequestState,fStageComplete);},fStageComplete=>{pResponse.send(tmpRequestState.RecordCount);this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Deleted ${tmpRequestState.RecordCount.Count} ${this.DAL.scope} records with ID ${tmpRequestState.IDRecord}`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointDelete;},{}],204:[function(require,module,exports){/**
5937
+ tmpRequestState.RecordCount.Count=pCount;return fStageComplete(pError);});},fStageComplete=>{return this.BehaviorInjection.runBehavior(`Delete-PostOperation`,this,pRequest,tmpRequestState,fStageComplete);},fStageComplete=>{pResponse.send(tmpRequestState.RecordCount);this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Deleted ${tmpRequestState.RecordCount.Count} ${this.DAL.scope} records with ID ${tmpRequestState.IDRecord}`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointDelete;},{}],205:[function(require,module,exports){/**
5850
5938
  * Meadow Endpoint - Undelete a Record
5851
5939
  */const doAPIEndpointUndelete=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'Undelete');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};var tmpIDRecord=0;if(typeof pRequest.params.IDRecord==='string'){tmpIDRecord=pRequest.params.IDRecord;}else if(typeof pRequest.body[this.DAL.defaultIdentifier]==='number'){tmpIDRecord=pRequest.body[this.DAL.defaultIdentifier];}else if(typeof pRequest.body[this.DAL.defaultIdentifier]==='string'){tmpIDRecord=pRequest.body[this.DAL.defaultIdentifier];}// Although the undelete request does allow multiple undeletes, we require an identifier.
5852
5940
  // TODO: Decide if we want to keep this pattern similar to Delete, or, if we want to change it to allow bulk undeletes.
@@ -5855,40 +5943,40 @@ var tmpSchema=this.DAL.schema;var tmpHasDeletedBit=false;for(let i=0;i<tmpSchema
5855
5943
  tmpRequestState.Query=this.DAL.query;tmpRequestState.Query.addFilter(this.DAL.defaultIdentifier,tmpIDRecord);tmpRequestState.Query.addFilter('Deleted',1);tmpRequestState.Query.setIDUser(tmpRequestState.SessionData.UserID);return fStageComplete();},fStageComplete=>{// Load the record so we can do security checks on it
5856
5944
  this.DAL.doRead(tmpRequestState.Query,(pError,pQuery,pRecord)=>{if(!pRecord){return fStageComplete(this.ErrorHandler.getError('Record not found.',404));}tmpRequestState.Record=pRecord;return fStageComplete();});},fStageComplete=>{return this.BehaviorInjection.runBehavior(`Undelete-PreOperation`,this,pRequest,tmpRequestState,fStageComplete);},fStageComplete=>{// Do the undelete
5857
5945
  this.DAL.doUndelete(tmpRequestState.Query,(pError,pQuery,pCount)=>{// MySQL returns the number of rows deleted
5858
- tmpRequestState.RecordCount={Count:pCount};return fStageComplete(pError);});},fStageComplete=>{return this.BehaviorInjection.runBehavior(`Undelete-PostOperation`,this,pRequest,tmpRequestState,fStageComplete);},fStageComplete=>{pResponse.send(tmpRequestState.RecordCount);this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,'Undeleted '+tmpRequestState.RecordCount.Count+' records with ID '+tmpIDRecord+'.');return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointUndelete;},{}],205:[function(require,module,exports){/**
5946
+ tmpRequestState.RecordCount={Count:pCount};return fStageComplete(pError);});},fStageComplete=>{return this.BehaviorInjection.runBehavior(`Undelete-PostOperation`,this,pRequest,tmpRequestState,fStageComplete);},fStageComplete=>{pResponse.send(tmpRequestState.RecordCount);this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,'Undeleted '+tmpRequestState.RecordCount.Count+' records with ID '+tmpIDRecord+'.');return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointUndelete;},{}],206:[function(require,module,exports){/**
5859
5947
  * Meadow Endpoint - Read a Record
5860
5948
  */const doAPIEndpointRead=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'Read');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};this.waterfall([fStageComplete=>{tmpRequestState.Query=this.DAL.query;return fStageComplete();},fBehaviorInjector(`Read-PreOperation`),fStageComplete=>{if(!pRequest.params.IDRecord&&pRequest.params.GUIDRecord){// We use a custom name for this (RequestDefaultIdentifier) in case there is a query with a dot in the default identifier.
5861
5949
  tmpRequestState.RecordSearchCriteria=`${this.DAL.defaultGUIdentifier} = ${pRequest.params.GUIDRecord}`;tmpRequestState.Query.addFilter(this.DAL.defaultGUIdentifier,pRequest.params.GUIDRecord,'=','AND','RequestDefaultIdentifier');}else if(pRequest.params.IDRecord){// We use a custon name for this (RequestDefaultIdentifier) in case there is a query with a dot in the default identifier.
5862
- tmpRequestState.RecordSearchCriteria=`${this.DAL.defaultIdentifier} = ${pRequest.params.IDRecord}`;tmpRequestState.Query.addFilter(this.DAL.defaultIdentifier,pRequest.params.IDRecord,'=','AND','RequestDefaultIdentifier');}else{return fStageComplete(this.ErrorHandler.getError('No ID Provided',400));}return fStageComplete();},fBehaviorInjector(`Read-QueryConfiguration`),fStageComplete=>{try{this.DAL.doRead(tmpRequestState.Query,(pError,pQuery,pRecord)=>{if(!pRecord){return fStageComplete(this.ErrorHandler.getError('Record not Found',404));}tmpRequestState.Record=pRecord;return fStageComplete();});}catch(pQueryError){return fStageComplete(pQueryError);}},fBehaviorInjector(`Read-PostOperation`),fStageComplete=>{pResponse.send(tmpRequestState.Record);this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Read Record Where ${tmpRequestState.RecordSearchCriteria}`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointRead;},{}],206:[function(require,module,exports){/**
5950
+ tmpRequestState.RecordSearchCriteria=`${this.DAL.defaultIdentifier} = ${pRequest.params.IDRecord}`;tmpRequestState.Query.addFilter(this.DAL.defaultIdentifier,pRequest.params.IDRecord,'=','AND','RequestDefaultIdentifier');}else{return fStageComplete(this.ErrorHandler.getError('No ID Provided',400));}return fStageComplete();},fBehaviorInjector(`Read-QueryConfiguration`),fStageComplete=>{try{this.DAL.doRead(tmpRequestState.Query,(pError,pQuery,pRecord)=>{if(!pRecord){return fStageComplete(this.ErrorHandler.getError('Record not Found',404));}tmpRequestState.Record=pRecord;return fStageComplete();});}catch(pQueryError){return fStageComplete(pQueryError);}},fBehaviorInjector(`Read-PostOperation`),fStageComplete=>{pResponse.send(tmpRequestState.Record);this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Read Record Where ${tmpRequestState.RecordSearchCriteria}`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointRead;},{}],207:[function(require,module,exports){/**
5863
5951
  * Meadow Endpoint - Read a list of Records with a specified set of columns, distinct by those columns.
5864
5952
  */const marshalDistinctList=require('./Meadow-Marshal-DistinctList.js');const doAPIEndpointReadDistinct=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'ReadDistinct');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};tmpRequestState.DistinctColumns;this.waterfall([fStageComplete=>{tmpRequestState.Query=this.DAL.query.setDistinct(true);/** @type {number | boolean} */let tmpCap=false;/** @type {number | boolean} */let tmpBegin=false;if(typeof pRequest.params.Begin==='string'||typeof pRequest.params.Begin==='number'){tmpBegin=parseInt(pRequest.params.Begin,10);}if(typeof pRequest.params.Cap==='string'||typeof pRequest.params.Cap==='number'){tmpCap=parseInt(pRequest.params.Cap,10);}else{//maximum number of records to return by default on Read queries. Override via "MeadowDefaultMaxCap" fable setting.
5865
5953
  tmpCap=this.settings['MeadowDefaultMaxCap']||250;}tmpRequestState.Query.setCap(tmpCap).setBegin(tmpBegin);if(typeof pRequest.params.Filter==='string'){// If a filter has been passed in, parse it and add the values to the query.
5866
- this.parseFilter(pRequest.params.Filter,tmpRequestState.Query);}else if(pRequest.params.Filter){tmpRequestState.Query.setFilter(pRequest.params.Filter);}if(typeof pRequest.params.Columns==='string'){tmpRequestState.DistinctColumns=pRequest.params.Columns.split(',');if(!tmpRequestState.DistinctColumns){return fStageComplete({Code:400,Message:'Columns to distinct on must be provided.'});}tmpRequestState.Query.setDataElements(tmpRequestState.DistinctColumns);}return fStageComplete();},fBehaviorInjector(`Reads-QueryConfiguration`),fStageComplete=>{this.DAL.doReads(tmpRequestState.Query,fStageComplete);},(pQuery,pRecords,fStageComplete)=>{if(pRecords.length<1){pRecords=[];}tmpRequestState.Records=pRecords;return fStageComplete();},fStageComplete=>{tmpRequestState.ResultRecords=marshalDistinctList.call(this,tmpRequestState.Records,pRequest,tmpRequestState.DistinctColumns);return fStageComplete();},fStageComplete=>{return this.doStreamRecordArray(pResponse,tmpRequestState.ResultRecords,fStageComplete);},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Read a recordset distinct lite list with ${tmpRequestState.ResultRecords.length} results.`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointReadDistinct;},{"./Meadow-Marshal-DistinctList.js":212}],207:[function(require,module,exports){/**
5954
+ this.parseFilter(pRequest.params.Filter,tmpRequestState.Query);}else if(pRequest.params.Filter){tmpRequestState.Query.setFilter(pRequest.params.Filter);}if(typeof pRequest.params.Columns==='string'){tmpRequestState.DistinctColumns=pRequest.params.Columns.split(',');if(!tmpRequestState.DistinctColumns){return fStageComplete({Code:400,Message:'Columns to distinct on must be provided.'});}tmpRequestState.Query.setDataElements(tmpRequestState.DistinctColumns);}return fStageComplete();},fBehaviorInjector(`Reads-QueryConfiguration`),fStageComplete=>{this.DAL.doReads(tmpRequestState.Query,fStageComplete);},(pQuery,pRecords,fStageComplete)=>{if(pRecords.length<1){pRecords=[];}tmpRequestState.Records=pRecords;return fStageComplete();},fStageComplete=>{tmpRequestState.ResultRecords=marshalDistinctList.call(this,tmpRequestState.Records,pRequest,tmpRequestState.DistinctColumns);return fStageComplete();},fStageComplete=>{return this.doStreamRecordArray(pResponse,tmpRequestState.ResultRecords,fStageComplete);},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Read a recordset distinct lite list with ${tmpRequestState.ResultRecords.length} results.`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointReadDistinct;},{"./Meadow-Marshal-DistinctList.js":213}],208:[function(require,module,exports){/**
5867
5955
  * Meadow Endpoint - Read a list of lite Records (for Drop-downs and such)
5868
5956
  */const marshalLiteList=require('./Meadow-Marshal-LiteList.js');const doAPIEndpointReadLite=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'ReadsLite');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};this.waterfall([// 1a. Get the records
5869
5957
  fStageComplete=>{tmpRequestState.Query=this.DAL.query;// TODO: Limit the query to the columns we need for the templated expression
5870
5958
  /** @type {number | boolean} */var tmpCap=false;/** @type {number | boolean} */var tmpBegin=false;if(typeof pRequest.params.Begin==='string'||typeof pRequest.params.Begin==='number'){tmpBegin=parseInt(pRequest.params.Begin,10);}if(typeof pRequest.params.Cap==='string'||typeof pRequest.params.Cap==='number'){tmpCap=parseInt(pRequest.params.Cap,10);}else{//maximum number of records to return by default on Read queries. Override via "MeadowDefaultMaxCap" fable setting.
5871
5959
  tmpCap=this.settings['MeadowDefaultMaxCap']||250;}tmpRequestState.Query.setCap(tmpCap).setBegin(tmpBegin);if(typeof pRequest.params.Filter==='string'){// If a filter has been passed in, parse it and add the values to the query.
5872
- this.parseFilter(pRequest.params.Filter,tmpRequestState.Query);}else if(pRequest.params.Filter){tmpRequestState.Query.setFilter(pRequest.params.Filter);}return fStageComplete();},fBehaviorInjector(`Reads-QueryConfiguration`),fStageComplete=>{this.DAL.doReads(tmpRequestState.Query,fStageComplete);},(pQuery,pRecords,fStageComplete)=>{if(pRecords.length<1){pRecords=[];}tmpRequestState.RawRecords=pRecords;return fStageComplete();},fStageComplete=>{tmpRequestState.Records=marshalLiteList.call(this,tmpRequestState.RawRecords,pRequest,typeof pRequest.params.ExtraColumns==='string'?pRequest.params.ExtraColumns.split(','):[]);return fStageComplete();},fStageComplete=>{return this.doStreamRecordArray(pResponse,tmpRequestState.Records,fNext);},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Read a recordset lite list with ${tmpRequestState.Records.length} results`);return fStageComplete();}],(pError,pResultRecords)=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointReadLite;},{"./Meadow-Marshal-LiteList.js":213}],208:[function(require,module,exports){/**
5960
+ this.parseFilter(pRequest.params.Filter,tmpRequestState.Query);}else if(pRequest.params.Filter){tmpRequestState.Query.setFilter(pRequest.params.Filter);}return fStageComplete();},fBehaviorInjector(`Reads-QueryConfiguration`),fStageComplete=>{this.DAL.doReads(tmpRequestState.Query,fStageComplete);},(pQuery,pRecords,fStageComplete)=>{if(pRecords.length<1){pRecords=[];}tmpRequestState.RawRecords=pRecords;return fStageComplete();},fStageComplete=>{tmpRequestState.Records=marshalLiteList.call(this,tmpRequestState.RawRecords,pRequest,typeof pRequest.params.ExtraColumns==='string'?pRequest.params.ExtraColumns.split(','):[]);return fStageComplete();},fStageComplete=>{return this.doStreamRecordArray(pResponse,tmpRequestState.Records,fNext);},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Read a recordset lite list with ${tmpRequestState.Records.length} results`);return fStageComplete();}],(pError,pResultRecords)=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointReadLite;},{"./Meadow-Marshal-LiteList.js":214}],209:[function(require,module,exports){/**
5873
5961
  * Meadow Endpoint - Read the Max Value of a Column in a Set
5874
- */const doAPIEndpointReadMax=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'ReadMax');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};this.waterfall([fStageComplete=>{tmpRequestState.Query=this.DAL.query;return fStageComplete();},fStageComplete=>{tmpRequestState.ColumnName=pRequest.params.ColumnName;tmpRequestState.Query.setSort({Column:tmpRequestState.ColumnName,Direction:'Descending'});tmpRequestState.Query.setCap(1);return fStageComplete();},fBehaviorInjector(`ReadMax-QueryConfiguration`),fStageComplete=>{this.DAL.doRead(tmpRequestState.Query,fStageComplete);},(pQuery,pRecord,fStageComplete)=>{if(!pRecord){return fStageComplete(this.ErrorHandler.getError('Record not Found',404));}tmpRequestState.Record=pRecord;return fStageComplete();},fStageComplete=>{this.BehaviorInjection.runBehavior(`ReadMax-PostOperation`,this,pRequest,tmpRequestState,fStageComplete);},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Read max record of ${this.DAL.scope} on ${tmpRequestState.ColumnName}`);pResponse.send(tmpRequestState.Record);}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointReadMax;},{}],209:[function(require,module,exports){/**
5962
+ */const doAPIEndpointReadMax=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'ReadMax');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};this.waterfall([fStageComplete=>{tmpRequestState.Query=this.DAL.query;return fStageComplete();},fStageComplete=>{tmpRequestState.ColumnName=pRequest.params.ColumnName;tmpRequestState.Query.setSort({Column:tmpRequestState.ColumnName,Direction:'Descending'});tmpRequestState.Query.setCap(1);return fStageComplete();},fBehaviorInjector(`ReadMax-QueryConfiguration`),fStageComplete=>{this.DAL.doRead(tmpRequestState.Query,fStageComplete);},(pQuery,pRecord,fStageComplete)=>{if(!pRecord){return fStageComplete(this.ErrorHandler.getError('Record not Found',404));}tmpRequestState.Record=pRecord;return fStageComplete();},fStageComplete=>{this.BehaviorInjection.runBehavior(`ReadMax-PostOperation`,this,pRequest,tmpRequestState,fStageComplete);},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Read max record of ${this.DAL.scope} on ${tmpRequestState.ColumnName}`);pResponse.send(tmpRequestState.Record);}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointReadMax;},{}],210:[function(require,module,exports){/**
5875
5963
  * Meadow Endpoint - Read a select list of Records (for Drop-downs and such)
5876
- */const doAPIEndpointReadSelectList=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'ReadsBy');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};this.waterfall([fStageComplete=>{tmpRequestState.Query=this.DAL.query;/** @type {number | boolean} */var tmpCap=false;/** @type {number | boolean} */var tmpBegin=false;if(typeof pRequest.params.Begin==='string'||typeof pRequest.params.Begin==='number'){tmpBegin=parseInt(pRequest.params.Begin);}if(typeof pRequest.params.Cap==='string'||typeof pRequest.params.Cap==='number'){tmpCap=parseInt(pRequest.params.Cap);}else{tmpCap=this.settings['MeadowDefaultMaxCap']||250;}tmpRequestState.Query.setCap(tmpCap).setBegin(tmpBegin);if(typeof pRequest.params.Filter==='string'){this.parseFilter(pRequest.params.Filter,tmpRequestState.Query);}return fStageComplete();},fBehaviorInjector(`Reads-QueryConfiguration`),fStageComplete=>{this.DAL.doReads(tmpRequestState.Query,fStageComplete);},(pQuery,pRecords,fStageComplete)=>{if(pRecords.length<1){pRecords=[];}tmpRequestState.Records=pRecords;return fStageComplete();},fStageComplete=>{tmpRequestState.SelectList=[];for(var i=0;i<tmpRequestState.Records.length;i++){tmpRequestState.SelectList.push({Hash:tmpRequestState.Records[i][this.DAL.defaultIdentifier],Value:this.BehaviorInjection.processTemplate('SelectList',{Record:tmpRequestState.Records[i]},this.DAL.scope+' #<%= Record.'+this.DAL.defaultIdentifier+'%>')});}return fStageComplete();},fStageComplete=>{return this.doStreamRecordArray(pResponse,tmpRequestState.SelectList,fStageComplete);},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Read a recordset lite list with ${tmpRequestState.SelectList.length} results.`);return fStageComplete();}],(pError,pResultRecords)=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointReadSelectList;},{}],210:[function(require,module,exports){/**
5964
+ */const doAPIEndpointReadSelectList=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'ReadsBy');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};this.waterfall([fStageComplete=>{tmpRequestState.Query=this.DAL.query;/** @type {number | boolean} */var tmpCap=false;/** @type {number | boolean} */var tmpBegin=false;if(typeof pRequest.params.Begin==='string'||typeof pRequest.params.Begin==='number'){tmpBegin=parseInt(pRequest.params.Begin);}if(typeof pRequest.params.Cap==='string'||typeof pRequest.params.Cap==='number'){tmpCap=parseInt(pRequest.params.Cap);}else{tmpCap=this.settings['MeadowDefaultMaxCap']||250;}tmpRequestState.Query.setCap(tmpCap).setBegin(tmpBegin);if(typeof pRequest.params.Filter==='string'){this.parseFilter(pRequest.params.Filter,tmpRequestState.Query);}return fStageComplete();},fBehaviorInjector(`Reads-QueryConfiguration`),fStageComplete=>{this.DAL.doReads(tmpRequestState.Query,fStageComplete);},(pQuery,pRecords,fStageComplete)=>{if(pRecords.length<1){pRecords=[];}tmpRequestState.Records=pRecords;return fStageComplete();},fStageComplete=>{tmpRequestState.SelectList=[];for(var i=0;i<tmpRequestState.Records.length;i++){tmpRequestState.SelectList.push({Hash:tmpRequestState.Records[i][this.DAL.defaultIdentifier],Value:this.BehaviorInjection.processTemplate('SelectList',{Record:tmpRequestState.Records[i]},this.DAL.scope+' #<%= Record.'+this.DAL.defaultIdentifier+'%>')});}return fStageComplete();},fStageComplete=>{return this.doStreamRecordArray(pResponse,tmpRequestState.SelectList,fStageComplete);},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Read a recordset lite list with ${tmpRequestState.SelectList.length} results.`);return fStageComplete();}],(pError,pResultRecords)=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointReadSelectList;},{}],211:[function(require,module,exports){/**
5877
5965
  * Meadow Endpoint - Read a Set of Records
5878
5966
  */const doAPIEndpointReads=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'Reads');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};this.waterfall([fStageComplete=>{tmpRequestState.Query=this.DAL.query;/** @type {number | boolean} */var tmpCap=false;/** @type {number | boolean} */var tmpBegin=false;if(typeof pRequest.params.Begin==='string'||typeof pRequest.params.Begin==='number'){tmpBegin=parseInt(pRequest.params.Begin);}if(typeof pRequest.params.Cap==='string'||typeof pRequest.params.Cap==='number'){tmpCap=parseInt(pRequest.params.Cap);}else{tmpCap=this.settings['MeadowDefaultMaxCap']||250;}tmpRequestState.Query.setCap(tmpCap).setBegin(tmpBegin);if(typeof pRequest.params.Filter==='string'){// If a filter has been passed in, parse it and add the values to the query.
5879
- this.parseFilter(pRequest.params.Filter,tmpRequestState.Query);}else if(pRequest.params.Filter){tmpRequestState.Query.setFilter(pRequest.params.Filter);}return fStageComplete();},fBehaviorInjector(`Reads-QueryConfiguration`),fStageComplete=>{this.DAL.doReads(tmpRequestState.Query,fStageComplete);},(pQuery,pRecords,fStageComplete)=>{if(!pRecords){return fStageComplete(this.ErrorHandler.getError('No records found.',404));}tmpRequestState.Records=pRecords;return fStageComplete();},fBehaviorInjector(`Reads-PostOperation`),fStageComplete=>{this.doStreamRecordArray(pResponse,tmpRequestState.Records,fStageComplete);},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,'Read a list of records.');return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointReads;},{}],211:[function(require,module,exports){/**
5967
+ this.parseFilter(pRequest.params.Filter,tmpRequestState.Query);}else if(pRequest.params.Filter){tmpRequestState.Query.setFilter(pRequest.params.Filter);}return fStageComplete();},fBehaviorInjector(`Reads-QueryConfiguration`),fStageComplete=>{this.DAL.doReads(tmpRequestState.Query,fStageComplete);},(pQuery,pRecords,fStageComplete)=>{if(!pRecords){return fStageComplete(this.ErrorHandler.getError('No records found.',404));}tmpRequestState.Records=pRecords;return fStageComplete();},fBehaviorInjector(`Reads-PostOperation`),fStageComplete=>{this.doStreamRecordArray(pResponse,tmpRequestState.Records,fStageComplete);},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,'Read a list of records.');return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointReads;},{}],212:[function(require,module,exports){/**
5880
5968
  * Meadow Endpoint - Read a Record
5881
5969
  */const doAPIEndpointReadsBy=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'ReadsBy');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};this.waterfall([// 1. Construct the Query
5882
5970
  fStageComplete=>{tmpRequestState.Query=this.DAL.query;/** @type {number | boolean} */var tmpCap=false;/** @type {number | boolean} */var tmpBegin=false;if(typeof pRequest.params.Begin==='string'||typeof pRequest.params.Begin==='number'){tmpBegin=parseInt(pRequest.params.Begin);}if(typeof pRequest.params.Cap==='string'||typeof pRequest.params.Cap==='number'){tmpCap=parseInt(pRequest.params.Cap);}else{//maximum number of records to return by default on Read queries. Override via "MeadowDefaultMaxCap" fable setting.
5883
5971
  tmpCap=this.settings['MeadowDefaultMaxCap']||250;}tmpRequestState.Query.setCap(tmpCap).setBegin(tmpBegin);return fStageComplete();},fStageComplete=>{function addField(pByField,pByValue){if(pByValue.constructor===Array){tmpRequestState.Query.addFilter(pByField,pByValue,'IN','AND','RequestByField');}else{tmpRequestState.Query.addFilter(pByField,pByValue,'=','AND','RequestByField');}}var tmpFilters=pRequest.params.Filters;if(tmpFilters&&tmpFilters.constructor===Array){tmpFilters.forEach(function(filter){addField(filter.ByField,filter.ByValue);});}else{addField(pRequest.params.ByField,pRequest.params.ByValue);}return fStageComplete();},fBehaviorInjector(`Reads-QueryConfiguration`),fStageComplete=>{this.DAL.doReads(tmpRequestState.Query,(pError,pQuery,pRecords)=>{if(!pRecords){return fStageComplete(this.ErrorHandler.getError('No records found.',404));}tmpRequestState.Records=pRecords;return fStageComplete();});},fBehaviorInjector(`Reads-PostOperation`),fStageComplete=>{return this.doStreamRecordArray(pResponse,tmpRequestState.Records,fStageComplete);},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Read a list of records by ${pRequest.params.ByField} = ${pRequest.params.ByValue}`);return fStageComplete();}],// 7. Return the results to the user
5884
- pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointReadsBy;},{}],212:[function(require,module,exports){/**
5972
+ pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointReadsBy;},{}],213:[function(require,module,exports){/**
5885
5973
  * Meadow Operation - Marshal an array of records into a distinct list
5886
5974
  */const marshalDistinctList=function(pRecords,pRequest,pFieldList){if(pRecords.length<1)return[];let tmpDistinctList=[];// Allow the caller to pass in a list of fields.
5887
5975
  let tmpFieldList=typeof pFieldList!=='undefined'?pFieldList:[];// See if this record has a GUID in the schema
5888
5976
  let tmpGUID=this.DAL.defaultGUIdentifier&&this.DAL.defaultGUIdentifier.length>0?this.DAL.defaultGUIdentifier:false;// Peek at the first record to check for updatedate
5889
5977
  let tmpHasUpdateDate=pRecords[0].hasOwnProperty('UpdateDate')?true:false;//Include all GUID and ID fields on the record
5890
5978
  let tmpRecordFields=Object.keys(pRecords[0]);let h=0;while(h<tmpFieldList.length){// Remove any fields in the list that aren't in the first record.
5891
- if(!pRecords[0].hasOwnProperty(tmpFieldList[0]))tmpFieldList.splice(h,1);else h++;}for(let i=0;i<pRecords.length;i++){let tmpDistinctRecord={};tmpFieldList.forEach(pField=>{tmpDistinctRecord[pField]=pRecords[i][pField];});tmpDistinctList.push(tmpDistinctRecord);}return tmpDistinctList;};module.exports=marshalDistinctList;},{}],213:[function(require,module,exports){/**
5979
+ if(!pRecords[0].hasOwnProperty(tmpFieldList[0]))tmpFieldList.splice(h,1);else h++;}for(let i=0;i<pRecords.length;i++){let tmpDistinctRecord={};tmpFieldList.forEach(pField=>{tmpDistinctRecord[pField]=pRecords[i][pField];});tmpDistinctList.push(tmpDistinctRecord);}return tmpDistinctList;};module.exports=marshalDistinctList;},{}],214:[function(require,module,exports){/**
5892
5980
  * Meadow Operation - Marshal an array of records into a lite list
5893
5981
  */const marshalLiteList=function(pRecords,pRequest,pFieldList){if(pRecords.length<1)return[];let tmpLiteList=[];// Allow the caller to pass in a list of fields.
5894
5982
  let tmpFieldList=typeof pFieldList!=='undefined'?pFieldList:[];// See if this record has a GUID in the schema
@@ -5896,40 +5984,41 @@ let tmpGUID=this.DAL.defaultGUIdentifier&&this.DAL.defaultGUIdentifier.length>0?
5896
5984
  let tmpHasUpdateDate=pRecords[0].hasOwnProperty('UpdateDate')?true:false;//Include all GUID and ID fields on the record
5897
5985
  let tmpRecordFields=Object.keys(pRecords[0]);tmpRecordFields.forEach(pField=>{if(pField.indexOf('ID')===0||pField.indexOf('GUID')===0||pField=='CreatingIDUser')//we should always include owner info
5898
5986
  {tmpFieldList.push(pField);}});let h=0;while(h<tmpFieldList.length){// Remove any fields in the list that aren't in the first record.
5899
- if(!pRecords[0].hasOwnProperty(tmpFieldList[0]))tmpFieldList.splice(h,1);else h++;}for(let i=0;i<pRecords.length;i++){let tmpLiteRecord={Value:this.BehaviorInjection.processTemplate('SelectList',{Record:pRecords[i]},this.DAL.scope+' #<%= Record.'+this.DAL.defaultIdentifier+'%>')};tmpLiteRecord[this.DAL.defaultIdentifier]=pRecords[i][this.DAL.defaultIdentifier];if(tmpGUID)tmpLiteRecord[tmpGUID]=pRecords[i][tmpGUID];if(tmpHasUpdateDate)tmpLiteRecord['UpdateDate']=pRecords[i].UpdateDate;tmpFieldList.forEach(pField=>{tmpLiteRecord[pField]=pRecords[i][pField];});tmpLiteList.push(tmpLiteRecord);}return tmpLiteList;};module.exports=marshalLiteList;},{}],214:[function(require,module,exports){/**
5987
+ if(!pRecords[0].hasOwnProperty(tmpFieldList[0]))tmpFieldList.splice(h,1);else h++;}for(let i=0;i<pRecords.length;i++){let tmpLiteRecord={Value:this.BehaviorInjection.processTemplate('SelectList',{Record:pRecords[i]},this.DAL.scope+' #<%= Record.'+this.DAL.defaultIdentifier+'%>')};tmpLiteRecord[this.DAL.defaultIdentifier]=pRecords[i][this.DAL.defaultIdentifier];if(tmpGUID)tmpLiteRecord[tmpGUID]=pRecords[i][tmpGUID];if(tmpHasUpdateDate)tmpLiteRecord['UpdateDate']=pRecords[i].UpdateDate;tmpFieldList.forEach(pField=>{tmpLiteRecord[pField]=pRecords[i][pField];});tmpLiteList.push(tmpLiteRecord);}return tmpLiteList;};module.exports=marshalLiteList;},{}],215:[function(require,module,exports){/**
5900
5988
  * Meadow Endpoint - Get a New, empty Record
5901
5989
  */const doAPIEndpointNew=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'New');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};this.waterfall([fBehaviorInjector(`New-PreOperation`),fStageComplete=>{// If during the PreOperation this was set, we can
5902
- if(!tmpRequestState.EmptyEntityRecord){tmpRequestState.EmptyEntityRecord=this.extend({},this.DAL.schemaFull.defaultObject);}return fStageComplete();},fBehaviorInjector(`New-PostOperation`),fStageComplete=>{pResponse.send(tmpRequestState.EmptyEntityRecord);this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Delivered New ${this.DAL.scope} Record`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointNew;},{}],215:[function(require,module,exports){/**
5990
+ if(!tmpRequestState.EmptyEntityRecord){tmpRequestState.EmptyEntityRecord=this.extend({},this.DAL.schemaFull.defaultObject);}return fStageComplete();},fBehaviorInjector(`New-PostOperation`),fStageComplete=>{pResponse.send(tmpRequestState.EmptyEntityRecord);this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Delivered New ${this.DAL.scope} Record`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointNew;},{}],216:[function(require,module,exports){/**
5903
5991
  * Meadow Endpoint - Get the Record Schema
5904
5992
  */const doAPIEndpointSchema=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'Schema');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};this.waterfall([fBehaviorInjector(`Schema-PreOperation`),fStageComplete=>{// If during the PreOperation this was set, we won't overwrite
5905
- if(!pRequest.JSONSchema){tmpRequestState.JSONSchema=this.extend({},this.DAL.jsonSchema);}return fStageComplete();},fBehaviorInjector(`Schema-PostOperation`),fStageComplete=>{pResponse.send(tmpRequestState.JSONSchema);this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Delivered JSONSchema for ${this.DAL.scope}`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointSchema;},{}],216:[function(require,module,exports){/**
5993
+ if(!pRequest.JSONSchema){tmpRequestState.JSONSchema=this.extend({},this.DAL.jsonSchema);}return fStageComplete();},fBehaviorInjector(`Schema-PostOperation`),fStageComplete=>{pResponse.send(tmpRequestState.JSONSchema);this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Delivered JSONSchema for ${this.DAL.scope}`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointSchema;},{}],217:[function(require,module,exports){/**
5906
5994
  * Meadow Endpoint - Validate a Record
5907
- */const doAPIEndpointValidate=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'Validate');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};this.waterfall([fBehaviorInjector(`Validate-PreOperation`),fStageComplete=>{if(typeof pRequest.body!=='object'){return fStageComplete(this.ErrorHandler.getError('Record validate failure - a valid JSON object is required.',500));}tmpRequestState.Record=pRequest.body;return fStageComplete();},fStageComplete=>{tmpRequestState.RecordValidation=this.DAL.schemaFull.validateObject(tmpRequestState.Record);return fStageComplete();},fBehaviorInjector(`Validate-PostOperation`),fStageComplete=>{pResponse.send(tmpRequestState.RecordValidation);this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Validated Record for ${this.DAL.scope} - ${tmpRequestState.RecordValidation}`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointValidate;},{}],217:[function(require,module,exports){/**
5995
+ */const doAPIEndpointValidate=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'Validate');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};this.waterfall([fBehaviorInjector(`Validate-PreOperation`),fStageComplete=>{if(typeof pRequest.body!=='object'){return fStageComplete(this.ErrorHandler.getError('Record validate failure - a valid JSON object is required.',500));}tmpRequestState.Record=pRequest.body;return fStageComplete();},fStageComplete=>{tmpRequestState.RecordValidation=this.DAL.schemaFull.validateObject(tmpRequestState.Record);return fStageComplete();},fBehaviorInjector(`Validate-PostOperation`),fStageComplete=>{pResponse.send(tmpRequestState.RecordValidation);this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Validated Record for ${this.DAL.scope} - ${JSON.stringify(tmpRequestState.RecordValidation)}`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointValidate;},{}],218:[function(require,module,exports){/**
5908
5996
  * Meadow Endpoint - Update a set of Records
5909
- */const doUpdate=require('./Meadow-Operation-Update.js');const doAPIEndpointUpdate=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'UpdateBulk');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};tmpRequestState.UpdatedRecords=[];this.waterfall([fStageComplete=>{if(!Array.isArray(pRequest.body)){return fStageComplete(this.ErrorHandler.getError('Record update failure - a valid record is required.',500));}tmpRequestState.BulkRecords=pRequest.body;return fStageComplete();},fStageComplete=>{this.eachLimit(tmpRequestState.BulkRecords,1,(pRecord,fCallback)=>{doUpdate.call(this,pRecord,pRequest,tmpRequestState,pResponse,fCallback);},fStageComplete);},fStageComplete=>{return this.doStreamRecordArray(pResponse,tmpRequestState.UpdatedRecords,fStageComplete);},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Bulk updated ${tmpRequestState.UpdatedRecords.length} records`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointUpdate;},{"./Meadow-Operation-Update.js":219}],218:[function(require,module,exports){/**
5997
+ */const doUpdate=require('./Meadow-Operation-Update.js');const doAPIEndpointUpdate=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'UpdateBulk');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};tmpRequestState.UpdatedRecords=[];this.waterfall([fStageComplete=>{if(!Array.isArray(pRequest.body)){return fStageComplete(this.ErrorHandler.getError('Record update failure - a valid record is required.',500));}tmpRequestState.BulkRecords=pRequest.body;return fStageComplete();},fBehaviorInjector(`UpdateBulk-PreOperation`),fStageComplete=>{this.eachLimit(tmpRequestState.BulkRecords,1,(pRecord,fCallback)=>{doUpdate.call(this,pRecord,pRequest,tmpRequestState,pResponse,fCallback);},fStageComplete);},fBehaviorInjector(`UpdateBulk-PostOperation`),fStageComplete=>{return this.doStreamRecordArray(pResponse,tmpRequestState.UpdatedRecords,fStageComplete);},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Bulk updated ${tmpRequestState.UpdatedRecords.length} records`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointUpdate;},{"./Meadow-Operation-Update.js":220}],219:[function(require,module,exports){/**
5910
5998
  * Meadow Endpoint - Update a Record
5911
- */const doUpdate=require('./Meadow-Operation-Update.js');const doAPIEndpointUpdate=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'Update');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};this.waterfall([fStageComplete=>{if(typeof pRequest.body!=='object'){return fStageComplete(this.ErrorHandler.getError('Record update failure - a valid record is required.',400));}if(pRequest.body[this.DAL.defaultIdentifier]<1){return fStageComplete(this.ErrorHandler.getError('Record update failure - a valid record ID is required in the passed-in record.',400));}tmpRequestState.Record=pRequest.body;return fStageComplete();},fStageComplete=>{doUpdate.call(this,pRequest.body,pRequest,tmpRequestState,pResponse,fStageComplete);},fStageComplete=>{if(tmpRequestState.RecordUpdateError){return fStageComplete(tmpRequestState.RecordUpdateErrorObject);}if(tmpRequestState.UpdatedRecords.length<1){return fStageComplete(this.ErrorHandler.getError('Unknown record update failure - no updated records returned.',500));}tmpRequestState.Record=tmpRequestState.UpdatedRecords[0];return fStageComplete();},fStageComplete=>{pResponse.send(tmpRequestState.Record);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointUpdate;},{"./Meadow-Operation-Update.js":219}],219:[function(require,module,exports){/**
5999
+ */const doUpdate=require('./Meadow-Operation-Update.js');const doAPIEndpointUpdate=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'Update');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};this.waterfall([fStageComplete=>{if(typeof pRequest.body!=='object'){return fStageComplete(this.ErrorHandler.getError('Record update failure - a valid record is required.',400));}if(pRequest.body[this.DAL.defaultIdentifier]<1){return fStageComplete(this.ErrorHandler.getError('Record update failure - a valid record ID is required in the passed-in record.',400));}tmpRequestState.Record=pRequest.body;return fStageComplete();},fStageComplete=>{doUpdate.call(this,pRequest.body,pRequest,tmpRequestState,pResponse,fStageComplete);},fStageComplete=>{if(tmpRequestState.RecordUpdateError){return fStageComplete(tmpRequestState.RecordUpdateErrorObject);}if(tmpRequestState.UpdatedRecords.length<1){return fStageComplete(this.ErrorHandler.getError('Unknown record update failure - no updated records returned.',500));}tmpRequestState.Record=tmpRequestState.UpdatedRecords[0];return fStageComplete();},fStageComplete=>{pResponse.send(tmpRequestState.Record);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointUpdate;},{"./Meadow-Operation-Update.js":220}],220:[function(require,module,exports){/**
5912
6000
  * Meadow Operation - Update a record
5913
6001
  */const doUpdate=function(pRecordToModify,pRequest,pRequestState,pResponse,fCallback,pOptionalCachedUpdatingRecord){// This is a virtual operation
5914
6002
  let tmpRequestState=this.cloneAsyncSafeRequestState(pRequestState,'doUpdate');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};// If there is not a default identifier or cached record, fail
5915
6003
  if(pRecordToModify[this.DAL.defaultIdentifier]<1&&typeof pOptionalCachedUpdatingRecord==='undefined'){return fCallback('Record update failure - a valid record ID is required in the passed-in record.');}if(!Array.isArray(tmpRequestState.ParentRequestState.UpdatedRecords)){tmpRequestState.ParentRequestState.UpdatedRecords=[];}this.waterfall([fStageComplete=>{tmpRequestState.RecordToModify=pRecordToModify;if(typeof pOptionalCachedUpdatingRecord!=='undefined'){// Use the cached updating record instead of reading a record.
5916
6004
  tmpRequestState.OriginalRecord=pOptionalCachedUpdatingRecord;return fStageComplete();}else{tmpRequestState.Query=this.DAL.query;tmpRequestState.Query.addFilter(this.DAL.defaultIdentifier,tmpRequestState.RecordToModify[this.DAL.defaultIdentifier]);// Load the record so we can do security checks on it
5917
- this.DAL.doRead(tmpRequestState.Query,(pError,pQuery,pRecord)=>{if(pError){return fStageComplete(pError);}if(!pRecord){return fStageComplete(this.ErrorHandler.getError('Record not Found',404));}tmpRequestState.Record=pRecord;return fStageComplete();});}},fStageComplete=>{tmpRequestState.Query=this.DAL.query;return fStageComplete();},fStageComplete=>{tmpRequestState.Query.setIDUser(tmpRequestState.SessionData.UserID);tmpRequestState.Query.addRecord(tmpRequestState.RecordToModify);return fStageComplete();},fStageComplete=>{this.DAL.doUpdate(tmpRequestState.Query,(pError,pQuery,pReadQuery,pRecord)=>{if(pError){if(typeof pError=='string'){return fStageComplete(this.ErrorHandler.getError(pError,500));}else{return fStageComplete(pError);}}if(!pRecord){return fStageComplete(this.ErrorHandler.getError(`Error in DAL Update: No record returned from persistence engine.`,500));}tmpRequestState.Record=pRecord;return fStageComplete();});},fStageComplete=>{return this.BehaviorInjection.runBehavior(`Update-PostOperation`,this,pRequest,tmpRequestState,fStageComplete);},fStageComplete=>{tmpRequestState.ParentRequestState.UpdatedRecords.push(tmpRequestState.Record);this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Updated record with ID ${tmpRequestState.Record[this.DAL.defaultIdentifier]}`);return fStageComplete();}],pError=>{if(pError){// Ensure we have a record object to attach the error to
5918
- if(tmpRequestState.Record){tmpRequestState.Record.Error=pError;}else{tmpRequestState.Record={Error:pError};}tmpRequestState.ParentRequestState.RecordUpdateError=true;tmpRequestState.ParentRequestState.RecordUpdateErrorObject=pError;tmpRequestState.ParentRequestState.UpdatedRecords.push(tmpRequestState.Record);}return fCallback();});};module.exports=doUpdate;},{}],220:[function(require,module,exports){/**
6005
+ this.DAL.doRead(tmpRequestState.Query,(pError,pQuery,pRecord)=>{if(pError){return fStageComplete(pError);}if(!pRecord){return fStageComplete(this.ErrorHandler.getError('Record not Found',404));}tmpRequestState.Record=pRecord;return fStageComplete();});}},fStageComplete=>{tmpRequestState.Query=this.DAL.query;return fStageComplete();},fBehaviorInjector(`Update-PreOperation`),fStageComplete=>{tmpRequestState.Query.setIDUser(tmpRequestState.SessionData.UserID);tmpRequestState.Query.addRecord(tmpRequestState.RecordToModify);return fStageComplete();},fBehaviorInjector(`Update-QueryConfiguration`),fStageComplete=>{this.DAL.doUpdate(tmpRequestState.Query,(pError,pQuery,pReadQuery,pRecord)=>{if(pError){if(typeof pError=='string'){return fStageComplete(this.ErrorHandler.getError(pError,500));}else{return fStageComplete(pError);}}if(!pRecord){return fStageComplete(this.ErrorHandler.getError(`Error in DAL Update: No record returned from persistence engine.`,500));}tmpRequestState.Record=pRecord;return fStageComplete();});},fStageComplete=>{return this.BehaviorInjection.runBehavior(`Update-PostOperation`,this,pRequest,tmpRequestState,fStageComplete);},fStageComplete=>{tmpRequestState.ParentRequestState.UpdatedRecords.push(tmpRequestState.Record);this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Updated record with ID ${tmpRequestState.Record[this.DAL.defaultIdentifier]}`);return fStageComplete();}],pError=>{if(pError){// Ensure we have a record object to attach the error to
6006
+ if(tmpRequestState.Record){tmpRequestState.Record.Error=pError;}else{tmpRequestState.Record={Error:pError};}tmpRequestState.ParentRequestState.RecordUpdateError=true;tmpRequestState.ParentRequestState.RecordUpdateErrorObject=pError;tmpRequestState.ParentRequestState.UpdatedRecords.push(tmpRequestState.Record);}return fCallback();});};module.exports=doUpdate;},{}],221:[function(require,module,exports){/**
5919
6007
  * Meadow Endpoint - Upsert a set of Records
5920
- */const doUpsert=require('./Meadow-Operation-Upsert.js');const marshalLiteList=require('../read/Meadow-Marshal-LiteList.js');const doAPIEndpointUpserts=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'UpsertBulk');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};tmpRequestState.CreatedRecords=[];tmpRequestState.UpdatedRecords=[];tmpRequestState.UpsertedRecords=[];tmpRequestState.ErrorRecords=[];this.waterfall([fStageComplete=>{if(!Array.isArray(pRequest.body)){return fStageComplete(this.ErrorHandler.getError(`Record bulk upsert failure - a valid array of records is required.`,500));}tmpRequestState.BulkRecords=pRequest.body;return fStageComplete();},fStageComplete=>{this.eachLimit(tmpRequestState.BulkRecords,1,(pRecord,fCallback)=>{doUpsert.call(this,pRecord,pRequest,tmpRequestState,pResponse,fCallback);},fStageComplete);},fStageComplete=>{return this.doStreamRecordArray(pResponse,marshalLiteList.call(this,tmpRequestState.UpsertedRecords,pRequest),fStageComplete);},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Bulk upsert complete -- ${tmpRequestState.UpsertedRecords} records processed`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointUpserts;},{"../read/Meadow-Marshal-LiteList.js":213,"./Meadow-Operation-Upsert.js":222}],221:[function(require,module,exports){/**
6008
+ */const doUpsert=require('./Meadow-Operation-Upsert.js');const marshalLiteList=require('../read/Meadow-Marshal-LiteList.js');const doAPIEndpointUpserts=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'UpsertBulk');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};tmpRequestState.CreatedRecords=[];tmpRequestState.UpdatedRecords=[];tmpRequestState.UpsertedRecords=[];tmpRequestState.ErrorRecords=[];this.waterfall([fStageComplete=>{if(!Array.isArray(pRequest.body)){return fStageComplete(this.ErrorHandler.getError(`Record bulk upsert failure - a valid array of records is required.`,500));}tmpRequestState.BulkRecords=pRequest.body;return fStageComplete();},fBehaviorInjector(`UpsertBulk-PreOperation`),fStageComplete=>{this.eachLimit(tmpRequestState.BulkRecords,1,(pRecord,fCallback)=>{doUpsert.call(this,pRecord,pRequest,tmpRequestState,pResponse,fCallback);},fStageComplete);},fBehaviorInjector(`UpsertBulk-PostOperation`),fStageComplete=>{return this.doStreamRecordArray(pResponse,marshalLiteList.call(this,tmpRequestState.UpsertedRecords,pRequest),fStageComplete);},fStageComplete=>{this.log.requestCompletedSuccessfully(pRequest,tmpRequestState,`Bulk upsert complete -- ${tmpRequestState.UpsertedRecords.length} records processed`);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointUpserts;},{"../read/Meadow-Marshal-LiteList.js":214,"./Meadow-Operation-Upsert.js":223}],222:[function(require,module,exports){/**
5921
6009
  * Meadow Endpoint - Upsert (Insert OR Update) a Record
5922
6010
  */var doUpsert=require('./Meadow-Operation-Upsert.js');var doAPIEndpointUpsert=function(pRequest,pResponse,fNext){let tmpRequestState=this.initializeRequestState(pRequest,'Upsert');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};// Configure the request for the generic create & update operations
5923
6011
  tmpRequestState.CreatedRecords=[];tmpRequestState.UpdatedRecords=[];tmpRequestState.UpsertedRecords=[];tmpRequestState.ErrorRecords=[];this.waterfall([fStageComplete=>{//1. Validate request body to ensure it is a valid record
5924
- if(typeof pRequest.body!=='object'){return fStageComplete(this.ErrorHandler.getError('Record upsert failure - a valid record is required.',500));}tmpRequestState.RecordToUpsert=pRequest.body;return fStageComplete();},fStageComplete=>{doUpsert.call(this,tmpRequestState.RecordToUpsert,pRequest,tmpRequestState,pResponse,fStageComplete);},fStageComplete=>{if(tmpRequestState.RecordUpsertError){return fStageComplete(tmpRequestState.RecordUpsertErrorMessage);}if(tmpRequestState.UpsertedRecords.length<1){return fStageComplete(this.ErrorHandler.getError('Record upsert unknown failure - no record back from Upsert operation.',500));}tmpRequestState.Record=tmpRequestState.UpsertedRecords[0];pResponse.send(tmpRequestState.Record);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointUpsert;},{"./Meadow-Operation-Upsert.js":222}],222:[function(require,module,exports){/**
6012
+ if(typeof pRequest.body!=='object'){return fStageComplete(this.ErrorHandler.getError('Record upsert failure - a valid record is required.',500));}tmpRequestState.RecordToUpsert=pRequest.body;return fStageComplete();},fStageComplete=>{doUpsert.call(this,tmpRequestState.RecordToUpsert,pRequest,tmpRequestState,pResponse,fStageComplete);},fStageComplete=>{if(tmpRequestState.RecordUpsertError){return fStageComplete(tmpRequestState.RecordUpsertErrorMessage);}if(tmpRequestState.UpsertedRecords.length<1){return fStageComplete(this.ErrorHandler.getError('Record upsert unknown failure - no record back from Upsert operation.',500));}tmpRequestState.Record=tmpRequestState.UpsertedRecords[0];pResponse.send(tmpRequestState.Record);return fStageComplete();}],pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointUpsert;},{"./Meadow-Operation-Upsert.js":223}],223:[function(require,module,exports){/**
5925
6013
  * Meadow Operation - Upsert a record
5926
6014
  */const doCreate=require('../create/Meadow-Operation-Create.js');const doUpdate=require('../update/Meadow-Operation-Update.js');const doUpsert=function(pRecordToUpsert,pRequest,pRequestState,pResponse,fCallback){let tmpRequestState=this.cloneAsyncSafeRequestState(pRequestState,'Upsert');let fBehaviorInjector=pBehaviorHash=>{return fStageComplete=>{this.BehaviorInjection.runBehavior(pBehaviorHash,this,pRequest,tmpRequestState,fStageComplete);};};this.waterfall([fStageComplete=>{tmpRequestState.Query=this.DAL.query;// Prepare to gather requirements for upserting
5927
6015
  tmpRequestState.Record=pRecordToUpsert;// This operation will be create only if there is no GUID or ID in the record bundle
5928
6016
  tmpRequestState.UpsertCreateOnly=true;// See if there is a default identifier or default GUIdentifier
5929
6017
  if(typeof tmpRequestState.Record[this.DAL.defaultGUIdentifier]!=='undefined'&&tmpRequestState.Record[this.DAL.defaultGUIdentifier].length>0){tmpRequestState.Query.addFilter(this.DAL.defaultGUIdentifier,tmpRequestState.Record[this.DAL.defaultGUIdentifier]);tmpRequestState.UpsertCreateOnly=false;}if(typeof tmpRequestState.Record[this.DAL.defaultIdentifier]!=='undefined'&&tmpRequestState.Record[this.DAL.defaultIdentifier]>0){tmpRequestState.Query.addFilter(this.DAL.defaultIdentifier,tmpRequestState.Record[this.DAL.defaultIdentifier]);tmpRequestState.UpsertCreateOnly=false;}return fStageComplete();},fStageComplete=>{if(tmpRequestState.UpsertCreateOnly){tmpRequestState.Operation='Create';doCreate.call(this,tmpRequestState.Record,pRequest,tmpRequestState,pResponse,fStageComplete);}else{this.DAL.doRead(tmpRequestState.Query,(pError,pQuery,pRecord)=>{if(pError){if(typeof pError=='string'){return fStageComplete(this.ErrorHandler.getError(pError,500));}else{return fStageComplete(pError);}}else if(!pRecord){// Record not found -- do a create.
5930
- tmpRequestState.Operation='Create';doCreate.call(this,tmpRequestState.Record,pRequest,tmpRequestState,pResponse,fStageComplete);}else{// Set the default ID in the passed-in record if it doesn't exist..
5931
- if(!tmpRequestState.Record.hasOwnProperty(this.DAL.defaultIdentifier)){tmpRequestState.Record[this.DAL.defaultIdentifier]=pRecord[this.DAL.defaultIdentifier];}// If the found record does not match the passed ID --- what the heck?!
6018
+ tmpRequestState.Operation='Create';doCreate.call(this,tmpRequestState.Record,pRequest,tmpRequestState,pResponse,fStageComplete);}else{// Set the default ID in the passed-in record if it doesn't exist
6019
+ // or is zero (which is never a valid ID).
6020
+ if(!tmpRequestState.Record.hasOwnProperty(this.DAL.defaultIdentifier)||!tmpRequestState.Record[this.DAL.defaultIdentifier]){tmpRequestState.Record[this.DAL.defaultIdentifier]=pRecord[this.DAL.defaultIdentifier];}// If the found record does not match the passed ID --- what the heck?!
5932
6021
  if(tmpRequestState.Record[this.DAL.defaultIdentifier]!=pRecord[this.DAL.defaultIdentifier]){return fStageComplete(this.ErrorHandler.getError('Record IDs do not match',500));}// Record found -- do an update. Use the cached record, though.
5933
6022
  tmpRequestState.Operation='Update';doUpdate.call(this,tmpRequestState.Record,pRequest,tmpRequestState,pResponse,fStageComplete,pRecord);}});}},fStageComplete=>{// Now stuff the record into the upserted array
5934
- if(tmpRequestState.Operation=='Update'){if(tmpRequestState.RecordUpdateError){return fStageComplete(tmpRequestState.RecordUpdateErrorObject);}if(tmpRequestState.UpdatedRecords.length<1){return fStageComplete(this.ErrorHandler.getError('Unknown record update failure - no updated records returned.',500));}tmpRequestState.Record=tmpRequestState.UpdatedRecords[0];}else if(tmpRequestState.Operation=='Create'){if(tmpRequestState.RecordCreateError){return fStageComplete(tmpRequestState.RecordCreateErrorObject);}if(tmpRequestState.CreatedRecords.length<1){return fStageComplete(this.ErrorHandler.getError('Unknown record create failure - no created records returned.',500));}tmpRequestState.Record=tmpRequestState.CreatedRecords[0];}else{return fStageComplete(this.ErrorHandler.getError('Unkknown record upsert failure = no records returned from doUpsert.',500));}tmpRequestState.ParentRequestState.UpsertedRecords.push(tmpRequestState.Record);return fStageComplete();}],pError=>{if(pError){tmpRequestState.Record.Error=pError;}return fCallback();});};module.exports=doUpsert;},{"../create/Meadow-Operation-Create.js":202,"../update/Meadow-Operation-Update.js":219}]},{},[190])(190);});
6023
+ if(tmpRequestState.Operation=='Update'){if(tmpRequestState.RecordUpdateError){return fStageComplete(tmpRequestState.RecordUpdateErrorObject);}if(tmpRequestState.UpdatedRecords.length<1){return fStageComplete(this.ErrorHandler.getError('Unknown record update failure - no updated records returned.',500));}tmpRequestState.Record=tmpRequestState.UpdatedRecords[0];}else if(tmpRequestState.Operation=='Create'){if(tmpRequestState.RecordCreateError){return fStageComplete(tmpRequestState.RecordCreateErrorObject);}if(tmpRequestState.CreatedRecords.length<1){return fStageComplete(this.ErrorHandler.getError('Unknown record create failure - no created records returned.',500));}tmpRequestState.Record=tmpRequestState.CreatedRecords[0];}else{return fStageComplete(this.ErrorHandler.getError('Unkknown record upsert failure = no records returned from doUpsert.',500));}tmpRequestState.ParentRequestState.UpsertedRecords.push(tmpRequestState.Record);return fStageComplete();}],pError=>{if(pError){tmpRequestState.Record.Error=pError;}return fCallback();});};module.exports=doUpsert;},{"../create/Meadow-Operation-Create.js":203,"../update/Meadow-Operation-Update.js":220}]},{},[191])(191);});
5935
6024
  //# sourceMappingURL=meadow-endpoints.js.map