New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

dynamics-web-api

Package Overview
Dependencies
Maintainers
1
Versions
88
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dynamics-web-api - npm Package Compare versions

Comparing version 1.4.2 to 1.4.3

2

dist/dwa.js

@@ -1,2 +0,2 @@

/*! dwa v1.4.2 (c) 2018 Aleksandr Rogov */
/*! dwa v1.4.3 (c) 2018 Aleksandr Rogov */
(function webpackUniversalModuleDefinition(root, factory) {

@@ -3,0 +3,0 @@ if(typeof exports === 'object' && typeof module === 'object')

@@ -1,2 +0,2 @@

/*! dynamics-web-api-callbacks v1.4.2 (c) 2018 Aleksandr Rogov */
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("DynamicsWebApi",[],t):"object"==typeof exports?exports.DynamicsWebApi=t():e.DynamicsWebApi=t()}(this,function(){return function(e){function t(r){if(a[r])return a[r].exports;var n=a[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var a={};return t.m=e,t.c=a,t.i=function(e){return e},t.d=function(e,a,r){t.o(e,a)||Object.defineProperty(e,a,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(a,"a",a),a},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=6)}([function(e,t){var a={Types:{ResponseBase:function(){this.oDataContext=""},Response:function(){a.Types.ResponseBase.call(this),this.value={}},ReferenceResponse:function(){a.Types.ResponseBase.call(this),this.id="",this.collection=""},MultipleResponse:function(){a.Types.ResponseBase.call(this),this.oDataNextLink="",this.oDataCount=0,this.value=[]},FetchXmlResponse:function(){a.Types.ResponseBase.call(this),this.value=[],this.PagingInfo={cookie:"",page:0,nextPage:1}}},Prefer:{ReturnRepresentation:"return=representation",Annotations:{AssociatedNavigationProperty:"Microsoft.Dynamics.CRM.associatednavigationproperty",LookupLogicalName:"Microsoft.Dynamics.CRM.lookuplogicalname",All:"*",FormattedValue:"OData.Community.Display.V1.FormattedValue",FetchXmlPagingCookie:"Microsoft.Dynamics.CRM.fetchxmlpagingcookie"}}};e.exports=a},function(e,t){function a(e,t,a){throw new Error(a?e+" requires the "+t+" parameter to be of type "+a:e+" requires the "+t+" parameter.")}var r={handleErrorResponse:function(e){throw new Error("Error: "+e.status+": "+e.message)},parameterCheck:function(e,t,r,n){void 0!==e&&null!==e&&""!=e||a(t,r,n)},stringParameterCheck:function(e,t,r){"string"!=typeof e&&a(t,r,"String")},arrayParameterCheck:function(e,t,r){e.constructor!==Array&&a(t,r,"Array")},stringOrArrayParameterCheck:function(e,t,r){e.constructor!==Array&&"string"!=typeof e&&a(t,r,"String or Array")},numberParameterCheck:function(e,t,r){if("number"!=typeof e){if("string"==typeof e&&e&&!isNaN(parseInt(e)))return;a(t,r,"Number")}},boolParameterCheck:function(e,t,r){"boolean"!=typeof e&&a(t,r,"Boolean")},guidParameterCheck:function(e,t,r){try{return/[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}/i.exec(e)[0]}catch(e){a(t,r,"GUID String")}},keyParameterCheck:function(e,t,n){try{r.stringParameterCheck(e,t,n);var i=/[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}/i.exec(e);if(i)return i[0];var c=e.split(",");if(c.length)for(var s=0;s<c.length;s++)c[s]=c[s].trim(),/^[\w\d\_]+\='[^\'\r\n]+'$/i.exec(c[s])[0];return c.join(",")}catch(e){a(t,n,"String representing GUID or Alternate Key")}},callbackParameterCheck:function(e,t,r){"function"!=typeof e&&a(t,r,"Function")}};e.exports=r},function(e,t){String.prototype.endsWith=function(e,t){var a=this.toString();("number"!=typeof t||!isFinite(t)||Math.floor(t)!==t||t>a.length)&&(t=a.length),t-=e.length;var r=a.lastIndexOf(e,t);return-1!==r&&r===t},String.prototype.startsWith=function(e,t){return t=t||0,this.substr(t,e.length)===e}},function(e,t,a){function r(e,t,a,n,s){var o={},l=[];if(n=null!=n?n:"&",e){if(e.navigationProperty&&(i.stringParameterCheck(e.navigationProperty,"DynamicsWebApi."+t,"request.navigationProperty"),a+="/"+e.navigationProperty),null!=e.select&&e.select.length&&(i.arrayParameterCheck(e.select,"DynamicsWebApi."+t,"request.select"),"retrieve"==t&&1==e.select.length&&e.select[0].endsWith("/$ref")?a+="/"+e.select[0]:(e.select[0].startsWith("/")&&"retrieve"==t&&(null==e.navigationProperty?a+=e.select.shift():e.select.shift()),e.select.length&&l.push("$select="+e.select.join(",")))),e.filter){i.stringParameterCheck(e.filter,"DynamicsWebApi."+t,"request.filter");var u=/[^"']{([\w\d]{8}[-]?(?:[\w\d]{4}[-]?){3}[\w\d]{12})}(?:[^"']|$)/g,p=e.filter.replace(u," $1 ").trim();l.push("$filter="+encodeURIComponent(p))}e.savedQuery&&l.push("savedQuery="+i.guidParameterCheck(e.savedQuery,"DynamicsWebApi."+t,"request.savedQuery")),e.userQuery&&l.push("userQuery="+i.guidParameterCheck(e.userQuery,"DynamicsWebApi."+t,"request.userQuery")),e.count&&(i.boolParameterCheck(e.count,"DynamicsWebApi."+t,"request.count"),l.push("$count="+e.count)),e.top&&e.top>0&&(i.numberParameterCheck(e.top,"DynamicsWebApi."+t,"request.top"),l.push("$top="+e.top)),null!=e.orderBy&&e.orderBy.length&&(i.arrayParameterCheck(e.orderBy,"DynamicsWebApi."+t,"request.orderBy"),l.push("$orderby="+e.orderBy.join(",")));var m=c(e,t,s);if(m.length&&(o.Prefer=m),null!=e.ifmatch&&null!=e.ifnonematch)throw new Error("DynamicsWebApi."+t+". Either one of request.ifmatch or request.ifnonematch parameters should be used in a call, not both.");if(e.ifmatch&&(i.stringParameterCheck(e.ifmatch,"DynamicsWebApi."+t,"request.ifmatch"),o["If-Match"]=e.ifmatch),e.ifnonematch&&(i.stringParameterCheck(e.ifnonematch,"DynamicsWebApi."+t,"request.ifnonematch"),o["If-None-Match"]=e.ifnonematch),e.impersonate&&(i.stringParameterCheck(e.impersonate,"DynamicsWebApi."+t,"request.impersonate"),o.MSCRMCallerID=i.guidParameterCheck(e.impersonate,"DynamicsWebApi."+t,"request.impersonate")),e.token&&(i.stringParameterCheck(e.token,"DynamicsWebApi."+t,"request.token"),o.Authorization="Bearer "+e.token),e.duplicateDetection&&(i.boolParameterCheck(e.duplicateDetection,"DynamicsWebApi."+t,"request.duplicateDetection"),o["MSCRM.SuppressDuplicateDetection"]="false"),e.entity&&i.parameterCheck(e.entity,"DynamicsWebApi."+t,"request.entity"),e.data&&i.parameterCheck(e.data,"DynamicsWebApi."+t,"request.data"),e.noCache&&(i.boolParameterCheck(e.noCache,"DynamicsWebApi."+t,"request.noCache"),o["Cache-Control"]="no-cache"),e.mergeLabels&&(i.boolParameterCheck(e.mergeLabels,"DynamicsWebApi."+t,"request.mergeLabels"),o["MSCRM.MergeLabels"]="true"),e.expand&&e.expand.length)if(i.stringOrArrayParameterCheck(e.expand,"DynamicsWebApi."+t,"request.expand"),"string"==typeof e.expand)l.push("$expand="+e.expand);else{for(var h=[],y=0;y<e.expand.length;y++)if(e.expand[y].property){var f=r(e.expand[y],t+" $expand",null,";"),d=f.query;d&&d.length&&(d="("+d+")"),h.push(e.expand[y].property+d)}h.length&&l.push("$expand="+h.join(","))}}return{url:a,query:l.join(n),headers:o}}function n(e,t,a){var n,c="";return e.url?(i.stringParameterCheck(e.url,"DynamicsWebApi."+t,"request.url"),c=e.url.replace(a.webApiUrl,""),n=r(e,t,c,"&",a)):(e._unboundRequest||e.collection||i.parameterCheck(e.collection,"DynamicsWebApi."+t,"request.collection"),e.collection&&(i.stringParameterCheck(e.collection,"DynamicsWebApi."+t,"request.collection"),c=e.collection,e.key?e.key=i.keyParameterCheck(e.key,"DynamicsWebApi."+t,"request.key"):e.id&&(e.key=i.guidParameterCheck(e.id,"DynamicsWebApi."+t,"request.id")),e.key&&(c+="("+e.key+")")),e._additionalUrl&&(c&&(c+="/"),c+=e._additionalUrl),n=r(e,t,c,"&",a),e.fetchXml?(i.stringParameterCheck(e.fetchXml,"DynamicsWebApi."+t,"request.fetchXml"),n.url+="?fetchXml="+encodeURIComponent(e.fetchXml)):n.query&&(n.url+="?"+n.query)),e.hasOwnProperty("async")&&null!=e.async?(i.boolParameterCheck(e.async,"DynamicsWebApi."+t,"request.async"),n.async=e.async):n.async=!0,{url:n.url,headers:n.headers,async:n.async}}var i=(a(0),a(1)),c=a(12),s={convertRequestOptions:r,convertRequest:n};e.exports=s},function(e,t,a){function r(e){return void 0===e||"unknown"==typeof e||null==e}function n(){var e=(new Date).getTime();return"undefined"!=typeof performance&&"function"==typeof performance.now&&(e+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var a=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"===t?a:3&a|8).toString(16)})}function i(){if("undefined"!=typeof GetGlobalContext)return GetGlobalContext();if("undefined"!=typeof Xrm){if(!r(Xrm.Utility)&&!r(Xrm.Utility.getGlobalContext))return Xrm.Utility.getGlobalContext();if(!r(Xrm.Page)&&!r(Xrm.Page.context))return Xrm.Page.context}throw new Error("Xrm Context is not available. In most cases, it can be resolved by adding a reference to a ClientGlobalContext.js.aspx. Please refer to MSDN documentation for more details.")}function c(){var e=i();if(e){var t=e.getClientUrl();return t.match(/\/$/)&&(t=t.substring(0,t.length-1)),t}return""}function s(e){return c()+"/api/data/v"+e+"/"}function o(){return"undefined"!=typeof Xrm?Xrm.Internal:null}var l={buildFunctionParameters:a(11),getFetchXmlPagingCookie:a(14),convertToReferenceObject:a(13),isNull:r,generateUUID:n,getXrmContext:i,getXrmInternal:o,getClientUrl:c,initWebApiUrl:s};e.exports=l},function(e,t,a){function r(e){var t=m.getXrmInternal();if(!m.isNull(t)){var a=t.getEntitySetName(e);return a||e}var a=null;if(!m.isNull(p)&&(a=p[e],m.isNull(a)))for(var r in p)if(p[r]==e)return e;return a}function n(e){return e.Accept="application/json",e["OData-MaxVersion"]="4.0",e["OData-Version"]="4.0",e["Content-Type"]="application/json; charset=utf-8",e}function i(e,t){var a;return e&&(a=JSON.stringify(e,function(e,a){if(e.endsWith("@odata.bind")||e.endsWith("@odata.id")){if("string"==typeof a){if(/\(\{[\w\d-]+\}\)/g.test(a)&&(a=a.replace(/(.+)\(\{([\w\d-]+)\}\)/g,"$1($2)")),t.useEntityNames){var n=/([\w_]+)(\([\d\w-]+\))$/,i=n.exec(a);if(i.length>2){var c=r(i[1]);m.isNull(c)||(a=a.replace(n,c+"$2"))}}a.startsWith(t.webApiUrl)||(a=t.webApiUrl+a.replace(/^\\/,""))}}else(e.startsWith("oData")||e.endsWith("_Formatted")||e.endsWith("_NavigationProperty")||e.endsWith("_LogicalName"))&&(a=void 0);return a}),a=a.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).substr(-4)})),a}function c(e,t,r,c,s,o,l,u){s||(s={}),s=n(s);var p=i(c,r);if(t.length>2e3){var h="dwa_batch_"+m.generateUUID(),y=[];y.push("--"+h),y.push("Content-Type: application/http"),y.push("Content-Transfer-Encoding: binary\n"),y.push(e+" "+r.webApiUrl+t+" HTTP/1.1");for(var f in s)y.push(f+": "+s[f]),delete s[f];y.push("\n--"+h+"--"),p=y.join("\n"),s=n(s),s["Content-Type"]="multipart/mixed;boundary="+h,t="$batch",e="POST"}r.impersonate&&!s.MSCRMCallerID&&(s.MSCRMCallerID=r.impersonate);var d;d=a(10);var b=function(a){a&&(s||(s={}),s.Authorization="Bearer "+a.accessToken),d(e,r.webApiUrl+t,p,s,o,l,u)};r.onTokenRefresh&&(!s||s&&!s.Authorization)?r.onTokenRefresh(b):b()}function s(e,t,a,n){var i=function(t){p={};for(var n=0;n<t.data.value.length;n++)p[t.data.value[n].LogicalName]=t.data.value[n].LogicalCollectionName;a(r(e))},s=function(e){n({message:"Unable to fetch EntityDefinitions. Error: "+e.message})},o=h.convertRequest({collection:"EntityDefinitions",select:["LogicalCollectionName","LogicalName"],noCache:!0},"retrieveMultiple",t);c("GET",o.url,t,null,o.headers,i,s,o.async)}function o(e){return["EntityDefinitions","$metadata","RelationshipDefinitions","GlobalOptionSetDefinitions","ManagedPropertyDefinitions"].indexOf(e)>-1}function l(e,t,a,n){if(o(e)||m.isNull(e))return void a(e);if(e=e.toLowerCase(),!t.useEntityNames)return void a(e);try{var i=r(e);m.isNull(i)?s(e,t,a,n):a(i)}catch(e){n({message:"Unable to fetch Collection Names. Error: "+e.message})}}function u(e,t,a,r,n,i){var s=function(s){t.collection=s;var o=h.convertRequest(t,a,r);c(e,o.url,r,t.data||t.entity,o.headers,n,i,o.async)};l(t.collection,r,s,i)}var p,m=(a(0),a(4)),h=a(3);e.exports={sendRequest:c,makeRequest:u,getCollectionName:r}},function(e,t,a){function r(e){var t={webApiVersion:"8.0",webApiUrl:"",impersonate:null,onTokenRefresh:null,includeAnnotations:null,maxPageSize:null,returnRepresentation:null};e||(e=t),this.setConfig=function(e){e.webApiVersion&&(c.stringParameterCheck(e.webApiVersion,"DynamicsWebApi.setConfig","config.webApiVersion"),t.webApiVersion=e.webApiVersion),e.webApiUrl?(c.stringParameterCheck(e.webApiUrl,"DynamicsWebApi.setConfig","config.webApiUrl"),t.webApiUrl=e.webApiUrl):t.webApiUrl=i.initWebApiUrl(t.webApiVersion),e.impersonate&&(t.impersonate=c.guidParameterCheck(e.impersonate,"DynamicsWebApi.setConfig","config.impersonate")),e.onTokenRefresh&&(c.callbackParameterCheck(e.onTokenRefresh,"DynamicsWebApi.setConfig","config.onTokenRefresh"),t.onTokenRefresh=e.onTokenRefresh),e.includeAnnotations&&(c.stringParameterCheck(e.includeAnnotations,"DynamicsWebApi.setConfig","config.includeAnnotations"),t.includeAnnotations=e.includeAnnotations),e.maxPageSize&&(c.numberParameterCheck(e.maxPageSize,"DynamicsWebApi.setConfig","config.maxPageSize"),t.maxPageSize=e.maxPageSize),e.returnRepresentation&&(c.boolParameterCheck(e.returnRepresentation,"DynamicsWebApi.setConfig","config.returnRepresentation"),t.returnRepresentation=e.returnRepresentation),e.useEntityNames&&(c.boolParameterCheck(e.useEntityNames,"DynamicsWebApi.setConfig","config.useEntityNames"),t.useEntityNames=e.useEntityNames)},this.setConfig(e);var a=function(e,a,r,n,i){s.makeRequest(e,a,r,t,n,i)};this.createRequest=function(e,t,r){c.parameterCheck(e,"DynamicsWebApi.create","request"),c.callbackParameterCheck(t,"DynamicsWebApi.create","successCallback"),c.callbackParameterCheck(r,"DynamicsWebApi.create","errorCallback"),a("POST",e,"create",function(e){if(e.data)t(e.data);else{var a=e.headers["OData-EntityId"]?e.headers["OData-EntityId"]:e.headers["odata-entityid"],r=/[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}/i.exec(a)[0];t(r)}},r)},this.create=function(e,t,a,r,n,i){c.parameterCheck(e,"DynamicsWebApi.create","object"),c.stringParameterCheck(t,"DynamicsWebApi.create","collection"),n&&c.stringOrArrayParameterCheck(n,"DynamicsWebApi.create","prefer"),i&&c.arrayParameterCheck(i,"DynamicsWebApi.create","select");var s={collection:t,select:i,prefer:n,entity:e};this.createRequest(s,a,r)},this.updateRequest=function(e,t,r){c.parameterCheck(e,"DynamicsWebApi.update","request"),c.callbackParameterCheck(t,"DynamicsWebApi.update","successCallback"),c.callbackParameterCheck(r,"DynamicsWebApi.update","errorCallback"),null==e.ifmatch&&(e.ifmatch="*");var n=function(e){t(e.data?e.data:!0)},i=e.ifmatch,s=function(e){i&&412==e.status?t(!1):r(e)},o=e.collection.indexOf("EntityDefinitions")>-1?"PUT":"PATCH";a(o,e,"update",n,s)},this.update=function(e,t,a,r,n,i,s){c.stringParameterCheck(e,"DynamicsWebApi.update","key"),e=c.keyParameterCheck(e,"DynamicsWebApi.update","key"),c.parameterCheck(a,"DynamicsWebApi.update","object"),c.stringParameterCheck(t,"DynamicsWebApi.update","collection"),c.callbackParameterCheck(r,"DynamicsWebApi.update","successCallback"),c.callbackParameterCheck(n,"DynamicsWebApi.update","errorCallback"),i&&c.stringOrArrayParameterCheck(i,"DynamicsWebApi.update","prefer"),s&&c.arrayParameterCheck(s,"DynamicsWebApi.update","select");var o={collection:t,key:e,select:s,prefer:i,entity:a};this.updateRequest(o,r,n)},this.updateSingleProperty=function(e,t,r,n,i,s,o){c.stringParameterCheck(e,"DynamicsWebApi.updateSingleProperty","key"),e=c.keyParameterCheck(e,"DynamicsWebApi.updateSingleProperty","key"),c.parameterCheck(r,"DynamicsWebApi.updateSingleProperty","keyValuePair"),c.stringParameterCheck(t,"DynamicsWebApi.updateSingleProperty","collection"),c.callbackParameterCheck(n,"DynamicsWebApi.updateSingleProperty","successCallback"),c.callbackParameterCheck(i,"DynamicsWebApi.updateSingleProperty","errorCallback"),s&&c.stringOrArrayParameterCheck(s,"DynamicsWebApi.updateSingleProperty","prefer"),o&&c.arrayParameterCheck(o,"DynamicsWebApi.updateSingleProperty","select");var l=Object.keys(r)[0],u=r[l];a("PUT",{collection:t,key:e,select:o,prefer:s,navigationProperty:l,data:{value:u}},"updateSingleProperty",function(e){e.data?n(e.data):n()},i)},this.deleteRequest=function(e,t,r){c.parameterCheck(e,"DynamicsWebApi.delete","request"),c.callbackParameterCheck(t,"DynamicsWebApi.delete","successCallback"),c.callbackParameterCheck(r,"DynamicsWebApi.delete","errorCallback");var n=function(){t(!0)},i=e.ifmatch;a("DELETE",e,"delete",n,function(e){i&&412==e.status?t(!1):r(e)})},this.deleteRecord=function(e,t,r,n,i){c.stringParameterCheck(e,"DynamicsWebApi.delete","key"),e=c.keyParameterCheck(e,"DynamicsWebApi.delete","key"),c.stringParameterCheck(t,"DynamicsWebApi.delete","collection"),c.callbackParameterCheck(r,"DynamicsWebApi.delete","successCallback"),c.callbackParameterCheck(n,"DynamicsWebApi.delete","errorCallback"),null!=i&&c.stringParameterCheck(i,"DynamicsWebApi.delete","propertyName"),a("DELETE",{key:e,collection:t,navigationProperty:i},"delete",function(e){r()},n)},this.retrieveRequest=function(e,t,r){c.parameterCheck(e,"DynamicsWebApi.retrieve","request"),c.callbackParameterCheck(t,"DynamicsWebApi.retrieve","successCallback"),c.callbackParameterCheck(r,"DynamicsWebApi.retrieve","errorCallback");var n=e.select;a("GET",e,"retrieve",function(e){t(null!=n&&1==n.length&&n[0].endsWith("/$ref")&&null!=e.data["@odata.id"]?i.convertToReferenceObject(e.data):e.data)},r)},this.retrieve=function(e,t,a,r,n,i){c.stringParameterCheck(e,"DynamicsWebApi.retrieve","key"),e=c.keyParameterCheck(e,"DynamicsWebApi.retrieve","key"),c.stringParameterCheck(t,"DynamicsWebApi.retrieve","collection"),c.callbackParameterCheck(a,"DynamicsWebApi.retrieve","successCallback"),c.callbackParameterCheck(r,"DynamicsWebApi.retrieve","errorCallback"),n&&n.length&&c.arrayParameterCheck(n,"DynamicsWebApi.retrieve","select"),i&&i.length&&c.stringOrArrayParameterCheck(i,"DynamicsWebApi.retrieve","expand");var s={collection:t,key:e,select:n,expand:i};this.retrieveRequest(s,a,r)},this.upsertRequest=function(e,t,r){c.parameterCheck(e,"DynamicsWebApi.upsert","request"),c.parameterCheck(e.entity,"DynamicsWebApi.upsert","request.entity"),c.callbackParameterCheck(t,"DynamicsWebApi.upsert","successCallback"),c.callbackParameterCheck(r,"DynamicsWebApi.upsert","errorCallback");var n=e.ifnonematch,i=e.ifmatch;a("PATCH",e,"upsert",function(e){if(e.headers["OData-EntityId"]||e.headers["odata-entityid"]){var a=e.headers["OData-EntityId"]?e.headers["OData-EntityId"]:e.headers["odata-entityid"],r=/[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}/i.exec(a)[0];t(r)}else e.data?t(e.data):t()},function(e){n&&412==e.status?t():i&&404==e.status?t():r(e)})},this.upsert=function(e,t,a,r,n,i,s){c.stringParameterCheck(e,"DynamicsWebApi.upsert","key"),e=c.keyParameterCheck(e,"DynamicsWebApi.upsert","key"),c.parameterCheck(a,"DynamicsWebApi.upsert","object"),c.stringParameterCheck(t,"DynamicsWebApi.upsert","collection"),c.callbackParameterCheck(r,"DynamicsWebApi.upsert","successCallback"),c.callbackParameterCheck(n,"DynamicsWebApi.upsert","errorCallback"),i&&c.stringOrArrayParameterCheck(i,"DynamicsWebApi.upsert","prefer"),s&&c.arrayParameterCheck(s,"DynamicsWebApi.upsert","select");var o={collection:t,key:e,select:s,prefer:i,entity:a};this.upsertRequest(o,r,n)},this.count=function(e,t,r,n){if(null!=n&&(null==n||n.length))return this.retrieveMultipleRequest({collection:e,filter:n,count:!0},function(e){t(e.oDataCount?e.oDataCount:0)},r);c.stringParameterCheck(e,"DynamicsWebApi.count","collection"),c.callbackParameterCheck(t,"DynamicsWebApi.count","successCallback"),c.callbackParameterCheck(r,"DynamicsWebApi.count","errorCallback"),a("GET",{collection:e,navigationProperty:"$count"},"count",function(e){t(e.data?parseInt(e.data):0)},r)},this.countAll=function(e,t,a,r,n){return this.retrieveAllRequest({collection:e,filter:r,select:n},function(e){t(e&&e.value?e.value.length:0)},a)},this.retrieveMultiple=function(e,t,a,r,n,i){return this.retrieveMultipleRequest({collection:e,select:r,filter:n},t,a,i)},this.retrieveAll=function(e,t,a,r,n){return l({collection:e,select:r,filter:n},t,a)};var o=function(e,t,r,n){c.callbackParameterCheck(t,"DynamicsWebApi.retrieveMultiple","successCallback"),c.callbackParameterCheck(r,"DynamicsWebApi.retrieveMultiple","errorCallback"),n&&(c.stringParameterCheck(n,"DynamicsWebApi.retrieveMultiple","nextPageLink"),e.url=n);var i=e.count;a("GET",e,"retrieveMultiple",function(e){i&&(e.data.oDataCount=e.data.oDataCount||0),t(e.data)},r)};this.retrieveMultipleRequest=o;var l=function(e,t,a,r,n){var n=n||[];o(e,function(r){n=n.concat(r.value),r.oDataNextLink?l(e,t,a,r.oDataNextLink,n):t({value:n})},a,r)};this.retrieveAllRequest=function(e,t,a){l(e,t,a)};var u=function(e,t,r,s,o,l,u,p){c.stringParameterCheck(e,"DynamicsWebApi.executeFetchXml","collection"),c.stringParameterCheck(t,"DynamicsWebApi.executeFetchXml","fetchXml"),c.callbackParameterCheck(r,"DynamicsWebApi.executeFetchXml","successCallback"),c.callbackParameterCheck(s,"DynamicsWebApi.executeFetchXml","errorCallback"),l=l||1,c.numberParameterCheck(l,"DynamicsWebApi.executeFetchXml","pageNumber");var m='$1 page="'+l+'"';null!=u&&(c.stringParameterCheck(u,"DynamicsWebApi.executeFetchXml","pagingCookie"),m+=' paging-cookie="'+u+'"'),t=t.replace(/^(<fetch[\w\d\s'"=]+)/,m),a("GET",{collection:e,includeAnnotations:o,impersonate:p,fetchXml:t,impersonate:p,includeAnnotations:o},"executeFetchXml",function(e){null!=e.data["@"+n.Prefer.Annotations.FetchXmlPagingCookie]&&(e.data.PagingInfo=i.getFetchXmlPagingCookie(e.data["@"+n.Prefer.Annotations.FetchXmlPagingCookie],l)),r(e.data)},s)};this.fetch=u,this.executeFetchXml=u;var p=function(e,t,a,r,n,i,c,s,o){var o=o||[];u(e,t,function(i){o=o.concat(i.value),i.PagingInfo?p(e,t,a,r,n,i.PagingInfo.nextPage,i.PagingInfo.cookie,s,o):a({value:o})},r,n,i,c,s)},m=function(e,t,a,r,n,i){return p(e,t,a,r,n,null,null,i)};this.fetchAll=m,this.executeFetchXmlAll=m,this.associate=function(e,t,r,n,i,s,o,l){c.stringParameterCheck(e,"DynamicsWebApi.associate","collection"),c.stringParameterCheck(n,"DynamicsWebApi.associate","relatedCollection"),c.stringParameterCheck(r,"DynamicsWebApi.associate","relationshipName"),t=c.keyParameterCheck(t,"DynamicsWebApi.associate","primaryKey"),i=c.keyParameterCheck(i,"DynamicsWebApi.associate","relatedKey"),c.callbackParameterCheck(s,"DynamicsWebApi.associate","successCallback"),c.callbackParameterCheck(o,"DynamicsWebApi.associate","errorCallback"),a("POST",{_additionalUrl:r+"/$ref",collection:e,key:t,impersonate:l,data:{"@odata.id":n+"("+i+")"}},"associate",function(){s()},o)},this.disassociate=function(e,t,r,n,i,s,o){c.stringParameterCheck(e,"DynamicsWebApi.disassociate","collection"),c.stringParameterCheck(r,"DynamicsWebApi.disassociate","relationshipName"),t=c.keyParameterCheck(t,"DynamicsWebApi.disassociate","primaryKey"),n=c.keyParameterCheck(n,"DynamicsWebApi.disassociate","relatedKey"),c.callbackParameterCheck(i,"DynamicsWebApi.disassociate","successCallback"),c.callbackParameterCheck(s,"DynamicsWebApi.disassociate","errorCallback"),a("DELETE",{_additionalUrl:r+"("+n+")/$ref",collection:e,key:t,impersonate:o},"disassociate",function(){i()},s)},this.associateSingleValued=function(e,t,r,n,i,s,o,l){c.stringParameterCheck(e,"DynamicsWebApi.associateSingleValued","collection"),t=c.keyParameterCheck(t,"DynamicsWebApi.associateSingleValued","key"),i=c.keyParameterCheck(i,"DynamicsWebApi.associateSingleValued","relatedKey"),c.stringParameterCheck(r,"DynamicsWebApi.associateSingleValued","singleValuedNavigationPropertyName"),c.stringParameterCheck(n,"DynamicsWebApi.associateSingleValued","relatedCollection"),c.callbackParameterCheck(s,"DynamicsWebApi.associateSingleValued","successCallback"),c.callbackParameterCheck(o,"DynamicsWebApi.associateSingleValued","errorCallback"),a("PUT",{_additionalUrl:r+"/$ref",collection:e,key:t,impersonate:l,data:{"@odata.id":n+"("+i+")"}},"associateSingleValued",function(){s()},o)},this.disassociateSingleValued=function(e,t,r,n,i,s){c.stringParameterCheck(e,"DynamicsWebApi.disassociateSingleValued","collection"),t=c.keyParameterCheck(t,"DynamicsWebApi.disassociateSingleValued","key"),c.stringParameterCheck(r,"DynamicsWebApi.disassociateSingleValued","singleValuedNavigationPropertyName"),c.callbackParameterCheck(n,"DynamicsWebApi.disassociateSingleValued","successCallback"),c.callbackParameterCheck(i,"DynamicsWebApi.disassociateSingleValued","errorCallback"),a("DELETE",{_additionalUrl:r+"/$ref",key:t,collection:e,impersonate:s},"disassociateSingleValued",function(){n()},i)},this.executeUnboundFunction=function(e,t,a,r,n){return h(e,r,null,null,t,a,n,!0)},this.executeBoundFunction=function(e,t,a,r,n,i,c){return h(a,i,t,e,r,n,c)};var h=function(e,t,r,n,s,o,l,u){c.stringParameterCheck(e,"DynamicsWebApi.executeFunction","functionName"),c.callbackParameterCheck(s,"DynamicsWebApi.executeFunction","successCallback"),c.callbackParameterCheck(o,"DynamicsWebApi.executeFunction","errorCallback");var p={_additionalUrl:e+i.buildFunctionParameters(t),_unboundRequest:u,key:n,collection:r,impersonate:l};a("GET",p,"executeFunction",function(e){e.data?s(e.data):s()},o)};this.executeUnboundAction=function(e,t,a,r,n){return y(e,t,null,null,a,r,n,!0)},this.executeBoundAction=function(e,t,a,r,n,i,c){return y(a,r,t,e,n,i,c)};var y=function(e,t,r,n,i,s,o,l){c.stringParameterCheck(e,"DynamicsWebApi.executeAction","actionName"),c.callbackParameterCheck(i,"DynamicsWebApi.executeAction","successCallback"),c.callbackParameterCheck(s,"DynamicsWebApi.executeAction","errorCallback"),a("POST",{_additionalUrl:e,_unboundRequest:l,collection:r,key:n,impersonate:o,data:t},"executeAction",function(e){e.data?i(e.data):i()},s)};this.initializeInstance=function(e){return e||(e=t),new r(e)}}var n=a(0),i=a(4),c=(a(3),a(1)),s=a(5);String.prototype.endsWith&&String.prototype.startsWith||a(2),r.prototype.utility={getCollectionName:s.getCollectionName},e.exports=r},function(e,t){e.exports=function(e,t){var a;return"string"==typeof t&&(a=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:Z|[-+]\d{2}:\d{2})$/.exec(t))?new Date(Date.UTC(+a[1],+a[2]-1,+a[3],+a[4],+a[5],+a[6])):t}},function(e,t,a){function r(e){var t=e.substr(0,e.indexOf("\r\n")),a=e.split(t);a.shift(),a.pop();for(var r=[],n=0;n<a.length;n++){var i=a[n],c=i.substring(i.indexOf("{"),i.lastIndexOf("}")+1);r.push(JSON.parse(c,s))}return r}function n(e,t){var a=null;if(-1!==e.indexOf("@")){var r=e.split("@");switch(r[1]){case"odata.context":a="oDataContext";break;case"odata.count":a="oDataCount",t=null!=t?parseInt(t):0;break;case"odata.nextLink":a="oDataNextLink";break;case c.Prefer.Annotations.FormattedValue:a=r[0]+"_Formatted";break;case c.Prefer.Annotations.AssociatedNavigationProperty:a=r[0]+"_NavigationProperty";break;case c.Prefer.Annotations.LookupLogicalName:a=r[0]+"_LogicalName"}}return[a,t]}function i(e){for(var t=Object.keys(e),a=0;a<t.length;a++){var r=t[a];if(null!=e[r]&&e[r].constructor===Array)for(var c=0;c<e[r].length;c++)e[r][c]=i(e[r][c]);var s=n(r,e[r]);if(s[0]&&(e[s[0]]=s[1]),-1!==r.indexOf("_x002e_")){var o=r.split("_x002e_");if(e.hasOwnProperty(o[0])){if("object"!=typeof e[o[0]]||"object"==typeof e[o[0]]&&!e[o[0]].hasOwnProperty("_dwaType"))throw new Error("The alias name of the linked entity must be unique!")}else e[o[0]]={_dwaType:"alias"};e[o[0]][o[1]]=e[r],s=n(o[1],e[r]),s[0]&&(e[o[0]][s[0]]=s[1])}}return e}var c=a(0),s=a(7);String.prototype.endsWith&&String.prototype.startsWith||a(2),e.exports=function(e){var t=null;return e.length&&(t=t=e.indexOf("--batchresponse_")>-1?r(e)[0]:JSON.parse(e,s),t=i(t)),t}},function(e,t){e.exports=function(e){var t={};if(!e)return t;for(var a=e.split("\r\n"),r=0,n=a.length;r<n;r++){var i=a[r],c=i.indexOf(": ");c>0&&(t[i.substring(0,c)]=i.substring(c+2))}return t}},function(e,t,a){var r=a(8),n=a(9),i=function(e,t,a,i,c,s,o){var l=new XMLHttpRequest;l.open(e,t,o);for(var u in i)l.setRequestHeader(u,i[u]);l.onreadystatechange=function(){if(4===l.readyState){switch(l.status){case 200:case 201:case 204:case 304:var e=r(l.responseText),t={data:e,headers:n(l.getAllResponseHeaders()),status:l.status};c(t);break;default:var a;try{a=JSON.parse(l.response).error}catch(e){a=l.response.length>0?{message:l.response}:{message:"Unexpected Error"}}a.status=l.status,a.statusText=l.statusText,s(a)}l=null}},l.onerror=function(){s({message:"Network Error"}),l=null},l.ontimeout=function(e){s({message:"Request Timed Out"}),l=null},a?l.send(a):l.send()};e.exports=i},function(e,t){e.exports=function(e){if(e){for(var t=Object.keys(e),a="",r="",n=1;n<=t.length;n++){var i=t[n-1],c=e[i];n>1&&(a+=",",r+="&"),a+=i+"=@p"+n,r+="@p"+n+"="+("string"==typeof c?"'"+c+"'":c)}return"("+a+")?"+r}return"()"}},function(e,t,a){var r=a(0),n=a(1);e.exports=function(e,t,a){var i=e.returnRepresentation,c=e.includeAnnotations,s=e.maxPageSize;if(e.prefer&&e.prefer.length){n.stringOrArrayParameterCheck(e.prefer,"DynamicsWebApi."+t,"request.prefer");var o=e.prefer;"string"==typeof o&&(o=o.split(","));for(var l in o){var u=o[l].trim();u===r.Prefer.ReturnRepresentation?i=!0:u.startsWith("odata.include-annotations=")?c=u.replace("odata.include-annotations=","").replace(/"/g,""):u.startsWith("odata.maxpagesize=")&&(s=u.replace("odata.maxpagesize=","").replace(/"/g,""))}}a&&(null==i&&(i=a.returnRepresentation),c=c||a.includeAnnotations,s=s||a.maxPageSize);var o=[];return i&&(n.boolParameterCheck(i,"DynamicsWebApi."+t,"request.returnRepresentation"),o.push(r.Prefer.ReturnRepresentation)),c&&(n.stringParameterCheck(c,"DynamicsWebApi."+t,"request.includeAnnotations"),o.push('odata.include-annotations="'+c+'"')),s&&s>0&&(n.numberParameterCheck(s,"DynamicsWebApi."+t,"request.maxPageSize"),o.push("odata.maxpagesize="+s)),o.join(",")}},function(e,t){e.exports=function(e){var t=/\/(\w+)\(([0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12})/i.exec(e["@odata.id"]);return{id:t[2],collection:t[1],oDataContext:e["@odata.context"]}}},function(e,t){e.exports=function(e,t){e=e||"",t=t||1,e=unescape(unescape(e));var a=/pagingcookie="(<cookie page="(\d+)".+<\/cookie>)/.exec(e);if(null!=a){var r=parseInt(a[2]);return{cookie:a[1].replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\"/g,"'").replace(/\'/g,"&quot;"),page:r,nextPage:r+1}}return{cookie:"",page:t,nextPage:t+1}}}])});
/*! dynamics-web-api-callbacks v1.4.3 (c) 2018 Aleksandr Rogov */
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("DynamicsWebApi",[],t):"object"==typeof exports?exports.DynamicsWebApi=t():e.DynamicsWebApi=t()}(this,function(){return function(e){function t(r){if(a[r])return a[r].exports;var i=a[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var a={};return t.m=e,t.c=a,t.i=function(e){return e},t.d=function(e,a,r){t.o(e,a)||Object.defineProperty(e,a,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(a,"a",a),a},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=6)}([function(e,t){var a={Types:{ResponseBase:function(){this.oDataContext=""},Response:function(){a.Types.ResponseBase.call(this),this.value={}},ReferenceResponse:function(){a.Types.ResponseBase.call(this),this.id="",this.collection=""},MultipleResponse:function(){a.Types.ResponseBase.call(this),this.oDataNextLink="",this.oDataCount=0,this.value=[]},FetchXmlResponse:function(){a.Types.ResponseBase.call(this),this.value=[],this.PagingInfo={cookie:"",page:0,nextPage:1}}},Prefer:{ReturnRepresentation:"return=representation",Annotations:{AssociatedNavigationProperty:"Microsoft.Dynamics.CRM.associatednavigationproperty",LookupLogicalName:"Microsoft.Dynamics.CRM.lookuplogicalname",All:"*",FormattedValue:"OData.Community.Display.V1.FormattedValue",FetchXmlPagingCookie:"Microsoft.Dynamics.CRM.fetchxmlpagingcookie"}}};e.exports=a},function(e,t){function a(e,t,a){throw new Error(a?e+" requires the "+t+" parameter to be of type "+a:e+" requires the "+t+" parameter.")}var r={handleErrorResponse:function(e){throw new Error("Error: "+e.status+": "+e.message)},parameterCheck:function(e,t,r,i){void 0!==e&&null!==e&&""!=e||a(t,r,i)},stringParameterCheck:function(e,t,r){"string"!=typeof e&&a(t,r,"String")},arrayParameterCheck:function(e,t,r){e.constructor!==Array&&a(t,r,"Array")},stringOrArrayParameterCheck:function(e,t,r){e.constructor!==Array&&"string"!=typeof e&&a(t,r,"String or Array")},numberParameterCheck:function(e,t,r){if("number"!=typeof e){if("string"==typeof e&&e&&!isNaN(parseInt(e)))return;a(t,r,"Number")}},boolParameterCheck:function(e,t,r){"boolean"!=typeof e&&a(t,r,"Boolean")},guidParameterCheck:function(e,t,r){try{return/[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}/i.exec(e)[0]}catch(e){a(t,r,"GUID String")}},keyParameterCheck:function(e,t,i){try{r.stringParameterCheck(e,t,i);var n=/[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}/i.exec(e);if(n)return n[0];var c=e.split(",");if(c.length)for(var s=0;s<c.length;s++)c[s]=c[s].trim(),/^[\w\d\_]+\='[^\'\r\n]+'$/i.exec(c[s])[0];return c.join(",")}catch(e){a(t,i,"String representing GUID or Alternate Key")}},callbackParameterCheck:function(e,t,r){"function"!=typeof e&&a(t,r,"Function")}};e.exports=r},function(e,t){String.prototype.endsWith=function(e,t){var a=this.toString();("number"!=typeof t||!isFinite(t)||Math.floor(t)!==t||t>a.length)&&(t=a.length),t-=e.length;var r=a.lastIndexOf(e,t);return-1!==r&&r===t},String.prototype.startsWith=function(e,t){return t=t||0,this.substr(t,e.length)===e}},function(e,t,a){function r(e,t,a,i,s){var o={},l=[];if(i=null!=i?i:"&",e){if(e.navigationProperty){if(n.stringParameterCheck(e.navigationProperty,"DynamicsWebApi."+t,"request.navigationProperty"),a+="/"+e.navigationProperty,e.navigationPropertyKey){a+="("+n.keyParameterCheck(e.navigationPropertyKey,"DynamicsWebApi."+t,"request.navigationPropertyKey")+")"}"Attributes"===e.navigationProperty&&e.metadataAttributeType&&(n.stringParameterCheck(e.metadataAttributeType,"DynamicsWebApi."+t,"request.metadataAttributeType"),a+="/"+e.metadataAttributeType)}if(null!=e.select&&e.select.length&&(n.arrayParameterCheck(e.select,"DynamicsWebApi."+t,"request.select"),"retrieve"==t&&1==e.select.length&&e.select[0].endsWith("/$ref")?a+="/"+e.select[0]:(e.select[0].startsWith("/")&&"retrieve"==t&&(null==e.navigationProperty?a+=e.select.shift():e.select.shift()),e.select.length&&l.push("$select="+e.select.join(",")))),e.filter){n.stringParameterCheck(e.filter,"DynamicsWebApi."+t,"request.filter");var u=/[^"']{([\w\d]{8}[-]?(?:[\w\d]{4}[-]?){3}[\w\d]{12})}(?:[^"']|$)/g,p=e.filter.replace(u," $1 ").trim();l.push("$filter="+encodeURIComponent(p))}e.savedQuery&&l.push("savedQuery="+n.guidParameterCheck(e.savedQuery,"DynamicsWebApi."+t,"request.savedQuery")),e.userQuery&&l.push("userQuery="+n.guidParameterCheck(e.userQuery,"DynamicsWebApi."+t,"request.userQuery")),e.count&&(n.boolParameterCheck(e.count,"DynamicsWebApi."+t,"request.count"),l.push("$count="+e.count)),e.top&&e.top>0&&(n.numberParameterCheck(e.top,"DynamicsWebApi."+t,"request.top"),l.push("$top="+e.top)),null!=e.orderBy&&e.orderBy.length&&(n.arrayParameterCheck(e.orderBy,"DynamicsWebApi."+t,"request.orderBy"),l.push("$orderby="+e.orderBy.join(",")));var m=c(e,t,s);if(m.length&&(o.Prefer=m),null!=e.ifmatch&&null!=e.ifnonematch)throw new Error("DynamicsWebApi."+t+". Either one of request.ifmatch or request.ifnonematch parameters should be used in a call, not both.");if(e.ifmatch&&(n.stringParameterCheck(e.ifmatch,"DynamicsWebApi."+t,"request.ifmatch"),o["If-Match"]=e.ifmatch),e.ifnonematch&&(n.stringParameterCheck(e.ifnonematch,"DynamicsWebApi."+t,"request.ifnonematch"),o["If-None-Match"]=e.ifnonematch),e.impersonate&&(n.stringParameterCheck(e.impersonate,"DynamicsWebApi."+t,"request.impersonate"),o.MSCRMCallerID=n.guidParameterCheck(e.impersonate,"DynamicsWebApi."+t,"request.impersonate")),e.token&&(n.stringParameterCheck(e.token,"DynamicsWebApi."+t,"request.token"),o.Authorization="Bearer "+e.token),e.duplicateDetection&&(n.boolParameterCheck(e.duplicateDetection,"DynamicsWebApi."+t,"request.duplicateDetection"),o["MSCRM.SuppressDuplicateDetection"]="false"),e.entity&&n.parameterCheck(e.entity,"DynamicsWebApi."+t,"request.entity"),e.data&&n.parameterCheck(e.data,"DynamicsWebApi."+t,"request.data"),e.noCache&&(n.boolParameterCheck(e.noCache,"DynamicsWebApi."+t,"request.noCache"),o["Cache-Control"]="no-cache"),e.mergeLabels&&(n.boolParameterCheck(e.mergeLabels,"DynamicsWebApi."+t,"request.mergeLabels"),o["MSCRM.MergeLabels"]="true"),e.expand&&e.expand.length)if(n.stringOrArrayParameterCheck(e.expand,"DynamicsWebApi."+t,"request.expand"),"string"==typeof e.expand)l.push("$expand="+e.expand);else{for(var y=[],h=0;h<e.expand.length;h++)if(e.expand[h].property){var f=r(e.expand[h],t+" $expand",null,";"),b=f.query;b&&b.length&&(b="("+b+")"),y.push(e.expand[h].property+b)}y.length&&l.push("$expand="+y.join(","))}}return{url:a,query:l.join(i),headers:o}}function i(e,t,a){var i,c="";return e.url?(n.stringParameterCheck(e.url,"DynamicsWebApi."+t,"request.url"),c=e.url.replace(a.webApiUrl,""),i=r(e,t,c,"&",a)):(e._unboundRequest||e.collection||n.parameterCheck(e.collection,"DynamicsWebApi."+t,"request.collection"),e.collection&&(n.stringParameterCheck(e.collection,"DynamicsWebApi."+t,"request.collection"),c=e.collection,e.key?e.key=n.keyParameterCheck(e.key,"DynamicsWebApi."+t,"request.key"):e.id&&(e.key=n.guidParameterCheck(e.id,"DynamicsWebApi."+t,"request.id")),e.key&&(c+="("+e.key+")")),e._additionalUrl&&(c&&(c+="/"),c+=e._additionalUrl),i=r(e,t,c,"&",a),e.fetchXml?(n.stringParameterCheck(e.fetchXml,"DynamicsWebApi."+t,"request.fetchXml"),i.url+="?fetchXml="+encodeURIComponent(e.fetchXml)):i.query&&(i.url+="?"+i.query)),e.hasOwnProperty("async")&&null!=e.async?(n.boolParameterCheck(e.async,"DynamicsWebApi."+t,"request.async"),i.async=e.async):i.async=!0,{url:i.url,headers:i.headers,async:i.async}}var n=(a(0),a(1)),c=a(12),s={convertRequestOptions:r,convertRequest:i};e.exports=s},function(e,t,a){function r(e){return void 0===e||"unknown"==typeof e||null==e}function i(){var e=(new Date).getTime();return"undefined"!=typeof performance&&"function"==typeof performance.now&&(e+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var a=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"===t?a:3&a|8).toString(16)})}function n(){if("undefined"!=typeof GetGlobalContext)return GetGlobalContext();if("undefined"!=typeof Xrm){if(!r(Xrm.Utility)&&!r(Xrm.Utility.getGlobalContext))return Xrm.Utility.getGlobalContext();if(!r(Xrm.Page)&&!r(Xrm.Page.context))return Xrm.Page.context}throw new Error("Xrm Context is not available. In most cases, it can be resolved by adding a reference to a ClientGlobalContext.js.aspx. Please refer to MSDN documentation for more details.")}function c(){var e=n();if(e){var t=e.getClientUrl();return t.match(/\/$/)&&(t=t.substring(0,t.length-1)),t}return""}function s(e){return c()+"/api/data/v"+e+"/"}function o(){return"undefined"!=typeof Xrm?Xrm.Internal:null}var l={buildFunctionParameters:a(11),getFetchXmlPagingCookie:a(14),convertToReferenceObject:a(13),isNull:r,generateUUID:i,getXrmContext:n,getXrmInternal:o,getClientUrl:c,initWebApiUrl:s};e.exports=l},function(e,t,a){function r(e){var t=m.getXrmInternal();if(!m.isNull(t)){var a=t.getEntitySetName(e);return a||e}var a=null;if(!m.isNull(p)&&(a=p[e],m.isNull(a)))for(var r in p)if(p[r]==e)return e;return a}function i(e){return e.Accept="application/json",e["OData-MaxVersion"]="4.0",e["OData-Version"]="4.0",e["Content-Type"]="application/json; charset=utf-8",e}function n(e,t){var a;return e&&(a=JSON.stringify(e,function(e,a){if(e.endsWith("@odata.bind")||e.endsWith("@odata.id")){if("string"==typeof a){if(/\(\{[\w\d-]+\}\)/g.test(a)&&(a=a.replace(/(.+)\(\{([\w\d-]+)\}\)/g,"$1($2)")),t.useEntityNames){var i=/([\w_]+)(\([\d\w-]+\))$/,n=i.exec(a);if(n.length>2){var c=r(n[1]);m.isNull(c)||(a=a.replace(i,c+"$2"))}}a.startsWith(t.webApiUrl)||(a=t.webApiUrl+a.replace(/^\\/,""))}}else(e.startsWith("oData")||e.endsWith("_Formatted")||e.endsWith("_NavigationProperty")||e.endsWith("_LogicalName"))&&(a=void 0);return a}),a=a.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).substr(-4)})),a}function c(e,t,r,c,s,o,l,u){s||(s={}),s=i(s);var p=n(c,r);if(t.length>2e3){var y="dwa_batch_"+m.generateUUID(),h=[];h.push("--"+y),h.push("Content-Type: application/http"),h.push("Content-Transfer-Encoding: binary\n"),h.push(e+" "+r.webApiUrl+t+" HTTP/1.1");for(var f in s)h.push(f+": "+s[f]),delete s[f];h.push("\n--"+y+"--"),p=h.join("\n"),s=i(s),s["Content-Type"]="multipart/mixed;boundary="+y,t="$batch",e="POST"}r.impersonate&&!s.MSCRMCallerID&&(s.MSCRMCallerID=r.impersonate);var b;b=a(10);var d=function(a){a&&(s||(s={}),s.Authorization="Bearer "+a.accessToken),b(e,r.webApiUrl+t,p,s,o,l,u)};r.onTokenRefresh&&(!s||s&&!s.Authorization)?r.onTokenRefresh(d):d()}function s(e,t,a,i){var n=function(t){p={};for(var i=0;i<t.data.value.length;i++)p[t.data.value[i].LogicalName]=t.data.value[i].LogicalCollectionName;a(r(e))},s=function(e){i({message:"Unable to fetch EntityDefinitions. Error: "+e.message})},o=y.convertRequest({collection:"EntityDefinitions",select:["LogicalCollectionName","LogicalName"],noCache:!0},"retrieveMultiple",t);c("GET",o.url,t,null,o.headers,n,s,o.async)}function o(e){return["EntityDefinitions","$metadata","RelationshipDefinitions","GlobalOptionSetDefinitions","ManagedPropertyDefinitions"].indexOf(e)>-1}function l(e,t,a,i){if(o(e)||m.isNull(e))return void a(e);if(e=e.toLowerCase(),!t.useEntityNames)return void a(e);try{var n=r(e);m.isNull(n)?s(e,t,a,i):a(n)}catch(e){i({message:"Unable to fetch Collection Names. Error: "+e.message})}}function u(e,t,a,r,i,n){var s=function(s){t.collection=s;var o=y.convertRequest(t,a,r);c(e,o.url,r,t.data||t.entity,o.headers,i,n,o.async)};l(t.collection,r,s,n)}var p,m=(a(0),a(4)),y=a(3);e.exports={sendRequest:c,makeRequest:u,getCollectionName:r}},function(e,t,a){function r(e){var t={webApiVersion:"8.0",webApiUrl:"",impersonate:null,onTokenRefresh:null,includeAnnotations:null,maxPageSize:null,returnRepresentation:null};e||(e=t),this.setConfig=function(e){e.webApiVersion&&(c.stringParameterCheck(e.webApiVersion,"DynamicsWebApi.setConfig","config.webApiVersion"),t.webApiVersion=e.webApiVersion),e.webApiUrl?(c.stringParameterCheck(e.webApiUrl,"DynamicsWebApi.setConfig","config.webApiUrl"),t.webApiUrl=e.webApiUrl):t.webApiUrl=n.initWebApiUrl(t.webApiVersion),e.impersonate&&(t.impersonate=c.guidParameterCheck(e.impersonate,"DynamicsWebApi.setConfig","config.impersonate")),e.onTokenRefresh&&(c.callbackParameterCheck(e.onTokenRefresh,"DynamicsWebApi.setConfig","config.onTokenRefresh"),t.onTokenRefresh=e.onTokenRefresh),e.includeAnnotations&&(c.stringParameterCheck(e.includeAnnotations,"DynamicsWebApi.setConfig","config.includeAnnotations"),t.includeAnnotations=e.includeAnnotations),e.maxPageSize&&(c.numberParameterCheck(e.maxPageSize,"DynamicsWebApi.setConfig","config.maxPageSize"),t.maxPageSize=e.maxPageSize),e.returnRepresentation&&(c.boolParameterCheck(e.returnRepresentation,"DynamicsWebApi.setConfig","config.returnRepresentation"),t.returnRepresentation=e.returnRepresentation),e.useEntityNames&&(c.boolParameterCheck(e.useEntityNames,"DynamicsWebApi.setConfig","config.useEntityNames"),t.useEntityNames=e.useEntityNames)},this.setConfig(e);var a=function(e,a,r,i,n){s.makeRequest(e,a,r,t,i,n)};this.createRequest=function(e,t,r){c.parameterCheck(e,"DynamicsWebApi.create","request"),c.callbackParameterCheck(t,"DynamicsWebApi.create","successCallback"),c.callbackParameterCheck(r,"DynamicsWebApi.create","errorCallback"),a("POST",e,"create",function(e){if(e.data)t(e.data);else{var a=e.headers["OData-EntityId"]?e.headers["OData-EntityId"]:e.headers["odata-entityid"],r=/([0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12})\)$/i.exec(a)[1];t(r)}},r)},this.create=function(e,t,a,r,i,n){c.parameterCheck(e,"DynamicsWebApi.create","object"),c.stringParameterCheck(t,"DynamicsWebApi.create","collection"),i&&c.stringOrArrayParameterCheck(i,"DynamicsWebApi.create","prefer"),n&&c.arrayParameterCheck(n,"DynamicsWebApi.create","select");var s={collection:t,select:n,prefer:i,entity:e};this.createRequest(s,a,r)},this.updateRequest=function(e,t,r){c.parameterCheck(e,"DynamicsWebApi.update","request"),c.callbackParameterCheck(t,"DynamicsWebApi.update","successCallback"),c.callbackParameterCheck(r,"DynamicsWebApi.update","errorCallback"),null==e.ifmatch&&(e.ifmatch="*");var i=function(e){t(e.data?e.data:!0)},n=e.ifmatch,s=function(e){n&&412==e.status?t(!1):r(e)},o=e.collection.indexOf("EntityDefinitions")>-1?"PUT":"PATCH";a(o,e,"update",i,s)},this.update=function(e,t,a,r,i,n,s){c.stringParameterCheck(e,"DynamicsWebApi.update","key"),e=c.keyParameterCheck(e,"DynamicsWebApi.update","key"),c.parameterCheck(a,"DynamicsWebApi.update","object"),c.stringParameterCheck(t,"DynamicsWebApi.update","collection"),c.callbackParameterCheck(r,"DynamicsWebApi.update","successCallback"),c.callbackParameterCheck(i,"DynamicsWebApi.update","errorCallback"),n&&c.stringOrArrayParameterCheck(n,"DynamicsWebApi.update","prefer"),s&&c.arrayParameterCheck(s,"DynamicsWebApi.update","select");var o={collection:t,key:e,select:s,prefer:n,entity:a};this.updateRequest(o,r,i)},this.updateSingleProperty=function(e,t,r,i,n,s,o){c.stringParameterCheck(e,"DynamicsWebApi.updateSingleProperty","key"),e=c.keyParameterCheck(e,"DynamicsWebApi.updateSingleProperty","key"),c.parameterCheck(r,"DynamicsWebApi.updateSingleProperty","keyValuePair"),c.stringParameterCheck(t,"DynamicsWebApi.updateSingleProperty","collection"),c.callbackParameterCheck(i,"DynamicsWebApi.updateSingleProperty","successCallback"),c.callbackParameterCheck(n,"DynamicsWebApi.updateSingleProperty","errorCallback"),s&&c.stringOrArrayParameterCheck(s,"DynamicsWebApi.updateSingleProperty","prefer"),o&&c.arrayParameterCheck(o,"DynamicsWebApi.updateSingleProperty","select");var l=Object.keys(r)[0],u=r[l];a("PUT",{collection:t,key:e,select:o,prefer:s,navigationProperty:l,data:{value:u}},"updateSingleProperty",function(e){e.data?i(e.data):i()},n)},this.deleteRequest=function(e,t,r){c.parameterCheck(e,"DynamicsWebApi.delete","request"),c.callbackParameterCheck(t,"DynamicsWebApi.delete","successCallback"),c.callbackParameterCheck(r,"DynamicsWebApi.delete","errorCallback");var i=function(){t(!0)},n=e.ifmatch;a("DELETE",e,"delete",i,function(e){n&&412==e.status?t(!1):r(e)})},this.deleteRecord=function(e,t,r,i,n){c.stringParameterCheck(e,"DynamicsWebApi.delete","key"),e=c.keyParameterCheck(e,"DynamicsWebApi.delete","key"),c.stringParameterCheck(t,"DynamicsWebApi.delete","collection"),c.callbackParameterCheck(r,"DynamicsWebApi.delete","successCallback"),c.callbackParameterCheck(i,"DynamicsWebApi.delete","errorCallback"),null!=n&&c.stringParameterCheck(n,"DynamicsWebApi.delete","propertyName"),a("DELETE",{key:e,collection:t,navigationProperty:n},"delete",function(e){r()},i)},this.retrieveRequest=function(e,t,r){c.parameterCheck(e,"DynamicsWebApi.retrieve","request"),c.callbackParameterCheck(t,"DynamicsWebApi.retrieve","successCallback"),c.callbackParameterCheck(r,"DynamicsWebApi.retrieve","errorCallback");var i=e.select;a("GET",e,"retrieve",function(e){t(null!=i&&1==i.length&&i[0].endsWith("/$ref")&&null!=e.data["@odata.id"]?n.convertToReferenceObject(e.data):e.data)},r)},this.retrieve=function(e,t,a,r,i,n){c.stringParameterCheck(e,"DynamicsWebApi.retrieve","key"),e=c.keyParameterCheck(e,"DynamicsWebApi.retrieve","key"),c.stringParameterCheck(t,"DynamicsWebApi.retrieve","collection"),c.callbackParameterCheck(a,"DynamicsWebApi.retrieve","successCallback"),c.callbackParameterCheck(r,"DynamicsWebApi.retrieve","errorCallback"),i&&i.length&&c.arrayParameterCheck(i,"DynamicsWebApi.retrieve","select"),n&&n.length&&c.stringOrArrayParameterCheck(n,"DynamicsWebApi.retrieve","expand");var s={collection:t,key:e,select:i,expand:n};this.retrieveRequest(s,a,r)},this.upsertRequest=function(e,t,r){c.parameterCheck(e,"DynamicsWebApi.upsert","request"),c.parameterCheck(e.entity,"DynamicsWebApi.upsert","request.entity"),c.callbackParameterCheck(t,"DynamicsWebApi.upsert","successCallback"),c.callbackParameterCheck(r,"DynamicsWebApi.upsert","errorCallback");var i=e.ifnonematch,n=e.ifmatch;a("PATCH",e,"upsert",function(e){if(e.headers["OData-EntityId"]||e.headers["odata-entityid"]){var a=e.headers["OData-EntityId"]?e.headers["OData-EntityId"]:e.headers["odata-entityid"],r=/[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}/i.exec(a)[0];t(r)}else e.data?t(e.data):t()},function(e){i&&412==e.status?t():n&&404==e.status?t():r(e)})},this.upsert=function(e,t,a,r,i,n,s){c.stringParameterCheck(e,"DynamicsWebApi.upsert","key"),e=c.keyParameterCheck(e,"DynamicsWebApi.upsert","key"),c.parameterCheck(a,"DynamicsWebApi.upsert","object"),c.stringParameterCheck(t,"DynamicsWebApi.upsert","collection"),c.callbackParameterCheck(r,"DynamicsWebApi.upsert","successCallback"),c.callbackParameterCheck(i,"DynamicsWebApi.upsert","errorCallback"),n&&c.stringOrArrayParameterCheck(n,"DynamicsWebApi.upsert","prefer"),s&&c.arrayParameterCheck(s,"DynamicsWebApi.upsert","select");var o={collection:t,key:e,select:s,prefer:n,entity:a};this.upsertRequest(o,r,i)},this.count=function(e,t,r,i){if(null!=i&&(null==i||i.length))return this.retrieveMultipleRequest({collection:e,filter:i,count:!0},function(e){t(e.oDataCount?e.oDataCount:0)},r);c.stringParameterCheck(e,"DynamicsWebApi.count","collection"),c.callbackParameterCheck(t,"DynamicsWebApi.count","successCallback"),c.callbackParameterCheck(r,"DynamicsWebApi.count","errorCallback"),a("GET",{collection:e,navigationProperty:"$count"},"count",function(e){t(e.data?parseInt(e.data):0)},r)},this.countAll=function(e,t,a,r,i){return this.retrieveAllRequest({collection:e,filter:r,select:i},function(e){t(e&&e.value?e.value.length:0)},a)},this.retrieveMultiple=function(e,t,a,r,i,n){return this.retrieveMultipleRequest({collection:e,select:r,filter:i},t,a,n)},this.retrieveAll=function(e,t,a,r,i){return l({collection:e,select:r,filter:i},t,a)};var o=function(e,t,r,i){c.callbackParameterCheck(t,"DynamicsWebApi.retrieveMultiple","successCallback"),c.callbackParameterCheck(r,"DynamicsWebApi.retrieveMultiple","errorCallback"),i&&(c.stringParameterCheck(i,"DynamicsWebApi.retrieveMultiple","nextPageLink"),e.url=i);var n=e.count;a("GET",e,"retrieveMultiple",function(e){n&&(e.data.oDataCount=e.data.oDataCount||0),t(e.data)},r)};this.retrieveMultipleRequest=o;var l=function(e,t,a,r,i){var i=i||[];o(e,function(r){i=i.concat(r.value),r.oDataNextLink?l(e,t,a,r.oDataNextLink,i):t({value:i})},a,r)};this.retrieveAllRequest=function(e,t,a){l(e,t,a)};var u=function(e,t,r,s,o,l,u,p){c.stringParameterCheck(e,"DynamicsWebApi.executeFetchXml","collection"),c.stringParameterCheck(t,"DynamicsWebApi.executeFetchXml","fetchXml"),c.callbackParameterCheck(r,"DynamicsWebApi.executeFetchXml","successCallback"),c.callbackParameterCheck(s,"DynamicsWebApi.executeFetchXml","errorCallback"),l=l||1,c.numberParameterCheck(l,"DynamicsWebApi.executeFetchXml","pageNumber");var m='$1 page="'+l+'"';null!=u&&(c.stringParameterCheck(u,"DynamicsWebApi.executeFetchXml","pagingCookie"),m+=' paging-cookie="'+u+'"'),t=t.replace(/^(<fetch[\w\d\s'"=]+)/,m),a("GET",{collection:e,includeAnnotations:o,impersonate:p,fetchXml:t,impersonate:p,includeAnnotations:o},"executeFetchXml",function(e){null!=e.data["@"+i.Prefer.Annotations.FetchXmlPagingCookie]&&(e.data.PagingInfo=n.getFetchXmlPagingCookie(e.data["@"+i.Prefer.Annotations.FetchXmlPagingCookie],l)),r(e.data)},s)};this.fetch=u,this.executeFetchXml=u;var p=function(e,t,a,r,i,n,c,s,o){var o=o||[];u(e,t,function(n){o=o.concat(n.value),n.PagingInfo?p(e,t,a,r,i,n.PagingInfo.nextPage,n.PagingInfo.cookie,s,o):a({value:o})},r,i,n,c,s)},m=function(e,t,a,r,i,n){return p(e,t,a,r,i,null,null,n)};this.fetchAll=m,this.executeFetchXmlAll=m,this.associate=function(e,t,r,i,n,s,o,l){c.stringParameterCheck(e,"DynamicsWebApi.associate","collection"),c.stringParameterCheck(i,"DynamicsWebApi.associate","relatedCollection"),c.stringParameterCheck(r,"DynamicsWebApi.associate","relationshipName"),t=c.keyParameterCheck(t,"DynamicsWebApi.associate","primaryKey"),n=c.keyParameterCheck(n,"DynamicsWebApi.associate","relatedKey"),c.callbackParameterCheck(s,"DynamicsWebApi.associate","successCallback"),c.callbackParameterCheck(o,"DynamicsWebApi.associate","errorCallback"),a("POST",{_additionalUrl:r+"/$ref",collection:e,key:t,impersonate:l,data:{"@odata.id":i+"("+n+")"}},"associate",function(){s()},o)},this.disassociate=function(e,t,r,i,n,s,o){c.stringParameterCheck(e,"DynamicsWebApi.disassociate","collection"),c.stringParameterCheck(r,"DynamicsWebApi.disassociate","relationshipName"),t=c.keyParameterCheck(t,"DynamicsWebApi.disassociate","primaryKey"),i=c.keyParameterCheck(i,"DynamicsWebApi.disassociate","relatedKey"),c.callbackParameterCheck(n,"DynamicsWebApi.disassociate","successCallback"),c.callbackParameterCheck(s,"DynamicsWebApi.disassociate","errorCallback"),a("DELETE",{_additionalUrl:r+"("+i+")/$ref",collection:e,key:t,impersonate:o},"disassociate",function(){n()},s)},this.associateSingleValued=function(e,t,r,i,n,s,o,l){c.stringParameterCheck(e,"DynamicsWebApi.associateSingleValued","collection"),t=c.keyParameterCheck(t,"DynamicsWebApi.associateSingleValued","key"),n=c.keyParameterCheck(n,"DynamicsWebApi.associateSingleValued","relatedKey"),c.stringParameterCheck(r,"DynamicsWebApi.associateSingleValued","singleValuedNavigationPropertyName"),c.stringParameterCheck(i,"DynamicsWebApi.associateSingleValued","relatedCollection"),c.callbackParameterCheck(s,"DynamicsWebApi.associateSingleValued","successCallback"),c.callbackParameterCheck(o,"DynamicsWebApi.associateSingleValued","errorCallback"),a("PUT",{_additionalUrl:r+"/$ref",collection:e,key:t,impersonate:l,data:{"@odata.id":i+"("+n+")"}},"associateSingleValued",function(){s()},o)},this.disassociateSingleValued=function(e,t,r,i,n,s){c.stringParameterCheck(e,"DynamicsWebApi.disassociateSingleValued","collection"),t=c.keyParameterCheck(t,"DynamicsWebApi.disassociateSingleValued","key"),c.stringParameterCheck(r,"DynamicsWebApi.disassociateSingleValued","singleValuedNavigationPropertyName"),c.callbackParameterCheck(i,"DynamicsWebApi.disassociateSingleValued","successCallback"),c.callbackParameterCheck(n,"DynamicsWebApi.disassociateSingleValued","errorCallback"),a("DELETE",{_additionalUrl:r+"/$ref",key:t,collection:e,impersonate:s},"disassociateSingleValued",function(){i()},n)},this.executeUnboundFunction=function(e,t,a,r,i){return y(e,r,null,null,t,a,i,!0)},this.executeBoundFunction=function(e,t,a,r,i,n,c){return y(a,n,t,e,r,i,c)};var y=function(e,t,r,i,s,o,l,u){c.stringParameterCheck(e,"DynamicsWebApi.executeFunction","functionName"),c.callbackParameterCheck(s,"DynamicsWebApi.executeFunction","successCallback"),c.callbackParameterCheck(o,"DynamicsWebApi.executeFunction","errorCallback");var p={_additionalUrl:e+n.buildFunctionParameters(t),_unboundRequest:u,key:i,collection:r,impersonate:l};a("GET",p,"executeFunction",function(e){e.data?s(e.data):s()},o)};this.executeUnboundAction=function(e,t,a,r,i){return h(e,t,null,null,a,r,i,!0)},this.executeBoundAction=function(e,t,a,r,i,n,c){return h(a,r,t,e,i,n,c)};var h=function(e,t,r,i,n,s,o,l){c.stringParameterCheck(e,"DynamicsWebApi.executeAction","actionName"),c.callbackParameterCheck(n,"DynamicsWebApi.executeAction","successCallback"),c.callbackParameterCheck(s,"DynamicsWebApi.executeAction","errorCallback"),a("POST",{_additionalUrl:e,_unboundRequest:l,collection:r,key:i,impersonate:o,data:t},"executeAction",function(e){e.data?n(e.data):n()},s)};this.createEntity=function(e,t,a){c.parameterCheck(e,"DynamicsWebApi.createEntity","entityDefinition");var r={collection:"EntityDefinitions",entity:e};this.createRequest(r,t,a)},this.updateEntity=function(e,t,a,r){c.parameterCheck(e,"DynamicsWebApi.updateEntity","entityDefinition"),c.guidParameterCheck(e.MetadataId,"DynamicsWebApi.updateEntity","entityDefinition.MetadataId");var i={collection:"EntityDefinitions",mergeLabels:r,key:e.MetadataId,entity:e};this.updateRequest(i,t,a)},this.retrieveEntity=function(e,t,a,r,i){c.keyParameterCheck(e,"DynamicsWebApi.retrieveEntity","entityKey");var n={collection:"EntityDefinitions",key:e,select:r,expand:i};this.retrieveRequest(n,t,a)},this.retrieveEntities=function(e,t,a,r){var i={collection:"EntityDefinitions",select:a,filter:r};this.retrieveRequest(i,e,t)},this.createAttribute=function(e,t,a,r){c.keyParameterCheck(e,"DynamicsWebApi.createAttribute","entityKey"),c.parameterCheck(t,"DynamicsWebApi.createAttribute","attributeDefinition");var i={collection:"EntityDefinitions",key:e,entity:t,navigationProperty:"Attributes"};this.createRequest(i,a,r)},this.updateAttribute=function(e,t,a,r,i,n){c.keyParameterCheck(e,"DynamicsWebApi.updateAttribute","entityKey"),c.parameterCheck(t,"DynamicsWebApi.updateAttribute","attributeDefinition"),c.guidParameterCheck(t.MetadataId,"DynamicsWebApi.updateAttribute","attributeDefinition.MetadataId"),i&&c.stringParameterCheck(i,"DynamicsWebApi.updateAttribute","attributeType");var s={collection:"EntityDefinitions",key:e,entity:t,navigationProperty:"Attributes",navigationPropertyKey:t.MetadataId,mergeLabels:n,metadataAttributeType:i};this.updateRequest(s,a,r)},this.retrieveAttributes=function(e,t,a,r,i,n,s){c.keyParameterCheck(e,"DynamicsWebApi.retrieveAttributes","entityKey"),r&&c.stringParameterCheck(r,"DynamicsWebApi.retrieveAttributes","attributeType");var o={collection:"EntityDefinitions",key:e,navigationProperty:"Attributes",select:i,filter:n,expand:s,metadataAttributeType:r};this.retrieveRequest(o,t,a)},this.retrieveAttribute=function(e,t,a,r,i,n,s){c.keyParameterCheck(e,"DynamicsWebApi.retrieveAttribute","entityKey"),c.keyParameterCheck(t,"DynamicsWebApi.retrieveAttribute","attributeKey"),i&&c.stringParameterCheck(i,"DynamicsWebApi.retrieveAttribute","attributeType");var o={collection:"EntityDefinitions",key:e,navigationProperty:"Attributes",select:n,expand:s,metadataAttributeType:i,navigationPropertyKey:t};this.retrieveRequest(o,a,r)},this.initializeInstance=function(e){return e||(e=t),new r(e)}}var i=a(0),n=a(4),c=(a(3),a(1)),s=a(5);String.prototype.endsWith&&String.prototype.startsWith||a(2),r.prototype.utility={getCollectionName:s.getCollectionName},e.exports=r},function(e,t){e.exports=function(e,t){var a;return"string"==typeof t&&(a=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:Z|[-+]\d{2}:\d{2})$/.exec(t))?new Date(Date.UTC(+a[1],+a[2]-1,+a[3],+a[4],+a[5],+a[6])):t}},function(e,t,a){function r(e){var t=e.substr(0,e.indexOf("\r\n")),a=e.split(t);a.shift(),a.pop();for(var r=[],i=0;i<a.length;i++){var n=a[i],c=n.substring(n.indexOf("{"),n.lastIndexOf("}")+1);r.push(JSON.parse(c,s))}return r}function i(e,t){var a=null;if(-1!==e.indexOf("@")){var r=e.split("@");switch(r[1]){case"odata.context":a="oDataContext";break;case"odata.count":a="oDataCount",t=null!=t?parseInt(t):0;break;case"odata.nextLink":a="oDataNextLink";break;case c.Prefer.Annotations.FormattedValue:a=r[0]+"_Formatted";break;case c.Prefer.Annotations.AssociatedNavigationProperty:a=r[0]+"_NavigationProperty";break;case c.Prefer.Annotations.LookupLogicalName:a=r[0]+"_LogicalName"}}return[a,t]}function n(e){for(var t=Object.keys(e),a=0;a<t.length;a++){var r=t[a];if(null!=e[r]&&e[r].constructor===Array)for(var c=0;c<e[r].length;c++)e[r][c]=n(e[r][c]);var s=i(r,e[r]);if(s[0]&&(e[s[0]]=s[1]),-1!==r.indexOf("_x002e_")){var o=r.split("_x002e_");if(e.hasOwnProperty(o[0])){if("object"!=typeof e[o[0]]||"object"==typeof e[o[0]]&&!e[o[0]].hasOwnProperty("_dwaType"))throw new Error("The alias name of the linked entity must be unique!")}else e[o[0]]={_dwaType:"alias"};e[o[0]][o[1]]=e[r],s=i(o[1],e[r]),s[0]&&(e[o[0]][s[0]]=s[1])}}return e}var c=a(0),s=a(7);String.prototype.endsWith&&String.prototype.startsWith||a(2),e.exports=function(e){var t=null;return e.length&&(t=t=e.indexOf("--batchresponse_")>-1?r(e)[0]:JSON.parse(e,s),t=n(t)),t}},function(e,t){e.exports=function(e){var t={};if(!e)return t;for(var a=e.split("\r\n"),r=0,i=a.length;r<i;r++){var n=a[r],c=n.indexOf(": ");c>0&&(t[n.substring(0,c)]=n.substring(c+2))}return t}},function(e,t,a){var r=a(8),i=a(9),n=function(e,t,a,n,c,s,o){var l=new XMLHttpRequest;l.open(e,t,o);for(var u in n)l.setRequestHeader(u,n[u]);l.onreadystatechange=function(){if(4===l.readyState){switch(l.status){case 200:case 201:case 204:case 304:var e=r(l.responseText),t={data:e,headers:i(l.getAllResponseHeaders()),status:l.status};c(t);break;default:var a;try{a=JSON.parse(l.response).error}catch(e){a=l.response.length>0?{message:l.response}:{message:"Unexpected Error"}}a.status=l.status,a.statusText=l.statusText,s(a)}l=null}},l.onerror=function(){s({message:"Network Error"}),l=null},l.ontimeout=function(e){s({message:"Request Timed Out"}),l=null},a?l.send(a):l.send()};e.exports=n},function(e,t){e.exports=function(e){if(e){for(var t=Object.keys(e),a="",r="",i=1;i<=t.length;i++){var n=t[i-1],c=e[n];i>1&&(a+=",",r+="&"),a+=n+"=@p"+i,r+="@p"+i+"="+("string"==typeof c?"'"+c+"'":c)}return"("+a+")?"+r}return"()"}},function(e,t,a){var r=a(0),i=a(1);e.exports=function(e,t,a){var n=e.returnRepresentation,c=e.includeAnnotations,s=e.maxPageSize;if(e.prefer&&e.prefer.length){i.stringOrArrayParameterCheck(e.prefer,"DynamicsWebApi."+t,"request.prefer");var o=e.prefer;"string"==typeof o&&(o=o.split(","));for(var l in o){var u=o[l].trim();u===r.Prefer.ReturnRepresentation?n=!0:u.startsWith("odata.include-annotations=")?c=u.replace("odata.include-annotations=","").replace(/"/g,""):u.startsWith("odata.maxpagesize=")&&(s=u.replace("odata.maxpagesize=","").replace(/"/g,""))}}a&&(null==n&&(n=a.returnRepresentation),c=c||a.includeAnnotations,s=s||a.maxPageSize);var o=[];return n&&(i.boolParameterCheck(n,"DynamicsWebApi."+t,"request.returnRepresentation"),o.push(r.Prefer.ReturnRepresentation)),c&&(i.stringParameterCheck(c,"DynamicsWebApi."+t,"request.includeAnnotations"),o.push('odata.include-annotations="'+c+'"')),s&&s>0&&(i.numberParameterCheck(s,"DynamicsWebApi."+t,"request.maxPageSize"),o.push("odata.maxpagesize="+s)),o.join(",")}},function(e,t){e.exports=function(e){var t=/\/(\w+)\(([0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12})/i.exec(e["@odata.id"]);return{id:t[2],collection:t[1],oDataContext:e["@odata.context"]}}},function(e,t){e.exports=function(e,t){e=e||"",t=t||1,e=unescape(unescape(e));var a=/pagingcookie="(<cookie page="(\d+)".+<\/cookie>)/.exec(e);if(null!=a){var r=parseInt(a[2]);return{cookie:a[1].replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\"/g,"'").replace(/\'/g,"&quot;"),page:r,nextPage:r+1}}return{cookie:"",page:t,nextPage:t+1}}}])});

@@ -1,2 +0,2 @@

/*! dynamics-web-api v1.4.2 (c) 2018 Aleksandr Rogov */
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("DynamicsWebApi",[],t):"object"==typeof exports?exports.DynamicsWebApi=t():e.DynamicsWebApi=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=5)}([function(e,t){var n={Types:{ResponseBase:function(){this.oDataContext=""},Response:function(){n.Types.ResponseBase.call(this),this.value={}},ReferenceResponse:function(){n.Types.ResponseBase.call(this),this.id="",this.collection=""},MultipleResponse:function(){n.Types.ResponseBase.call(this),this.oDataNextLink="",this.oDataCount=0,this.value=[]},FetchXmlResponse:function(){n.Types.ResponseBase.call(this),this.value=[],this.PagingInfo={cookie:"",page:0,nextPage:1}}},Prefer:{ReturnRepresentation:"return=representation",Annotations:{AssociatedNavigationProperty:"Microsoft.Dynamics.CRM.associatednavigationproperty",LookupLogicalName:"Microsoft.Dynamics.CRM.lookuplogicalname",All:"*",FormattedValue:"OData.Community.Display.V1.FormattedValue",FetchXmlPagingCookie:"Microsoft.Dynamics.CRM.fetchxmlpagingcookie"}}};e.exports=n},function(e,t){function n(e,t,n){throw new Error(n?e+" requires the "+t+" parameter to be of type "+n:e+" requires the "+t+" parameter.")}var r={handleErrorResponse:function(e){throw new Error("Error: "+e.status+": "+e.message)},parameterCheck:function(e,t,r,a){void 0!==e&&null!==e&&""!=e||n(t,r,a)},stringParameterCheck:function(e,t,r){"string"!=typeof e&&n(t,r,"String")},arrayParameterCheck:function(e,t,r){e.constructor!==Array&&n(t,r,"Array")},stringOrArrayParameterCheck:function(e,t,r){e.constructor!==Array&&"string"!=typeof e&&n(t,r,"String or Array")},numberParameterCheck:function(e,t,r){if("number"!=typeof e){if("string"==typeof e&&e&&!isNaN(parseInt(e)))return;n(t,r,"Number")}},boolParameterCheck:function(e,t,r){"boolean"!=typeof e&&n(t,r,"Boolean")},guidParameterCheck:function(e,t,r){try{return/[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}/i.exec(e)[0]}catch(e){n(t,r,"GUID String")}},keyParameterCheck:function(e,t,a){try{r.stringParameterCheck(e,t,a);var i=/[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}/i.exec(e);if(i)return i[0];var o=e.split(",");if(o.length)for(var s=0;s<o.length;s++)o[s]=o[s].trim(),/^[\w\d\_]+\='[^\'\r\n]+'$/i.exec(o[s])[0];return o.join(",")}catch(e){n(t,a,"String representing GUID or Alternate Key")}},callbackParameterCheck:function(e,t,r){"function"!=typeof e&&n(t,r,"Function")}};e.exports=r},function(e,t){String.prototype.endsWith=function(e,t){var n=this.toString();("number"!=typeof t||!isFinite(t)||Math.floor(t)!==t||t>n.length)&&(t=n.length),t-=e.length;var r=n.lastIndexOf(e,t);return-1!==r&&r===t},String.prototype.startsWith=function(e,t){return t=t||0,this.substr(t,e.length)===e}},function(e,t,n){function r(e){return void 0===e||"unknown"==typeof e||null==e}function a(){var e=(new Date).getTime();return"undefined"!=typeof performance&&"function"==typeof performance.now&&(e+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var n=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"===t?n:3&n|8).toString(16)})}function i(){if("undefined"!=typeof GetGlobalContext)return GetGlobalContext();if("undefined"!=typeof Xrm){if(!r(Xrm.Utility)&&!r(Xrm.Utility.getGlobalContext))return Xrm.Utility.getGlobalContext();if(!r(Xrm.Page)&&!r(Xrm.Page.context))return Xrm.Page.context}throw new Error("Xrm Context is not available. In most cases, it can be resolved by adding a reference to a ClientGlobalContext.js.aspx. Please refer to MSDN documentation for more details.")}function o(){var e=i();if(e){var t=e.getClientUrl();return t.match(/\/$/)&&(t=t.substring(0,t.length-1)),t}return""}function s(e){return o()+"/api/data/v"+e+"/"}function c(){return"undefined"!=typeof Xrm?Xrm.Internal:null}var u={buildFunctionParameters:n(11),getFetchXmlPagingCookie:n(14),convertToReferenceObject:n(13),isNull:r,generateUUID:a,getXrmContext:i,getXrmInternal:c,getClientUrl:o,initWebApiUrl:s};e.exports=u},function(e,t,n){function r(e){var t=f.getXrmInternal();if(!f.isNull(t)){var n=t.getEntitySetName(e);return n||e}var n=null;if(!f.isNull(p)&&(n=p[e],f.isNull(n)))for(var r in p)if(p[r]==e)return e;return n}function a(e){return e.Accept="application/json",e["OData-MaxVersion"]="4.0",e["OData-Version"]="4.0",e["Content-Type"]="application/json; charset=utf-8",e}function i(e,t){var n;return e&&(n=JSON.stringify(e,function(e,n){if(e.endsWith("@odata.bind")||e.endsWith("@odata.id")){if("string"==typeof n){if(/\(\{[\w\d-]+\}\)/g.test(n)&&(n=n.replace(/(.+)\(\{([\w\d-]+)\}\)/g,"$1($2)")),t.useEntityNames){var a=/([\w_]+)(\([\d\w-]+\))$/,i=a.exec(n);if(i.length>2){var o=r(i[1]);f.isNull(o)||(n=n.replace(a,o+"$2"))}}n.startsWith(t.webApiUrl)||(n=t.webApiUrl+n.replace(/^\\/,""))}}else(e.startsWith("oData")||e.endsWith("_Formatted")||e.endsWith("_NavigationProperty")||e.endsWith("_LogicalName"))&&(n=void 0);return n}),n=n.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).substr(-4)})),n}function o(e,t,r,o,s,c,u,l){s||(s={}),s=a(s);var p=i(o,r);if(t.length>2e3){var m="dwa_batch_"+f.generateUUID(),h=[];h.push("--"+m),h.push("Content-Type: application/http"),h.push("Content-Transfer-Encoding: binary\n"),h.push(e+" "+r.webApiUrl+t+" HTTP/1.1");for(var d in s)h.push(d+": "+s[d]),delete s[d];h.push("\n--"+m+"--"),p=h.join("\n"),s=a(s),s["Content-Type"]="multipart/mixed;boundary="+m,t="$batch",e="POST"}r.impersonate&&!s.MSCRMCallerID&&(s.MSCRMCallerID=r.impersonate);var y;y=n(9);var g=function(n){n&&(s||(s={}),s.Authorization="Bearer "+n.accessToken),y(e,r.webApiUrl+t,p,s,c,u,l)};r.onTokenRefresh&&(!s||s&&!s.Authorization)?r.onTokenRefresh(g):g()}function s(e,t,n,a){var i=function(t){p={};for(var a=0;a<t.data.value.length;a++)p[t.data.value[a].LogicalName]=t.data.value[a].LogicalCollectionName;n(r(e))},s=function(e){a({message:"Unable to fetch EntityDefinitions. Error: "+e.message})},c=m.convertRequest({collection:"EntityDefinitions",select:["LogicalCollectionName","LogicalName"],noCache:!0},"retrieveMultiple",t);o("GET",c.url,t,null,c.headers,i,s,c.async)}function c(e){return["EntityDefinitions","$metadata","RelationshipDefinitions","GlobalOptionSetDefinitions","ManagedPropertyDefinitions"].indexOf(e)>-1}function u(e,t,n,a){if(c(e)||f.isNull(e))return void n(e);if(e=e.toLowerCase(),!t.useEntityNames)return void n(e);try{var i=r(e);f.isNull(i)?s(e,t,n,a):n(i)}catch(e){a({message:"Unable to fetch Collection Names. Error: "+e.message})}}function l(e,t,n,r,a,i){var s=function(s){t.collection=s;var c=m.convertRequest(t,n,r);o(e,c.url,r,t.data||t.entity,c.headers,a,i,c.async)};u(t.collection,r,s,i)}var p,f=(n(0),n(3)),m=n(10);e.exports={sendRequest:o,makeRequest:l,getCollectionName:r}},function(e,t,n){function r(e){var t={webApiVersion:"8.0",webApiUrl:null,impersonate:null,onTokenRefresh:null,includeAnnotations:null,maxPageSize:null,returnRepresentation:null};e||(e=t),this.setConfig=function(e){e.webApiVersion&&(o.stringParameterCheck(e.webApiVersion,"DynamicsWebApi.setConfig","config.webApiVersion"),t.webApiVersion=e.webApiVersion),e.webApiUrl?(o.stringParameterCheck(e.webApiUrl,"DynamicsWebApi.setConfig","config.webApiUrl"),t.webApiUrl=e.webApiUrl):t.webApiUrl=i.initWebApiUrl(t.webApiVersion),e.impersonate&&(t.impersonate=o.guidParameterCheck(e.impersonate,"DynamicsWebApi.setConfig","config.impersonate")),e.onTokenRefresh&&(o.callbackParameterCheck(e.onTokenRefresh,"DynamicsWebApi.setConfig","config.onTokenRefresh"),t.onTokenRefresh=e.onTokenRefresh),e.includeAnnotations&&(o.stringParameterCheck(e.includeAnnotations,"DynamicsWebApi.setConfig","config.includeAnnotations"),t.includeAnnotations=e.includeAnnotations),e.maxPageSize&&(o.numberParameterCheck(e.maxPageSize,"DynamicsWebApi.setConfig","config.maxPageSize"),t.maxPageSize=e.maxPageSize),e.returnRepresentation&&(o.boolParameterCheck(e.returnRepresentation,"DynamicsWebApi.setConfig","config.returnRepresentation"),t.returnRepresentation=e.returnRepresentation),e.useEntityNames&&(o.boolParameterCheck(e.useEntityNames,"DynamicsWebApi.setConfig","config.useEntityNames"),t.useEntityNames=e.useEntityNames)},this.setConfig(e);var n=function(e,n,r){return new Promise(function(a,i){s.makeRequest(e,n,r,t,a,i)})};this.createRequest=function(e){return o.parameterCheck(e,"DynamicsWebApi.create","request"),n("POST",e,"create").then(function(e){return e.data?e.data:/[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}/i.exec(e.headers["OData-EntityId"]?e.headers["OData-EntityId"]:e.headers["odata-entityid"])[0]})},this.create=function(e,t,n,r){o.parameterCheck(e,"DynamicsWebApi.create","object"),o.stringParameterCheck(t,"DynamicsWebApi.create","collection"),n&&o.stringOrArrayParameterCheck(n,"DynamicsWebApi.create","prefer"),r&&o.arrayParameterCheck(r,"DynamicsWebApi.create","select");var a={collection:t,select:r,prefer:n,entity:e};return this.createRequest(a)},this.retrieveRequest=function(e){o.parameterCheck(e,"DynamicsWebApi.retrieve","request");var t=e.select;return n("GET",e,"retrieve").then(function(e){return null!=t&&1==t.length&&t[0].endsWith("/$ref")&&null!=e.data["@odata.id"]?i.convertToReferenceObject(e.data):e.data})},this.retrieve=function(e,t,n,r){o.stringParameterCheck(e,"DynamicsWebApi.retrieve","key"),e=o.keyParameterCheck(e,"DynamicsWebApi.retrieve","key"),o.stringParameterCheck(t,"DynamicsWebApi.retrieve","collection"),n&&n.length&&o.arrayParameterCheck(n,"DynamicsWebApi.retrieve","select"),r&&r.length&&o.stringOrArrayParameterCheck(r,"DynamicsWebApi.retrieve","expand");var a={collection:t,key:e,select:n,expand:r};return this.retrieveRequest(a)},this.updateRequest=function(e){o.parameterCheck(e,"DynamicsWebApi.update","request"),null==e.ifmatch&&(e.ifmatch="*");var t=e.collection.indexOf("EntityDefinitions")>-1?"PUT":"PATCH",r=e.ifmatch;return n(t,e,"update").then(function(e){return!e.data||e.data}).catch(function(e){if(r&&412==e.status)return!1;throw e})},this.update=function(e,t,n,r,a){o.stringParameterCheck(e,"DynamicsWebApi.update","key"),e=o.keyParameterCheck(e,"DynamicsWebApi.update","key"),o.parameterCheck(n,"DynamicsWebApi.update","object"),o.stringParameterCheck(t,"DynamicsWebApi.update","collection"),r&&o.stringOrArrayParameterCheck(r,"DynamicsWebApi.update","prefer"),a&&o.arrayParameterCheck(a,"DynamicsWebApi.update","select");var i={collection:t,key:e,select:a,prefer:r,entity:n};return this.updateRequest(i)},this.updateSingleProperty=function(e,t,r,a,i){o.stringParameterCheck(e,"DynamicsWebApi.updateSingleProperty","key"),e=o.keyParameterCheck(e,"DynamicsWebApi.updateSingleProperty","key"),o.parameterCheck(r,"DynamicsWebApi.updateSingleProperty","keyValuePair"),o.stringParameterCheck(t,"DynamicsWebApi.updateSingleProperty","collection");var s=Object.keys(r)[0],c=r[s];return a&&o.stringOrArrayParameterCheck(a,"DynamicsWebApi.updateSingleProperty","prefer"),i&&o.arrayParameterCheck(i,"DynamicsWebApi.updateSingleProperty","select"),n("PUT",{collection:t,key:e,select:i,prefer:a,navigationProperty:s,data:{value:c}},"updateSingleProperty").then(function(e){if(e.data)return e.data})},this.deleteRequest=function(e){o.parameterCheck(e,"DynamicsWebApi.delete","request");var t=e.ifmatch;return n("DELETE",e,"delete").then(function(){return!0}).catch(function(e){if(t&&412==e.status)return!1;throw e})},this.deleteRecord=function(e,t,r){return o.stringParameterCheck(t,"DynamicsWebApi.deleteRecord","collection"),null!=r&&o.stringParameterCheck(r,"DynamicsWebApi.deleteRecord","propertyName"),n("DELETE",{navigationProperty:r,collection:t,key:e},"deleteRecord").then(function(){})},this.upsertRequest=function(e){o.parameterCheck(e,"DynamicsWebApi.upsert","request");var t=e.ifnonematch,r=e.ifmatch;return n("PATCH",e,"upsert").then(function(e){if(e.headers["OData-EntityId"]||e.headers["odata-entityid"]){return/[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}/i.exec(e.headers["OData-EntityId"]?e.headers["OData-EntityId"]:e.headers["odata-entityid"])[0]}if(e.data)return e.data}).catch(function(e){if(!(t&&412==e.status||r&&404==e.status))throw e})},this.upsert=function(e,t,n,r,a){o.stringParameterCheck(e,"DynamicsWebApi.upsert","key"),e=o.keyParameterCheck(e,"DynamicsWebApi.upsert","key"),o.parameterCheck(n,"DynamicsWebApi.upsert","object"),o.stringParameterCheck(t,"DynamicsWebApi.upsert","collection"),r&&o.stringOrArrayParameterCheck(r,"DynamicsWebApi.upsert","prefer"),a&&o.arrayParameterCheck(a,"DynamicsWebApi.upsert","select");var i={collection:t,key:e,select:a,prefer:r,entity:n};return this.upsertRequest(i)};var c=function(e,t){t&&(o.stringParameterCheck(t,"DynamicsWebApi.retrieveMultiple","nextPageLink"),e.url=t);var r=e.count;return n("GET",e,"retrieveMultiple").then(function(e){return r&&(e.data.oDataCount=e.data.oDataCount||0),e.data})};this.retrieveMultipleRequest=c;var u=function(e,t,n){var n=n||[];return c(e,t).then(function(t){return n=n.concat(t.value),t.oDataNextLink?u(e,t.oDataNextLink,n):{value:n}})};this.retrieveAllRequest=function(e){return u(e)},this.count=function(e,t){if(null==t||null!=t&&!t.length){return n("GET",{collection:e,navigationProperty:"$count"},"count").then(function(e){return e.data?parseInt(e.data):0})}return this.retrieveMultipleRequest({collection:e,filter:t,count:!0},null).then(function(e){return e.oDataCount?e.oDataCount:0})},this.countAll=function(e,t,n){return u({collection:e,filter:t,select:n}).then(function(e){return e&&e.value?e.value.length:0})},this.retrieveMultiple=function(e,t,n,r){return this.retrieveMultipleRequest({collection:e,select:t,filter:n},r)},this.retrieveAll=function(e,t,n){return u({collection:e,select:t,filter:n})};var l=function(e,t,r,s,c,u){o.stringParameterCheck(t,"DynamicsWebApi.executeFetchXml","fetchXml"),s=s||1,o.numberParameterCheck(s,"DynamicsWebApi.executeFetchXml","pageNumber");var l='$1 page="'+s+'"';return null!=c&&(o.stringParameterCheck(c,"DynamicsWebApi.executeFetchXml","pagingCookie"),l+=' paging-cookie="'+c+'"'),t=t.replace(/^(<fetch[\w\d\s'"=]+)/,l),n("GET",{collection:e,includeAnnotations:r,impersonate:u,fetchXml:t,impersonate:u,includeAnnotations:r},"executeFetchXml").then(function(e){return null!=e.data["@"+a.Prefer.Annotations.FetchXmlPagingCookie]&&(e.data.PagingInfo=i.getFetchXmlPagingCookie(e.data["@"+a.Prefer.Annotations.FetchXmlPagingCookie],s)),e.data})};this.fetch=l,this.executeFetchXml=l;var p=function(e,t,n,r,a,i,o){var o=o||[];return l(e,t,n,r,a,i).then(function(r){return o=o.concat(r.value),r.PagingInfo?p(e,t,n,r.PagingInfo.nextPage,r.PagingInfo.cookie,i,o):{value:o}})},f=function(e,t,n,r){return p(e,t,n,null,null,r)};this.fetchAll=f,this.executeFetchXmlAll=f,this.associate=function(e,t,r,a,i,s){return o.stringParameterCheck(a,"DynamicsWebApi.associate","relatedcollection"),o.stringParameterCheck(r,"DynamicsWebApi.associate","relationshipName"),t=o.keyParameterCheck(t,"DynamicsWebApi.associate","primaryKey"),i=o.keyParameterCheck(i,"DynamicsWebApi.associate","relatedKey"),n("POST",{_additionalUrl:r+"/$ref",collection:e,key:t,impersonate:s,data:{"@odata.id":a+"("+i+")"}},"associate").then(function(){})},this.disassociate=function(e,t,r,a,i){return o.stringParameterCheck(r,"DynamicsWebApi.disassociate","relationshipName"),a=o.keyParameterCheck(a,"DynamicsWebApi.disassociate","relatedId"),n("DELETE",{_additionalUrl:r+"("+a+")/$ref",collection:e,key:t,impersonate:i},"disassociate").then(function(){})},this.associateSingleValued=function(e,t,r,a,i,s){return i=o.keyParameterCheck(i,"DynamicsWebApi.associateSingleValued","relatedKey"),o.stringParameterCheck(r,"DynamicsWebApi.associateSingleValued","singleValuedNavigationPropertyName"),o.stringParameterCheck(a,"DynamicsWebApi.associateSingleValued","relatedcollection"),n("PUT",{_additionalUrl:r+"/$ref",collection:e,key:t,impersonate:s,data:{"@odata.id":a+"("+i+")"}},"associateSingleValued").then(function(){})},this.disassociateSingleValued=function(e,t,r,a){return o.stringParameterCheck(r,"DynamicsWebApi.disassociateSingleValued","singleValuedNavigationPropertyName"),n("DELETE",{_additionalUrl:r+"/$ref",key:t,collection:e,impersonate:a},"disassociateSingleValued").then(function(){})},this.executeUnboundFunction=function(e,t,n){return m(e,t,null,null,n,!0)},this.executeBoundFunction=function(e,t,n,r,a){return m(n,r,t,e,a)};var m=function(e,t,r,a,s,c){o.stringParameterCheck(e,"DynamicsWebApi.executeFunction","functionName");var u={_additionalUrl:e+i.buildFunctionParameters(t),_unboundRequest:c,key:a,collection:r,impersonate:s};return n("GET",u,"executeFunction").then(function(e){if(e.data)return e.data})};this.executeUnboundAction=function(e,t,n){return h(e,t,null,null,n,!0)},this.executeBoundAction=function(e,t,n,r,a){return h(n,r,t,e,a)};var h=function(e,t,r,a,i,s){return o.stringParameterCheck(e,"DynamicsWebApi.executeAction","actionName"),n("POST",{_additionalUrl:e,_unboundRequest:s,collection:r,key:a,impersonate:i,data:t},"executeAction").then(function(e){if(e.data)return e.data})};this.initializeInstance=function(e){return e||(e=t),new r(e)}}var a=n(0),i=n(3),o=n(1),s=n(4);String.prototype.endsWith&&String.prototype.startsWith||n(2),r.prototype.utility={getCollectionName:s.getCollectionName},e.exports=r},function(e,t){e.exports=function(e,t){var n;return"string"==typeof t&&(n=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:Z|[-+]\d{2}:\d{2})$/.exec(t))?new Date(Date.UTC(+n[1],+n[2]-1,+n[3],+n[4],+n[5],+n[6])):t}},function(e,t,n){function r(e){var t=e.substr(0,e.indexOf("\r\n")),n=e.split(t);n.shift(),n.pop();for(var r=[],a=0;a<n.length;a++){var i=n[a],o=i.substring(i.indexOf("{"),i.lastIndexOf("}")+1);r.push(JSON.parse(o,s))}return r}function a(e,t){var n=null;if(-1!==e.indexOf("@")){var r=e.split("@");switch(r[1]){case"odata.context":n="oDataContext";break;case"odata.count":n="oDataCount",t=null!=t?parseInt(t):0;break;case"odata.nextLink":n="oDataNextLink";break;case o.Prefer.Annotations.FormattedValue:n=r[0]+"_Formatted";break;case o.Prefer.Annotations.AssociatedNavigationProperty:n=r[0]+"_NavigationProperty";break;case o.Prefer.Annotations.LookupLogicalName:n=r[0]+"_LogicalName"}}return[n,t]}function i(e){for(var t=Object.keys(e),n=0;n<t.length;n++){var r=t[n];if(null!=e[r]&&e[r].constructor===Array)for(var o=0;o<e[r].length;o++)e[r][o]=i(e[r][o]);var s=a(r,e[r]);if(s[0]&&(e[s[0]]=s[1]),-1!==r.indexOf("_x002e_")){var c=r.split("_x002e_");if(e.hasOwnProperty(c[0])){if("object"!=typeof e[c[0]]||"object"==typeof e[c[0]]&&!e[c[0]].hasOwnProperty("_dwaType"))throw new Error("The alias name of the linked entity must be unique!")}else e[c[0]]={_dwaType:"alias"};e[c[0]][c[1]]=e[r],s=a(c[1],e[r]),s[0]&&(e[c[0]][s[0]]=s[1])}}return e}var o=n(0),s=n(6);String.prototype.endsWith&&String.prototype.startsWith||n(2),e.exports=function(e){var t=null;return e.length&&(t=t=e.indexOf("--batchresponse_")>-1?r(e)[0]:JSON.parse(e,s),t=i(t)),t}},function(e,t){e.exports=function(e){var t={};if(!e)return t;for(var n=e.split("\r\n"),r=0,a=n.length;r<a;r++){var i=n[r],o=i.indexOf(": ");o>0&&(t[i.substring(0,o)]=i.substring(o+2))}return t}},function(e,t,n){var r=n(7),a=n(8),i=function(e,t,n,i,o,s,c){var u=new XMLHttpRequest;u.open(e,t,c);for(var l in i)u.setRequestHeader(l,i[l]);u.onreadystatechange=function(){if(4===u.readyState){switch(u.status){case 200:case 201:case 204:case 304:var e=r(u.responseText),t={data:e,headers:a(u.getAllResponseHeaders()),status:u.status};o(t);break;default:var n;try{n=JSON.parse(u.response).error}catch(e){n=u.response.length>0?{message:u.response}:{message:"Unexpected Error"}}n.status=u.status,n.statusText=u.statusText,s(n)}u=null}},u.onerror=function(){s({message:"Network Error"}),u=null},u.ontimeout=function(e){s({message:"Request Timed Out"}),u=null},n?u.send(n):u.send()};e.exports=i},function(e,t,n){function r(e,t,n,a,s){var c={},u=[];if(a=null!=a?a:"&",e){if(e.navigationProperty&&(i.stringParameterCheck(e.navigationProperty,"DynamicsWebApi."+t,"request.navigationProperty"),n+="/"+e.navigationProperty),null!=e.select&&e.select.length&&(i.arrayParameterCheck(e.select,"DynamicsWebApi."+t,"request.select"),"retrieve"==t&&1==e.select.length&&e.select[0].endsWith("/$ref")?n+="/"+e.select[0]:(e.select[0].startsWith("/")&&"retrieve"==t&&(null==e.navigationProperty?n+=e.select.shift():e.select.shift()),e.select.length&&u.push("$select="+e.select.join(",")))),e.filter){i.stringParameterCheck(e.filter,"DynamicsWebApi."+t,"request.filter");var l=/[^"']{([\w\d]{8}[-]?(?:[\w\d]{4}[-]?){3}[\w\d]{12})}(?:[^"']|$)/g,p=e.filter.replace(l," $1 ").trim();u.push("$filter="+encodeURIComponent(p))}e.savedQuery&&u.push("savedQuery="+i.guidParameterCheck(e.savedQuery,"DynamicsWebApi."+t,"request.savedQuery")),e.userQuery&&u.push("userQuery="+i.guidParameterCheck(e.userQuery,"DynamicsWebApi."+t,"request.userQuery")),e.count&&(i.boolParameterCheck(e.count,"DynamicsWebApi."+t,"request.count"),u.push("$count="+e.count)),e.top&&e.top>0&&(i.numberParameterCheck(e.top,"DynamicsWebApi."+t,"request.top"),u.push("$top="+e.top)),null!=e.orderBy&&e.orderBy.length&&(i.arrayParameterCheck(e.orderBy,"DynamicsWebApi."+t,"request.orderBy"),u.push("$orderby="+e.orderBy.join(",")));var f=o(e,t,s);if(f.length&&(c.Prefer=f),null!=e.ifmatch&&null!=e.ifnonematch)throw new Error("DynamicsWebApi."+t+". Either one of request.ifmatch or request.ifnonematch parameters should be used in a call, not both.");if(e.ifmatch&&(i.stringParameterCheck(e.ifmatch,"DynamicsWebApi."+t,"request.ifmatch"),c["If-Match"]=e.ifmatch),e.ifnonematch&&(i.stringParameterCheck(e.ifnonematch,"DynamicsWebApi."+t,"request.ifnonematch"),c["If-None-Match"]=e.ifnonematch),e.impersonate&&(i.stringParameterCheck(e.impersonate,"DynamicsWebApi."+t,"request.impersonate"),c.MSCRMCallerID=i.guidParameterCheck(e.impersonate,"DynamicsWebApi."+t,"request.impersonate")),e.token&&(i.stringParameterCheck(e.token,"DynamicsWebApi."+t,"request.token"),c.Authorization="Bearer "+e.token),e.duplicateDetection&&(i.boolParameterCheck(e.duplicateDetection,"DynamicsWebApi."+t,"request.duplicateDetection"),c["MSCRM.SuppressDuplicateDetection"]="false"),e.entity&&i.parameterCheck(e.entity,"DynamicsWebApi."+t,"request.entity"),e.data&&i.parameterCheck(e.data,"DynamicsWebApi."+t,"request.data"),e.noCache&&(i.boolParameterCheck(e.noCache,"DynamicsWebApi."+t,"request.noCache"),c["Cache-Control"]="no-cache"),e.mergeLabels&&(i.boolParameterCheck(e.mergeLabels,"DynamicsWebApi."+t,"request.mergeLabels"),c["MSCRM.MergeLabels"]="true"),e.expand&&e.expand.length)if(i.stringOrArrayParameterCheck(e.expand,"DynamicsWebApi."+t,"request.expand"),"string"==typeof e.expand)u.push("$expand="+e.expand);else{for(var m=[],h=0;h<e.expand.length;h++)if(e.expand[h].property){var d=r(e.expand[h],t+" $expand",null,";"),y=d.query;y&&y.length&&(y="("+y+")"),m.push(e.expand[h].property+y)}m.length&&u.push("$expand="+m.join(","))}}return{url:n,query:u.join(a),headers:c}}function a(e,t,n){var a,o="";return e.url?(i.stringParameterCheck(e.url,"DynamicsWebApi."+t,"request.url"),o=e.url.replace(n.webApiUrl,""),a=r(e,t,o,"&",n)):(e._unboundRequest||e.collection||i.parameterCheck(e.collection,"DynamicsWebApi."+t,"request.collection"),e.collection&&(i.stringParameterCheck(e.collection,"DynamicsWebApi."+t,"request.collection"),o=e.collection,e.key?e.key=i.keyParameterCheck(e.key,"DynamicsWebApi."+t,"request.key"):e.id&&(e.key=i.guidParameterCheck(e.id,"DynamicsWebApi."+t,"request.id")),e.key&&(o+="("+e.key+")")),e._additionalUrl&&(o&&(o+="/"),o+=e._additionalUrl),a=r(e,t,o,"&",n),e.fetchXml?(i.stringParameterCheck(e.fetchXml,"DynamicsWebApi."+t,"request.fetchXml"),a.url+="?fetchXml="+encodeURIComponent(e.fetchXml)):a.query&&(a.url+="?"+a.query)),e.hasOwnProperty("async")&&null!=e.async?(i.boolParameterCheck(e.async,"DynamicsWebApi."+t,"request.async"),a.async=e.async):a.async=!0,{url:a.url,headers:a.headers,async:a.async}}var i=(n(0),n(1)),o=n(12),s={convertRequestOptions:r,convertRequest:a};e.exports=s},function(e,t){e.exports=function(e){if(e){for(var t=Object.keys(e),n="",r="",a=1;a<=t.length;a++){var i=t[a-1],o=e[i];a>1&&(n+=",",r+="&"),n+=i+"=@p"+a,r+="@p"+a+"="+("string"==typeof o?"'"+o+"'":o)}return"("+n+")?"+r}return"()"}},function(e,t,n){var r=n(0),a=n(1);e.exports=function(e,t,n){var i=e.returnRepresentation,o=e.includeAnnotations,s=e.maxPageSize;if(e.prefer&&e.prefer.length){a.stringOrArrayParameterCheck(e.prefer,"DynamicsWebApi."+t,"request.prefer");var c=e.prefer;"string"==typeof c&&(c=c.split(","));for(var u in c){var l=c[u].trim();l===r.Prefer.ReturnRepresentation?i=!0:l.startsWith("odata.include-annotations=")?o=l.replace("odata.include-annotations=","").replace(/"/g,""):l.startsWith("odata.maxpagesize=")&&(s=l.replace("odata.maxpagesize=","").replace(/"/g,""))}}n&&(null==i&&(i=n.returnRepresentation),o=o||n.includeAnnotations,s=s||n.maxPageSize);var c=[];return i&&(a.boolParameterCheck(i,"DynamicsWebApi."+t,"request.returnRepresentation"),c.push(r.Prefer.ReturnRepresentation)),o&&(a.stringParameterCheck(o,"DynamicsWebApi."+t,"request.includeAnnotations"),c.push('odata.include-annotations="'+o+'"')),s&&s>0&&(a.numberParameterCheck(s,"DynamicsWebApi."+t,"request.maxPageSize"),c.push("odata.maxpagesize="+s)),c.join(",")}},function(e,t){e.exports=function(e){var t=/\/(\w+)\(([0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12})/i.exec(e["@odata.id"]);return{id:t[2],collection:t[1],oDataContext:e["@odata.context"]}}},function(e,t){e.exports=function(e,t){e=e||"",t=t||1,e=unescape(unescape(e));var n=/pagingcookie="(<cookie page="(\d+)".+<\/cookie>)/.exec(e);if(null!=n){var r=parseInt(n[2]);return{cookie:n[1].replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\"/g,"'").replace(/\'/g,"&quot;"),page:r,nextPage:r+1}}return{cookie:"",page:t,nextPage:t+1}}}])});
/*! dynamics-web-api v1.4.3 (c) 2018 Aleksandr Rogov */
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("DynamicsWebApi",[],t):"object"==typeof exports?exports.DynamicsWebApi=t():e.DynamicsWebApi=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=5)}([function(e,t){var n={Types:{ResponseBase:function(){this.oDataContext=""},Response:function(){n.Types.ResponseBase.call(this),this.value={}},ReferenceResponse:function(){n.Types.ResponseBase.call(this),this.id="",this.collection=""},MultipleResponse:function(){n.Types.ResponseBase.call(this),this.oDataNextLink="",this.oDataCount=0,this.value=[]},FetchXmlResponse:function(){n.Types.ResponseBase.call(this),this.value=[],this.PagingInfo={cookie:"",page:0,nextPage:1}}},Prefer:{ReturnRepresentation:"return=representation",Annotations:{AssociatedNavigationProperty:"Microsoft.Dynamics.CRM.associatednavigationproperty",LookupLogicalName:"Microsoft.Dynamics.CRM.lookuplogicalname",All:"*",FormattedValue:"OData.Community.Display.V1.FormattedValue",FetchXmlPagingCookie:"Microsoft.Dynamics.CRM.fetchxmlpagingcookie"}}};e.exports=n},function(e,t){function n(e,t,n){throw new Error(n?e+" requires the "+t+" parameter to be of type "+n:e+" requires the "+t+" parameter.")}var r={handleErrorResponse:function(e){throw new Error("Error: "+e.status+": "+e.message)},parameterCheck:function(e,t,r,i){void 0!==e&&null!==e&&""!=e||n(t,r,i)},stringParameterCheck:function(e,t,r){"string"!=typeof e&&n(t,r,"String")},arrayParameterCheck:function(e,t,r){e.constructor!==Array&&n(t,r,"Array")},stringOrArrayParameterCheck:function(e,t,r){e.constructor!==Array&&"string"!=typeof e&&n(t,r,"String or Array")},numberParameterCheck:function(e,t,r){if("number"!=typeof e){if("string"==typeof e&&e&&!isNaN(parseInt(e)))return;n(t,r,"Number")}},boolParameterCheck:function(e,t,r){"boolean"!=typeof e&&n(t,r,"Boolean")},guidParameterCheck:function(e,t,r){try{return/[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}/i.exec(e)[0]}catch(e){n(t,r,"GUID String")}},keyParameterCheck:function(e,t,i){try{r.stringParameterCheck(e,t,i);var a=/[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}/i.exec(e);if(a)return a[0];var o=e.split(",");if(o.length)for(var s=0;s<o.length;s++)o[s]=o[s].trim(),/^[\w\d\_]+\='[^\'\r\n]+'$/i.exec(o[s])[0];return o.join(",")}catch(e){n(t,i,"String representing GUID or Alternate Key")}},callbackParameterCheck:function(e,t,r){"function"!=typeof e&&n(t,r,"Function")}};e.exports=r},function(e,t){String.prototype.endsWith=function(e,t){var n=this.toString();("number"!=typeof t||!isFinite(t)||Math.floor(t)!==t||t>n.length)&&(t=n.length),t-=e.length;var r=n.lastIndexOf(e,t);return-1!==r&&r===t},String.prototype.startsWith=function(e,t){return t=t||0,this.substr(t,e.length)===e}},function(e,t,n){function r(e){return void 0===e||"unknown"==typeof e||null==e}function i(){var e=(new Date).getTime();return"undefined"!=typeof performance&&"function"==typeof performance.now&&(e+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var n=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"===t?n:3&n|8).toString(16)})}function a(){if("undefined"!=typeof GetGlobalContext)return GetGlobalContext();if("undefined"!=typeof Xrm){if(!r(Xrm.Utility)&&!r(Xrm.Utility.getGlobalContext))return Xrm.Utility.getGlobalContext();if(!r(Xrm.Page)&&!r(Xrm.Page.context))return Xrm.Page.context}throw new Error("Xrm Context is not available. In most cases, it can be resolved by adding a reference to a ClientGlobalContext.js.aspx. Please refer to MSDN documentation for more details.")}function o(){var e=a();if(e){var t=e.getClientUrl();return t.match(/\/$/)&&(t=t.substring(0,t.length-1)),t}return""}function s(e){return o()+"/api/data/v"+e+"/"}function c(){return"undefined"!=typeof Xrm?Xrm.Internal:null}var u={buildFunctionParameters:n(11),getFetchXmlPagingCookie:n(14),convertToReferenceObject:n(13),isNull:r,generateUUID:i,getXrmContext:a,getXrmInternal:c,getClientUrl:o,initWebApiUrl:s};e.exports=u},function(e,t,n){function r(e){var t=m.getXrmInternal();if(!m.isNull(t)){var n=t.getEntitySetName(e);return n||e}var n=null;if(!m.isNull(p)&&(n=p[e],m.isNull(n)))for(var r in p)if(p[r]==e)return e;return n}function i(e){return e.Accept="application/json",e["OData-MaxVersion"]="4.0",e["OData-Version"]="4.0",e["Content-Type"]="application/json; charset=utf-8",e}function a(e,t){var n;return e&&(n=JSON.stringify(e,function(e,n){if(e.endsWith("@odata.bind")||e.endsWith("@odata.id")){if("string"==typeof n){if(/\(\{[\w\d-]+\}\)/g.test(n)&&(n=n.replace(/(.+)\(\{([\w\d-]+)\}\)/g,"$1($2)")),t.useEntityNames){var i=/([\w_]+)(\([\d\w-]+\))$/,a=i.exec(n);if(a.length>2){var o=r(a[1]);m.isNull(o)||(n=n.replace(i,o+"$2"))}}n.startsWith(t.webApiUrl)||(n=t.webApiUrl+n.replace(/^\\/,""))}}else(e.startsWith("oData")||e.endsWith("_Formatted")||e.endsWith("_NavigationProperty")||e.endsWith("_LogicalName"))&&(n=void 0);return n}),n=n.replace(/[\u007F-\uFFFF]/g,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).substr(-4)})),n}function o(e,t,r,o,s,c,u,l){s||(s={}),s=i(s);var p=a(o,r);if(t.length>2e3){var f="dwa_batch_"+m.generateUUID(),y=[];y.push("--"+f),y.push("Content-Type: application/http"),y.push("Content-Transfer-Encoding: binary\n"),y.push(e+" "+r.webApiUrl+t+" HTTP/1.1");for(var h in s)y.push(h+": "+s[h]),delete s[h];y.push("\n--"+f+"--"),p=y.join("\n"),s=i(s),s["Content-Type"]="multipart/mixed;boundary="+f,t="$batch",e="POST"}r.impersonate&&!s.MSCRMCallerID&&(s.MSCRMCallerID=r.impersonate);var d;d=n(9);var g=function(n){n&&(s||(s={}),s.Authorization="Bearer "+n.accessToken),d(e,r.webApiUrl+t,p,s,c,u,l)};r.onTokenRefresh&&(!s||s&&!s.Authorization)?r.onTokenRefresh(g):g()}function s(e,t,n,i){var a=function(t){p={};for(var i=0;i<t.data.value.length;i++)p[t.data.value[i].LogicalName]=t.data.value[i].LogicalCollectionName;n(r(e))},s=function(e){i({message:"Unable to fetch EntityDefinitions. Error: "+e.message})},c=f.convertRequest({collection:"EntityDefinitions",select:["LogicalCollectionName","LogicalName"],noCache:!0},"retrieveMultiple",t);o("GET",c.url,t,null,c.headers,a,s,c.async)}function c(e){return["EntityDefinitions","$metadata","RelationshipDefinitions","GlobalOptionSetDefinitions","ManagedPropertyDefinitions"].indexOf(e)>-1}function u(e,t,n,i){if(c(e)||m.isNull(e))return void n(e);if(e=e.toLowerCase(),!t.useEntityNames)return void n(e);try{var a=r(e);m.isNull(a)?s(e,t,n,i):n(a)}catch(e){i({message:"Unable to fetch Collection Names. Error: "+e.message})}}function l(e,t,n,r,i,a){var s=function(s){t.collection=s;var c=f.convertRequest(t,n,r);o(e,c.url,r,t.data||t.entity,c.headers,i,a,c.async)};u(t.collection,r,s,a)}var p,m=(n(0),n(3)),f=n(10);e.exports={sendRequest:o,makeRequest:l,getCollectionName:r}},function(e,t,n){function r(e){var t={webApiVersion:"8.0",webApiUrl:null,impersonate:null,onTokenRefresh:null,includeAnnotations:null,maxPageSize:null,returnRepresentation:null};e||(e=t),this.setConfig=function(e){e.webApiVersion&&(o.stringParameterCheck(e.webApiVersion,"DynamicsWebApi.setConfig","config.webApiVersion"),t.webApiVersion=e.webApiVersion),e.webApiUrl?(o.stringParameterCheck(e.webApiUrl,"DynamicsWebApi.setConfig","config.webApiUrl"),t.webApiUrl=e.webApiUrl):t.webApiUrl=a.initWebApiUrl(t.webApiVersion),e.impersonate&&(t.impersonate=o.guidParameterCheck(e.impersonate,"DynamicsWebApi.setConfig","config.impersonate")),e.onTokenRefresh&&(o.callbackParameterCheck(e.onTokenRefresh,"DynamicsWebApi.setConfig","config.onTokenRefresh"),t.onTokenRefresh=e.onTokenRefresh),e.includeAnnotations&&(o.stringParameterCheck(e.includeAnnotations,"DynamicsWebApi.setConfig","config.includeAnnotations"),t.includeAnnotations=e.includeAnnotations),e.maxPageSize&&(o.numberParameterCheck(e.maxPageSize,"DynamicsWebApi.setConfig","config.maxPageSize"),t.maxPageSize=e.maxPageSize),e.returnRepresentation&&(o.boolParameterCheck(e.returnRepresentation,"DynamicsWebApi.setConfig","config.returnRepresentation"),t.returnRepresentation=e.returnRepresentation),e.useEntityNames&&(o.boolParameterCheck(e.useEntityNames,"DynamicsWebApi.setConfig","config.useEntityNames"),t.useEntityNames=e.useEntityNames)},this.setConfig(e);var n=function(e,n,r){return new Promise(function(i,a){s.makeRequest(e,n,r,t,i,a)})};this.createRequest=function(e){return o.parameterCheck(e,"DynamicsWebApi.create","request"),n("POST",e,"create").then(function(e){return e.data?e.data:/([0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12})\)$/i.exec(e.headers["OData-EntityId"]?e.headers["OData-EntityId"]:e.headers["odata-entityid"])[1]})},this.create=function(e,t,n,r){o.parameterCheck(e,"DynamicsWebApi.create","object"),o.stringParameterCheck(t,"DynamicsWebApi.create","collection"),n&&o.stringOrArrayParameterCheck(n,"DynamicsWebApi.create","prefer"),r&&o.arrayParameterCheck(r,"DynamicsWebApi.create","select");var i={collection:t,select:r,prefer:n,entity:e};return this.createRequest(i)},this.retrieveRequest=function(e){o.parameterCheck(e,"DynamicsWebApi.retrieve","request");var t=e.select;return n("GET",e,"retrieve").then(function(e){return null!=t&&1==t.length&&t[0].endsWith("/$ref")&&null!=e.data["@odata.id"]?a.convertToReferenceObject(e.data):e.data})},this.retrieve=function(e,t,n,r){o.stringParameterCheck(e,"DynamicsWebApi.retrieve","key"),e=o.keyParameterCheck(e,"DynamicsWebApi.retrieve","key"),o.stringParameterCheck(t,"DynamicsWebApi.retrieve","collection"),n&&n.length&&o.arrayParameterCheck(n,"DynamicsWebApi.retrieve","select"),r&&r.length&&o.stringOrArrayParameterCheck(r,"DynamicsWebApi.retrieve","expand");var i={collection:t,key:e,select:n,expand:r};return this.retrieveRequest(i)},this.updateRequest=function(e){o.parameterCheck(e,"DynamicsWebApi.update","request"),null==e.ifmatch&&(e.ifmatch="*");var t=e.collection.indexOf("EntityDefinitions")>-1?"PUT":"PATCH",r=e.ifmatch;return n(t,e,"update").then(function(e){return!e.data||e.data}).catch(function(e){if(r&&412==e.status)return!1;throw e})},this.update=function(e,t,n,r,i){o.stringParameterCheck(e,"DynamicsWebApi.update","key"),e=o.keyParameterCheck(e,"DynamicsWebApi.update","key"),o.parameterCheck(n,"DynamicsWebApi.update","object"),o.stringParameterCheck(t,"DynamicsWebApi.update","collection"),r&&o.stringOrArrayParameterCheck(r,"DynamicsWebApi.update","prefer"),i&&o.arrayParameterCheck(i,"DynamicsWebApi.update","select");var a={collection:t,key:e,select:i,prefer:r,entity:n};return this.updateRequest(a)},this.updateSingleProperty=function(e,t,r,i,a){o.stringParameterCheck(e,"DynamicsWebApi.updateSingleProperty","key"),e=o.keyParameterCheck(e,"DynamicsWebApi.updateSingleProperty","key"),o.parameterCheck(r,"DynamicsWebApi.updateSingleProperty","keyValuePair"),o.stringParameterCheck(t,"DynamicsWebApi.updateSingleProperty","collection");var s=Object.keys(r)[0],c=r[s];return i&&o.stringOrArrayParameterCheck(i,"DynamicsWebApi.updateSingleProperty","prefer"),a&&o.arrayParameterCheck(a,"DynamicsWebApi.updateSingleProperty","select"),n("PUT",{collection:t,key:e,select:a,prefer:i,navigationProperty:s,data:{value:c}},"updateSingleProperty").then(function(e){if(e.data)return e.data})},this.deleteRequest=function(e){o.parameterCheck(e,"DynamicsWebApi.delete","request");var t=e.ifmatch;return n("DELETE",e,"delete").then(function(){return!0}).catch(function(e){if(t&&412==e.status)return!1;throw e})},this.deleteRecord=function(e,t,r){return o.stringParameterCheck(t,"DynamicsWebApi.deleteRecord","collection"),null!=r&&o.stringParameterCheck(r,"DynamicsWebApi.deleteRecord","propertyName"),n("DELETE",{navigationProperty:r,collection:t,key:e},"deleteRecord").then(function(){})},this.upsertRequest=function(e){o.parameterCheck(e,"DynamicsWebApi.upsert","request");var t=e.ifnonematch,r=e.ifmatch;return n("PATCH",e,"upsert").then(function(e){if(e.headers["OData-EntityId"]||e.headers["odata-entityid"]){return/[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}/i.exec(e.headers["OData-EntityId"]?e.headers["OData-EntityId"]:e.headers["odata-entityid"])[0]}if(e.data)return e.data}).catch(function(e){if(!(t&&412==e.status||r&&404==e.status))throw e})},this.upsert=function(e,t,n,r,i){o.stringParameterCheck(e,"DynamicsWebApi.upsert","key"),e=o.keyParameterCheck(e,"DynamicsWebApi.upsert","key"),o.parameterCheck(n,"DynamicsWebApi.upsert","object"),o.stringParameterCheck(t,"DynamicsWebApi.upsert","collection"),r&&o.stringOrArrayParameterCheck(r,"DynamicsWebApi.upsert","prefer"),i&&o.arrayParameterCheck(i,"DynamicsWebApi.upsert","select");var a={collection:t,key:e,select:i,prefer:r,entity:n};return this.upsertRequest(a)};var c=function(e,t){t&&(o.stringParameterCheck(t,"DynamicsWebApi.retrieveMultiple","nextPageLink"),e.url=t);var r=e.count;return n("GET",e,"retrieveMultiple").then(function(e){return r&&(e.data.oDataCount=e.data.oDataCount||0),e.data})};this.retrieveMultipleRequest=c;var u=function(e,t,n){var n=n||[];return c(e,t).then(function(t){return n=n.concat(t.value),t.oDataNextLink?u(e,t.oDataNextLink,n):{value:n}})};this.retrieveAllRequest=function(e){return u(e)},this.count=function(e,t){if(null==t||null!=t&&!t.length){return n("GET",{collection:e,navigationProperty:"$count"},"count").then(function(e){return e.data?parseInt(e.data):0})}return this.retrieveMultipleRequest({collection:e,filter:t,count:!0},null).then(function(e){return e.oDataCount?e.oDataCount:0})},this.countAll=function(e,t,n){return u({collection:e,filter:t,select:n}).then(function(e){return e&&e.value?e.value.length:0})},this.retrieveMultiple=function(e,t,n,r){return this.retrieveMultipleRequest({collection:e,select:t,filter:n},r)},this.retrieveAll=function(e,t,n){return u({collection:e,select:t,filter:n})};var l=function(e,t,r,s,c,u){o.stringParameterCheck(t,"DynamicsWebApi.executeFetchXml","fetchXml"),s=s||1,o.numberParameterCheck(s,"DynamicsWebApi.executeFetchXml","pageNumber");var l='$1 page="'+s+'"';return null!=c&&(o.stringParameterCheck(c,"DynamicsWebApi.executeFetchXml","pagingCookie"),l+=' paging-cookie="'+c+'"'),t=t.replace(/^(<fetch[\w\d\s'"=]+)/,l),n("GET",{collection:e,includeAnnotations:r,impersonate:u,fetchXml:t,impersonate:u,includeAnnotations:r},"executeFetchXml").then(function(e){return null!=e.data["@"+i.Prefer.Annotations.FetchXmlPagingCookie]&&(e.data.PagingInfo=a.getFetchXmlPagingCookie(e.data["@"+i.Prefer.Annotations.FetchXmlPagingCookie],s)),e.data})};this.fetch=l,this.executeFetchXml=l;var p=function(e,t,n,r,i,a,o){var o=o||[];return l(e,t,n,r,i,a).then(function(r){return o=o.concat(r.value),r.PagingInfo?p(e,t,n,r.PagingInfo.nextPage,r.PagingInfo.cookie,a,o):{value:o}})},m=function(e,t,n,r){return p(e,t,n,null,null,r)};this.fetchAll=m,this.executeFetchXmlAll=m,this.associate=function(e,t,r,i,a,s){return o.stringParameterCheck(i,"DynamicsWebApi.associate","relatedcollection"),o.stringParameterCheck(r,"DynamicsWebApi.associate","relationshipName"),t=o.keyParameterCheck(t,"DynamicsWebApi.associate","primaryKey"),a=o.keyParameterCheck(a,"DynamicsWebApi.associate","relatedKey"),n("POST",{_additionalUrl:r+"/$ref",collection:e,key:t,impersonate:s,data:{"@odata.id":i+"("+a+")"}},"associate").then(function(){})},this.disassociate=function(e,t,r,i,a){return o.stringParameterCheck(r,"DynamicsWebApi.disassociate","relationshipName"),i=o.keyParameterCheck(i,"DynamicsWebApi.disassociate","relatedId"),n("DELETE",{_additionalUrl:r+"("+i+")/$ref",collection:e,key:t,impersonate:a},"disassociate").then(function(){})},this.associateSingleValued=function(e,t,r,i,a,s){return a=o.keyParameterCheck(a,"DynamicsWebApi.associateSingleValued","relatedKey"),o.stringParameterCheck(r,"DynamicsWebApi.associateSingleValued","singleValuedNavigationPropertyName"),o.stringParameterCheck(i,"DynamicsWebApi.associateSingleValued","relatedcollection"),n("PUT",{_additionalUrl:r+"/$ref",collection:e,key:t,impersonate:s,data:{"@odata.id":i+"("+a+")"}},"associateSingleValued").then(function(){})},this.disassociateSingleValued=function(e,t,r,i){return o.stringParameterCheck(r,"DynamicsWebApi.disassociateSingleValued","singleValuedNavigationPropertyName"),n("DELETE",{_additionalUrl:r+"/$ref",key:t,collection:e,impersonate:i},"disassociateSingleValued").then(function(){})},this.executeUnboundFunction=function(e,t,n){return f(e,t,null,null,n,!0)},this.executeBoundFunction=function(e,t,n,r,i){return f(n,r,t,e,i)};var f=function(e,t,r,i,s,c){o.stringParameterCheck(e,"DynamicsWebApi.executeFunction","functionName");var u={_additionalUrl:e+a.buildFunctionParameters(t),_unboundRequest:c,key:i,collection:r,impersonate:s};return n("GET",u,"executeFunction").then(function(e){if(e.data)return e.data})};this.executeUnboundAction=function(e,t,n){return y(e,t,null,null,n,!0)},this.executeBoundAction=function(e,t,n,r,i){return y(n,r,t,e,i)};var y=function(e,t,r,i,a,s){return o.stringParameterCheck(e,"DynamicsWebApi.executeAction","actionName"),n("POST",{_additionalUrl:e,_unboundRequest:s,collection:r,key:i,impersonate:a,data:t},"executeAction").then(function(e){if(e.data)return e.data})};this.createEntity=function(e){o.parameterCheck(e,"DynamicsWebApi.createEntity","entityDefinition");var t={collection:"EntityDefinitions",entity:e};return this.createRequest(t)},this.updateEntity=function(e,t){o.parameterCheck(e,"DynamicsWebApi.updateEntity","entityDefinition"),o.guidParameterCheck(e.MetadataId,"DynamicsWebApi.updateEntity","entityDefinition.MetadataId");var n={collection:"EntityDefinitions",mergeLabels:t,key:e.MetadataId,entity:e};return this.updateRequest(n)},this.retrieveEntity=function(e,t,n){o.keyParameterCheck(e,"DynamicsWebApi.retrieveEntity","entityKey");var r={collection:"EntityDefinitions",key:e,select:t,expand:n};return this.retrieveRequest(r)},this.retrieveEntities=function(e,t){var n={collection:"EntityDefinitions",select:e,filter:t};return this.retrieveRequest(n)},this.createAttribute=function(e,t){o.keyParameterCheck(e,"DynamicsWebApi.createAttribute","entityKey"),o.parameterCheck(t,"DynamicsWebApi.createAttribute","attributeDefinition");var n={collection:"EntityDefinitions",key:e,entity:t,navigationProperty:"Attributes"};return this.createRequest(n)},this.updateAttribute=function(e,t,n,r){o.keyParameterCheck(e,"DynamicsWebApi.updateAttribute","entityKey"),o.parameterCheck(t,"DynamicsWebApi.updateAttribute","attributeDefinition"),o.guidParameterCheck(t.MetadataId,"DynamicsWebApi.updateAttribute","attributeDefinition.MetadataId"),n&&o.stringParameterCheck(n,"DynamicsWebApi.updateAttribute","attributeType");var i={collection:"EntityDefinitions",key:e,entity:t,navigationProperty:"Attributes",navigationPropertyKey:t.MetadataId,mergeLabels:r,metadataAttributeType:n};return this.updateRequest(i)},this.retrieveAttributes=function(e,t,n,r,i){o.keyParameterCheck(e,"DynamicsWebApi.retrieveAttributes","entityKey"),t&&o.stringParameterCheck(t,"DynamicsWebApi.retrieveAttributes","attributeType");var a={collection:"EntityDefinitions",key:e,navigationProperty:"Attributes",select:n,filter:r,expand:i,metadataAttributeType:t};return this.retrieveRequest(a)},this.retrieveAttribute=function(e,t,n,r,i){o.keyParameterCheck(e,"DynamicsWebApi.retrieveAttribute","entityKey"),o.keyParameterCheck(t,"DynamicsWebApi.retrieveAttribute","attributeKey"),n&&o.stringParameterCheck(n,"DynamicsWebApi.retrieveAttribute","attributeType");var a={collection:"EntityDefinitions",key:e,navigationProperty:"Attributes",select:r,expand:i,metadataAttributeType:n,navigationPropertyKey:t};return this.retrieveRequest(a)},this.initializeInstance=function(e){return e||(e=t),new r(e)}}var i=n(0),a=n(3),o=n(1),s=n(4);String.prototype.endsWith&&String.prototype.startsWith||n(2),r.prototype.utility={getCollectionName:s.getCollectionName},e.exports=r},function(e,t){e.exports=function(e,t){var n;return"string"==typeof t&&(n=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:Z|[-+]\d{2}:\d{2})$/.exec(t))?new Date(Date.UTC(+n[1],+n[2]-1,+n[3],+n[4],+n[5],+n[6])):t}},function(e,t,n){function r(e){var t=e.substr(0,e.indexOf("\r\n")),n=e.split(t);n.shift(),n.pop();for(var r=[],i=0;i<n.length;i++){var a=n[i],o=a.substring(a.indexOf("{"),a.lastIndexOf("}")+1);r.push(JSON.parse(o,s))}return r}function i(e,t){var n=null;if(-1!==e.indexOf("@")){var r=e.split("@");switch(r[1]){case"odata.context":n="oDataContext";break;case"odata.count":n="oDataCount",t=null!=t?parseInt(t):0;break;case"odata.nextLink":n="oDataNextLink";break;case o.Prefer.Annotations.FormattedValue:n=r[0]+"_Formatted";break;case o.Prefer.Annotations.AssociatedNavigationProperty:n=r[0]+"_NavigationProperty";break;case o.Prefer.Annotations.LookupLogicalName:n=r[0]+"_LogicalName"}}return[n,t]}function a(e){for(var t=Object.keys(e),n=0;n<t.length;n++){var r=t[n];if(null!=e[r]&&e[r].constructor===Array)for(var o=0;o<e[r].length;o++)e[r][o]=a(e[r][o]);var s=i(r,e[r]);if(s[0]&&(e[s[0]]=s[1]),-1!==r.indexOf("_x002e_")){var c=r.split("_x002e_");if(e.hasOwnProperty(c[0])){if("object"!=typeof e[c[0]]||"object"==typeof e[c[0]]&&!e[c[0]].hasOwnProperty("_dwaType"))throw new Error("The alias name of the linked entity must be unique!")}else e[c[0]]={_dwaType:"alias"};e[c[0]][c[1]]=e[r],s=i(c[1],e[r]),s[0]&&(e[c[0]][s[0]]=s[1])}}return e}var o=n(0),s=n(6);String.prototype.endsWith&&String.prototype.startsWith||n(2),e.exports=function(e){var t=null;return e.length&&(t=t=e.indexOf("--batchresponse_")>-1?r(e)[0]:JSON.parse(e,s),t=a(t)),t}},function(e,t){e.exports=function(e){var t={};if(!e)return t;for(var n=e.split("\r\n"),r=0,i=n.length;r<i;r++){var a=n[r],o=a.indexOf(": ");o>0&&(t[a.substring(0,o)]=a.substring(o+2))}return t}},function(e,t,n){var r=n(7),i=n(8),a=function(e,t,n,a,o,s,c){var u=new XMLHttpRequest;u.open(e,t,c);for(var l in a)u.setRequestHeader(l,a[l]);u.onreadystatechange=function(){if(4===u.readyState){switch(u.status){case 200:case 201:case 204:case 304:var e=r(u.responseText),t={data:e,headers:i(u.getAllResponseHeaders()),status:u.status};o(t);break;default:var n;try{n=JSON.parse(u.response).error}catch(e){n=u.response.length>0?{message:u.response}:{message:"Unexpected Error"}}n.status=u.status,n.statusText=u.statusText,s(n)}u=null}},u.onerror=function(){s({message:"Network Error"}),u=null},u.ontimeout=function(e){s({message:"Request Timed Out"}),u=null},n?u.send(n):u.send()};e.exports=a},function(e,t,n){function r(e,t,n,i,s){var c={},u=[];if(i=null!=i?i:"&",e){if(e.navigationProperty){if(a.stringParameterCheck(e.navigationProperty,"DynamicsWebApi."+t,"request.navigationProperty"),n+="/"+e.navigationProperty,e.navigationPropertyKey){n+="("+a.keyParameterCheck(e.navigationPropertyKey,"DynamicsWebApi."+t,"request.navigationPropertyKey")+")"}"Attributes"===e.navigationProperty&&e.metadataAttributeType&&(a.stringParameterCheck(e.metadataAttributeType,"DynamicsWebApi."+t,"request.metadataAttributeType"),n+="/"+e.metadataAttributeType)}if(null!=e.select&&e.select.length&&(a.arrayParameterCheck(e.select,"DynamicsWebApi."+t,"request.select"),"retrieve"==t&&1==e.select.length&&e.select[0].endsWith("/$ref")?n+="/"+e.select[0]:(e.select[0].startsWith("/")&&"retrieve"==t&&(null==e.navigationProperty?n+=e.select.shift():e.select.shift()),e.select.length&&u.push("$select="+e.select.join(",")))),e.filter){a.stringParameterCheck(e.filter,"DynamicsWebApi."+t,"request.filter");var l=/[^"']{([\w\d]{8}[-]?(?:[\w\d]{4}[-]?){3}[\w\d]{12})}(?:[^"']|$)/g,p=e.filter.replace(l," $1 ").trim();u.push("$filter="+encodeURIComponent(p))}e.savedQuery&&u.push("savedQuery="+a.guidParameterCheck(e.savedQuery,"DynamicsWebApi."+t,"request.savedQuery")),e.userQuery&&u.push("userQuery="+a.guidParameterCheck(e.userQuery,"DynamicsWebApi."+t,"request.userQuery")),e.count&&(a.boolParameterCheck(e.count,"DynamicsWebApi."+t,"request.count"),u.push("$count="+e.count)),e.top&&e.top>0&&(a.numberParameterCheck(e.top,"DynamicsWebApi."+t,"request.top"),u.push("$top="+e.top)),null!=e.orderBy&&e.orderBy.length&&(a.arrayParameterCheck(e.orderBy,"DynamicsWebApi."+t,"request.orderBy"),u.push("$orderby="+e.orderBy.join(",")));var m=o(e,t,s);if(m.length&&(c.Prefer=m),null!=e.ifmatch&&null!=e.ifnonematch)throw new Error("DynamicsWebApi."+t+". Either one of request.ifmatch or request.ifnonematch parameters should be used in a call, not both.");if(e.ifmatch&&(a.stringParameterCheck(e.ifmatch,"DynamicsWebApi."+t,"request.ifmatch"),c["If-Match"]=e.ifmatch),e.ifnonematch&&(a.stringParameterCheck(e.ifnonematch,"DynamicsWebApi."+t,"request.ifnonematch"),c["If-None-Match"]=e.ifnonematch),e.impersonate&&(a.stringParameterCheck(e.impersonate,"DynamicsWebApi."+t,"request.impersonate"),c.MSCRMCallerID=a.guidParameterCheck(e.impersonate,"DynamicsWebApi."+t,"request.impersonate")),e.token&&(a.stringParameterCheck(e.token,"DynamicsWebApi."+t,"request.token"),c.Authorization="Bearer "+e.token),e.duplicateDetection&&(a.boolParameterCheck(e.duplicateDetection,"DynamicsWebApi."+t,"request.duplicateDetection"),c["MSCRM.SuppressDuplicateDetection"]="false"),e.entity&&a.parameterCheck(e.entity,"DynamicsWebApi."+t,"request.entity"),e.data&&a.parameterCheck(e.data,"DynamicsWebApi."+t,"request.data"),e.noCache&&(a.boolParameterCheck(e.noCache,"DynamicsWebApi."+t,"request.noCache"),c["Cache-Control"]="no-cache"),e.mergeLabels&&(a.boolParameterCheck(e.mergeLabels,"DynamicsWebApi."+t,"request.mergeLabels"),c["MSCRM.MergeLabels"]="true"),e.expand&&e.expand.length)if(a.stringOrArrayParameterCheck(e.expand,"DynamicsWebApi."+t,"request.expand"),"string"==typeof e.expand)u.push("$expand="+e.expand);else{for(var f=[],y=0;y<e.expand.length;y++)if(e.expand[y].property){var h=r(e.expand[y],t+" $expand",null,";"),d=h.query;d&&d.length&&(d="("+d+")"),f.push(e.expand[y].property+d)}f.length&&u.push("$expand="+f.join(","))}}return{url:n,query:u.join(i),headers:c}}function i(e,t,n){var i,o="";return e.url?(a.stringParameterCheck(e.url,"DynamicsWebApi."+t,"request.url"),o=e.url.replace(n.webApiUrl,""),i=r(e,t,o,"&",n)):(e._unboundRequest||e.collection||a.parameterCheck(e.collection,"DynamicsWebApi."+t,"request.collection"),e.collection&&(a.stringParameterCheck(e.collection,"DynamicsWebApi."+t,"request.collection"),o=e.collection,e.key?e.key=a.keyParameterCheck(e.key,"DynamicsWebApi."+t,"request.key"):e.id&&(e.key=a.guidParameterCheck(e.id,"DynamicsWebApi."+t,"request.id")),e.key&&(o+="("+e.key+")")),e._additionalUrl&&(o&&(o+="/"),o+=e._additionalUrl),i=r(e,t,o,"&",n),e.fetchXml?(a.stringParameterCheck(e.fetchXml,"DynamicsWebApi."+t,"request.fetchXml"),i.url+="?fetchXml="+encodeURIComponent(e.fetchXml)):i.query&&(i.url+="?"+i.query)),e.hasOwnProperty("async")&&null!=e.async?(a.boolParameterCheck(e.async,"DynamicsWebApi."+t,"request.async"),i.async=e.async):i.async=!0,{url:i.url,headers:i.headers,async:i.async}}var a=(n(0),n(1)),o=n(12),s={convertRequestOptions:r,convertRequest:i};e.exports=s},function(e,t){e.exports=function(e){if(e){for(var t=Object.keys(e),n="",r="",i=1;i<=t.length;i++){var a=t[i-1],o=e[a];i>1&&(n+=",",r+="&"),n+=a+"=@p"+i,r+="@p"+i+"="+("string"==typeof o?"'"+o+"'":o)}return"("+n+")?"+r}return"()"}},function(e,t,n){var r=n(0),i=n(1);e.exports=function(e,t,n){var a=e.returnRepresentation,o=e.includeAnnotations,s=e.maxPageSize;if(e.prefer&&e.prefer.length){i.stringOrArrayParameterCheck(e.prefer,"DynamicsWebApi."+t,"request.prefer");var c=e.prefer;"string"==typeof c&&(c=c.split(","));for(var u in c){var l=c[u].trim();l===r.Prefer.ReturnRepresentation?a=!0:l.startsWith("odata.include-annotations=")?o=l.replace("odata.include-annotations=","").replace(/"/g,""):l.startsWith("odata.maxpagesize=")&&(s=l.replace("odata.maxpagesize=","").replace(/"/g,""))}}n&&(null==a&&(a=n.returnRepresentation),o=o||n.includeAnnotations,s=s||n.maxPageSize);var c=[];return a&&(i.boolParameterCheck(a,"DynamicsWebApi."+t,"request.returnRepresentation"),c.push(r.Prefer.ReturnRepresentation)),o&&(i.stringParameterCheck(o,"DynamicsWebApi."+t,"request.includeAnnotations"),c.push('odata.include-annotations="'+o+'"')),s&&s>0&&(i.numberParameterCheck(s,"DynamicsWebApi."+t,"request.maxPageSize"),c.push("odata.maxpagesize="+s)),c.join(",")}},function(e,t){e.exports=function(e){var t=/\/(\w+)\(([0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12})/i.exec(e["@odata.id"]);return{id:t[2],collection:t[1],oDataContext:e["@odata.context"]}}},function(e,t){e.exports=function(e,t){e=e||"",t=t||1,e=unescape(unescape(e));var n=/pagingcookie="(<cookie page="(\d+)".+<\/cookie>)/.exec(e);if(null!=n){var r=parseInt(n[2]);return{cookie:n[1].replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\"/g,"'").replace(/\'/g,"&quot;"),page:r,nextPage:r+1}}return{cookie:"",page:t,nextPage:t+1}}}])});

@@ -82,2 +82,4 @@ var DWA = require("./dwa");

* @property {string} navigationProperty - A String representing the name of a single-valued navigation property. Useful when needed to retrieve information about a related record in a single request.
* @property {string} navigationPropertyKey - v.1.4.3+ A String representing navigation property's Primary Key (GUID) or Alternate Key(s). (For example, to retrieve Attribute Metadata).
* @property {string} metadataAttributeType - v.1.4.3+ Casts the AttributeMetadata to a specific type. (Used in requests to Attribute Metadata).
* @property {boolean} noCache - If set to 'true', DynamicsWebApi adds a request header 'Cache-Control: no-cache'. Default value is 'false'.

@@ -216,3 +218,3 @@ * @property {string} savedQuery - A String representing the GUID value of the saved query.

: response.headers['odata-entityid'];
var id = /[0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12}/i.exec(entityUrl)[0];
var id = /([0-9A-F]{8}[-]?([0-9A-F]{4}[-]?){3}[0-9A-F]{12})\)$/i.exec(entityUrl)[1];
return id;

@@ -331,24 +333,2 @@ });

//this.retrieveAttributes = function (entityDefinitionId, attributeType, select, filter) {
// var navigationProperty = 'Attributes';
// if (attributeType) {
// ErrorHelper.stringParameterCheck(attributeType, "DynamicsWebApi.retrieveAttributes", "attributeType");
// navigationProperty += '/' + attributeType;
// }
// var request = {
// collection: 'EntityDefinitions',
// key: entityDefinitionId,
// navigationProperty: 'Attributes',
// select: select,
// filter: filter
// };
// return this.retrieveRequest(request);
//};
//this.retrieveAttribute = function(entityDefinitionId, attributeId, attributeType, select, expand
/**

@@ -1038,5 +1018,197 @@ * Sends an asynchronous request to update a record.

});
}
};
/**
* Sends an asynchronous request to create an entity definition.
*
* @param {string} entityDefinition - Entity Definition.
* @returns {Promise}
*/
this.createEntity = function (entityDefinition) {
ErrorHelper.parameterCheck(entityDefinition, 'DynamicsWebApi.createEntity', 'entityDefinition');
var request = {
collection: 'EntityDefinitions',
entity: entityDefinition
};
return this.createRequest(request);
};
/**
* Sends an asynchronous request to update an entity definition.
*
* @param {string} entityDefinition - Entity Definition.
* @param {boolean} [mergeLabels] - Sets MSCRM.MergeLabels header that controls whether to overwrite the existing labels or merge your new label with any existing language labels. Default value is false.
* @returns {Promise}
*/
this.updateEntity = function (entityDefinition, mergeLabels) {
ErrorHelper.parameterCheck(entityDefinition, 'DynamicsWebApi.updateEntity', 'entityDefinition');
ErrorHelper.guidParameterCheck(entityDefinition.MetadataId, 'DynamicsWebApi.updateEntity', 'entityDefinition.MetadataId');
var request = {
collection: 'EntityDefinitions',
mergeLabels: mergeLabels,
key: entityDefinition.MetadataId,
entity: entityDefinition
};
return this.updateRequest(request);
};
/**
* Sends an asynchronous request to retrieve a specific entity definition.
*
* @param {string} entityKey - The Entity MetadataId or Alternate Key (such as LogicalName).
* @param {Array} [select] - Use the $select system query option to limit the properties returned.
* @param {string|Array} [expand] - A String or Array of Expand Objects representing the $expand Query Option value to control which related records need to be returned.
* @returns {Promise}
*/
this.retrieveEntity = function (entityKey, select, expand) {
ErrorHelper.keyParameterCheck(entityKey, 'DynamicsWebApi.retrieveEntity', 'entityKey');
var request = {
collection: 'EntityDefinitions',
key: entityKey,
select: select,
expand: expand
};
return this.retrieveRequest(request);
};
/**
* Sends an asynchronous request to retrieve entity definitions.
*
* @param {Array} [select] - Use the $select system query option to limit the properties returned.
* @param {string} [filter] - Use the $filter system query option to set criteria for which entity definitions will be returned.
* @returns {Promise}
*/
this.retrieveEntities = function (select, filter) {
var request = {
collection: 'EntityDefinitions',
select: select,
filter: filter
};
return this.retrieveRequest(request);
};
/**
* Sends an asynchronous request to create an attribute.
*
* @param {string} entityKey - The Entity MetadataId or Alternate Key (such as LogicalName).
* @param {Object} attributeDefinition - Object that describes the attribute.
* @returns {Promise}
*/
this.createAttribute = function (entityKey, attributeDefinition) {
ErrorHelper.keyParameterCheck(entityKey, 'DynamicsWebApi.createAttribute', 'entityKey');
ErrorHelper.parameterCheck(attributeDefinition, 'DynamicsWebApi.createAttribute', 'attributeDefinition');
var request = {
collection: 'EntityDefinitions',
key: entityKey,
entity: attributeDefinition,
navigationProperty: 'Attributes'
};
return this.createRequest(request);
};
/**
* Sends an asynchronous request to update an attribute.
*
* @param {string} entityKey - The Entity MetadataId or Alternate Key (such as LogicalName).
* @param {Object} attributeDefinition - Object that describes the attribute.
* @param {string} [attributeType] - Use this parameter to cast the Attribute to a specific type.
* @param {boolean} [mergeLabels] - Sets MSCRM.MergeLabels header that controls whether to overwrite the existing labels or merge your new label with any existing language labels. Default value is false.
* @returns {Promise}
*/
this.updateAttribute = function (entityKey, attributeDefinition, attributeType, mergeLabels) {
ErrorHelper.keyParameterCheck(entityKey, 'DynamicsWebApi.updateAttribute', 'entityKey');
ErrorHelper.parameterCheck(attributeDefinition, 'DynamicsWebApi.updateAttribute', 'attributeDefinition');
ErrorHelper.guidParameterCheck(attributeDefinition.MetadataId, 'DynamicsWebApi.updateAttribute', 'attributeDefinition.MetadataId');
if (attributeType) {
ErrorHelper.stringParameterCheck(attributeType, 'DynamicsWebApi.updateAttribute', 'attributeType');
}
var request = {
collection: 'EntityDefinitions',
key: entityKey,
entity: attributeDefinition,
navigationProperty: 'Attributes',
navigationPropertyKey: attributeDefinition.MetadataId,
mergeLabels: mergeLabels,
metadataAttributeType: attributeType
};
return this.updateRequest(request);
};
/**
* Sends an asynchronous request to retrieve attribute metadata for a specified entity definition.
*
* @param {string} entityKey - The Entity MetadataId or Alternate Key (such as LogicalName).
* @param {string} [attributeType] - Use this parameter to cast the Attributes to a specific type.
* @param {Array} [select] - Use the $select system query option to limit the properties returned.
* @param {string} [filter] - Use the $filter system query option to set criteria for which attribute definitions will be returned.
* @param {string|Array} [expand] - A String or Array of Expand Objects representing the $expand Query Option value to control which related records need to be returned.
* @returns {Promise}
*/
this.retrieveAttributes = function (entityKey, attributeType, select, filter, expand) {
ErrorHelper.keyParameterCheck(entityKey, 'DynamicsWebApi.retrieveAttributes', 'entityKey');
if (attributeType) {
ErrorHelper.stringParameterCheck(attributeType, 'DynamicsWebApi.retrieveAttributes', 'attributeType');
}
var request = {
collection: 'EntityDefinitions',
key: entityKey,
navigationProperty: 'Attributes',
select: select,
filter: filter,
expand: expand,
metadataAttributeType: attributeType
};
return this.retrieveRequest(request);
};
/**
* Sends an asynchronous request to retrieve a specific attribute metadata for a specified entity definition.
*
* @param {string} entityKey - The Entity MetadataId or Alternate Key (such as LogicalName).
* @param {string} attributeKey - The Attribute Metadata id.
* @param {string} [attributeType] - Use this parameter to cast the Attribute to a specific type.
* @param {Array} [select] - Use the $select system query option to limit the properties returned.
* @param {string|Array} [expand] - A String or Array of Expand Objects representing the $expand Query Option value to control which related records need to be returned.
* @returns {Promise}
*/
this.retrieveAttribute = function (entityKey, attributeKey, attributeType, select, expand) {
ErrorHelper.keyParameterCheck(entityKey, 'DynamicsWebApi.retrieveAttribute', 'entityKey');
ErrorHelper.keyParameterCheck(attributeKey, 'DynamicsWebApi.retrieveAttribute', 'attributeKey');
if (attributeType) {
ErrorHelper.stringParameterCheck(attributeType, 'DynamicsWebApi.retrieveAttribute', 'attributeType');
}
var request = {
collection: 'EntityDefinitions',
key: entityKey,
navigationProperty: 'Attributes',
select: select,
expand: expand,
metadataAttributeType: attributeType,
navigationPropertyKey: attributeKey
};
return this.retrieveRequest(request);
};
/**
* Creates a new instance of DynamicsWebApi

@@ -1053,3 +1225,3 @@ *

return new DynamicsWebApi(config);
}
};
};

@@ -1056,0 +1228,0 @@

@@ -32,18 +32,30 @@ var DWA = require('../dwa');

var requestArray = [];
joinSymbol = joinSymbol != null ? joinSymbol : "&";
joinSymbol = joinSymbol != null ? joinSymbol : '&';
if (request) {
if (request.navigationProperty) {
ErrorHelper.stringParameterCheck(request.navigationProperty, 'DynamicsWebApi.' + functionName, "request.navigationProperty");
url += "/" + request.navigationProperty;
ErrorHelper.stringParameterCheck(request.navigationProperty, 'DynamicsWebApi.' + functionName, 'request.navigationProperty');
url += '/' + request.navigationProperty;
if (request.navigationPropertyKey) {
var navigationKey = ErrorHelper.keyParameterCheck(request.navigationPropertyKey, 'DynamicsWebApi.' + functionName, 'request.navigationPropertyKey');
url += '(' + navigationKey + ')';
}
if (request.navigationProperty === 'Attributes') {
if (request.metadataAttributeType) {
ErrorHelper.stringParameterCheck(request.metadataAttributeType, 'DynamicsWebApi.' + functionName, 'request.metadataAttributeType');
url += '/' + request.metadataAttributeType;
}
}
}
if (request.select != null && request.select.length) {
ErrorHelper.arrayParameterCheck(request.select, 'DynamicsWebApi.' + functionName, "request.select");
ErrorHelper.arrayParameterCheck(request.select, 'DynamicsWebApi.' + functionName, 'request.select');
if (functionName == "retrieve" && request.select.length == 1 && request.select[0].endsWith("/$ref")) {
url += "/" + request.select[0];
if (functionName == 'retrieve' && request.select.length == 1 && request.select[0].endsWith('/$ref')) {
url += '/' + request.select[0];
}
else {
if (request.select[0].startsWith("/") && functionName == "retrieve") {
if (request.select[0].startsWith('/') && functionName == 'retrieve') {
if (request.navigationProperty == null) {

@@ -59,3 +71,3 @@ url += request.select.shift();

if (request.select.length) {
requestArray.push("$select=" + request.select.join(','));
requestArray.push('$select=' + request.select.join(','));
}

@@ -62,0 +74,0 @@ }

{
"name": "dynamics-web-api",
"version": "1.4.2",
"version": "1.4.3",
"description": "DynamicsWebApi is a Microsoft Dynamics CRM Web API helper library",

@@ -5,0 +5,0 @@ "keywords": [

@@ -42,2 +42,12 @@ # DynamicsWebApi for Microsoft Dynamics CRM Web API

* [Execute Web API actions](#execute-web-api-actions)
* [Entity and Attribute Metadata requests examples](#entity-and-attribute-metadata-requests-examples)
* [Create Entity](#create-entity)
* [Retrieve Entity](#retrieve-entity)
* [Update Entity](#update-entity)
* [Retrieve Multiple Entities](#retrieve-multiple-entities)
* [Create Attribute](#create-attribute)
* [Retrieve Attribute](#retrieve-attribute)
* [Update Attribute](#update-attribute)
* [Retrieve Multiple Attributes](#retrieve-multiple-attributes)
* [Use requests to query Entity and Attribute metadata](#use-requests-to-query-entity-and-attribute-metadata)
* [Formatted Values and Lookup Properties](#formatted-values-and-lookup-properties)

@@ -68,3 +78,3 @@ * [Using Alternate Keys](#using-alternate-keys)

### DynamicsWebApi for Node.js
DynamicsWebApi can be used as Node.js module to access Dynamics 365 Web API using OAuth.
DynamicsWebApi can be used as Node.js module to access Dynamics 365 Web API using OAuth.

@@ -124,3 +134,3 @@ First of all, install a package from NPM:

//create DynamicsWebApi object
var dynamicsWebApi = new DynamicsWebApi({
var dynamicsWebApi = new DynamicsWebApi({
webApiUrl: 'https:/myorg.api.crm.dynamics.com/api/data/v9.0/',

@@ -141,7 +151,17 @@ onTokenRefresh: acquireToken

#### Web browser
```js
//config can be passed directly to the constructor
var dynamicsWebApi = new DynamicsWebApi({ webApiVersion: '9.0' });
```
#### Node.js
```js
var dynamicsWebApi = new DynamicsWebApi({
webApiUrl: 'https:/myorg.api.crm.dynamics.com/api/data/v9.0/',
onTokenRefresh: acquireToken
});
```
You can set a configuration dynamically if needed:

@@ -151,3 +171,3 @@

//or can be set dynamically
dynamicsWebApi.setConfig({ webApiVersion: '9.0' });
dynamicsWebApi.setConfig({ webApiVersion: '8.2' });
```

@@ -211,3 +231,5 @@

mergeLabels | Boolean | `updateRequest` | `v.1.4.2+` **Metadata Update only!** Sets `MSCRM.MergeLabels` header that controls whether to overwrite the existing labels or merge your new label with any existing language labels. Default value is `false`. [More info](https://msdn.microsoft.com/en-us/library/mt593078.aspx#bkmk_updateEntities)
navigationProperty | String | `retrieveRequest` | A String representing the name of a single-valued navigation property. Useful when needed to retrieve information about a related record in a single request.
metadataAttributeType | String | `retrieveRequest`, `updateRequest` | `v.1.4.3+` Casts the Attributes to a specific type. (Used in requests to Attribute Metadata) [More Info](https://msdn.microsoft.com/en-us/library/mt607522.aspx#Anchor_4)
navigationProperty | String | `retrieveRequest`, `createRequest`, `updateRequest` | A String representing the name of a single-valued navigation property. Useful when needed to retrieve information about a related record in a single request.
navigationPropertyKey | String | `retrieveRequest`, `createRequest`, `updateRequest` | `v.1.4.3+` A String representing navigation property's Primary Key (GUID) or Alternate Key(s). (For example, to retrieve Attribute Metadata)
noCache | Boolean | All | `v.1.4.0+` If set to `true`, DynamicsWebApi adds a request header `Cache-Control: no-cache`. Default value is `false`.

@@ -911,2 +933,352 @@ orderBy | Array | `retrieveMultipleRequest`, `retrieveAllRequest` | An Array (of Strings) representing the order in which items are returned using the $orderby system query option. Use the asc or desc suffix to specify ascending or descending order respectively. The default is ascending if the suffix isn't applied.

## Entity and Attribute Metadata requests examples
`Version 1.4.3+`
Before working with metadata read [the following section from Microsoft Documentation](https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/webapi/use-web-api-metadata).
### Create Entity
```js
var entityDefinition = {
"@odata.type": "Microsoft.Dynamics.CRM.EntityMetadata",
"Attributes": [
{
"AttributeType": "String",
"AttributeTypeName": {
"Value": "StringType"
},
"Description": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Type the name of the bank account",
"LanguageCode": 1033
}]
},
"DisplayName": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Account Name",
"LanguageCode": 1033
}]
},
"IsPrimaryName": true,
"RequiredLevel": {
"Value": "None",
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings"
},
"SchemaName": "new_AccountName",
"@odata.type": "Microsoft.Dynamics.CRM.StringAttributeMetadata",
"FormatName": {
"Value": "Text"
},
"MaxLength": 100
}],
"Description": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "An entity to store information about customer bank accounts",
"LanguageCode": 1033
}]
},
"DisplayCollectionName": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Bank Accounts",
"LanguageCode": 1033
}]
},
"DisplayName": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Bank Account",
"LanguageCode": 1033
}]
},
"HasActivities": false,
"HasNotes": false,
"IsActivity": false,
"OwnershipType": "UserOwned",
"SchemaName": "new_BankAccount"
};
dynamicsWebApi.createEntity(entityDefinition).then(function(entityId){
//entityId is newly created entity id (MetadataId)
}).catch(function(error){
//catch an error
})
```
### Retrieve Entity
Entity Metadata can be retrieved by either Primary Key (**MetadataId**) or by an Alternate Key (**LogicalName**). [More Info](https://msdn.microsoft.com/en-us/library/mt788314.aspx#bkmk_byName)
```js
var entityKey = '00000000-0000-0000-0000-000000000001';
//or you can use an alternate key:
//var entityKey = "LogicalName='new_accountname'";
dynamicsWebApi.retrieveEntity(entityKey, ['SchemaName', 'LogicalName']).then(function(entityMetadata){
var schemaName = entityMetadata.SchemaName;
}).catch(function(error){
//catch an error
});
```
### Update Entity
Microsoft recommends to make changes in the entity metadata that has been priorly retrieved to avoid any mistake. I would also recommend to read information about **MSCRM.MergeLabels** header prior updating metadata. More information about the header can be found [here](https://msdn.microsoft.com/en-us/library/mt593078.aspx#Anchor_2).
**Important!** Make sure you set **`MetadataId`** property when you update the metadata, DynamicsWebApi use it as a primary key for the EntityDefinition record.
```js
var entityKey = "LogicalName='new_accountname'";
dynamicsWebApi.retrieveEntity(entityKey).then(function(entityMetadata){
//1. change label
entityMetadata.DispalyName.LocalizedLabels[0].Label = 'New Bank Account';
//2. update metadata
return dynamicsWebApi.updateEntity(entityMetadata);
}).catch(function(error){
//catch an error
});
```
**Important!** When you update an entity, you must publish changes in CRM. [More Info](https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/customize-dev/publish-customizations)
### Retrieve Multiple Entities
```js
dynamicsWebApi.retrieveEntities(['LogicalName'], "OwnershipType eq Microsoft.Dynamics.CRM.OwnershipTypes'UserOwned'").then(function(response){
var firstLogicalName = response.value[0].LogicalName;
}).catch(function(error){
//catch an error
});
```
### Create Attribute
```js
var entityKey = '00000000-0000-0000-0000-000000000001';
var attributeDefinition = {
"AttributeType": "Money",
"AttributeTypeName": {
"Value": "MoneyType"
},
"Description": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Enter the balance amount",
"LanguageCode": 1033
}]
},
"DisplayName": {
"@odata.type": "Microsoft.Dynamics.CRM.Label",
"LocalizedLabels": [{
"@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel",
"Label": "Balance",
"LanguageCode": 1033
}]
},
"RequiredLevel": {
"Value": "None",
"CanBeChanged": true,
"ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings"
},
"SchemaName": "new_Balance",
"@odata.type": "Microsoft.Dynamics.CRM.MoneyAttributeMetadata",
"PrecisionSource": 2
};
dynamicsWebApi.createAttribute(entityKey, attributeDefinition).then(function(attributeId){
//attributeId is a PrimaryKey (MetadataId) for newly created attribute
}).catch(function(error){
//catch an error
});
```
### Retrieve Attribute
Attribute Metadata can be retrieved by either Primary Key (**MetadataId**) or by an Alternate Key (**LogicalName**). [More Info](https://msdn.microsoft.com/en-us/library/mt788314.aspx#bkmk_byName)
The following example will retrieve only common properties available in [AttributeMetadata](https://msdn.microsoft.com/en-us/library/mt607551.aspx) entity.
```js
var entityKey = '00000000-0000-0000-0000-000000000001';
//or you can use an alternate key:
//var entityKey = "LogicalName='new_accountname'";
var attributeKey = '00000000-0000-0000-0000-000000000002';
//or you can use an alternate key:
//var attributeKey = "LogicalName='new_balance'";
dynamicsWebApi.retrieveAttribute(entityKey, attributeKey, ['SchemaName']).then(function(attributeMetadata){
var schemaName = attributeMetadata.SchemaName;
}).catch(function(error){
//catch an error
});
```
Use parameter in the function to cast the attribute to a specific type.
```js
var entityKey = '00000000-0000-0000-0000-000000000001';
var attributeKey = '00000000-0000-0000-0000-000000000002';
dynamicsWebApi.retrieveAttribute(entityKey, attributeKey, ['SchemaName'], 'Microsoft.Dynamics.CRM.MoneyAttributeMetadata')
.then(function(attributeMetadata){
var schemaName = attributeMetadata.SchemaName;
}).catch(function(error){
//catch an error
});
```
### Update Attribute
**Important!** Make sure you set **`MetadataId`** property when you update the metadata, DynamicsWebApi use it as a primary key for the EntityDefinition record.
The following example will update only common properties availible in [AttributeMetadata](https://msdn.microsoft.com/en-us/library/mt607551.aspx) entity. If you need to update specific properties of Attributes with type that inherit from the AttributeMetadata you will need to cast the attribute to the specific type. [More Info](https://msdn.microsoft.com/en-us/library/mt607522.aspx#Anchor_4)
```js
var entityKey = "LogicalName='new_accountname'";
var attributeKey = "LogicalName='new_balance'";
dynamicsWebApi.retrieveAttribute(entityKey, attributeKey).then(function(attributeMetadata){
//1. change label
attributeMetadata.DispalyName.LocalizedLabels[0].Label = 'New Balance';
//2. update metadata
return dynamicsWebApi.updateAttribute(entityKey, attributeMetadata);
}).catch(function(error){
//catch an error
});
```
To cast a property to a specific type use a parameter in the function.
```js
var entityKey = "LogicalName='new_accountname'";
var attributeKey = "LogicalName='new_balance'";
var attributeType = 'Microsoft.Dynamics.CRM.MoneyAttributeMetadata';
dynamicsWebApi.retrieveAttribute(entityKey, attributeKey, attributeType).then(function(attributeMetadata){
//1. change label
attributeMetadata.DispalyName.LocalizedLabels[0].Label = 'New Balance';
//2. update metadata
return dynamicsWebApi.updateAttribute(entityKey, attributeMetadata, attributeType);
}).catch(function(error){
//catch an error
});
```
**Important!** Make sure you include the attribute type in the update function as well.
**Important!** When you update an attribute, you must publish changes in CRM. [More Info](https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/customize-dev/publish-customizations)
### Retrieve Multiple Attributes
The following example will retrieve only common properties available in [AttributeMetadata](https://msdn.microsoft.com/en-us/library/mt607551.aspx) entity.
```js
var entityKey = "LogicalName='new_accountname'";
dynamicsWebApi.retrieveAttributes(entityKey).then(function(response){
var firstAttribute = response.value[0];
}).catch(function(error){
//catch an error
});
```
To retrieve only attributes of a specific type use a parameter in a function:
```js
var entityKey = "LogicalName='new_accountname'";
dynamicsWebApi.retrieveAttributes(entityKey, 'Microsoft.Dynamics.CRM.MoneyAttributeMetadata').then(function(response){
var firstAttribute = response.value[0];
}).catch(function(error){
//catch an error
});
```
### Use requests to query Entity and Attribute metadata
You can also use common request functions to create, retrieve and update entity and attribute metadata. Just use the following rules:
1. Always set `collectionName: 'EntityDefinitions'`.
2. To retrieve a specific **entity metadata** by a Primary or Alternate Key use `key` property. For example: `key: 'LogicalName="account"'`.
3. To get attributes, set `navigationProperty: 'Attributes'`.
4. To retrieve a specific **attribute metadata** by Primary or Alternate Key use `navigationPropertyKey`. For example: `navigationPropertyKey: '00000000-0000-0000-0000-000000000002'`.
5. During entity or attribute metadata update you can use `mergeLabels` property to set **MSCRM.MergeLabels** attribute. By default `mergeLabels: false`.
6. To send entity or attribute definition use `entity` property.
#### Examples
Retrieve entity metadata with attributes (with common properties):
```js
var request = {
collectionName: 'EntityDefinitions',
key: '00000000-0000-0000-0000-000000000001',
select: ['LogicalName', 'SchemaName'],
expand: 'Attributes'
};
dynamicsWebApi.retrieveRequest(request).then(function(entityMetadata){
var attributes = entityMetadata.Attributes;
}).catch(function(error){
//catch an error
});
```
Retrieve attribute metadata and cast it to the StringType:
```js
var request = {
collectionName: 'EntityDefinitions',
key: 'LogicalName="account"',
navigationProperty: 'Attributes',
navigationPropertyKey: 'LogicalName="firstname"',
metadataAttributeType: 'Microsoft.Dynamics.CRM.StringAttributeMetadata'
};
dynamicsWebApi.retrieveRequest(request).then(function(attributeMetadata){
var displayNameDefaultLabel = attributeMetadata.DisplayName.LocalizedLabels[0].Label;
}).catch(function(error){
//catch an error
});
```
Update entity metadata with **MSCRM.MergeLabels** header set to `true`:
```js
var request = {
collectionName: 'EntityDefinitions',
key: 'LogicalName="account"'
};
dynamicsWebApi.retrieveRequest(request).then(function(entityMetadata){
//1. change label
entityMetadata.DisplayName.LocalizedLabels[0].Label = 'Organization';
//2. configure update request
var updateRequest = {
collectionName: 'EntityDefinitions',
key: entityMetadata.MetadataId,
mergeLabels: true,
entity: entityMetadata
};
//3. call update request
return dynamicsWebApi.updateRequest(updateRequest);
}).catch(function(error){
//catch an error
});
//it is the same as:
dynamicsWebApi.retrieveEntity('LogicalName="account"').then(function(entityMetadata){
//1. change label
entityMetadata.DisplayName.LocalizedLabels[0].Label = 'Organization';
//2. call update request
return dynamicsWebApi.updateEntity(entityMetadata, true);
}).catch(function(error){
//catch an error
});
```
## Formatted Values and Lookup Properties

@@ -1079,2 +1451,4 @@

- [X] Ability to use entity names instead of collection names. `Implemented in v.1.4.0`
- [X] Entity and Attribute Metadata helpers. `Implemented in v.1.4.3`
- [ ] Entity Relationships and Global Option Sets helpers.
- [ ] Batch requests.

@@ -1081,0 +1455,0 @@ - [ ] Intellisense for request objects.

@@ -26,2 +26,12 @@ //<cookie pagenumber="2" pagingcookie="<cookie page="1"><accountid last="{EF72AE29-B3DE-E611-8102-5065F38A7BF1}" first="{475B158C-541C-E511-80D3-3863BB347BA8}" /></cookie>" istracking="False" />

},
testEntityDefinition: {
name: "record",
subject: "test",
MetadataId: "00000000-0000-0000-0000-000000000001"
},
testAttributeDefinition: {
name: "record",
subject: "test",
MetadataId: "00000000-0000-0000-0000-000000000002"
},
testEntityAdditionalAttributes: {

@@ -245,2 +255,8 @@ name: "record",

},
createAttributeReturnId: {
status: 204,
responseHeaders: {
"OData-EntityId": webApiUrl + "EntityDefinitions(" + dataStubs.testEntityId + ")/Attributes(" + dataStubs.testEntityId2 + ")"
}
},
createReturnRepresentation: {

@@ -252,2 +268,3 @@ status: 201,

entityDefinitionsUrl: webApiUrl + 'EntityDefinitions',
entityDefinitionsIdUrl: webApiUrl + 'EntityDefinitions(' + dataStubs.testEntityId + ')',
basicEmptyResponseSuccess: {

@@ -254,0 +271,0 @@ status: 204

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc