/** * Parse JavaScript SDK v2.6.0 * * Copyright (c) 2015-present, Parse, LLC. * All rights reserved. * * The source tree of this library can be found at * https://github.com/ParsePlatform/Parse-SDK-JS * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Parse=e()}}(function(){return function i(s,o,u){function l(t,e){if(!o[t]){if(!s[t]){var r="function"==typeof require&&require;if(!e&&r)return r(t,!0);if(c)return c(t,!0);var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}var a=o[t]={exports:{}};s[t][0].call(a.exports,function(e){return l(s[t][1][e]||e)},a,a.exports,i,s,o,u)}return o[t].exports}for(var c="function"==typeof require&&require,e=0;e=l)return!1;break;case"$lte":if(t[n]>l)return!1;break;case"$gt":if(t[n]<=l)return!1;break;case"$gte":if(t[n]m.latitude||b.longitude>m.longitude)&&(t[n].latitude>b.latitude&&t[n].latitudeb.longitude&&t[n].longitude>2&63),d(n<<4&48|a>>4&15),s?d(a<<2&60|i>>6&3):"=",o?d(63&i):"="].join("")}return t.join("")}}]),o}(),p={saveFile:function(e,t,r){if("file"!==t.format)throw new Error("saveFile can only be used with File-type sources.");var n={"X-Parse-Application-ID":c.default.get("APPLICATION_ID"),"Content-Type":t.type||(t.file?t.file.type:null)},a=c.default.get("JAVASCRIPT_KEY");a&&(n["X-Parse-JavaScript-Key"]=a);var i=c.default.get("SERVER_URL");return"/"!==i[i.length-1]&&(i+="/"),i+="files/"+e,c.default.getRESTController().ajax("POST",i,t.file,n,r).then(function(e){return e.response})},saveBase64:function(e,t,r){if("base64"!==t.format)throw new Error("saveBase64 can only be used with Base64-type sources.");var n={base64:t.base64};return t.type&&(n._ContentType=t.type),c.default.getRESTController().request("POST","files/"+e,n,r)},download:function(e){return o?this.downloadAjax(e):Promise.reject("Cannot make a request: No definition of XMLHttpRequest was found.")},downloadAjax:function(e){return new Promise(function(t,r){var n=new o;n.open("GET",e,!0),n.responseType="arraybuffer",n.onerror=function(e){r(e)},n.onreadystatechange=function(){if(4===n.readyState){var e=new Uint8Array(this.response);t({base64:h.encodeBase64(e),contentType:n.getResponseHeader("content-type")})}},n.send()})},_setXHR:function(e){o=e}};c.default.setFileController(p);var v=h;r.default=v},{"./CoreManager":4,"./Xhr.weapp":40,"@babel/runtime/helpers/asyncToGenerator":55,"@babel/runtime/helpers/classCallCheck":56,"@babel/runtime/helpers/createClass":58,"@babel/runtime/helpers/defineProperty":59,"@babel/runtime/helpers/interopRequireDefault":63,"@babel/runtime/regenerator":78}],20:[function(e,t,r){"use strict";var n=e("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=n(e("@babel/runtime/helpers/typeof")),i=n(e("@babel/runtime/helpers/classCallCheck")),s=n(e("@babel/runtime/helpers/createClass")),o=n(e("@babel/runtime/helpers/defineProperty")),u=function(){function r(e,t){(0,i.default)(this,r),(0,o.default)(this,"_latitude",void 0),(0,o.default)(this,"_longitude",void 0),Array.isArray(e)?(r._validate(e[0],e[1]),this._latitude=e[0],this._longitude=e[1]):"object"===(0,a.default)(e)?(r._validate(e.latitude,e.longitude),this._latitude=e.latitude,this._longitude=e.longitude):void 0!==e&&void 0!==t?(r._validate(e,t),this._latitude=e,this._longitude=t):(this._latitude=0,this._longitude=0)}return(0,s.default)(r,[{key:"toJSON",value:function(){return r._validate(this._latitude,this._longitude),{__type:"GeoPoint",latitude:this._latitude,longitude:this._longitude}}},{key:"equals",value:function(e){return e instanceof r&&this.latitude===e.latitude&&this.longitude===e.longitude}},{key:"radiansTo",value:function(e){var t=Math.PI/180,r=this.latitude*t,n=this.longitude*t,a=e.latitude*t,i=e.longitude*t,s=Math.sin((r-a)/2),o=Math.sin((n-i)/2),u=s*s+Math.cos(r)*Math.cos(a)*o*o;return u=Math.min(1,u),2*Math.asin(Math.sqrt(u))}},{key:"kilometersTo",value:function(e){return 6371*this.radiansTo(e)}},{key:"milesTo",value:function(e){return 3958.8*this.radiansTo(e)}},{key:"latitude",get:function(){return this._latitude},set:function(e){r._validate(e,this.longitude),this._latitude=e}},{key:"longitude",get:function(){return this._longitude},set:function(e){r._validate(this.latitude,e),this._longitude=e}}],[{key:"_validate",value:function(e,t){if(isNaN(e)||isNaN(t)||"number"!=typeof e||"number"!=typeof t)throw new TypeError("GeoPoint latitude and longitude must be valid numbers");if(e<-90)throw new TypeError("GeoPoint latitude out of bounds: "+e+" < -90.0.");if(90 90.0.");if(t<-180)throw new TypeError("GeoPoint longitude out of bounds: "+t+" < -180.0.");if(180 180.0.")}},{key:"current",value:function(){return navigator.geolocation.getCurrentPosition(function(e){return new r(e.coords.latitude,e.coords.longitude)})}}]),r}();r.default=u},{"@babel/runtime/helpers/classCallCheck":56,"@babel/runtime/helpers/createClass":58,"@babel/runtime/helpers/defineProperty":59,"@babel/runtime/helpers/interopRequireDefault":63,"@babel/runtime/helpers/typeof":75}],21:[function(e,t,r){"use strict";var n=e("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=n(e("@babel/runtime/helpers/typeof")),i=n(e("@babel/runtime/helpers/classCallCheck")),s=n(e("@babel/runtime/helpers/possibleConstructorReturn")),o=n(e("@babel/runtime/helpers/getPrototypeOf")),u=n(e("@babel/runtime/helpers/inherits")),l=n(e("./ParseObject")),c=function(e){function r(e){var t;if((0,i.default)(this,r),t=(0,s.default)(this,(0,o.default)(r).call(this,"_Installation")),e&&"object"===(0,a.default)(e)&&!t.set(e||{}))throw new Error("Can't create an invalid Session");return t}return(0,u.default)(r,e),r}(l.default);r.default=c,l.default.registerSubclass("_Installation",c)},{"./ParseObject":23,"@babel/runtime/helpers/classCallCheck":56,"@babel/runtime/helpers/getPrototypeOf":61,"@babel/runtime/helpers/inherits":62,"@babel/runtime/helpers/interopRequireDefault":63,"@babel/runtime/helpers/possibleConstructorReturn":70,"@babel/runtime/helpers/typeof":75}],22:[function(e,t,r){"use strict";var n=e("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var c=n(e("@babel/runtime/regenerator")),a=n(e("@babel/runtime/helpers/asyncToGenerator")),i=n(e("./EventEmitter")),f=n(e("./LiveQueryClient")),d=n(e("./CoreManager"));function s(){return d.default.getLiveQueryController().getDefaultLiveQueryClient()}var h=new i.default;h.open=(0,a.default)(c.default.mark(function e(){var t;return c.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,s();case 2:return t=e.sent,e.abrupt("return",t.open());case 4:case"end":return e.stop()}},e)})),h.close=(0,a.default)(c.default.mark(function e(){var t;return c.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,s();case 2:return t=e.sent,e.abrupt("return",t.close());case 4:case"end":return e.stop()}},e)})),h.on("error",function(){});var p,o=h;r.default=o;var u,l={setDefaultLiveQueryClient:function(e){p=e},getDefaultLiveQueryClient:(u=(0,a.default)(c.default.mark(function e(){var t,r,n,a,i,s,o,u,l;return c.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(p)return e.abrupt("return",p);e.next=2;break;case 2:return e.next=4,d.default.getUserController().currentUserAsync();case 4:if(t=e.sent,r=t?t.getSessionToken():void 0,(n=d.default.get("LIVEQUERY_SERVER_URL"))&&0!==n.indexOf("ws"))throw new Error("You need to set a proper Parse LiveQuery server url before using LiveQueryClient");e.next=9;break;case 9:return n||(a=d.default.get("SERVER_URL"),i=0===a.indexOf("https")?"wss://":"ws://",s=a.replace(/^https?:\/\//,""),n=i+s,d.default.set("LIVEQUERY_SERVER_URL",n)),o=d.default.get("APPLICATION_ID"),u=d.default.get("JAVASCRIPT_KEY"),l=d.default.get("MASTER_KEY"),(p=new f.default({applicationId:o,serverURL:n,javascriptKey:u,masterKey:l,sessionToken:r})).on("error",function(e){h.emit("error",e)}),p.on("open",function(){h.emit("open")}),p.on("close",function(){h.emit("close")}),e.abrupt("return",p);case 18:case"end":return e.stop()}},e)})),function(){return u.apply(this,arguments)}),_clearCachedDefaultClient:function(){p=null}};d.default.setLiveQueryController(l)},{"./CoreManager":4,"./EventEmitter":5,"./LiveQueryClient":8,"@babel/runtime/helpers/asyncToGenerator":55,"@babel/runtime/helpers/interopRequireDefault":63,"@babel/runtime/regenerator":78}],23:[function(e,t,r){"use strict";var n=e("@babel/runtime/helpers/interopRequireWildcard"),a=e("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var v=a(e("@babel/runtime/regenerator")),y=a(e("@babel/runtime/helpers/asyncToGenerator")),m=a(e("@babel/runtime/helpers/typeof")),i=a(e("@babel/runtime/helpers/classCallCheck")),s=a(e("@babel/runtime/helpers/createClass")),o=a(e("@babel/runtime/helpers/defineProperty")),g=a(e("./CoreManager")),b=a(e("./canBeSerialized")),l=a(e("./decode")),c=a(e("./encode")),f=a(e("./escape")),_=a(e("./ParseACL")),d=a(e("./parseDate")),P=a(e("./ParseError")),w=a(e("./ParseFile")),C=e("./promiseUtils"),h=e("./LocalDatastoreUtils"),O=e("./ParseOp"),u=a(e("./ParseQuery")),k=a(e("./ParseRelation")),p=n(e("./SingleInstanceStateController")),S=a(e("./unique")),E=n(e("./UniqueInstanceStateController")),A=a(e("./unsavedChildren")),N={},R=0,I=0,T=!g.default.get("IS_NODE");function j(){var e=g.default.get("SERVER_URL");"/"!==e[e.length-1]&&(e+="/");var t=e.replace(/https?:\/\//,"");return t.substr(t.indexOf("/"))}T?g.default.setObjectStateController(p):g.default.setObjectStateController(E);var x,D=function(){function u(e,t,r){(0,i.default)(this,u),(0,o.default)(this,"id",void 0),(0,o.default)(this,"_localId",void 0),(0,o.default)(this,"_objCount",void 0),(0,o.default)(this,"className",void 0),"function"==typeof this.initialize&&this.initialize.apply(this,arguments);var n=null;if(this._objCount=I++,"string"==typeof e)this.className=e,t&&"object"===(0,m.default)(t)&&(n=t);else if(e&&"object"===(0,m.default)(e)){for(var a in this.className=e.className,n={},e)"className"!==a&&(n[a]=e[a]);t&&"object"===(0,m.default)(t)&&(r=t)}if(n&&!this.set(n,r))throw new Error("Can't create an invalid Parse Object")}var e,t;return(0,s.default)(u,[{key:"_getId",value:function(){if("string"==typeof this.id)return this.id;if("string"==typeof this._localId)return this._localId;var e="local"+String(R++);return this._localId=e}},{key:"_getStateIdentifier",value:function(){if(T){var e=this.id;return e||(e=this._getId()),{id:e,className:this.className}}return this}},{key:"_getServerData",value:function(){return g.default.getObjectStateController().getServerData(this._getStateIdentifier())}},{key:"_clearServerData",value:function(){var e=this._getServerData(),t={};for(var r in e)t[r]=void 0;g.default.getObjectStateController().setServerData(this._getStateIdentifier(),t)}},{key:"_getPendingOps",value:function(){return g.default.getObjectStateController().getPendingOps(this._getStateIdentifier())}},{key:"_clearPendingOps",value:function(e){var t=this._getPendingOps(),r=t[t.length-1];(e||Object.keys(r)).forEach(function(e){delete r[e]})}},{key:"_getDirtyObjectAttributes",value:function(){var e=this.attributes,t=g.default.getObjectStateController().getObjectCache(this._getStateIdentifier()),r={};for(var n in e){var a=e[n];if(a&&"object"===(0,m.default)(a)&&!(a instanceof u)&&!(a instanceof w.default)&&!(a instanceof k.default))try{var i=(0,c.default)(a,!1,!0),s=JSON.stringify(i);t[n]!==s&&(r[n]=a)}catch(e){r[n]=a}}return r}},{key:"_toFullJSON",value:function(e){var t=this.toJSON(e);return t.__type="Object",t.className=this.className,t}},{key:"_getSaveJSON",value:function(){var e=this._getPendingOps(),t=this._getDirtyObjectAttributes(),r={};for(var n in t){for(var a=!1,i=0;i=r&&n.push([]))}),0===n[n.length-1].length&&n.pop(),i=Promise.resolve(),c=[],n.forEach(function(n){i=i.then(function(){return a.request("POST","batch",{requests:n.map(function(e){return{method:"DELETE",path:j()+"classes/"+e.className+"/"+e._getId(),body:{}}})},t).then(function(e){for(var t=0;tr||e.longitudea)return!1;for(var o=!1,u=0,l=this._coordinates.length-1;ue.longitude!=h>e.longitude&&e.latitude<(d-c)*(e.longitude-f)/(h-f)+c&&(o=!o)}return o}},{key:"coordinates",get:function(){return this._coordinates},set:function(e){this._coordinates=n._validate(e)}}],[{key:"_validate",value:function(e){if(!Array.isArray(e))throw new TypeError("Coordinates must be an Array");if(e.length<3)throw new TypeError("Polygon must have at least 3 GeoPoints or Points");for(var t=[],r=0;r=a.length?[]:a.splice(t.skip,a.length)),l=a.length,0!==t.limit&&t.limit=n._limit?n.greaterThan("objectId",e[e.length-1].id):u=!0})})})}},{key:"equalTo",value:function(e,t){return void 0===t?this.doesNotExist(e):(this._where[e]=(0,u.default)(t,!1,!0),this)}},{key:"notEqualTo",value:function(e,t){return this._addCondition(e,"$ne",t)}},{key:"lessThan",value:function(e,t){return this._addCondition(e,"$lt",t)}},{key:"greaterThan",value:function(e,t){return this._addCondition(e,"$gt",t)}},{key:"lessThanOrEqualTo",value:function(e,t){return this._addCondition(e,"$lte",t)}},{key:"greaterThanOrEqualTo",value:function(e,t){return this._addCondition(e,"$gte",t)}},{key:"containedIn",value:function(e,t){return this._addCondition(e,"$in",t)}},{key:"notContainedIn",value:function(e,t){return this._addCondition(e,"$nin",t)}},{key:"containedBy",value:function(e,t){return this._addCondition(e,"$containedBy",t)}},{key:"containsAll",value:function(e,t){return this._addCondition(e,"$all",t)}},{key:"containsAllStartingWith",value:function(e,t){var r=this;Array.isArray(t)||(t=[t]);var n=t.map(function(e){return{$regex:r._regexStartWith(e)}});return this.containsAll(e,n)}},{key:"exists",value:function(e){return this._addCondition(e,"$exists",!0)}},{key:"doesNotExist",value:function(e){return this._addCondition(e,"$exists",!1)}},{key:"matches",value:function(e,t,r){return this._addCondition(e,"$regex",t),r||(r=""),t.ignoreCase&&(r+="i"),t.multiline&&(r+="m"),r.length&&this._addCondition(e,"$options",r),this}},{key:"matchesQuery",value:function(e,t){var r=t.toJSON();return r.className=t.className,this._addCondition(e,"$inQuery",r)}},{key:"doesNotMatchQuery",value:function(e,t){var r=t.toJSON();return r.className=t.className,this._addCondition(e,"$notInQuery",r)}},{key:"matchesKeyInQuery",value:function(e,t,r){var n=r.toJSON();return n.className=r.className,this._addCondition(e,"$select",{key:t,query:n})}},{key:"doesNotMatchKeyInQuery",value:function(e,t,r){var n=r.toJSON();return n.className=r.className,this._addCondition(e,"$dontSelect",{key:t,query:n})}},{key:"contains",value:function(e,t){if("string"!=typeof t)throw new Error("The value being searched for must be a string.");return this._addCondition(e,"$regex",g(t))}},{key:"fullText",value:function(e,t,r){if(r=r||{},!e)throw new Error("A key is required.");if(!t)throw new Error("A search term is required");if("string"!=typeof t)throw new Error("The value being searched for must be a string.");var n={};for(var a in n.$term=t,r)switch(a){case"language":n.$language=r[a];break;case"caseSensitive":n.$caseSensitive=r[a];break;case"diacriticSensitive":n.$diacriticSensitive=r[a];break;default:throw new Error("Unknown option: ".concat(a))}return this._addCondition(e,"$text",{$search:n})}},{key:"sortByTextScore",value:function(){return this.ascending("$score"),this.select(["$score"]),this}},{key:"startsWith",value:function(e,t){if("string"!=typeof t)throw new Error("The value being searched for must be a string.");return this._addCondition(e,"$regex",this._regexStartWith(t))}},{key:"endsWith",value:function(e,t){if("string"!=typeof t)throw new Error("The value being searched for must be a string.");return this._addCondition(e,"$regex",g(t)+"$")}},{key:"near",value:function(e,t){return t instanceof v.default||(t=new v.default(t)),this._addCondition(e,"$nearSphere",t)}},{key:"withinRadians",value:function(e,t,r,n){return n||void 0===n?(this.near(e,t),this._addCondition(e,"$maxDistance",r)):this._addCondition(e,"$geoWithin",{$centerSphere:[[t.longitude,t.latitude],r]})}},{key:"withinMiles",value:function(e,t,r,n){return this.withinRadians(e,t,r/3958.8,n)}},{key:"withinKilometers",value:function(e,t,r,n){return this.withinRadians(e,t,r/6371,n)}},{key:"withinGeoBox",value:function(e,t,r){return t instanceof v.default||(t=new v.default(t)),r instanceof v.default||(r=new v.default(r)),this._addCondition(e,"$within",{$box:[t,r]}),this}},{key:"withinPolygon",value:function(e,t){return this._addCondition(e,"$geoWithin",{$polygon:t})}},{key:"polygonContains",value:function(e,t){return this._addCondition(e,"$geoIntersects",{$point:t})}},{key:"ascending",value:function(){this._order=[];for(var e=arguments.length,t=new Array(e),r=0;r\/'"]/g,function(e){return n[e]})};var n={"&":"&","<":"<",">":">","/":"/","'":"'",'"':"""}},{}],47:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return-1a){s.warned=!0;var o=new Error("Possible EventEmitter memory leak detected. "+s.length+' "'+String(t)+'" listeners added. Use emitter.setMaxListeners() to increase limit.');o.name="MaxListenersExceededWarning",o.emitter=e,o.type=t,o.count=s.length,"object"==typeof console&&console.warn&&console.warn("%s: %s",o.name,o.message)}}else s=i[t]=r,++e._eventsCount;return e}function d(){if(!this.fired)switch(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length){case 0:return this.listener.call(this.target);case 1:return this.listener.call(this.target,arguments[0]);case 2:return this.listener.call(this.target,arguments[0],arguments[1]);case 3:return this.listener.call(this.target,arguments[0],arguments[1],arguments[2]);default:for(var e=new Array(arguments.length),t=0;t>>((3&t)<<3)&255;return i}}},{}],83:[function(e,t,r){var s=e("./lib/rng"),o=e("./lib/bytesToUuid");t.exports=function(e,t,r){var n=t&&r||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var a=(e=e||{}).random||(e.rng||s)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t)for(var i=0;i<16;++i)t[n+i]=a[i];return t||o(a)}},{"./lib/bytesToUuid":81,"./lib/rng":82}]},{},[15])(15)});