spx-com
Version:
Sharepoint 2013 Client Object Model Library
1 lines • 80 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("crypto-js"),require("axios")):"function"==typeof define&&define.amd?define(["crypto-js","axios"],t):(e=e||self).spx=t(e.CryptoJS,e.axios)}(this,function(e,t){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;const s=1e5,r=82,i=240,n={create:"created",update:"updated",delete:"deleted",recycle:"recycled",get:"get",copy:"copied",move:"moved",restore:"restored",clear:"cleared",erase:"erased",send:"sent"},o={101:!0,109:!0,110:!0,113:!0,114:!0,116:!0,119:!0,121:!0,122:!0,123:!0,175:!0,851:!0,10102:!0},a={AppAuthor:!0,AppEditor:!0,Author:!0,CheckedOutTitle:!0,CheckedOutUserId:!0,CheckoutUser:!0,ContentTypeId:!0,Created:!0,Created_x0020_By:!0,Created_x0020_Date:!0,DocConcurrencyNumber:!0,Editor:!0,FSObjType:!0,FileDirRef:!0,FileLeafRef:!0,FileRef:!0,File_x0020_Size:!0,File_x0020_Type:!0,FolderChildCount:!0,GUID:!0,HTML_x0020_File_x0020_Type:!0,ID:!0,InstanceID:!0,IsCheckedoutToLocal:!0,ItemChildCount:!0,Last_x0020_Modified:!0,MetaInfo:!0,Modified:!0,Modified_x0020_By:!0,Order:!0,ParentLeafName:!0,ParentVersionString:!0,ProgId:!0,ScopeId:!0,SortBehavior:!0,SyncClientId:!0,TemplateUrl:!0,UniqueId:!0,VirusStatus:!0,WorkflowInstanceID:!0,WorkflowVersion:!0,owshiddenversion:!0,xd_ProgID:!0,xd_Signature:!0,_CheckinComment:!0,_CopySource:!0,_HasCopyDestinations:!0,_IsCurrentVersion:!0,_Level:!0,_ModerationComments:!0,_ModerationStatus:!0,_SharedFileIndex:!0,_SourceUrl:!0,_UIVersion:!0,_UIVersionString:!0,ImageHeight:!0,ImageWidth:!0,PreviewExists:!0,ThumbnailExists:!0},l=e=>Object.prototype.toString.call(e).slice(8,-1).toLowerCase(),c={I:e=>e,K:e=>()=>e,A:e=>t=>e(t),U:e=>e(e),Y:e=>c.U(t=>e(e=>t(t)(e))),C:e=>t=>s=>e(s)(t),S:e=>t=>s=>e(s)(t(s)),SI:e=>t=>s=>t(s)(e(s)),SA:e=>t=>async s=>e(s)(await t(s)),SIA:e=>t=>async s=>t(s)(await e(s))},u=c.I,h=c.K,d=c.Y,m=c.C,p=e=>t=>(e(t),t),g=e=>(t,s)=>e(t)(s),b=e=>([t,s])=>r=>e(r)?t(r):s?s(r):r,y=e=>t=>s=>{const r=t[e(s)];return r?r(s):t.default?t.default(s):void 0},w=y(l),f=e=>t=>e+t,x=e=>t=>e<t,S=e=>t=>e.test(t),_=e=>t=>s=>s.replace(e,t),P=e=>t=>t.match(e)||[],C=e=>_(e)(""),U=e=>t=>t.split(e),v=e=>e.trim(),T=e=>"array"===l(e)?e:e?[e]:[],I=e=>t=>t.map(e),j=e=>t=>t.filter(e),O=e=>t=>t.join(e),$=j(e=>void 0!==e),L=e=>t=>e.concat(t),F=e=>t=>s=>s.reduce(g(e),w({object:h({}),array:h([]),default:u})(t)),R=F(e=>Y([b(oe)([R,u]),L(e)]))([]),E=e=>e[0],k=e=>e[e.length-1],M=((e,t)=>s=>s.slice(e,t))(0,-1),D=()=>[],A=((e=0)=>t=>s=>{let r=e;return F(e=>s=>{void 0===e[r]&&(e[r]=[]);const i=e[r];return i.push(s),i.length===t&&(r+=1),e})([])(s)})(),N=e=>j(t=>!!t[e]),V=e=>Y([F(t=>s=>(t[s[e]]=s,t))({}),Object.values]),B=e=>t=>t[e]?t[e]():t,Q=e=>t=>s=>s[e]?s[e](t):s,q=e=>t=>s=>t[e]?t[e](s):t,W=e=>t=>s=>t[e](...s),H=e=>t=>t[e],G=e=>Object.keys(e),K=e=>(...t)=>new e(...t),J=e=>new e,X=e=>t=>{const s=Reflect.ownKeys(e);for(let r=0;r<s.length;r+=1){const i=s[r];if(t[i])return e[i](t);if(t.default)return t.default(t)}},z=()=>null,Z=e=>d(t=>([s,...r])=>i=>r.length?t(r)(e(s)(i)):e(s)(i)),Y=F(e=>t=>s=>t(e(s)))(u),ee=e=>!!e,te=e=>!e,se=e=>t=>ee(e&&t),re=()=>!1,ie=(Y([e=>t=>t===e,te]),e=>"number"===l(e)),ne=e=>"string"===l(e),oe=e=>"array"===l(e),ae=e=>"object"===l(e),le=e=>{const t=l(e);return"blob"===t||"file"===t},ce=S(/^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$/),ue=e=>null===e,he=Y([ue,te]),de=e=>void 0===e,me=Y([de,te]),pe=Y([e=>0===e,te]),ge=Y([e=>"number"===l(e)&&"NaN"===e.toString(),te]),be=e=>ie(e)&&pe(e)&&ge(e),ye=e=>""===e,we=Y([ye,te]),fe=Y([j(me),H("length"),ee]),xe=Y([fe,te]),Se=b(ae)([Y([G,fe]),re]),_e=(Y([G,xe]),e=>"error"!==l(e)),Pe=e=>me(e)&&he(e),Ce=(Y([Pe,te]),b(Pe)([w({number:be,string:we,array:fe,object:Se,null:re,default:()=>!0}),ee])),Ue=(Y([Ce,te]),e=>t=>t[e]),ve=e=>Y([H(e),Pe]),Te=e=>Y([H(e),Ce]),Ie=e=>t=>s=>{try{return e(s)}catch(e){return t(e)(s)}},je=e=>{throw new Error(e)},Oe=(e,t={})=>{t.silent||t.silentInfo||console.log(e)},$e=(e,t={})=>{const{box:s,name:r,detailed:i}=t,o=s.getCount();Oe(`${n[e]} ${o} ${r}${o>1?"s":""}${i?`: ${s.join()}`:""} `,t)},Le=(e,t={})=>{const{box:s,name:r,detailed:i,contextUrl:o}=t,a=s.getCount(e);Oe(`${n[e]} ${a} ${r}${a>1?"s":""} at ${o||"/"}${i?`: ${s.join()}`:""}`,t)},Fe=(e,t={})=>{const{box:s,name:r,detailed:i,contextUrl:o,listUrl:a}=t,l=s.getCount(e);Oe(`${n[e]} ${l} ${r}${l>1?"s":""} in ${a} at ${o||"/"}${i?`: ${s.join()}`:""}`,t)},Re=m((e=>t=>s=>T(s).reduce(g(m(e)),T(t)))(Y([e=>F(t=>s=>{const r=s[e],i=Pe(r)&&r.get_lookupId?r.get_lookupId():r,n=t[i];return t[i]=de(n)?[s]:oe(n)?L(n)(s):[n,s],t})({}),e=>d(t=>s=>w({array:e,object:r=>{const i=Reflect.ownKeys(r);for(let n=0;n<i.length;n+=1){const o=i[n],a=r[o];s[o]=oe(a)?e(a):t({})(a)}return s},default:u}))({})]))),Ee=e=>t=>F(t=>s=>{const r=s[e];return t[Pe(r)&&r.get_lookupId?r.get_lookupId():r]=s,t})({})(T(t)),ke=S(/\/$/),Me=S(/\.[^\/]+$/),De=N("Url"),Ae=(j(Y([H("ID"),be])),j(e=>e.Url&&Me(e.Url))),Ne=V("Url"),Ve=b(S(/^\//))([u,f("/")]),Be=C(/\/$/),Qe=C(/^\//),qe=_(/\/\/+/g)("/"),We=U("/"),He=Y([Be,We,k]),Ge=O("/"),Ke=Y([Be,We,M,Ge]),Je=b(S(/\./))([Ke,Be]),Xe=b(S(/\./))([He,z]),ze=e=>we(e)&&!ke(e),Ze=e=>t=>(s={})=>{const{Url:r,Folder:i}=s;if(i){const e=Qe(i);return r?`${e}/${He(r)}`:e}return r&&S(/\//)(r)?"/"===r?"/":Qe(k(U("@list@")(_(t)("@list@")(_(Qe(e))("@web@")(r))))):r},Ye=e=>(t={})=>{const{Url:s,Folder:r}=t;if(r){const e=Qe(r);return s?`${e}/${He(s)}`:e}return s&&S(/\//)(s)?"/"===s?"/":Qe(k(U("@web@")(_(Qe(e))("@web@")(s)))):s};class et{constructor(e,t,s=u){this.prop="Url",this.joinProp="Url",this.value=oe(e)?b(fe)([Y([I(t),s]),h([t()])])(e):t(e)}reduce(e,t=[]){return oe(this.value)?F(e)(t)(this.value):e(t)(this.value)}some(e){return oe(this.value)?this.value.some(e):e(this.value)}chain(e){return oe(this.value)?Promise.all(I(e)(this.value)):e(this.value)}join(){return oe(this.value)?O(", ")(I(H(this.joinProp))(this.value)):this.value[this.joinProp]}getCount(){return oe(this.value)?this.value.filter(e=>me(e[this.prop])).length:me(this.value[this.prop])?1:0}getHead(){return oe(this.value)?this.value[0]:this.value}getHeadPropValue(){return oe(this.value)?this.value[0]?this.value[0][this.prop]:void 0:this.value[this.prop]}getIterable(){return oe(this.value)?this.value:[this.value]}isArray(){return oe(this.value)}}const tt=({contextUrl:e="/",elementBox:t,bundleSize:s=252})=>async r=>{let i=0,n=it(e);const o=[n],a=await t.chain(t=>((i+=1)>=s&&(n=it(e),o.push(n),i=0),r({clientContext:n,element:t})));return{clientContexts:o,result:a}},st=({elementBox:e})=>t=>e.chain(async e=>t({element:e})),rt=K(SP.ClientContext),it=e=>{let t=e;/^https?:/.test(e)||/^\//.test(e)||(t=Ve(e)),/\.\/$/.test(t)&&(t=Be(t));const s=rt(t);return s.set_requestTimeout(36e5),s},nt=e=>b(Pe)([Y([b(h(e))([B("get_listItemAllFields")]),b(ae)([X({get_fieldValues:B("get_fieldValues"),get_objectData:Y([B("get_objectData"),B("get_properties")]),default:Ie(Y([JSON.stringify,f("Wrong spObject: "),je]))(je)})])])]),ot=Y([b(Ue("body"))([Y([H("body"),b(ne)([JSON.parse])]),H("data")]),b(Ue("d"))([Y([H("d"),b(Ue("results"))([H("results")])])])]),at=(e,t={})=>b(oe)([Y([R,$,b(h(t.expanded))([u,Y([I(nt(t.asItem)),b(h(t.groupBy))([Re(t.groupBy),b(h(t.mapBy))([Ee(t.mapBy)])])])])]),b(h(t.expanded))([u,nt(t.asItem)])])(e),lt=(e,t={})=>b(oe)([Y([R,Y([b(h(t.expanded))([u]),I(ot),b(h(t.groupBy))([Re(t.groupBy),b(h(t.mapBy))([Ee(t.mapBy)])])])]),ot])(e),ct=b(Se)([b(Te("view"))([b(Te("groupBy"))([e=>L(T(e.view))(T(e.groupBy)),Y([H("view"),T])]),D]),D]),ut=(e,t,s={})=>b(Ue("getEnumerator"))([Y([e=>Y([h(ct(s)),b(fe)([t=>[e,`Include(${t})`],h([e])])])(e),W("loadQuery")(e)]),p(Y([e=>Y([h(ct(s)),b(fe)([t=>[e,t],h([e])])])(e),W("load")(e)]))])(t),ht=async e=>new Promise((t,s)=>{e.executeQueryAsync(t,(e,t)=>{const r=t.get_errorTraceCorrelationId();s(new Error(`\nMessage: ${t.get_message().replace(/\n{1,}/g," ")}\nValue: ${t.get_errorValue()}\nType: ${t.get_errorTypeName()}\nId: ${r}`))})}),dt=async(e,t,s)=>{const r=ut(e,t,s);return await ht(e),r},mt=async(e,t={})=>Y([qe,Be,Ve,K(SP.RequestExecutor),e=>new Promise((s,r)=>e.executeAsync({...t,method:Y([H("method"),b(S(/post/i))([h("POST"),h("GET")])])(t),success:s,error:e=>{const{silent:s,silentErrors:i}=t;if(!s&&!i){const{body:t}=e;let s=t;if("string"===l(e.body))try{s=JSON.parse(e.body).error.message.value}catch(e){}console.error(`\nMessage: ${e.statusText}\nCode: ${e.statusCode}\nValue: ${s}`)}r(e)}}))])(e),pt=w({arraybuffer:Y([K(Uint8Array),F((e=>t=>s=>t+e(s))(String.fromCharCode))(""),btoa]),default:Ie(btoa)(()=>u)}),gt=e=>t=>s=>t.set_item(e,s),bt=e=>b(h(e))([Z(e=>Y([B("get_folders"),Q("getByUrl")(e)]))(Y([_(/\/\/+/)("/"),U("/")])(e)),u]),yt=e=>t=>s=>{const r=Reflect.ownKeys(t);for(let i=0;i<r.length;i+=1){const n=r[i],o=e[n],a=t[n];if(o){const e=gt(o.InternalName)(s),t=t=>s=>Y([t(s),e]);switch(o.TypeAsString){case"Lookup":t(xt)(SP.FieldLookupValue)(a);break;case"LookupMulti":t(wt)(SP.FieldLookupValue)(T(a));break;case"User":t(xt)(SP.FieldUserValue)(a);break;case"UserMulti":t(wt)(SP.FieldUserValue)(T(a));break;case"TaxonomyFieldType":e(`-1;#${a.get_label()}|${a.get_termGuid()}`);break;case"TaxonomyFieldTypeMulti":w({object:Y([H("$2_1"),Y([F(e=>t=>e.concat(`-1;#${t.get_label()}|${t.get_termGuid()}`))([]),O(";#"),e])]),array:Y([O(";"),gt("TaxKeywordTaxHTField")(s)]),string:gt("TaxKeywordTaxHTField")(s)})(a);break;default:e(a)}}else gt(n)(s)(a)}return s.update(),s},wt=e=>Y([F(t=>b(Pe)([Y([xt(e),L(t)])]))([]),b(fe)([u,z])]),ft=e=>t=>Y([J,p(Q("set_lookupId")(t))])(e),xt=e=>Y([b(ue)([z,b(Ue("get_lookupId"))([Y([B("get_lookupId"),ft(e)]),Y([parseInt,b(h(se(ie)(x(0))))([ft(e),z])])])])]),St=e=>t=>{const s=Reflect.ownKeys(e);for(let r=0;r<s.length;r+=1){const i=s[r],n=e[i];void 0!==n&&t[i]&&t[i](n)}return t},_t=e=>t({url:`${Ve(e)}/_api/contextinfo`,headers:{Accept:"application/json; odata=verbose"},method:"POST"}).then(e=>e.data.d.GetContextWebInformation.FormDigestValue),Pt=()=>Pt.cache||(()=>{const e=SP.PermissionKind;return Pt.cache=Object.keys(e).reduce((t,s)=>{const r=e[s];return ie(r)&&(t[s]=r),t},{}),Pt.cache})(),Ct="Query",Ut=w({object:e=>Object.assign({},e),string:(e="")=>({[Ct]:e}),default:()=>({[Ct]:""})});var vt=K(class{constructor(e,t){this.name="search",this.parent=e,this.element=Ut(t),this.contextUrl=e.box.getHeadPropValue(),this.rowsPerPage=this.element.RowsPerPage||10,void 0===this.element.StartRow&&(this.element.StartRow=0)}async get(e){const t=it(this.contextUrl||"/"),{element:s}=this,r=new Microsoft.SharePoint.Client.Search.Query.SearchExecutor(t),i=new Microsoft.SharePoint.Client.Search.Query.KeywordQuery(t);St({set_queryText:s[Ct],set_clientType:s.ClientType||"AllResultsQuery",set_queryTemplate:s.QueryTemplate?s.QueryTemplate.join(" "):void 0,set_refiners:s.Refiners,set_rowsPerPage:s.RowsPerPage||this.rowsPerPage,set_totalRowsExactMinimum:s.TotalRowsExactMinimum||11,set_blockDedupeMode:s.BlockDedupeMode,set_bypassResultTypes:s.BypassResultTypes,set_collapseSpecification:s.CollapseSpecification,set_culture:s.Culture||1033,set_desiredSnippetLength:s.DesiredSnippetLength,set_enableInterleaving:s.EnableInterleaving,set_enableNicknames:s.EnableNicknames,set_enableOrderHitHighlightedProperty:s.EnableOrderHitHighlightedProperty,set_enablePhonetic:s.EnablePhonetic,set_enableQueryRules:s.EnableQueryRules,set_enableSorting:s.EnableSorting,set_enableStemming:s.EnableStemming,set_generateBlockRankLog:s.GenerateBlockRankLog,set_hiddenConstrains:s.HiddenConstrains,set_hitHighlightedMultivaluePropertyLimit:s.HitHighlightedMultivaluePropertyLimit,set_impressionID:s.ImpressionID,set_maxSnippetLength:s.MaxSnippetLength,set_personalizationData:s.PersonalizationData,set_processBestBets:s.ProcessBestBets,set_processPersonalFavorites:s.ProcessPersonalFavorites,set_queryTag:s.QueryTag,set_rankingModelId:s.RankingModelId,set_refinementFilters:s.RefinementFilters,set_reorderingRules:s.ReorderingRules,set_resultsUrl:s.ResultsUrl,set_rowLimit:s.RowLimit||10,set_startRow:s.StartRow,set_showPeopleNameSuggestions:s.ShowPeopleNameSuggestions||!1,set_summaryLength:s.SummaryLength,set_timeZoneId:s.TimeZoneId,set_timeout:s.Timeout,set_trimDuplicates:s.TrimDuplicates,set_trimDuplicatesIncludeId:s.TrimDuplicatesIncludeId,set_uiLanguage:s.UiLanguage||1033})(i),ut(t,i,e);const n=r.executeQuery(i);return await ht(t),n.get_value()}async next(e){const t=await this.get(e);return this.element.StartRow+=this.rowsPerPage,t}async previous(e){const t=await this.get(e);return this.element.StartRow-=this.rowsPerPage,t}async move(e={}){const{page:t}=e;return this.element.StartRow=t*this.rowsPerPage,this.get(e)}});const Tt="Title",It=e=>t=>e.addFieldAsXml(t,!0,SP.AddFieldOptions.defaultValue),jt=Y([N(Tt),V(Tt)]),Ot=w({object:e=>{const t=Object.assign({},e);return"/"!==e[Tt]&&(t[Tt]=Qe(t[Tt])),e[Tt]||(t[Tt]=e.EntityPropertyName||e.InternalName||e.StaticName),e.Type||(t.Type="Text"),t},string:e=>({[Tt]:"/"===e?"/":Qe(qe(e)),Type:"Text"}),default:()=>({[Tt]:void 0,Type:"Text"})});class $t extends et{constructor(e=""){super(e,Ot,jt),this.prop=Tt,this.joinProp=Tt}}var Lt=K(class{constructor(e,t){this.name="column",this.parent=e,this.box=K($t)(t),this.contextUrl=e.parent.box.getHeadPropValue(),this.listUrl=e.box.getHeadPropValue(),this.iterator=tt({contextUrl:this.contextUrl,elementBox:this.box})}async get(e){const{clientContexts:t,result:s}=await this.iterator(({clientContext:t,element:s})=>{const r=s[Tt],i=ye(r)||ke(r)?this.getSPObjectCollection(t):this.getSPObject(r,t);return ut(t,i,e)});return await Promise.all(t.map(ht)),at(s,e)}async create(e){const{clientContexts:t,result:s}=await this.iterator(({clientContext:t,element:s})=>{const r=s[Tt];if(!ze(r))return;const{Title:i=r,Type:n=s.TypeAsString||"Text",AllowMultipleValues:o,LookupWebId:a,LookupList:l,LookupField:c="Title",MaxLength:u,RichText:d,SchemaXml:m}=s,g=e=>s=>t.castTo(s,e),w=Y([b(Ce)([b(h(u))([_(/MaxLength="\d+"/)(`MaxLength="${u}"`)]),b(h(u&&"Text"===n))([h(`<Field Type="${n}" DisplayName="${i}" MaxLength="${u}"/>`),h(`<Field Type="${n}" DisplayName="${i}"/>`)])]),It(this.getSPObjectCollection(t)),p(St({set_defaultValue:s.DefaultValue,set_description:s.Description,set_direction:s.Direction,set_enforceUniqueValues:s.EnforceUniqueValues,set_fieldTypeKind:s.FieldTypeKind,set_group:s.Group,set_hidden:s.Hidden||void 0,set_indexed:s.Indexed,set_jsLink:s.JsLink,set_objectVersion:s.ObjectVersion,set_readOnlyField:s.ReadOnlyField,set_required:s.Required,set_schemaXml:s.SchemaXml?s.SchemaXml.replace(/\sID="{[^}]+}"/,""):void 0,set_staticName:s.StaticName,set_title:s[Tt],set_typeAsString:s.TypeAsString,set_validationFormula:s.ValidationFormula||void 0,set_validationMessage:s.ValidationMessage||void 0})),y(h(n))({Text:g(SP.FieldText),Note:Y([g(SP.FieldMultiLineText),p(b(h(d))([Q("set_richText")(!0)]))]),Likes:g(SP.FieldNumber),Number:g(SP.FieldNumber),Boolean:g(SP.Field),Choice:g(o?SP.FieldMultiChoice:SP.FieldChoice),DateTime:g(SP.FieldDateTime),URL:g(SP.FieldUrl),RatingCount:g(SP.FieldRatingScale),AverageRating:g(SP.FieldRatingScale),Lookup:Y([g(SP.FieldLookup),p(Y([Q("set_lookupWebId")(a),Q("set_lookupList")(l),Q("set_lookupField")(c),b(h(o))([Q("set_allowMultipleValues")(!0)])]))]),LookupMulti:Y([g(SP.FieldLookup),p(Y([Q("set_lookupWebId")(a),Q("set_lookupList")(l),Q("set_lookupField")(c),Q("set_allowMultipleValues")(!0)]))]),User:Y([g(SP.FieldUser),p(b(h(o))([Q("set_allowMultipleValues")(!0)]))]),UserMulti:Y([g(SP.FieldUser),p(Q("set_allowMultipleValues")(!0))])}),p(b(Pe)([B("update")]))])(m);return ut(t,w,e)});return this.box.getCount()&&await Promise.all(t.map(ht)),this.report("create",e),at(s,e)}async update(e){const{clientContexts:t,result:s}=await this.iterator(({clientContext:t,element:s})=>{if(!ze(s[Tt]))return;const{MaxLength:r,Title:i}=s,n=Y([St({set_defaultValue:s.DefaultValue,set_description:s.Description,set_direction:s.Direction,set_enforceUniqueValues:s.EnforceUniqueValues,set_fieldTypeKind:s.FieldTypeKind,set_group:s.Group,set_hidden:s.Hidden,set_indexed:s.Indexed,set_jsLink:s.JsLink,set_objectVersion:s.ObjectVersion,set_readOnlyField:s.ReadOnlyField,set_required:s.Required,set_schemaXml:s.SchemaXml,set_staticName:s.StaticName,set_title:s[Tt],set_typeAsString:s.TypeAsString,set_validationFormula:s.ValidationFormula,set_validationMessage:s.ValidationMessage}),p(Y([b(h(s.MaxLength))([Q("set_schemaXml")(`<Field Type="Text" DisplayName="${i}" MaxLength="${r}"/>`)]),B("update")]))])(this.getSPObject(s[Tt],t));return ut(t,n,e)});return this.box.getCount()&&await Promise.all(t.map(ht)),this.report("update",e),at(s,e)}async delete(e){const{clientContexts:t,result:s}=await this.iterator(({clientContext:e,element:t})=>{const s=t[Tt];if(ze(s))return this.getSPObject(s,e).deleteObject(),s});return this.box.getCount()&&await Promise.all(t.map(ht)),this.report("delete",e),at(s,e)}getSPObject(e,t){return this.getSPObjectCollection(t)[ce(e)?"getById":"getByInternalNameOrTitle"](e)}getSPObjectCollection(e){return this.parent.getSPObject(this.listUrl,e).get_fields()}report(e,t={}){Fe(e,{...t,name:this.name,box:this.box,listUrl:this.listUrl,contextUrl:this.contextUrl})}of(e){return K(this.constructor)(this.parent,e)}});const Ft={},Rt=e=>d(e)(Ft),Et=j(Pe),kt=Y([Et,Rt(e=>t=>([s,...r])=>r.length?t[s]?e(t[s])(r):null:t[s])]),Mt=e=>Y([Et,Rt(t=>s=>([r,...i])=>i.length?(s[r]||(s[r]={}),t(s[r])(i)):(s[r]=e,e)),h(e)]),Dt=(Y([Et,Rt(e=>t=>([s,...r])=>r.length?t[s]?e(t[s])(r):void 0:t?delete t[s]:void 0)]),"Url"),At=Y([De,Ne]),Nt=(e={})=>t=>{let s;if(ae(t)){const{Folder:e,Columns:r={}}=t;s=e||r.Folder}else ne(t)&&(s=t);const r=Y([Be,Qe,We])(s);return Vt(e)()(r),e},Vt=e=>t=>([s,...r])=>{const i=e,n=t?`${t}/${s}`:s;return r.length?(i[n]||(i[n]={}),Vt(i[n])(n)(r)):(i[n]||(i[n]={}),i)},Bt=b(oe)([F(Nt)(),Nt()]),Qt=w({object:e=>{const t=Object.assign({},e);return de(e[Dt])&&(t[Dt]=e.ServerRelativeUrl||e.FileRef),de(e.ServerRelativeUrl)&&(t.ServerRelativeUrl=e[Dt]||e.FileRef),t},string:(e="")=>{const t="/"===e?"/":Qe(qe(e));return{[Dt]:t,ServerRelativeUrl:t}},default:()=>({[Dt]:"",ServerRelativeUrl:""})});class qt extends et{constructor(e){super(e,Qt,At),this.joinProp="ServerRelativeUrl"}}var Wt=K(class{constructor(e,t){this.name="folder",this.parent=e,this.box=K(qt)(t),this.hasColumns=this.box.some(Ue("Columns")),this.contextUrl=e.parent.box.getHeadPropValue(),this.listUrl=e.box.getHeadPropValue(),this.count=this.box.getCount(),this.iterator=e=>tt({contextUrl:this.contextUrl,elementBox:this.box,bundleSize:e})}async get(e={}){const t=e.asItem?{...e,view:["ListItemAllFields"]}:{...e},{contextUrl:s,listUrl:r}=this,{clientContexts:i,result:n}=await this.iterator()(({clientContext:e,element:i})=>{const n=Ze(s)(r)(i),o=ke(n)?this.getSPObjectCollection(n,e):this.getSPObject(n,e);return ut(e,o,t)});return await Promise.all(i.map(ht)),at(n,t)}async create(e={}){const{contextUrl:t,listUrl:s}=this,{asItem:r}=e,i=Ze(t)(s),n=r?{...e,view:["ListItemAllFields"]}:{...e};this.hasColumns&&await this.cacheColumns();const o=this.box.reduce(e=>t=>(e[i(t)]=t,e),{}),a=[];return await d(r=>async l=>{const c=Object.keys(l),h=[];for(let e=0;e<c.length;e+=1){const r=c[e],a=o[r];let l,d;if(a){const{Columns:e}=a;l=i(a),d={...e,Title:He(l)}}else d={Title:He(l=r)};const m=it(t);if(!ze(l))return;const p=J(SP.ListItemCreationInformation);p.set_underlyingObjectType(SP.FileSystemObjectType.folder),p.set_leafName(l);const g=yt(kt(["columns",t,s])||{})(d)(this.parent.getSPObject(s,m).addItem(p));h.push(dt(m,g.get_folder(),n).catch(u))}return at((await Promise.all(h)).filter(_e),e).reduce((e,t)=>(o[i({[Dt]:t.ServerRelativeUrl||t.FileRef})]&&e.push(t),e),a),Promise.all(c.map(async e=>{const t=l[e];return Se(t)&&r(t)}))})(Bt(this.box.getIterable().map(i))),Fe("create",{...e,name:this.name,box:K(qt)(a),listUrl:this.listUrl,contextUrl:this.contextUrl}),this.box.isArray()?a:a[0]}async update(e={}){const{contextUrl:t,listUrl:s}=this,i=e.asItem?{...e,view:["ListItemAllFields"]}:{...e};await this.cacheColumns();const{clientContexts:n,result:o}=await this.iterator(r)(({clientContext:e,element:r})=>{const n=Ze(t)(s)(r),{Columns:o={},WelcomePage:a}=r,l=this.getSPObject(n,e);return Se(o)&&yt(kt(["columns",t,s]))(Object.assign({},o))(l.get_listItemAllFields()),me(a)&&(l.set_welcomePage(a),l.update()),ut(e,l,i)});return this.count&&await Promise.all(n.map(ht)),this.report("update",e),at(o,e)}async delete(e={}){const{noRecycle:t}=e,{contextUrl:s,listUrl:r}=this,{clientContexts:n,result:o}=await this.iterator(i)(({clientContext:e,element:i})=>{const n=Ze(s)(r)(i);if(!ze(n))return;const o=this.getSPObject(n,e);return o.isRoot||B(t?"deleteObject":"recycle")(o),n});return this.count&&await Promise.all(n.map(ht)),this.report(t?"delete":"recycle",e),at(o,e)}getSPObject(e,t){let s;const r=this.parent.getSPObject(this.listUrl,t);if(e)s=bt(e)(r.get_rootFolder());else{const e=r.get_rootFolder();e.isRoot=!0,s=e}return s}getSPObjectCollection(e,t){return this.getSPObject(Be(e),t).get_folders()}report(e,t={}){Fe(e,{...t,name:this.name,box:this.box,listUrl:this.listUrl,contextUrl:this.contextUrl})}async cacheColumns(){const{contextUrl:e,listUrl:t}=this;if(!kt(["columns",e,t])){const s=await this.parent.column().get({view:["TypeAsString","InternalName","Title","Sealed"],mapBy:"InternalName"});Mt(s)(["columns",e,t])}}of(e){return K(this.constructor)(this.parent,e)}});const Ht="Url";async function Gt(e,t={}){const{contextUrl:s,listUrl:r}=this;await this.iteratorREST(async({element:i})=>{const{To:n,OnlyContent:o}=i,l=Ze(s)(r)(i);if(!Me(l))return;let c,h,d;if(ae(n)?(c=n.WebUrl||s,h=n.ListUrl,d=Ze(n.WebUrl)(n.ListUrl)(n)||""):(c=s,h=r,d=n),!c)throw new Error("Target WebUrl is missed");if(!h)throw new Error("Target ListUrl is missed");if(!l)throw new Error("Source file Url is missed");const m=this.parent.of(r),p=m.file(l),g=this.parent.parent.of(c).library(h),b=Me(d)?d:`${d}/${Xe(l)}`,y={},w={};if(!o){const e=await p.get({asItem:!0}),t=Reflect.ownKeys(e);for(let s=0;s<t.length;s+=1){const r=t[s];a[r]||null===e[r]||(y[r]=e[r])}if(Object.keys(y).length){const t=Reflect.ownKeys(y);for(let s=0;s<t.length;s+=1){const r=t[s];w[r]=e[r]}}}if(t.forced||s!==c)await g.file({[Ht]:b,Content:await m.file(l).get({asBlob:!0}),OnProgress:i.OnProgress,Overwrite:i.Overwrite,Columns:w}).create({silentInfo:!0}),e&&await p.delete();else{const r=it(s),i=this.getSPObject(l,r),n=Je(d);n&&await this.parent.folder(n).create({silentInfo:!0,expanded:!0,view:["Name"]}).catch(u),i[e?"moveTo":"copyTo"](qe(`${h}/${b}`)),await dt(r,i,t),await g.file({[Ht]:d,Columns:w}).update({silentInfo:!0})}}),console.log(`${n[e?"move":"copy"]} ${this.count} ${this.name}(s)`)}const Kt=Y([De,Ne]),Jt=w({object:e=>{const t=Object.assign({},e),s=e.Content?e.Content.name:void 0;return e[Ht]||(t[Ht]=e.ServerRelativeUrl||e.FileRef||s),e.ServerRelativeUrl||(t.ServerRelativeUrl=e[Ht]||e.FileRef),t},string:(e="")=>{const t="/"===e?"/":Qe(qe(e));return{[Ht]:t,ServerRelativeUrl:t}},default:()=>({[Ht]:"",ServerRelativeUrl:""})});async function Xt(e,s={}){const{needResponse:r}=s,{Content:i="",Overwrite:n=!0,Columns:o}=e,{contextUrl:a,listUrl:l}=this,c=Ze(a)(l)(e),u=Xe(c),h=this.getRESTObjectCollection(c,l,a);await t({url:`${h}/add(url='${u}',overwrite=${n})`,headers:{Accept:"application/json;odata=verbose","Content-Type":"application/json;odata=verbose","X-RequestDigest":await _t()},method:"POST",data:i});let d=e;return o?d=await this.of({[Ht]:c,Columns:o}).update({...s,silentInfo:!0}):r&&(d=await this.of(c).get(s)),d}async function zt(e,s={}){const{needResponse:r,silent:i,silentErrors:n}=s,{Content:o="",Overwrite:a=!0,OnProgress:l=u,Folder:c="",Columns:h}=e,{contextUrl:d,listUrl:m}=this,p=Ze(d)(m)(e),g=c||Je(p),b=p?Xe(p):o.name,y={__REQUESTDIGEST:!0,__VIEWSTATE:!0,__EVENTVALIDATION:!0},w=[],f=kt(["listGUIDs",d,m]),x=kt(["listFormMatches",d,m]),S=/<input[^<]*\/>/g;let _=S.exec(x);for(;_;){const e=_[0];y[e.match(/id="([^"]+)"/)[1]]&&w.push(e),_=S.exec(x)}const P=window.document.createElement("form");P.innerHTML=O("")(w);const C=new FormData(P);C.append("__EVENTTARGET","ctl00$PlaceHolderMain$ctl03$RptControls$btnOK"),C.append("ctl00$PlaceHolderMain$ctl04$ctl01$uploadLocation",`/${g.replace(/^\//,"")}`),a&&C.append("ctl00$PlaceHolderMain$UploadDocumentSection$ctl05$OverwriteSingle",!0),C.append("ctl00$PlaceHolderMain$UploadDocumentSection$ctl05$InputFile",o,b);const U=(await t({url:`/${d}/_layouts/15/UploadEx.aspx?List={${f}}`,method:"POST",data:C,onUploadProgress:e=>l(Math.floor(100*e.loaded/e.total))})).data.match(/id="ctl00_PlaceHolderMain_LabelMessage">([^<]*)<\/span>/);let v={[Ht]:p};return oe(U)?i||n||console.error(U[1]):Se(h)?v=await this.of({[Ht]:p,Columns:h}).update({...s,silentInfo:!0}):r&&(v=await this.of({[Ht]:p}).get(s)),v}class Zt extends et{constructor(e){super(e,Jt,Kt),this.joinProp="ServerRelativeUrl"}getCount(){return this.isArray()?Ae(this.value).length:Me(this.value[this.prop])?1:0}}var Yt=K(class{constructor(e,t){this.name="file",this.parent=e,this.box=K(Zt)(t),this.count=this.box.getCount(),this.contextUrl=e.parent.box.getHeadPropValue(),this.listUrl=e.box.getHeadPropValue(),this.iterator=tt({contextUrl:this.contextUrl,elementBox:this.box}),this.iteratorREST=st({elementBox:this.box})}async get(e={}){const{contextUrl:t,listUrl:s}=this;if(e.asBlob){const r=await this.iteratorREST(({element:e})=>{const r=Ze(t)(s)(e);return mt(t,{url:`${this.getRESTObject(r,s,t)}/$value`,binaryStringResponseBody:!0})});return lt(r,e)}const r=e.asItem?{...e,view:["ListItemAllFields"]}:{...e},{clientContexts:i,result:n}=await this.iterator(({clientContext:e,element:i})=>{const n=Ze(t)(s)(i),o=Pe(n)&&ke(n)?this.getSPObjectCollection(n,e):this.getSPObject(n,e);return ut(e,o,r)});return await Promise.all(i.map(ht)),at(n,r)}async create(e={}){const{contextUrl:s,listUrl:r}=this;if(!kt(["listGUIDs",s,r])){const e=await this.parent.of(r).get({view:"Id"});Mt(e.Id.toString())(["listGUIDs",s,r])}if(!kt(["listFormMatches",s,r])){const e=await t.get(`/${s}/_layouts/15/Upload.aspx?List={${kt(["listGUIDs",s,r])}}`);Mt(e.data.match(/<form(\w|\W)*<\/form>/))(["listFormMatches",s,r])}const i=this.box.reduce(e=>t=>{const{Folder:r}=t,i=Ke(Ye(s)(t))||r;return i&&e.push(i),e});i.length&&await this.parent.folder(i).get({view:"ServerRelativeUrl"}).catch(async()=>{await this.parent.folder(i).create({silent:!0})});const n=await this.iteratorREST(({element:t})=>{const i=Ze(s)(r)(t);if(Me(i)||!t.Content||t.Content.name)return le(t.Content)?zt.call(this,t,e):Xt.call(this,t,e)});return Fe("create",{...e,name:this.name,box:K(Zt)(n),listUrl:this.listUrl,contextUrl:this.contextUrl}),n}async update(e={}){const{contextUrl:t,listUrl:s}=this,r=e.asItem?{...e,view:["ListItemAllFields"]}:{...e};await this.cacheColumns();const{clientContexts:i,result:n}=await this.iterator(({clientContext:e,element:i})=>{const{Content:n,Columns:o}=i,a=Ze(t)(s)(i);if(!Me(a))return;let l;if(de(n))l=yt(kt(["columns",t,s]))(Object.assign({},o))(this.getSPObject(a,e).get_listItemAllFields());else{const t={},s=Reflect.ownKeys(o);for(let e=0;e<s.length;e+=1){const r=s[e],i=o[r];t[r]=b(oe)([O(";#;#")])(i)}const r=J(SP.FileSaveBinaryInformation);St({set_content:pt(n),set_fieldValues:t})(r),(l=this.getSPObject(a,e)).saveBinary(r),l=l.get_listItemAllFields()}return ut(e,l.get_file(),r)});return this.count&&await Promise.all(i.map(ht)),this.report("update",r),at(n,r)}async delete(e={}){const{contextUrl:t,listUrl:s}=this,{noRecycle:r}=e,{clientContexts:i,result:n}=await this.iterator(({clientContext:e,element:i})=>{const n=Ze(t)(s)(i);if(!Me(n))return;const o=this.getSPObject(n,e);return B(r?"deleteObject":"recycle")(o),n});return this.count&&await Promise.all(i.map(ht)),this.report(r?"delete":"recycle",e),at(n,e)}async copy(e){return Gt.call(this,!1,e)}async move(e){return Gt.call(this,!0,e)}getSPObject(e,t){const s=Xe(e),r=Je(e),i=this.getRootFolder(t);return r?bt(r)(i).get_files().getByUrl(s):i.get_files().getByUrl(s)}getSPObjectCollection(e,t){const s=Je(Be(e)),r=this.getRootFolder(t);return s?bt(s)(r).get_files():r.get_files()}getRootFolder(e){return this.parent.getSPObject(this.listUrl,e).get_rootFolder()}getRESTObject(e,t,s){let r=e;return/'/.test(e)&&(r=r.replace(/'/,"%27%27")),qe(`${this.getRESTObjectCollection(e,t,s)}/getbyurl('${Xe(r)}')`)}getRESTObjectCollection(e,t,s){const r=Je(e);let i="";if(r){i=qe(r).split("/").reduce((e,t)=>`${e}/folders/getbyurl('${t}')`,"")}return qe(`/${s}/_api/web/lists/getbytitle('${t}')/rootfolder${i}/files`)}report(e,t={}){Fe(e,{...t,name:this.name,box:this.box,listUrl:this.listUrl,contextUrl:this.contextUrl})}async cacheColumns(){const{contextUrl:e,listUrl:t}=this;if(!kt(["columns",e,t])){const s=await this.parent.column().get({view:["TypeAsString","InternalName","Title","Sealed"],mapBy:"InternalName"});Mt(s)(["columns",e,t])}}of(e){return K(this.constructor)(this.parent,e)}});const es=new RegExp("\\s(&&||||and|or)\\s","i"),ts=new RegExp("\\((.*\\s(&&||||and|or)\\s.*)\\)","i"),ss=/^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d\d\d)?Z$/,rs={AppAuthor:"lookup",AppEditor:"lookup",Attachments:"attachments",Author:"lookup",BaseName:"computed",ContentType:"computed",ContentTypeId:"contentTypeId",Created:"dateTime",Created_x0020_Date:"lookup",DocIcon:"computed",Edit:"computed",Editor:"lookup",EncodedAbsUrl:"computed",FSObjType:"number",FileDirRef:"lookup",FileLeafRef:"file",FileRef:"file",File_x0020_Type:"text",FolderChildCount:"number",GUID:"guid",HTML_x0020_Type:"computed",ID:"counter",InstanceID:"integer",ItemChildCount:"number",Last_x0020_Modified:"lookup",LinkFilename:"computed",LinkFilename2:"computed",LinkFilenameNoMenu:"computed",LinkTitle:"computed",LinkTitle2:"computed",LinkTitleNoMenu:"computed",MetaInfo:"lookup",Modified:"dateTime",Order:"number",PermMask:"computed",ProgId:"lookup",ScopeId:"lookup",SelectTitle:"computed",ServerUrl:"computed",SortBehavior:"lookup",SyncClientId:"lookup",Title:"text",UniqueId:"lookup",WorkflowInstanceID:"guid",WorkflowVersion:"integer",_CopySource:"text",_EditMenuTableEnd:"computed",_EditMenuTableStart:"computed",_EditMenuTableStart2:"computed",_HasCopyDestinations:"Boolean",_IsCurrentVersion:"Boolean",_Level:"integer",_ModerationComments:"note",_ModerationStatus:"modStat",_UIVersion:"integer",_UIVersionString:"text"},is=/(Text|Note|Number|Integer|Counter|Boolean|DateTime|Date|Time|Computed|Currency|ModStat|Guid|File|Attachments|Lookup|LookupMulti|User|UserMulti|TaxonomyFieldType|TaxonomyFieldTypeMulti)\s/i,ns=/\s(eq|neq|geq|leq|gt|lt|isnull|isnotnull|contains|beginsWith|includes|notincludes|search|in|membership)(\s|$)/i,os={text:"Text",note:"Text",number:"Number",integer:"Text",counter:"Text",boolean:"Boolean",lookup:"Lookup",user:"Text",datetime:"Text",date:"Text",time:"Text",currency:"Text",computed:"Text",lookupmulti:"Lookup",usermulti:"Text",modstat:"ModStat",guid:"Guid",file:"File",attachments:"Attachments",taxonomyfieldtype:"TaxonomyFieldType",taxonomyfieldtypemulti:"TaxonomyFieldTypeMulti"},as={eq:"Eq",neq:"Neq",geq:"Geq",leq:"Leq",gt:"Gt",lt:"Lt",isnull:"IsNull",isnotnull:"IsNotNull",beginswith:"BeginsWith",contains:"Contains",includes:"Includes",notincludes:"NotIncludes",in:"In",membership:"Membership",search:"Search"},ls={user:"SPWeb.Users",users:"SPWeb.AllUsers",group:"CurrentUserGroups",groups:"SPWeb.Groups"},cs={"&&":"And","||":"Or"},us=e=>cs[e]||(/^and$/i.test(e)?"And":"Or"),hs=e=>{const t=e.match(new RegExp(`^[^\\(]*\\((.*${es.test(e)?"\\s(&&||||and|or)\\s.*":""})\\)[^\\)]*$`,"i"));return t&&t[1]?t[1]:e},ds=(e="")=>{if("("===e[0]&&")"===e.substr(-1)){const t=P(/\(/g)(e).length;if(t!==P(/\)/g)(e).length)throw new Error("query has wrong braces");return t>=P(new RegExp("\\s(&&||||and|or)\\s","ig"))(e).length?hs(e):e}return e},ms=e=>{let t,s,r,i="",n="";const o=e.match(ns);if(!o)throw new SyntaxError(`Wrong operator in "${e}"`);[s]=o,t=o[1].toLowerCase();const a=as[t],l=e.split(new RegExp(s,"i"));let c=l[0].replace(/\s\s+/g," ").trim();if(is.test(c)){const e=c.split(" ");r=e.shift().toLowerCase(),c=e.join(" ")}else r=rs[c]||"text";let u=l[1];switch(r){case"datetime":case"time":case"date":n='StorageTZ="True"',"date"!==r&&(n+=' IncludeTimeValue="True"'),u=new Date(u).toISOString();break;case"text":ss.test(u)&&(n='StorageTZ="True"');break;case"boolean":u=/^(true|yes|1)$/.test(u)?"1":"0";break;case"user":case"usermulti":case"lookup":case"lookupmulti":case"taxonomyfieldtype":case"taxonomyfieldtypemulti":i=' LookupId="True"'}const h=os[r];switch("text"!==r&&(u=u.trim()),t){case"in":{const e=[],t=[];u=u.split(u.indexOf("_DELIMITER_")>=0?"_DELIMITER_":",");for(let t=0;t<u.length;t+=1){const s=u[t];e.push(`<Value Type="${h}"${n}>${ps(s)}</Value>`)}if(u.length>500){const s=A(500)(e);for(let e=s.length-1;e>=0;e-=1)t.push(`<In><FieldRef Name="${c}"${i}/><Values>${s[e].join("")}</Values></In>`);let r='<IsNull><FieldRef Name="ID"/></IsNull>';for(let e=0;e<t.length;e+=1){r=`<Or>${t[e]}${r}</Or>`}return r}return`<In><FieldRef Name="${c}"${i}/><Values>${e.join("")}</Values></In>`}case"search":return Y([_(/\s+/g)(" "),v,U(" "),I(e=>`${r} ${c} contains ${e}`),xs(),gs])(u);case"membership":return`<${a} Type="${ls[u.toLowerCase()]}"><FieldRef Name="${c}"/></${a}>`}},ps=e=>/^"[^"]*"$/.test(e)?e.slice(1,-1):e,gs=e=>{let t,s,r,i="",n=!1,o=!1,a=0;if(ts.test(e)){let t=0;for(let s=0;s<e.length;s+=1){const r=e[s];"("===r?(a||(n=!0),t+=1):")"===r?(a&&(o=!0),t-=1):t||(i=i.concat(r),a||(a=s))}}if(i&&n&&o)r=i.trim(),t=ds(e.slice(0,a)),s=ds(e.slice(a+i.length));else{const i=ds(e).match(ts);if(i){const n="_dummy_",o=new RegExp(n),a=i[1],l=e.replace(a,n).split(es),c=l[0];if(3!==l.length)return ms(c);{[,r]=l;const e=l[2];o.test(c)?(t=hs(c.replace(n,a)),s=e):o.test(e)&&(t=c,s=hs(e.replace(n,a)))}}else{const i=e.split(es);if([t]=i,3!==i.length)return ms(t);[,,s]=i,[,r]=i}}const l=us(r);return`<${l}>${gs(t)}${gs(s)}</${l}>`},bs=e=>{switch(l(e)){case"number":return bs(`ID eq ${e}`);case"object":return ws(e);case"string":if(e){if(e===(+e).toString())return bs(`ID eq ${e}`);if(S(/\s/)(e)&&U(/\s/)(e).length>1){const t=ds(e.replace(/\s{2,}/g," ").replace(/^\s|\s$/g,""));if(U(/\s/)(t).length>1)return/^<|>$/.test(t)?e:es.test(t)?gs(t):ms(t)}}return"";default:return""}},ys=e=>/allItems/i.test(e)?' Scope="Recursive"':/^items$/i.test(e)?' Scope="FilesOnly"':/^all$/i.test(e)?' Scope="RecursiveAll"':"",ws=(e={})=>{let t,s="",r="";const{OrderBy:i,Scope:n,Limit:o}=e;let{Query:a=""}=e;if(!ae(e)){if(we(e)&&/<view/i.test(e))return e;a=e}if(i){t=T(i);for(let e=0;e<t.length;e+=1){const r=t[e];s+=`<FieldRef Name="${r.split(">")[0]}"${/>/.test(r)?' Ascending="FALSE"':""}/>`}s=`<OrderBy>${s}</OrderBy>`}n&&(r=ys(n));const l=a?`<Where>${bs(a)}</Where>`:"";return`<View${r}>${l||s?`<Query>${l}${s}</Query>`:""}${`<RowLimit>${o||16e4}</RowLimit>`}</View>`},fs=({joiner:e="||",operator:t=(void 0===r?"isnotnull":"eq"),columns:s,values:r})=>{const i=us(e),n=T(s),o=T(r);let a="And"===i?`ID ${as.isnotnull}`:`ID ${as.isnull}`;if(o.length)for(let e=n.length-1;e>=0;e-=1)for(let s=o.length-1;s>=0;s-=1)a=`(${n[e]} ${`${t} ${o[s]}`} ${i} ${a})`;else for(let e=n.length-1;e>=0;e-=1)a=`(${n[e]} ${t} ${i} ${a})`;return ds(a)},xs=(e="||")=>(t=[])=>F(((e="||")=>t=>s=>{const r=us(e),i="And"===r?`ID ${as.isnotnull}`:`ID ${as.isnull}`;if(t){const e=ds(t);if(s){const t=ds(s);return es.test(e)?es.test(t)?`(${e}) ${r} (${t})`:`(${e}) ${r} ${t}`:es.test(t)?`${e} ${r} (${t})`:`${e} ${r} ${t}`}return es.test(e)?`(${e}) ${r} ${i}`:`${e} ${r} ${i}`}if(s){const e=ds(s);return es.test(e)?`${i} ${r} (${e})`:`${i} ${r} ${e}`}return`(${i}) ${r} ${i}`})(e))(E(t))((([,...e])=>e)(t)),Ss=e=>console.log(e&&DOMParser?(new DOMParser).parseFromString(e,"text/xml"):e),_s="Url",Ps=w({object:e=>Object.assign({},e),string:(e="")=>({[_s]:e}),default:()=>({[_s]:"/"})});var Cs=K(class{constructor(e,t){this.name="attachment",this.parent=e,this.box=K(et)(t,Ps),this.item=e.box.getHead(),this.iterator=tt({contextUrl:e.parent.contextUrl,elementBox:this.box})}async get(e={}){const{clientContexts:t,result:s}=await this.iterator(({clientContext:t,element:s})=>ut(t,this.getSPObject(s,t),e));return await Promise.all(t.map(ht)),at(s,e)}getSPObject(e,t){const s=e[_s],r=this.getSPObjectCollection(t);return s&&"/"!==s?r.getByFileName(s):r}getSPObjectCollection(e){return this.parent.getSPObject(this.item,e).get_attachmentFiles()}});const Us="ID",vs=e=>{if(!e)return"";let t="";const s=Reflect.ownKeys(e);for(let r=0;r<s.length;r+=1){const i=s[r],n=e[i];let o=n;switch(l(n)){case"object":n.get_lookupValue&&(o=n.get_lookupValue());break;case"date":o=n.toISOString();break;case"boolean":o=n?1:0}"ID"!==n&&void 0!==n&&(t+=`&p_${i}=${encodeURIComponent(o)}`)}return t},Ts=w({object:e=>Object.assign({},e),string:(e="")=>({[Us]:e}),number:e=>({[Us]:e}),default:()=>({[Us]:void 0})}),Is=e=>{let t;return e.Columns?t=Object.assign({},e.Columns):(delete(t=Object.assign({},e)).Folder,delete t[Us]),!!Object.keys(t).length};class js extends et{constructor(e){super(e,Ts),this.prop=Us,this.joinProp=Us}getCount(e){return oe(this.value)?"create"===e?this.value.filter(Is).length:this.value.length:"create"===e?Is(this.value)?1:0:1}}var Os=K(class{constructor(e,t){this.name="item",this.parent=e,this.box=K(js)(t),this.contextUrl=e.parent.box.getHeadPropValue(),this.listUrl=e.box.getHeadPropValue(),this.listFolder="list"===e.name?"Lists/":"",this.getListSPObject=e.getSPObject.bind(e),this.iterator=tt({contextUrl:e.contextUrl,elementBox:this.box})}async get(e={}){const{showCaml:t}=e,{clientContexts:s,result:r}=await this.iterator(({clientContext:s,element:r})=>{const i=this.getSPObject(r,s);return t&&i.camlQuery&&Ss(i.camlQuery.get_viewXml()),ut(s,i,e)});return await Promise.all(s.map(ht)),at(r,e)}async create(e={}){if("list"!==this.parent.name)throw new Error('There is no "create" method in "item" module. Use "file" module instead of "item".');const{contextUrl:t,listUrl:s}=this;await this.cacheColumns();const r=this.box.reduce(e=>t=>{const{Folder:s}=t;return s&&e.push(s),e});r.length&&await this.parent.folder(r).get({view:"ServerRelativeUrl"}).catch(async()=>{await this.parent.folder(r).create({silent:!0})});const{clientContexts:i,result:n}=await this.iterator(({clientContext:r,element:i})=>{const n=J(SP.ListItemCreationInformation),o=this.getListSPObject(s,r),{Folder:a,Columns:l}=i;let c,u=a;if(Se(l)?(l.Folder&&(u=l.Folder),c={...l}):(delete(c={...i})[Us],delete c.Folder),!Se(c))return;if(u){const e=Ze(t)(s)({Folder:u});n.set_folderUrl(`/${t}/Lists/${s}/${e}`)}const h=yt(kt(["columns",t,s]))(c)(o.addItem(n));return ut(r,h,e)});if(this.box.getCount())for(let e=0;e<i.length;e+=1)await ht(i[e]);return this.report("create",e),at(n,e)}async update(e){const{contextUrl:t,listUrl:s}=this;await this.cacheColumns();const{clientContexts:r,result:i}=await this.iterator(({clientContext:r,element:i})=>{if(!i[Us])return;const n=Object.assign({},i);delete n[Us];const o=yt(kt(["columns",t,s]))(n)(this.getSPObject(i,r));return ut(r,o,e)});return Ce(i)&&await Promise.all(r.map(ht)),this.report("update",e),at(i,e)}async updateByQuery(e){const{result:t}=await this.iterator(async({element:t})=>{const{Folder:s,Query:r,Columns:i={}}=t;if(void 0===r)throw new Error("Query is missed");const n=await this.of({Folder:s,Query:r}).get({...e,expanded:!1});if(n.length){const t=n.map(e=>{const t={...i};return t[Us]=e[Us],t});return this.of(t).update(e)}});return t}async delete(e={}){const{noRecycle:t,isSerial:s}=e,{clientContexts:r,result:i}=await this.iterator(({clientContext:e,element:s})=>{const r=s[Us];if(!r)return;const i=this.getSPObject(s,e);return i.isRoot||B(t?"deleteObject":"recycle")(i),r});if(this.box.getCount())if(s)for(let e=0;e<r.length;e+=1)await ht(r[e]);else await Promise.all(r.map(ht));return this.report(t?"delete":"recycle",e),at(i,e)}async deleteByQuery(e){const{result:t}=await this.iterator(async({element:t})=>{if(void 0===t)throw new Error("Query is missed");const s=await this.of(t).get(e);if(s.length)return await this.of(s.map(H("ID"))).delete({isSerial:!0}),s});return t}async getDuplicates(){const t=await this.of({Scope:"allItems",Limit:s}).get({view:["ID","FSObjType","Modified",...this.box.getIterable().map(e=>e[Us])]}),r=t=>{const s=[];return this.box.chain(e=>{const r=t[e[Us]];Pe(r)&&s.push(r.get_lookupId?r.get_lookupId():r)}),e.MD5(s.join(".")).toString()},i=t.reduce((e,t)=>{const s=r(t);return e.has(s)||e.set(s,[]),e.get(s).push(t),e},new Map),n=[];for(const e of i){const[,t]=e;t.length>1&&n.push(t.sort((e,t)=>e.Modified.getTime()-t.Modified.getTime()))}return n.map(M)}async deleteDuplicates(e={}){const t=await this.getDuplicates();await this.of([...t.reduce((e,t)=>e.concat(t.map(H("ID"))),[])]).delete({...e,isSerial:!0})}async getEmpties(e){const t=this.box.value.map(H("ID")),{result:r}=await this.iterator(async({element:r})=>this.of({Query:fs({operator:"isnull",columns:t}),Scope:"allItems",Limit:s,Folder:r.Folder}).get(e));return r}async deleteEmpties(e){const t=this.box.value.map(H("ID")),{result:s}=await this.of(await this.of(t).getEmpties(e)).map(H("ID")).delete({isSerial:!0});return s}async merge(e){const{contextUrl:t,listUrl:r}=this;this.iterator(async({element:i})=>{const{Key:n,Forced:o,To:a,From:l,Mediator:c=(()=>u)}=i;if(!n)throw new Error("Key is missed");const h=l.Column;if(!h)throw new Error("From Column is missed");const d=a.Column;if(!d)throw new Error("To Column is missed");const[m,p]=await Promise.all([this.parent.parent.of(l.WebUrl||t)[this.parent.name](l.List||r).item({Query:xs()([`${n} IsNotNull`,l.Query]),Scope:"allItems",Limit:s}).get({view:["ID",n,h]}),this.of({Query:xs()([`${n} IsNotNull`,a.Query]),Scope:"allItems",Limit:s}).get({view:["ID",n,d],groupBy:n})]),g=[];return await Promise.all(m.map(async e=>{const t=p[e[n]];if(t){const s=t[0],r={ID:s[Us]};(ue(s[d])||o)&&(r[d]=await c(h)(e[h]),g.push(r))}})),g.length&&this.of(g).update(e)})}async erase(e){const{result:t}=await this.iterator(({element:t})=>{const{Query:s="",Folder:r,Columns:i}=t;if(!i)return;const n=T(i);return this.of({Folder:r,Query:s,Columns:n.reduce((e,t)=>(e[t]=null,e),{})}).updateByQuery(e)});return at(t,e)}async createDiscussion(e={}){const{clientContexts:t,result:s}=await this.iterator(({clientContext:e,element:t})=>{const s=this.getListSPObject(this.listUrl,e),r={Url:!0,ID:!0},i=SP.Utilities.Utility.createNewDiscussion(e,s,t.Title),n=Reflect.ownKeys(t);for(let e=0;e<n.length;e+=1){const s=n[e];r[s]||i.set_item(s,t[s])}return i.update(),i});return await Promise.all(t.map(ht)),this.report("create",e),at(e,s)}async createReply(e={}){const{clientContexts:t,result:s}=await this.iterator(({clientContext:e,element:t})=>{const{Columns:s}=t,r=this.getSPObject(t,e),i=SP.Utilities.Utility.createNewDiscussionReply(e,r),n=Reflect.ownKeys(s);for(let e=0;e<n.length;e+=1){const t=n[e];i.set_item(t,s[t])}return i.update(),i});return await Promise.all(t.map(ht)),this.report("create",e),at(s,e)}attachment(e){return Cs(this,e)}report(e,t={}){Fe(e,{...t,name:this.name,box:this.box,listUrl:this.listUrl,contextUrl:this.contextUrl})}async cacheColumns(){const{contextUrl:e,listUrl:t}=this;if(!kt(["columns",e,t])){const s=await this.parent.column().get({view:["TypeAsString","InternalName","Title","Sealed"],mapBy:"InternalName"});Mt(s)(["columns",e,t])}}getSPObject(e,t){let s=new SP.CamlQuery;const{ID:r}=e,i=this.getListSPObject(this.listUrl,t),n=t.get_url();switch(l(r)){case"number":return i.getItemById(r);case"string":ke(r)?s.set_folderServerRelativeUrl(`${n}/${Be(r)}`):s.set_viewXml(ws(r));break;default:if(e.set_viewXml)s=e;else{if(e.get_lookupId){return i.getItemById(e.get_lookupId())}{const{Folder:t,Page:r}=e;if(t){let e="";const r=`${this.listFolder}${this.listUrl}/${t}`;if("/"===n)e=r;else{e=new RegExp(n,"i").test(t)?t:r}s.set_folderServerRelativeUrl(e)}if(s.set_viewXml(ws(e)),r){const{IsPrevious:e,ID:t,Columns:i}=r,n=J(SP.ListItemCollectionPosition);n.set_pagingInfo(`${e?"PagedPrev=TRUE&":""}Paged=TRUE&p_ID=${t}${vs(i)}`),s.set_listItemCollectionPosition(n)}}}}const o=i.getItems(s);return o.camlQuery=s,o}of(e){return K(this.constructor)(this.parent,e)}});const $s=e=>null===e?null:e instanceof Date?e.toISOString():e.get_lookupValue?e.get_lookupValue():e.toString?e.toString():e;var Ls=K(class{constructor(e,t={}){this.name="pager",this.parent=e;const{OrderBy:s}=t;if(this.mainParams={OrderBy:s,Limit:me(t.Limit)?t.Limit:10,Scope:t.Scope,Query:t.Query,Folder:t.Folder},this.onLoad=t.OnLoad,this.onLoadForward=t.OnLoadForward,this.onLoadBackward=t.OnLoadBackward,this.onLoadAll=t.OnLoadAll,this.onLoadAllForward=t.OnLoadAllForward,this.onLoadAllBackward=t.OnLoadAllBackward,this.onPreload=t.OnPreload,this.onPreloadForward=t.OnPreloadForward,this.onPreloadBackward=t.OnPreloadBackward,this.itemIds={first:0,last:0},this.itemColumns={first:{},lats:{}},this.orderColumnTitles=[],s){const e=C(/>$/);this.orderColumnTitles=oe(s)?s.map(e):[e(s)]}}async move(e={}){let{view:t,groupBy:s,isPrevious:r}=e;r?this.onPreloadBackward&&await this.onPreloadBackward():this.onPreloadForward&&await this.onPreloadForward(),this.onPreload&&await this.onPreload(),t&&(t=[].concat(t,...this.orderColumnTitles,"ID")),s&&(s=void 0);let i=await this.parent.item({...this.mainParams,Page:{IsPrevious:r,ID:this.itemIds[r?"first":"last"],Columns:this.itemColumns[r?"first":"last"]}}).get({...e,view:t,groupBy:s});if(r?this.onLoadBackward&&await this.onLoadBackward():this.onLoadForward&&await this.onLoadForward(),this.onLoad&&await this.onLoad(),i.length){const e=E(i),t=k(i);r&&this.itemIds.first===e.ID?(i=[],this.itemIds.last=0,this.lastItemColumns={},this.onLoadAll&&await this.onLoadAll(),this.onLoadAllBackward&&await this.onLoadAllBackward()):(this.itemIds.first=e.ID,this.itemIds.last=t.ID,this.orderColumnTitles.length&&(this.itemColumns=this.orderColumnTitles.reduce((s,r)=>(s.first[r]=$s(e[r]),s.last[r]=$s(t[r]),s),{first:{},last:{}})))}else r?this.onLoadAllBackward&&await this.onLoadAllBackward():this.onLoadAllForward&&await this.onLoadAllForward(),this.onLoadAll&&await this.onLoadAll();return i}next(e){return this.move(e)}previous(e={}){return this.move({...e,isPrevious:!0})}});const Fs="Title",Rs=Y([N(Fs),V(Fs)]),Es=w({object:e=>{const t=Object.assign({},e),{Url:s,EntityTypeName:r,Title:i}=e;return t[Fs]=r||s||i,S(/\//)(s)&&("/"!==s&&(t[Fs]=Be(He(s))),t.Url=ke(s)?"/":Qe(s)||"/"),t},string:e=>{const t={Url:void 0,Title:e};return S(/\//)(e)&&(t.Title=He(e),t.Url=ke(e)?"/":Qe(e)||"/"),t},default:()=>({Url:"/",[Fs]:void 0})});class ks extends et{constructor(e){super(e,Es,Rs),this.prop=Fs,this.joinProp=Fs}}class Ms{constructor(e,t){this.name="list",this.prop=Fs,this.joinProp=Fs,this.parent=e,this.contextUrl=e.box.getHeadPropValue(),this.box=K(ks)(t),this.count=e.box.getCount(),this.iterator=tt({contextUrl:this.contextUrl,elementBox:this.box})}async get(e){const{clientContexts:t,result:s}=await this.iterator(({clientContext:t,element:s})=>{const r=ke(s.Url)?this.getSPObjectCollection(t):this.getSPObject(s.Title,t);return ut(t,r,e)});return await Promise.all(t.map(ht)),at(s,e)}async create(e){const{clientContexts:t,result:s}=await this.iterator(({clientContext:t,element:s})=>{const r=s[Fs];if(!r)return;const i=Y([J,St({set_title:r||void 0,set_templateType:s.BaseTemplate||SP.ListTemplateType[s.TemplateType||"genericList"],set_url:"/"===s.Url?r:s.Url,set_templateFeatureId:s.TemplateFeatureId,set_customSchemaXml:s.CustomSchemaXml,set_dataSourceProperties:s.DataSourceProperties,set_documentTemplateType:s.DocumentTemplateType,set_quickLaunchOption:s.QuickLaunchOption}),q("add")(this.getSPObjectCollection(t)),p(St({set_contentTypesEnabled:s.ContentTypesEnabled,set_defaultContentApprovalWorkflowId:s.DefaultContentApprovalWorkflowId,set_defaultDisplayFormUrl:s.DefaultDisplayFormUrl,set_defaultEditFormUrl:s.DefaultEditFormUrl,set_defaultNewFormUrl:s.DefaultNewFormUrl,set_description:s.Description,set_direction:s.Direction,set_draftVersionVisibility:s.DraftVersionVisibility,set_enableAttachments:s.EnableAttachments||!1,set_enableFolderCreation:void 0===s.EnableFolderCreation||s.EnableFolderCreation,set_enableMinorVersions:s.EnableMinorVersions,set_enableModeration:s.EnableModeration,set_enableVersioning:void 0===s.EnableVersioning||s.EnableVersioning,set_forceCheckout:s.ForceCheckout,set_hidden:s.Hidden,set_imageUrl:s.ImageUrl,set_irmEnabled:s.IrmEnabled,set_irmExpire:s.IrmExpire,set_irmReject:s.IrmReject,set_isApplicationList:s.IsApplicationList,set_lastItemModifiedDate:s.LastItemModifiedDate,set_majorVersionLimit:s.EnableVersioning?s.MajorVersionLimit:void 0,set_multipleDataList:s.MultipleDataList,set_noCrawl:void 0===s.NoCrawl||s.NoCrawl,set_objectVersion:s.ObjectVersion,set_onQuickLaunch:s.OnQuickLaunch,set_validationFormula:s.ValidationFormula,set_validationMessage:s.ValidationMessage})),p(b(h(!s.BaseTemplate&&!o[s.TemplateType]))([St({set_documentTemplateUrl:s.DocumentTemplateUrl,MajorWithMinorVersionsLimit:s.EnableVersioning?s.MajorWithMinorVersionsLimit:void 0})])),p(B("update"))])(SP.ListCreationInformation);return ut(t,i,e)});if(this.count)for(let e=0;e<t.length;e+=1)await ht(t[e]);return this.report("create",e),at(s,e)}async update(e){const{clientContexts:t,result:s}=await this.iterator(({clientContext:t,element:s})=>{const r=s[Fs];if(!r)return;const i=Y([St({set_title:r,set_enableFolderCreation:s.EnableFolderCreation,set_contentTypesEnabled:s.ContentTypesEnabled,set_defaultContentApprovalWorkflowId:s.DefaultContentApprovalWorkflowId,set_defaultDisplayFormUrl:s.DefaultDisplayFormUrl,set_defaultEditFormUrl:s.DefaultEditFormUrl,set_defaultNewFormUrl:s.DefaultNewFormUrl,set_description:s.Description,set_direction:s.Direction,set_draftVersionVisibility:s.DraftVersionVisibility,set_documentTemplateUrl:s.DocumentTemplateUrl,set_enableAttachments:s.EnableAttachments,set_enableMinorVersions:s.EnableMinorVersions,set_enableModeration:s.EnableModeration,set_enableVersioning:s.EnableVersioning,set_forceCheckout:s.ForceCheckout,set_hidden:s.Hidden,set_imageUrl:s.ImageUrl,set_irmEnabled:s.IrmEnabled,set_irmExpire:s.IrmExpire,set_irmReject:s.IrmReject,set_isApplicationList:s.IsApplicationList,set_lastItemModifiedDate:s.LastItemModifiedDate,set_majorVersionLimit:s.MajorVersionLimit,set_majorWithMinorVersionsLimit:s.MajorWithMinorVersionsLimit,set_multipleDataList:s.MultipleDataList,set_noCrawl:s.NoCr