meadow-endpoints 4.0.15 → 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.
- package/dist/indoctrinate_content_staging/Indoctrinate-Catalog-AppData.json +1286 -1065
- package/dist/meadow-endpoints.js +239 -145
- package/dist/meadow-endpoints.js.map +1 -1
- package/dist/meadow-endpoints.min.js +7 -7
- package/dist/meadow-endpoints.min.js.map +1 -1
- package/docs/_version.json +7 -0
- package/docs/css/docuserve.css +277 -23
- package/docs/index.html +2 -2
- package/docs/retold-catalog.json +13 -1
- package/docs/retold-keyword-index.json +1 -1
- package/package.json +8 -7
- package/source/Meadow-Endpoints-Browser-Shim.js +4 -1
- package/source/Meadow-Endpoints.js +6 -6
- package/source/controller/Meadow-Endpoints-Controller-Base.js +6 -6
- package/source/controller/components/Meadow-Endpoints-Controller-BehaviorInjection.js +11 -11
- package/source/controller/components/Meadow-Endpoints-Controller-Error.js +23 -15
- package/source/controller/components/Meadow-Endpoints-Controller-Log.js +9 -9
- package/source/controller/utility/Meadow-Endpoints-Filter-Parser.js +16 -16
- package/source/controller/utility/Meadow-Endpoints-Session-Marshaler.js +42 -42
- package/source/controller/utility/Meadow-Endpoints-Stream-RecordArray.js +6 -6
- package/source/endpoints/create/Meadow-Operation-Create.js +1 -1
- package/source/endpoints/schema/Meadow-Endpoint-Validate.js +1 -1
- package/source/endpoints/update/Meadow-Endpoint-BulkUpdate.js +2 -0
- package/source/endpoints/update/Meadow-Operation-Update.js +2 -0
- package/source/endpoints/upsert/Meadow-Endpoint-BulkUpsert.js +3 -1
- package/test/MeadowEndpoints_basic_tests.js +737 -0
package/dist/meadow-endpoints.js
CHANGED
|
@@ -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":
|
|
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
|
+
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":
|
|
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":
|
|
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.
|
|
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
|
|
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.
|
|
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'';}
|
|
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;}}
|
|
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.
|
|
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.
|
|
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'
|
|
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.
|
|
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.
|
|
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'
|
|
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.
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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-
|
|
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>
|
|
@@ -3166,7 +3221,13 @@ if(pQuery.logLevel>0||_GlobalLogLevel>0){_Fable.log.trace(pQuery.query.body,pQue
|
|
|
3166
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
|
|
3167
3222
|
return fCallback();});});});};// This is a synchronous read, good for a few records.
|
|
3168
3223
|
// TODO: Add a pipe-able read for huge sets
|
|
3169
|
-
var Read=function(pQuery,fCallback){var tmpResult=pQuery.parameters.result
|
|
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
|
|
3170
3231
|
tmpPreparedStatement.unprepare(pPreparedStatementUnprepareError=>{if(pPreparedStatementUnprepareError){_Fable.log.error(`READ Error unpreparing prepared statement: ${pPreparedStatementUnprepareError}`,pPreparedStatementUnprepareError);}//_Fable.log.info(`Prepared statement returned...`, pPreparedResult);
|
|
3171
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
|
|
3172
3233
|
tmpPreparedStatement.unprepare(pPreparedStatementUnprepareError=>{if(pPreparedStatementUnprepareError){_Fable.log.error(`UPDATE Error unpreparing prepared statement: ${pPreparedStatementUnprepareError}`,pPreparedStatementUnprepareError);}//_Fable.log.info(`Prepared statement returned...`, pPreparedResult);
|
|
@@ -3193,7 +3254,7 @@ if(!pQuery.query.records.length>0){tmpResult.error='No records passed for proxyi
|
|
|
3193
3254
|
// an object). The subsequent Read step uses the existing
|
|
3194
3255
|
// filters to re-read the updated record.
|
|
3195
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...
|
|
3196
|
-
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":
|
|
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
|
|
3197
3258
|
/**
|
|
3198
3259
|
* @license MIT
|
|
3199
3260
|
* @author <steven@velozo.com>
|
|
@@ -3294,6 +3355,33 @@ if(pDBResult&&pDBResult.rows&&pDBResult.rows.length>0){var tmpSchema=Array.isArr
|
|
|
3294
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.
|
|
3295
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
|
|
3296
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
|
|
3297
3385
|
/**
|
|
3298
3386
|
* @license MIT
|
|
3299
3387
|
* @author <steven@velozo.com>
|
|
@@ -3422,7 +3510,7 @@ var tmpFilterArray=buildFilterArray(pQuery,true);readMatchingRecords(tmpDB,_Scop
|
|
|
3422
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();});};// ============================================================
|
|
3423
3511
|
// Provider Export
|
|
3424
3512
|
// ============================================================
|
|
3425
|
-
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();},{}],
|
|
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){/**
|
|
3426
3514
|
* Meadow Provider - SQLite (via better-sqlite3)
|
|
3427
3515
|
*
|
|
3428
3516
|
* @license MIT
|
|
@@ -3460,7 +3548,7 @@ var marshalRecordFromSourceToObject=function(pObject,pRecord,pSchema){// Build l
|
|
|
3460
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
|
|
3461
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
|
|
3462
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
|
|
3463
|
-
}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();},{}],
|
|
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
|
|
3464
3552
|
/**
|
|
3465
3553
|
* @license MIT
|
|
3466
3554
|
* @author <steven@velozo.com>
|
|
@@ -3497,7 +3585,7 @@ var tmpSearchQuery=tmpClient.query().q(tmpOp.filterQuery||'*:*').fl('id').rows(1
|
|
|
3497
3585
|
// Use JSON facet API for distinct count
|
|
3498
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
|
|
3499
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
|
|
3500
|
-
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();},{}],
|
|
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
|
|
3501
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
|
|
3502
3590
|
?function(O){return O.__proto__;// eslint-disable-line no-proto
|
|
3503
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)
|
|
@@ -3514,7 +3602,7 @@ if(!has(obj,key)){continue;}// eslint-disable-line no-restricted-syntax, no-cont
|
|
|
3514
3602
|
if(isArr&&String(Number(key))===key&&key<obj.length){continue;}// eslint-disable-line no-restricted-syntax, no-continue
|
|
3515
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
|
|
3516
3604
|
continue;// eslint-disable-line no-restricted-syntax, no-continue
|
|
3517
|
-
}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}],
|
|
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
|
|
3518
3606
|
var process=module.exports={};// cached from whatever global is present so that test runners that stub it
|
|
3519
3607
|
// don't break things. But we need to wrap it in a try catch in case it is
|
|
3520
3608
|
// wrapped in strict mode code which doesn't define any globals. It's inside a
|
|
@@ -3532,7 +3620,7 @@ return cachedClearTimeout.call(null,marker);}catch(e){// same as above but when
|
|
|
3532
3620
|
// Some versions of I.E. have different rules for clearTimeout vs setTimeout
|
|
3533
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
|
|
3534
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
|
|
3535
|
-
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;};},{}],
|
|
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;}/**
|
|
3536
3624
|
* The `punycode` object.
|
|
3537
3625
|
* @name punycode
|
|
3538
3626
|
* @type Object
|
|
@@ -3687,7 +3775,7 @@ for/* no condition */(q=delta,k=base;;k+=base){t=k<=bias?tMin:k>=bias+tMax?tMax:
|
|
|
3687
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+
|
|
3688
3776
|
freeModule.exports=punycode;}else{// in Narwhal or RingoJS v0.7.0-
|
|
3689
3777
|
for(key in punycode){punycode.hasOwnProperty(key)&&(freeExports[key]=punycode[key]);}}}else{// in Rhino or a web browser
|
|
3690
|
-
root.punycode=punycode;}})(this);}).call(this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{}],
|
|
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&¤tArrayLength>=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
|
|
3691
3779
|
// application/x-www-form-urlencoded body and the encoding of the page containing
|
|
3692
3780
|
// the form is iso-8859-1, or when the submitted form has an accept-charset
|
|
3693
3781
|
// attribute of iso-8859-1. Presumably also with other charsets that do not contain
|
|
@@ -3700,13 +3788,13 @@ var i;var charset=options.charset;if(options.charsetSentinel){for(i=0;i<parts.le
|
|
|
3700
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
|
|
3701
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
|
|
3702
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
|
|
3703
|
-
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":
|
|
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
|
|
3704
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
|
|
3705
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
|
|
3706
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
|
|
3707
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('✓'), the "numeric entity" representation of a checkmark
|
|
3708
3796
|
prefix+='utf8=%26%2310003%3B&';}else{// encodeURIComponent('✓')
|
|
3709
|
-
prefix+='utf8=%E2%9C%93&';}}return joined.length>0?prefix+joined:'';};},{"./formats":
|
|
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
|
|
3710
3798
|
// Stores the current max numeric index for O(1) lookup
|
|
3711
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
|
|
3712
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
|
|
@@ -3723,7 +3811,7 @@ if(str.length===0){return str;}var string=str;if(typeof str==='symbol'){string=S
|
|
|
3723
3811
|
||c>=0x61&&c<=0x7A// A-Z
|
|
3724
3812
|
||format===formats.RFC1738&&(c===0x28||c===0x29)// ( )
|
|
3725
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
|
|
3726
|
-
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":
|
|
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.
|
|
3727
3815
|
//
|
|
3728
3816
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
3729
3817
|
// copy of this software and associated documentation files (the
|
|
@@ -3747,7 +3835,7 @@ if(isOverflow(a)){var newIndex=getMaxIndex(a)+1;a[newIndex]=b;setMaxIndex(a,newI
|
|
|
3747
3835
|
// obj.hasOwnProperty(prop) will break.
|
|
3748
3836
|
// See: https://github.com/joyent/node/issues/1707
|
|
3749
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
|
|
3750
|
-
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]';};},{}],
|
|
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.
|
|
3751
3839
|
//
|
|
3752
3840
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
3753
3841
|
// copy of this software and associated documentation files (the
|
|
@@ -3767,10 +3855,10 @@ if(maxKeys>0&&len>maxKeys){len=maxKeys;}for(var i=0;i<len;++i){var x=qs[i].repla
|
|
|
3767
3855
|
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
3768
3856
|
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
3769
3857
|
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
3770
|
-
'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;};},{}],
|
|
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
|
|
3771
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')
|
|
3772
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
|
|
3773
|
-
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}],
|
|
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');/*
|
|
3774
3862
|
* This function traverses the list returning the node corresponding to the given key.
|
|
3775
3863
|
*
|
|
3776
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.
|
|
@@ -3785,13 +3873,13 @@ key:key,next:objects.next,value:value};}};/** @type {import('./list.d.ts').listH
|
|
|
3785
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
|
|
3786
3874
|
$o={next:void undefined};}// eslint-disable-next-line no-extra-parens
|
|
3787
3875
|
listSet(/** @type {NonNullable<typeof $o>} */$o,key,value);}};// @ts-expect-error TODO: figure out why this is erroring
|
|
3788
|
-
return channel;};},{"es-errors/type":41,"object-inspect":
|
|
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
|
|
3789
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
|
|
3790
3878
|
$m=new $Map();}$mapSet($m,key,value);}};// @ts-expect-error TODO: figure out why TS is erroring here
|
|
3791
|
-
return channel;};},{"call-bound":32,"es-errors/type":41,"get-intrinsic":64,"object-inspect":
|
|
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
|
|
3792
3880
|
/** @type {NonNullable<typeof $m>} */$m.set(key,value);}}};// @ts-expect-error TODO: figure out why this is erroring
|
|
3793
|
-
return channel;}:getSideChannelMap;},{"call-bound":32,"es-errors/type":41,"get-intrinsic":64,"object-inspect":
|
|
3794
|
-
return channel;};},{"es-errors/type":41,"object-inspect":
|
|
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
|
|
3795
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
|
|
3796
3884
|
delete opts.url;if(!hostname&&!port&&!protocol&&!auth)opts.path=path;// Relative redirect
|
|
3797
3885
|
else Object.assign(opts,{hostname,port,protocol,auth,path});// Absolute redirect
|
|
@@ -3803,7 +3891,7 @@ res.resume();// Discard response
|
|
|
3803
3891
|
const redirectHost=url.parse(opts.url).hostname;// eslint-disable-line node/no-deprecated-api
|
|
3804
3892
|
// If redirected host is different than original host, drop headers to prevent cookie leak (#73)
|
|
3805
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)
|
|
3806
|
-
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":
|
|
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.
|
|
3807
3895
|
//
|
|
3808
3896
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
3809
3897
|
// copy of this software and associated documentation files (the
|
|
@@ -3832,13 +3920,13 @@ if(!dest._isStdio&&(!options||options.end!==false)){source.on('end',onend);sourc
|
|
|
3832
3920
|
function onerror(er){cleanup();if(EE.listenerCount(this,'error')===0){throw er;// Unhandled stream error in pipe.
|
|
3833
3921
|
}}source.on('error',onerror);dest.on('error',onerror);// remove all the event listeners that were added.
|
|
3834
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)
|
|
3835
|
-
return dest;};},{"events":44,"inherits":77,"readable-stream/lib/_stream_duplex.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
|
|
3836
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
|
|
3837
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
|
|
3838
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
|
|
3839
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'
|
|
3840
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'
|
|
3841
|
-
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;},{}],
|
|
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.
|
|
3842
3930
|
//
|
|
3843
3931
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
3844
3932
|
// copy of this software and associated documentation files (the
|
|
@@ -3883,7 +3971,7 @@ enumerable:false,get:function get(){if(this._readableState===undefined||this._wr
|
|
|
3883
3971
|
// has not been initialized yet
|
|
3884
3972
|
if(this._readableState===undefined||this._writableState===undefined){return;}// backward compatibility, the user is explicitly
|
|
3885
3973
|
// managing destroyed
|
|
3886
|
-
this._readableState.destroyed=value;this._writableState.destroyed=value;}});}).call(this);}).call(this,require('_process'));},{"./_stream_readable":
|
|
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.
|
|
3887
3975
|
//
|
|
3888
3976
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
3889
3977
|
// copy of this software and associated documentation files (the
|
|
@@ -3906,7 +3994,7 @@ this._readableState.destroyed=value;this._writableState.destroyed=value;}});}).c
|
|
|
3906
3994
|
// a passthrough stream.
|
|
3907
3995
|
// basically just the most minimal sort of Transform stream.
|
|
3908
3996
|
// Every written chunk gets output as-is.
|
|
3909
|
-
'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":
|
|
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.
|
|
3910
3998
|
//
|
|
3911
3999
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
3912
4000
|
// copy of this software and associated documentation files (the
|
|
@@ -4158,7 +4246,7 @@ if(state.decoder)ret=state.buffer.join('');else if(state.buffer.length===1)ret=s
|
|
|
4158
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.
|
|
4159
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
|
|
4160
4248
|
// if the writable side is ready for autoDestroy as well
|
|
4161
|
-
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":
|
|
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.
|
|
4162
4250
|
//
|
|
4163
4251
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
4164
4252
|
// copy of this software and associated documentation files (the
|
|
@@ -4244,7 +4332,7 @@ ts.needTransform=true;}};Transform.prototype._destroy=function(err,cb){Duplex.pr
|
|
|
4244
4332
|
stream.push(data);// TODO(BridgeAR): Write a test for these two error cases
|
|
4245
4333
|
// if there's nothing in the write buffer, then that means
|
|
4246
4334
|
// that nothing more will ever be provided
|
|
4247
|
-
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":
|
|
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.
|
|
4248
4336
|
//
|
|
4249
4337
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
4250
4338
|
// copy of this software and associated documentation files (the
|
|
@@ -4379,7 +4467,7 @@ enumerable:false,get:function get(){if(this._writableState===undefined){return f
|
|
|
4379
4467
|
// has not been initialized yet
|
|
4380
4468
|
if(!this._writableState){return;}// backward compatibility, the user is explicitly
|
|
4381
4469
|
// managing destroyed
|
|
4382
|
-
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":
|
|
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
|
|
4383
4471
|
// we can be expecting either 'end' or
|
|
4384
4472
|
// 'error'
|
|
4385
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
|
|
@@ -4401,7 +4489,7 @@ var data=this[kStream].read();if(data!==null){return Promise.resolve(createIterR
|
|
|
4401
4489
|
// Readable class this is attached to
|
|
4402
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
|
|
4403
4491
|
// returned by next() and store the error
|
|
4404
|
-
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":
|
|
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.
|
|
4405
4493
|
},{key:"consume",value:function consume(n,hasStrings){var ret;if(n<this.head.data.length){// `slice` is the same for buffers and strings.
|
|
4406
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.
|
|
4407
4495
|
ret=this.shift();}else{// Result spans more than one buffer.
|
|
@@ -4410,7 +4498,7 @@ ret=hasStrings?this._getString(n):this._getBuffer(n);}return ret;}},{key:"first"
|
|
|
4410
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.
|
|
4411
4499
|
},{key:custom,value:function value(_,options){return inspect(this,_objectSpread(_objectSpread({},options),{},{// Only inspect one level.
|
|
4412
4500
|
depth:0,// It should not recurse.
|
|
4413
|
-
customInspect:false}));}}]);return BufferList;}();},{"buffer":23,"util":21}],
|
|
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
|
|
4414
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
|
|
4415
4503
|
// to make it re-entrance safe in case destroy() is called within callbacks
|
|
4416
4504
|
if(this._readableState){this._readableState.destroyed=true;}// if this is a duplex stream mark the writable part as destroyed as well
|
|
@@ -4419,21 +4507,21 @@ if(this._writableState){this._writableState.destroyed=true;}this._destroy(err||n
|
|
|
4419
4507
|
// For now when you opt-in to autoDestroy we allow
|
|
4420
4508
|
// the error to be emitted nextTick. In a future
|
|
4421
4509
|
// semver major update we should change the default to this.
|
|
4422
|
-
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":
|
|
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
|
|
4423
4511
|
// permission from the author, Mathias Buus (@mafintosh).
|
|
4424
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
|
|
4425
|
-
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":
|
|
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
|
|
4426
4514
|
// permission from the author, Mathias Buus (@mafintosh).
|
|
4427
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
|
|
4428
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
|
|
4429
|
-
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":
|
|
4430
|
-
return state.objectMode?16:16*1024;}module.exports={getHighWaterMark:getHighWaterMark};},{"../../../errors":
|
|
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
|
|
4431
4519
|
// will result in a (valid) protocol-relative url. However, this won't work if
|
|
4432
4520
|
// the protocol is something else, like 'file:'
|
|
4433
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
|
|
4434
4522
|
if(host&&host.indexOf(':')!==-1)host='['+host+']';// This may be a relative url. The browser should always be able to interpret it correctly.
|
|
4435
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
|
|
4436
|
-
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":
|
|
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,
|
|
4437
4525
|
// so if we're running in a browser that supports `fetch`, avoid calling getXHR()
|
|
4438
4526
|
// and assume support for certain features below.
|
|
4439
4527
|
var xhr;function getXHR(){// Cache the xhr value
|
|
@@ -4448,7 +4536,7 @@ exports.arraybuffer=exports.fetch||checkTypeSupport('arraybuffer');// These next
|
|
|
4448
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
|
|
4449
4537
|
// getXHR().
|
|
4450
4538
|
exports.overrideMimeType=exports.fetch||(getXHR()?isFunction(getXHR().overrideMimeType):false);function isFunction(value){return typeof value==='function';}xhr=null;// Help gc
|
|
4451
|
-
}).call(this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{}],
|
|
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.
|
|
4452
4540
|
useFetch=false;preferBinary=true;}else if(opts.mode==='prefer-streaming'){// If streaming is a high priority but binary compatibility and
|
|
4453
4541
|
// the accuracy of the 'content-type' header aren't
|
|
4454
4542
|
preferBinary=false;}else if(opts.mode==='allow-wrong-content-type'){// If streaming is more important than preserving the 'content-type' header
|
|
@@ -4465,7 +4553,7 @@ if(self._mode==='moz-chunked-arraybuffer'){xhr.onprogress=function(){self._onXHR
|
|
|
4465
4553
|
* Even though the spec says it should be available in readyState 3,
|
|
4466
4554
|
* accessing it throws an exception in IE8
|
|
4467
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
|
|
4468
|
-
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":
|
|
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
|
|
4469
4557
|
self.on('end',function(){// The nextTick is necessary to prevent the 'request' module from causing an infinite loop
|
|
4470
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
|
|
4471
4559
|
}// fallback for when writableStream or pipeTo aren't available
|
|
@@ -4473,7 +4561,7 @@ var reader=response.body.getReader();function read(){reader.read().then(function
|
|
|
4473
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
|
|
4474
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
|
|
4475
4563
|
reader.readAsArrayBuffer(response);break;}// The ms-stream case handles end separately in reader.onload()
|
|
4476
|
-
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":
|
|
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.
|
|
4477
4565
|
//
|
|
4478
4566
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
4479
4567
|
// copy of this software and associated documentation files (the
|
|
@@ -4518,7 +4606,7 @@ enumerable:false,get:function get(){if(this._readableState===undefined||this._wr
|
|
|
4518
4606
|
// has not been initialized yet
|
|
4519
4607
|
if(this._readableState===undefined||this._writableState===undefined){return;}// backward compatibility, the user is explicitly
|
|
4520
4608
|
// managing destroyed
|
|
4521
|
-
this._readableState.destroyed=value;this._writableState.destroyed=value;}});}).call(this);}).call(this,require('_process'));},{"./_stream_readable":
|
|
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.
|
|
4522
4610
|
//
|
|
4523
4611
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
4524
4612
|
// copy of this software and associated documentation files (the
|
|
@@ -4770,7 +4858,7 @@ if(state.decoder)ret=state.buffer.join('');else if(state.buffer.length===1)ret=s
|
|
|
4770
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.
|
|
4771
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
|
|
4772
4860
|
// if the writable side is ready for autoDestroy as well
|
|
4773
|
-
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":
|
|
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.
|
|
4774
4862
|
//
|
|
4775
4863
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
4776
4864
|
// copy of this software and associated documentation files (the
|
|
@@ -4905,7 +4993,7 @@ enumerable:false,get:function get(){if(this._writableState===undefined){return f
|
|
|
4905
4993
|
// has not been initialized yet
|
|
4906
4994
|
if(!this._writableState){return;}// backward compatibility, the user is explicitly
|
|
4907
4995
|
// managing destroyed
|
|
4908
|
-
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":
|
|
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
|
|
4909
4997
|
// we can be expecting either 'end' or
|
|
4910
4998
|
// 'error'
|
|
4911
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
|
|
@@ -4927,7 +5015,7 @@ var data=this[kStream].read();if(data!==null){return Promise.resolve(createIterR
|
|
|
4927
5015
|
// Readable class this is attached to
|
|
4928
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
|
|
4929
5017
|
// returned by next() and store the error
|
|
4930
|
-
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":
|
|
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
|
|
4931
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
|
|
4932
5020
|
// to make it re-entrance safe in case destroy() is called within callbacks
|
|
4933
5021
|
if(this._readableState){this._readableState.destroyed=true;}// if this is a duplex stream mark the writable part as destroyed as well
|
|
@@ -4936,7 +5024,7 @@ if(this._writableState){this._writableState.destroyed=true;}this._destroy(err||n
|
|
|
4936
5024
|
// For now when you opt-in to autoDestroy we allow
|
|
4937
5025
|
// the error to be emitted nextTick. In a future
|
|
4938
5026
|
// semver major update we should change the default to this.
|
|
4939
|
-
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":
|
|
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.
|
|
4940
5028
|
//
|
|
4941
5029
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
4942
5030
|
// copy of this software and associated documentation files (the
|
|
@@ -4990,7 +5078,7 @@ function utf8End(buf){var r=buf&&buf.length?this.write(buf):'';if(this.lastNeed)
|
|
|
4990
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
|
|
4991
5079
|
// end on a partial character, we simply let v8 handle that.
|
|
4992
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)
|
|
4993
|
-
function simpleWrite(buf){return buf.toString(this.encoding);}function simpleEnd(buf){return buf&&buf.length?this.write(buf):'';}},{"safe-buffer":
|
|
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
|
|
4994
5082
|
//
|
|
4995
5083
|
// a stream that does nothing but re-emit the input.
|
|
4996
5084
|
// useful for aggregating a series of changing but not ending streams into one stream)
|
|
@@ -5005,13 +5093,13 @@ if(_ended)return stream;if(data===null)_ended=true;buffer.push(data);drain();ret
|
|
|
5005
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
|
|
5006
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,
|
|
5007
5095
|
//as drain emits 'data'.
|
|
5008
|
-
if(!stream.paused)stream.emit('drain');return stream;};return stream;}}).call(this);}).call(this,require('_process'));},{"_process":
|
|
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
|
|
5009
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.
|
|
5010
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.
|
|
5011
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
|
|
5012
5100
|
// @see http://jsperf.com/call-apply-segu
|
|
5013
5101
|
if(args){fn.apply(null,args);}else{fn.call(null);}// Prevent ids from leaking
|
|
5014
|
-
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":
|
|
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
|
|
5015
5103
|
// https://underscorejs.org
|
|
5016
5104
|
// (c) 2009-2026 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors
|
|
5017
5105
|
// Underscore may be freely distributed under the MIT license.
|
|
@@ -5381,7 +5469,7 @@ each(['concat','join','slice'],function(name){var method=ArrayProto[name];_$1.pr
|
|
|
5381
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
|
|
5382
5470
|
// Add all of the Underscore functions to the wrapper object.
|
|
5383
5471
|
var _=mixin(allExports);// Legacy Node.js API.
|
|
5384
|
-
_._=_;return _;});}).call(this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{}],
|
|
5472
|
+
_._=_;return _;});}).call(this);}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{});},{}],183:[function(require,module,exports){/*
|
|
5385
5473
|
* Copyright Joyent, Inc. and other Node contributors.
|
|
5386
5474
|
*
|
|
5387
5475
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
@@ -5559,7 +5647,7 @@ if(psychotic){result.hostname=isAbsolute?'':srcPath.length?srcPath.shift():'';re
|
|
|
5559
5647
|
* this especially happens in cases like
|
|
5560
5648
|
* url.resolveObject('mailto:local1@domain1', 'local2@domain2')
|
|
5561
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
|
|
5562
|
-
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/":
|
|
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(){/**
|
|
5563
5651
|
* Module exports.
|
|
5564
5652
|
*/module.exports=deprecate;/**
|
|
5565
5653
|
* Mark that a method should not be used.
|
|
@@ -5584,12 +5672,12 @@ if(result.pathname!==null||result.search!==null){result.path=(result.pathname?re
|
|
|
5584
5672
|
* @returns {Boolean}
|
|
5585
5673
|
* @api private
|
|
5586
5674
|
*/function config(name){// accessing global.localStorage can trigger a DOMException in sandboxed iframes
|
|
5587
|
-
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:{});},{}],
|
|
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
|
|
5588
5676
|
// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9
|
|
5589
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
|
|
5590
5678
|
// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js
|
|
5591
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
|
|
5592
|
-
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":
|
|
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.
|
|
5593
5681
|
//
|
|
5594
5682
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
5595
5683
|
// copy of this software and associated documentation files (the
|
|
@@ -5669,19 +5757,19 @@ if(!reason){var newReason=new Error('Promise was rejected with a falsy value');n
|
|
|
5669
5757
|
// and that the callback throwing will reject the promise.
|
|
5670
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
|
|
5671
5759
|
// implications (stack, `uncaughtException`, `async_hooks`)
|
|
5672
|
-
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":
|
|
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
|
|
5673
5761
|
var descriptor=gOPD(proto,Symbol.toStringTag);if(!descriptor&&proto){var superProto=getProto(proto);// @ts-expect-error TS won't narrow inside a closure
|
|
5674
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
|
|
5675
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
|
|
5676
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
|
|
5677
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
|
|
5678
5766
|
return trySlices(value);}if(!gOPD){return null;}// unknown engine
|
|
5679
|
-
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}],
|
|
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
|
|
5680
5768
|
// The wrapper function should do some stuff, and return a
|
|
5681
5769
|
// presumably different callback function.
|
|
5682
5770
|
// This makes sure that own properties are retained, so that
|
|
5683
5771
|
// decorations and such are not lost along the way.
|
|
5684
|
-
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;}}},{}],
|
|
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){/**
|
|
5685
5773
|
* Meadow Endpoints Service Data Broker Library
|
|
5686
5774
|
*
|
|
5687
5775
|
* @license MIT
|
|
@@ -5701,10 +5789,10 @@ this._Endpoints={Create:require('./endpoints/create/Meadow-Endpoint-Create.js'),
|
|
|
5701
5789
|
*/Schema:require('./endpoints/schema/Meadow-Endpoint-Schema.js'),// Validate a passed-in JSON object for if it matches the schema
|
|
5702
5790
|
Validate:require('./endpoints/schema/Meadow-Endpoint-Validate.js'),// Get an empty initialized JSON object for this.
|
|
5703
5791
|
New:require('./endpoints/schema/Meadow-Endpoint-New.js')};}/**
|
|
5704
|
-
|
|
5705
|
-
|
|
5706
|
-
|
|
5707
|
-
|
|
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;}/**
|
|
5708
5796
|
* Customize a default endpoint (or create more)
|
|
5709
5797
|
*
|
|
5710
5798
|
* @method setEndpoint
|
|
@@ -5712,28 +5800,28 @@ New:require('./endpoints/schema/Meadow-Endpoint-New.js')};}/**
|
|
|
5712
5800
|
// technically block out the routes for the IDRecord 'Schema' (e.g. GET[/1.0/EntityName/Schema] ==NEEDS=> GET[/1.0/EntityName/100])
|
|
5713
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
|
|
5714
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
|
|
5715
|
-
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":
|
|
5716
|
-
|
|
5717
|
-
|
|
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
|
|
5718
5806
|
this._Settings=null;this._LogController=null;// Logic and Behavior
|
|
5719
5807
|
this._BehaviorInjectionController=null;this._ErrorController=null;// Internal async utility functions
|
|
5720
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
|
|
5721
5809
|
//if ((typeof(this.ControllerOptions) != 'object') || this.ControllerOptions.hasOwnProperty('ControllerClass'))
|
|
5722
5810
|
{this.initializeDefaultUnsetControllers(this);}// Behavior functions
|
|
5723
5811
|
this._FilterParser=new libMeadowEndpointsFilterParser(this);this._SessionMarshaler=new libMeadowEndpointsSessionMarshaler(this);this._StreamRecordArray=new libMeadowEndpointsStreamRecordArray(this);}/**
|
|
5724
|
-
|
|
5725
|
-
|
|
5812
|
+
* @param {import('./Meadow-Endpoints-Controller-Base.js')} pController
|
|
5813
|
+
*/initializeDefaultUnsetControllers(pController){// Application Services
|
|
5726
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
|
|
5727
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.
|
|
5728
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.
|
|
5729
5817
|
_EndDataRequestFunction(pRequest,pResponse,fNext){return fNext();}endMeadowRequest(pRequest,pResponse,fNext){this._EndDataRequestFunction(pRequest,pResponse,fNext);}// Application Services
|
|
5730
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
|
|
5731
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
|
|
5732
|
-
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":
|
|
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
|
|
5733
5821
|
//TODO: There is risk of other incompatibilities until service_pieces is updated
|
|
5734
5822
|
const libUnderscore=require('underscore');class MeadowEndpointsControllerBehaviorInjectionBase{/**
|
|
5735
|
-
|
|
5736
|
-
|
|
5823
|
+
* @param {import('../Meadow-Endpoints-Controller-Base.js')} pController
|
|
5824
|
+
*/constructor(pController){this._Controller=pController;// The template compilation function
|
|
5737
5825
|
//this.template = this._Controller.DAL.fable.Utility.template;
|
|
5738
5826
|
this.template=libUnderscore.template;// An object to hold modifications to specific behaviors.
|
|
5739
5827
|
this._BehaviorFunctions={};// A set of objects to hold the specific templates and their compiled functions
|
|
@@ -5744,10 +5832,10 @@ this._Templates={};this._TemplateFunctions={};}/**
|
|
|
5744
5832
|
*
|
|
5745
5833
|
* var someBehavior = function(pRequest, fCallback)
|
|
5746
5834
|
* {
|
|
5747
|
-
*
|
|
5748
|
-
*
|
|
5749
|
-
*
|
|
5750
|
-
*
|
|
5835
|
+
* // Do some stuff with pRequest...
|
|
5836
|
+
* if (pRequest.UserSession.UserRoleIndex < 5)
|
|
5837
|
+
* tmpRequestState.Query.addFilter('Customer', pRequest.UserSession.IDCustomer);
|
|
5838
|
+
* return fCallback(false);
|
|
5751
5839
|
* }
|
|
5752
5840
|
*
|
|
5753
5841
|
* It is important to note that the fCallback function expects false if no error, or a string message if there is one.
|
|
@@ -5771,10 +5859,16 @@ this._Templates[pTemplateHash]=pTemplate;this._TemplateFunctions[pTemplateHash]=
|
|
|
5771
5859
|
if(tmpTemplateFunction===false){// If the template doesn't exist, try to use the passed-in default and set that as the template.
|
|
5772
5860
|
// Otherwise make it empty.
|
|
5773
5861
|
this.setTemplate(pTemplateHash,typeof pDefaultTemplate==='undefined'?'':pDefaultTemplate);tmpTemplateFunction=this.getTemplateFunction(pTemplateHash);}// Now process and return the underscore template.
|
|
5774
|
-
return tmpTemplateFunction(tmpTemplateData);}}module.exports=MeadowEndpointsControllerBehaviorInjectionBase;},{"underscore":
|
|
5775
|
-
|
|
5776
|
-
|
|
5777
|
-
|
|
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
|
|
5778
5872
|
tmpError.StatusCode=typeof pStatusCode=='number'?pStatusCode:400;// This suppresses the stack trace from being sent back or logged.
|
|
5779
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.
|
|
5780
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.
|
|
@@ -5784,13 +5878,13 @@ if(!this._Controller.ControllerOptions.SendErrorStatusCodes){let tmpStatusCode=p
|
|
|
5784
5878
|
prepareRequestContextOutputObject(pObjectToPopulate,pRequest,pRequestState,pError){// Internally created errors supress stack traces
|
|
5785
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.
|
|
5786
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...
|
|
5787
|
-
default:pObjectToPopulate.RebuiltQueryString=pObjectToPopulate.RebuiltQueryString.replace(new RegExp(`:${tmpQueryParameterSet[i]}\\b`,'g'),pObjectToPopulate.QueryParameters[tmpQueryParameterSet[i]]);break;}}}}}}return pObjectToPopulate;}}module.exports=MeadowEndpointsControllerErrorBase;},{}],
|
|
5788
|
-
|
|
5789
|
-
|
|
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!
|
|
5790
5884
|
prepareLogData(pRequest,pRequestState,pLogData){// TODO: Discuss if these should be configurations
|
|
5791
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
|
|
5792
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
|
|
5793
|
-
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;},{}],
|
|
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){/**
|
|
5794
5888
|
* Meadow Endpoint Utility Class - Parse a Filter String and put it into a Query.
|
|
5795
5889
|
*
|
|
5796
5890
|
* @license MIT
|
|
@@ -5798,49 +5892,49 @@ logRequestError(pRequest,pRequestState,pError){let tmpErrorLogData={SessionID:pR
|
|
|
5798
5892
|
* @author Steven Velozo <steven@velozo.com>
|
|
5799
5893
|
* @module Meadow
|
|
5800
5894
|
*/const{parse}=require('meadow-filter');class MeadowEndpointsFilterParser{/**
|
|
5801
|
-
|
|
5802
|
-
|
|
5803
|
-
|
|
5804
|
-
|
|
5805
|
-
|
|
5806
|
-
|
|
5807
|
-
|
|
5808
|
-
|
|
5809
|
-
|
|
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
|
|
5810
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?
|
|
5811
5905
|
// Yes this makes sense here.
|
|
5812
|
-
pRequest.UserSession=tmpSession;return tmpSession;}}module.exports=MeadowEndpointsSessionMarshaler;},{}],
|
|
5906
|
+
pRequest.UserSession=tmpSession;return tmpSession;}}module.exports=MeadowEndpointsSessionMarshaler;},{}],198:[function(require,module,exports){/**
|
|
5813
5907
|
* Meadow Endpoint Streamer - Stream an array of recods as JSON to an output stream.
|
|
5814
5908
|
*/const libAsyncEachSeries=require('async/eachSeries');const JSONStream=require('JSONStream');class MeadowEndpointsStreamRecordArray{/**
|
|
5815
|
-
|
|
5816
|
-
|
|
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
|
|
5817
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...
|
|
5818
5912
|
// also, for small arrays, don't bother with the async serialization; this threshold could use tuning
|
|
5819
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
|
|
5820
|
-
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}],
|
|
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){/**
|
|
5821
5915
|
* Meadow Endpoint - Count a Record
|
|
5822
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.
|
|
5823
|
-
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;},{}],
|
|
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){/**
|
|
5824
5918
|
* Meadow Endpoint - Count a Record filtered by a single value
|
|
5825
|
-
*/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;},{}],
|
|
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){/**
|
|
5826
5920
|
* Meadow Endpoint - Create a set of Record in Bulk
|
|
5827
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
|
|
5828
|
-
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":
|
|
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){/**
|
|
5829
5923
|
* Meadow Endpoint - Create a Record
|
|
5830
|
-
*/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":
|
|
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){/**
|
|
5831
5925
|
* Meadow Operation - Create a record function
|
|
5832
5926
|
*/const doCreate=function(pRecord,pRequest,pRequestState,pResponse,fCallback){// This is a virtual operation
|
|
5833
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
|
|
5834
|
-
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
|
|
5835
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
|
|
5836
|
-
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;},{}],
|
|
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){/**
|
|
5837
5931
|
* Meadow Endpoint - Delete a Record
|
|
5838
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.
|
|
5839
5933
|
// If a developer wants bulk delete, it will require a custom endpoint.
|
|
5840
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
|
|
5841
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
|
|
5842
5936
|
this.DAL.doDelete(tmpRequestState.Query,(pError,pQuery,pCount)=>{// MySQL returns the number of rows deleted
|
|
5843
|
-
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;},{}],
|
|
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){/**
|
|
5844
5938
|
* Meadow Endpoint - Undelete a Record
|
|
5845
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.
|
|
5846
5940
|
// TODO: Decide if we want to keep this pattern similar to Delete, or, if we want to change it to allow bulk undeletes.
|
|
@@ -5849,40 +5943,40 @@ var tmpSchema=this.DAL.schema;var tmpHasDeletedBit=false;for(let i=0;i<tmpSchema
|
|
|
5849
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
|
|
5850
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
|
|
5851
5945
|
this.DAL.doUndelete(tmpRequestState.Query,(pError,pQuery,pCount)=>{// MySQL returns the number of rows deleted
|
|
5852
|
-
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;},{}],
|
|
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){/**
|
|
5853
5947
|
* Meadow Endpoint - Read a Record
|
|
5854
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.
|
|
5855
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.
|
|
5856
|
-
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;},{}],
|
|
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){/**
|
|
5857
5951
|
* Meadow Endpoint - Read a list of Records with a specified set of columns, distinct by those columns.
|
|
5858
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.
|
|
5859
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.
|
|
5860
|
-
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":
|
|
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){/**
|
|
5861
5955
|
* Meadow Endpoint - Read a list of lite Records (for Drop-downs and such)
|
|
5862
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
|
|
5863
5957
|
fStageComplete=>{tmpRequestState.Query=this.DAL.query;// TODO: Limit the query to the columns we need for the templated expression
|
|
5864
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.
|
|
5865
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.
|
|
5866
|
-
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":
|
|
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){/**
|
|
5867
5961
|
* Meadow Endpoint - Read the Max Value of a Column in a Set
|
|
5868
|
-
*/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;},{}],
|
|
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){/**
|
|
5869
5963
|
* Meadow Endpoint - Read a select list of Records (for Drop-downs and such)
|
|
5870
|
-
*/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;},{}],
|
|
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){/**
|
|
5871
5965
|
* Meadow Endpoint - Read a Set of Records
|
|
5872
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.
|
|
5873
|
-
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;},{}],
|
|
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){/**
|
|
5874
5968
|
* Meadow Endpoint - Read a Record
|
|
5875
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
|
|
5876
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.
|
|
5877
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
|
|
5878
|
-
pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointReadsBy;},{}],
|
|
5972
|
+
pError=>{return this.ErrorHandler.handleErrorIfSet(pRequest,tmpRequestState,pResponse,pError,fNext);});};module.exports=doAPIEndpointReadsBy;},{}],213:[function(require,module,exports){/**
|
|
5879
5973
|
* Meadow Operation - Marshal an array of records into a distinct list
|
|
5880
5974
|
*/const marshalDistinctList=function(pRecords,pRequest,pFieldList){if(pRecords.length<1)return[];let tmpDistinctList=[];// Allow the caller to pass in a list of fields.
|
|
5881
5975
|
let tmpFieldList=typeof pFieldList!=='undefined'?pFieldList:[];// See if this record has a GUID in the schema
|
|
5882
5976
|
let tmpGUID=this.DAL.defaultGUIdentifier&&this.DAL.defaultGUIdentifier.length>0?this.DAL.defaultGUIdentifier:false;// Peek at the first record to check for updatedate
|
|
5883
5977
|
let tmpHasUpdateDate=pRecords[0].hasOwnProperty('UpdateDate')?true:false;//Include all GUID and ID fields on the record
|
|
5884
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.
|
|
5885
|
-
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;},{}],
|
|
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){/**
|
|
5886
5980
|
* Meadow Operation - Marshal an array of records into a lite list
|
|
5887
5981
|
*/const marshalLiteList=function(pRecords,pRequest,pFieldList){if(pRecords.length<1)return[];let tmpLiteList=[];// Allow the caller to pass in a list of fields.
|
|
5888
5982
|
let tmpFieldList=typeof pFieldList!=='undefined'?pFieldList:[];// See if this record has a GUID in the schema
|
|
@@ -5890,32 +5984,32 @@ let tmpGUID=this.DAL.defaultGUIdentifier&&this.DAL.defaultGUIdentifier.length>0?
|
|
|
5890
5984
|
let tmpHasUpdateDate=pRecords[0].hasOwnProperty('UpdateDate')?true:false;//Include all GUID and ID fields on the record
|
|
5891
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
|
|
5892
5986
|
{tmpFieldList.push(pField);}});let h=0;while(h<tmpFieldList.length){// Remove any fields in the list that aren't in the first record.
|
|
5893
|
-
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;},{}],
|
|
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){/**
|
|
5894
5988
|
* Meadow Endpoint - Get a New, empty Record
|
|
5895
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
|
|
5896
|
-
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;},{}],
|
|
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){/**
|
|
5897
5991
|
* Meadow Endpoint - Get the Record Schema
|
|
5898
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
|
|
5899
|
-
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;},{}],
|
|
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){/**
|
|
5900
5994
|
* Meadow Endpoint - Validate a Record
|
|
5901
|
-
*/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;},{}],
|
|
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){/**
|
|
5902
5996
|
* Meadow Endpoint - Update a set of Records
|
|
5903
|
-
*/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":
|
|
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){/**
|
|
5904
5998
|
* Meadow Endpoint - Update a Record
|
|
5905
|
-
*/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":
|
|
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){/**
|
|
5906
6000
|
* Meadow Operation - Update a record
|
|
5907
6001
|
*/const doUpdate=function(pRecordToModify,pRequest,pRequestState,pResponse,fCallback,pOptionalCachedUpdatingRecord){// This is a virtual operation
|
|
5908
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
|
|
5909
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.
|
|
5910
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
|
|
5911
|
-
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
|
|
5912
|
-
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;},{}],
|
|
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){/**
|
|
5913
6007
|
* Meadow Endpoint - Upsert a set of Records
|
|
5914
|
-
*/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":
|
|
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){/**
|
|
5915
6009
|
* Meadow Endpoint - Upsert (Insert OR Update) a Record
|
|
5916
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
|
|
5917
6011
|
tmpRequestState.CreatedRecords=[];tmpRequestState.UpdatedRecords=[];tmpRequestState.UpsertedRecords=[];tmpRequestState.ErrorRecords=[];this.waterfall([fStageComplete=>{//1. Validate request body to ensure it is a valid record
|
|
5918
|
-
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":
|
|
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){/**
|
|
5919
6013
|
* Meadow Operation - Upsert a record
|
|
5920
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
|
|
5921
6015
|
tmpRequestState.Record=pRecordToUpsert;// This operation will be create only if there is no GUID or ID in the record bundle
|
|
@@ -5926,5 +6020,5 @@ tmpRequestState.Operation='Create';doCreate.call(this,tmpRequestState.Record,pRe
|
|
|
5926
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?!
|
|
5927
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.
|
|
5928
6022
|
tmpRequestState.Operation='Update';doUpdate.call(this,tmpRequestState.Record,pRequest,tmpRequestState,pResponse,fStageComplete,pRecord);}});}},fStageComplete=>{// Now stuff the record into the upserted array
|
|
5929
|
-
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":
|
|
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);});
|
|
5930
6024
|
//# sourceMappingURL=meadow-endpoints.js.map
|