@mindline/sync 1.0.103 → 1.0.105
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vs/VSWorkspaceState.json +0 -1
- package/.vs/slnx.sqlite +0 -0
- package/.vs/sync/CopilotIndices/17.14.260.54502/CodeChunks.db +0 -0
- package/.vs/sync/CopilotIndices/17.14.260.54502/SemanticSymbols.db +0 -0
- package/.vs/sync/FileContentIndex/069feaec-de6f-456e-9a9f-3a7edff9927d.vsidx +0 -0
- package/.vs/sync/FileContentIndex/3b17981b-603f-4e34-8b49-f18ef10f5f91.vsidx +0 -0
- package/.vs/sync/FileContentIndex/{d6a9e023-f0ee-489b-8cfd-04fd4d8b476f.vsidx → 5c93d870-257a-4d35-93a3-48d299fa5b1a.vsidx} +0 -0
- package/.vs/sync/FileContentIndex/cce6d665-d5bc-4e83-b1ff-dabf19413432.vsidx +0 -0
- package/.vs/sync/v17/.wsuo +0 -0
- package/.vs/sync/v17/DocumentLayout.backup.json +18 -11
- package/.vs/sync/v17/DocumentLayout.json +10 -11
- package/dist/src/index.d.ts +10 -2
- package/dist/sync.es.js +706 -598
- package/dist/sync.es.js.map +1 -1
- package/dist/sync.umd.js +22 -15
- package/dist/sync.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/index.d.ts +4 -1
- package/src/index.ts +294 -15
- package/.vs/sync/FileContentIndex/46473787-3d20-4f5a-849d-a99c601ab90f.vsidx +0 -0
- package/.vs/sync/FileContentIndex/57cacc78-62f1-4670-a7de-ef5a5f15761c.vsidx +0 -0
- package/.vs/sync/FileContentIndex/ddd298b1-dee9-42b4-a705-1eeebff3ae8c.vsidx +0 -0
- /package/.vs/sync/FileContentIndex/{00d0d744-d920-41f7-81bd-64419c4b96a9.vsidx → db560492-d007-4291-a6b3-50ccdcbd66b4.vsidx} +0 -0
package/dist/sync.umd.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
(function(f,b){typeof exports=="object"&&typeof module<"u"?b(exports,require("@microsoft/signalr"),require("class-transformer")):typeof define=="function"&&define.amd?define(["exports","@microsoft/signalr","class-transformer"],b):(f=typeof globalThis<"u"?globalThis:f||self,b(f.sync={},f.signalR,f.classTransformer))})(this,function(f,b,v){"use strict";var es=Object.defineProperty;var Ye=f=>{throw TypeError(f)};var ts=(f,b,v)=>b in f?es(f,b,{enumerable:!0,configurable:!0,writable:!0,value:v}):f[b]=v;var l=(f,b,v)=>ts(f,typeof b!="symbol"?b+"":b,v),ss=(f,b,v)=>b.has(f)||Ye("Cannot "+v);var Y=(f,b,v)=>b.has(f)?Ye("Cannot add the same private member more than once"):b instanceof WeakSet?b.add(f):b.set(f,v);var W=(f,b,v)=>(ss(f,b,"access private method"),v);var Q,et,C,le,ce,de,M,ue;function tt(a){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const n in a)if(n!=="default"){const t=Object.getOwnPropertyDescriptor(a,n);Object.defineProperty(s,n,t.get?t:{enumerable:!0,get:()=>a[n]})}}return s.default=a,Object.freeze(s)}const q=tt(b),st=[{oid:"1",name:"",mail:"",authority:"",tid:"",companyName:"",companyDomain:"",session:"Sign In",sel:!0}],nt=[{tid:"1",name:"",domain:"",tenantType:"",authority:"",sel:!0,graphSP:""}],rt=[],at=[{id:"1",name:"",associatedUsers:["1"],associatedTenants:["1"],associatedConfigs:[],sel:!0}],ot=[{Run:"3",Start:"2023-09-17T12:00:00.000-07:00",POST:"2023-09-17T12:00:09.500-07:00",Read:"2023-09-17T12:00:15.500-07:00",Write:"2023-09-17T12:01:30.000-07:00"},{Run:"2",Start:"2023-09-17T12:00:00.000-07:00",POST:"2023-09-17T12:00:09.500-07:00",Read:"2023-09-17T12:00:15.500-07:00",Write:"2023-09-17T12:01:30.000-07:00"},{Run:"1",Start:"2023-09-17T12:00:00.000-07:00",POST:"2023-09-17T12:00:09.500-07:00",Read:"2023-09-17T12:00:15.500-07:00",Write:"2023-09-17T12:01:30.000-07:00"}],it=[{type:"mg",resource:"Tenant Root Group",cost:0,expanded:!0,resources:[{type:"sub",resource:"Applications",cost:16677.52,expanded:!0,resources:[{type:"rg",resource:"ssfdev",cost:7500.08,expanded:!0,resources:[{type:"resources",resource:"SSFServices",cost:0,expanded:!1,resources:[]}]}]},{type:"sub",resource:"Infrastructure",cost:8737.58,expanded:!0,resources:[{type:"rg",resource:"SFFA_Prod_Mgmt_Shared_Resources_RG",cost:7500.08,expanded:!0,resources:[{type:"resources",resource:"SSFA-Prod-UTIL-01",cost:0,expanded:!1,resources:[]}]}]}]}],lt=[{type:"user",actor:"arvind@mindline.site",resource:"kv-syncproject",role:"Key Vault Certificate Officer",updatedby:"arvind@mindline.site",updatedon:"2023-09-06T15:36:45.7760714Z",resources:[]},{type:"app",actor:"mindline1-sync-512169f5-38d1-4b57-be8b-967f2d0ae4c6",resource:"dev-subscription",role:"Contributor",updatedby:"arvind@mindline.site",updatedon:"2023-09-06T15:36:45.7760714Z",resources:[]}],U="workspaceIDs";function ct(a,s){return a+s}function dt(){return"hello NPM"}function B(){return"1.0.103"}class y{constructor(){l(this,"result");l(this,"status");l(this,"error");l(this,"version");l(this,"array");this.result=!0,this.status=200,this.error="",this.version=B(),this.array=null}}class z{}l(z,"azureElevateAccess","https://management.azure.com/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01"),l(z,"azureListRootAssignments","https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId+eq+");const $=class ${static adminEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/admin`}static adminIncompleteEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/incomplete-admin`}static adminsEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/admins`}static auditConfigEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/audit-configuration`}static auditEventsEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/audit-events`}static configConsentEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/configuration/consent`}static configEnabledEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/configuration/status`}static configEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/configuration`}static configsEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/configurations`}static initEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/configuration/init`}static readerStartSyncEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/startSync`}static tenantEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/tenant`}static tenantsEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/tenants`}static workspaceEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/workspace`}static workspacesEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/workspaces`}static signalREndpoint(){return`https://${$.environmentTag}-signalrdispatcher-westus.azurewebsites.net/statsHub`}};l($,"environmentTag","dev");let T=$;class p{}l(p,"graphGroupsPredicate","v1.0/groups"),l(p,"graphMailPredicate","v1.0/me/messages"),l(p,"graphMePredicate","v1.0/me"),l(p,"graphOauth2PermissionGrantsPredicate","v1.0/oauth2PermissionGrants"),l(p,"graphServicePrincipalsPredicate","v1.0/servicePrincipals"),l(p,"graphUsersPredicate","v1.0/users"),l(p,"graphTenantByDomainPredicate","beta/tenantRelationships/findTenantInformationByDomainName"),l(p,"graphTenantByIdPredicate","beta/tenantRelationships/findTenantInformationByTenantId"),l(p,"authorityWW","https://login.microsoftonline.com/"),l(p,"authorityWWRegex",/^(https:\/\/login\.microsoftonline\.com\/)([\dA-Fa-f]{8}-[\dA-Fa-f]{4}-[\dA-Fa-f]{4}-[\dA-Fa-f]{4}-[\dA-Fa-f]{12})\/oauth2\/authorize$/),l(p,"authorityUS","https://login.microsoftonline.us/"),l(p,"authorityUSRegex",/^(https:\/\/login\.microsoftonline\.us\/)([\dA-Fa-f]{8}-[\dA-Fa-f]{4}-[\dA-Fa-f]{4}-[\dA-Fa-f]{4}-[\dA-Fa-f]{12})\/oauth2\/authorize$/),l(p,"authorityCN","https://login.partner.microsoftonline.cn/"),l(p,"authorityCNRegex",/^(https:\/\/login\.partner\.microsoftonline\.cn\/)([\dA-Fa-f]{8}-[\dA-Fa-f]{4}-[\dA-Fa-f]{4}-[\dA-Fa-f]{4}-[\dA-Fa-f]{12})\/oauth2\/authorize$/);class ut{constructor(){l(this,"id","");l(this,"displayName","");l(this,"description","")}}class ft{constructor(){l(this,"group","");l(this,"value","");l(this,"consented",!1);l(this,"removable",!1);l(this,"expanded","")}static compareByValue(s,n){return s.value.localeCompare(n.value)}static compareByGroup(s,n){return s.group.localeCompare(n.group)}}class H{constructor(){l(this,"oid");l(this,"name");l(this,"mail");l(this,"authority");l(this,"tid");l(this,"companyName");l(this,"companyDomain");l(this,"workspaceIDs");l(this,"session");l(this,"spacode");l(this,"graphAccessToken");l(this,"mindlineAccessToken");l(this,"azureAccessToken");l(this,"loginHint");l(this,"scopes");l(this,"authTS");l(this,"sel");l(this,"loggingIn");this.oid="",this.name="",this.mail="",this.authority="",this.tid="",this.companyName="",this.companyDomain="",this.workspaceIDs="",this.session="Sign In",this.spacode="",this.graphAccessToken="",this.mindlineAccessToken="",this.azureAccessToken="",this.loginHint="",this.scopes=new Array,this.authTS=new Date(0),this.sel=!1,this.loggingIn=!1}}var fe=(a=>(a[a.invalid=0]="invalid",a[a.aad=1]="aad",a[a.ad=2]="ad",a[a.googleworkspace=3]="googleworkspace",a))(fe||{}),pe=(a=>(a[a.read=1]="read",a[a.write=2]="write",a[a.notassigned=3]="notassigned",a))(pe||{});class L{constructor(){l(this,"tid");l(this,"name");l(this,"domain");l(this,"tenantType");l(this,"authority");l(this,"workspaceIDs");l(this,"sel");l(this,"graphSP");l(this,"lookupfield");this.tid="",this.name="",this.domain="",this.tenantType="aad",this.authority="",this.workspaceIDs="",this.sel=!1,this.graphSP="",this.lookupfield="Domain"}}function pt(a,s){switch(a){case p.authorityWW:return s===1?"85d35da2-4118-4b03-aa05-605cedd7f2f8":"63100afe-506e-4bb2-8ff7-d8d5ab373129";case p.authorityUS:return s===1?"b08630c7-e227-4215-9746-afc9286fb864":"17aa5d5a-f09f-4cec-87a6-28596f9fa513";case p.authorityCN:return s===1?"7db7293b-add9-4a3f-8562-1a20bfe27d5e":"debd015b-1154-4111-a4cb-fc220a537697";default:debugger;return""}}function _(a){switch(a){case p.authorityWW:return"https://graph.microsoft.com/";case p.authorityUS:return"https://graph.microsoft.us/";case p.authorityCN:return"https://microsoftgraph.chinacloudapi.cn/";default:debugger;return""}}function ht(a){switch(a){case p.authorityWW:return"https://login.microsoftonline.com/";case p.authorityUS:return"https://login.microsoftonline.us/";case p.authorityCN:return"https://login.partner.microsoftonline.cn/";default:debugger;return""}}var he=(a=>(a[a.source=1]="source",a[a.target=2]="target",a[a.sourcetarget=3]="sourcetarget",a))(he||{});class ge{constructor(){l(this,"tid");l(this,"sourceGroupId");l(this,"sourceGroupName");l(this,"targetGroupId");l(this,"targetGroupName");l(this,"configurationTenantType");l(this,"deltaToken");l(this,"usersWritten");l(this,"configId");l(this,"batchId");l(this,"isReadPermissionConsented");l(this,"isWritePermissionConsented");this.tid="",this.sourceGroupId="",this.sourceGroupName="",this.targetGroupId="",this.targetGroupName="",this.configurationTenantType="source",this.deltaToken="",this.usersWritten=0,this.configId="",this.batchId="",this.isReadPermissionConsented=!1,this.isWritePermissionConsented=!1}}class J{constructor(){l(this,"id");l(this,"workspaceId");l(this,"name");l(this,"description");l(this,"tenants");l(this,"isEnabled");l(this,"workspaceIDs");l(this,"sel");this.id="",this.name="",this.workspaceId="",this.description="",this.tenants=new Array,this.isEnabled=!1,this.workspaceIDs="",this.sel=!1}}class gt{constructor(){l(this,"id");l(this,"workspaceId");l(this,"name");l(this,"description");l(this,"isEnabled");l(this,"email");l(this,"tenantId");l(this,"sel");this.id="",this.name="",this.workspaceId="",this.description="",this.isEnabled=!1,this.email="",this.tenantId="",this.sel=!1}}class K{constructor(){l(this,"id");l(this,"name");l(this,"ownerid");l(this,"associatedUsers");l(this,"associatedTenants");l(this,"associatedConfigs");l(this,"sel");this.id="",this.name="",this.ownerid="",this.associatedUsers=new Array,this.associatedTenants=new Array,this.associatedConfigs=new Array,this.sel=!1}}function N(){let a;try{a=window.localStorage;const s="__storage_test__";return a.setItem(s,s),a.removeItem(s),!0}catch(s){return s instanceof DOMException&&(s.code===22||s.code===1014||s.name==="QuotaExceededError"||s.name==="NS_ERROR_DOM_QUOTA_REACHED")&&a&&a.length!==0}}class mt{constructor(s=!1){Y(this,Q);l(this,"version",B());l(this,"tab",0);l(this,"us",[]);l(this,"ts",[]);l(this,"cs",[]);l(this,"acs",[]);l(this,"ws",[]);l(this,"configlevelconsent_configid","");l(this,"configlevelconsent_access",3);this.init(s)}init(s){if(console.log(`Calling InitInfo::init(bClearLocalStorage: ${s?"true":"false"})`),N()){let o=localStorage.getItem("InitInfo");if(o!=null&&typeof o=="string"&&o!==""){let i=JSON.parse(o);if(i.us.length!==0)if(s)localStorage.removeItem("InitInfo");else{W(this,Q,et).call(this,i);return}}}this.tab=0,this.version=B(),this.configlevelconsent_configid="",this.configlevelconsent_access=3;var n=JSON.stringify(st),t=JSON.stringify(nt),e=JSON.stringify(rt),r=JSON.stringify(at);try{this.us=v.deserializeArray(H,n),this.ts=v.deserializeArray(L,t),this.cs=v.deserializeArray(J,e),this.ws=v.deserializeArray(K,r),this.tagWithWorkspaces()}catch{debugger}}save(){let s=JSON.stringify(this);localStorage.setItem("InitInfo",s)}tagWithWorkspaces(){this.us.map(s=>s.workspaceIDs=""),this.ts.map(s=>s.workspaceIDs=""),this.cs.map(s=>s.workspaceIDs="");for(let s of this.ws){for(let n of s.associatedUsers){let t=this.us.find(e=>e.oid===n);if(t!==void 0)t[U]+=s.id,t[U]+=" ";else debugger}for(let n of s.associatedTenants){let t=this.ts.find(e=>e.tid===n);if(t!==void 0)t[U]+=s.id,t[U]+=" ";else debugger}for(let n of s.associatedConfigs){let t=this.cs.find(e=>e.id===n);if(t!==void 0)t[U]+=s.id,t[U]+=" ";else debugger}}return!0}}Q=new WeakSet,et=function(s){this.tab=s.tab,this.version=B(),this.configlevelconsent_configid=s.configlevelconsent_configid,this.configlevelconsent_access=s.configlevelconsent_access,typeof s.us>"u"?this.us=new Array:this.us=s.us.map(n=>{let t=new H;return t.oid=n.oid,t.name=n.name,t.mail=n.mail,t.authority=n.authority,t.tid=n.tid,t.companyName=n.companyName,t.companyDomain=n.companyDomain,t.workspaceIDs=n.workspaceIDs,t.session=n.session,t.spacode=n.spacode,t.graphAccessToken=n.graphAccessToken,t.mindlineAccessToken=n.mindlineAccessToken,t.azureAccessToken=n.azureAccessToken,t.loginHint=n.loginHint,t.scopes=n.scopes,t.authTS=new Date(n.authTS),t.sel=n.sel,t.loggingIn=n.loggingIn,t}),typeof s.ts>"u"?this.ts=new Array:this.ts=s.ts.map(n=>{let t=new L;return t.tid=n.tid,t.name=n.name,t.domain=n.domain,t.tenantType=n.tenantType,t.authority=n.authority,t.workspaceIDs=n.workspaceIDs,t.sel=n.sel,t.lookupfield=n.lookupfield,t}),typeof s.cs>"u"?this.cs=new Array:this.cs=s.cs.map(n=>{let t=new J;return t.id=n.id,t.workspaceId=n.workspaceId,t.name=n.name,t.description=n.description,t.tenants=n.tenants,t.isEnabled=n.isEnabled,t.workspaceIDs=n.workspaceIDs,t.sel=n.sel,t}),typeof s.ws>"u"?this.ws=new Array:this.ws=s.ws.map(n=>{let t=new K;return t.id=n.id,t.name=n.name,t.ownerid=n.ownerid,t.associatedUsers=n.associatedUsers,t.associatedTenants=n.associatedTenants,t.associatedConfigs=n.associatedConfigs,t.sel=n.sel,t})};const yt=[{id:1,task:"initialization",start:"1970-01-01T00:00:00",end:"1970-01-01T00:00:00",expected:"0:22",status:"not started",expanded:!0,subtasks:[{id:2,task:"authenticate user",start:"1970-01-01T00:00:00",end:"1970-01-01T00:00:00",expected:"0:01",status:"not started"},{id:3,task:"reload React",start:"1970-01-01T00:00:00",end:"1970-01-01T00:00:00",expected:"0:07",status:"not started"},{id:4,task:"GET tenant details",start:"1970-01-01T00:00:00",end:"1970-01-01T00:00:00",expected:"0:01",status:"not started"},{id:5,task:"POST config init",start:"1970-01-01T00:00:00",end:"1970-01-01T00:00:00",expected:"0:10",status:"not started"},{id:6,task:"GET workspaces",start:"1970-01-01T00:00:00",end:"1970-01-01T00:00:00",expected:"0:04",status:"not started"}]}];class wt{constructor(s){Y(this,C);l(this,"tasks");this.tasks=[new V],this.init(s)}init(s){if(console.log(`Calling TaskArray::init(bClearLocalStorage: ${s?"true":"false"})`),this.tasks.length=0,s&&N()&&localStorage.removeItem("Tasks"),N()){let n=localStorage.getItem("Tasks");if(n!=null&&typeof n=="string"&&n!==""){let e=JSON.parse(n);if(this.tasks=W(this,C,ce).call(this,e.tasks),this.tasks.length!==0)return}}this.tasks=W(this,C,ce).call(this,yt)}setTaskStart(s,n){let t=W(this,C,le).call(this,s);if(t!=null&&t!=null)t.setStart(n),t.status="in progress",W(this,C,de).call(this);else debugger}setTaskEnd(s,n,t){let e=W(this,C,le).call(this,s);if(e!=null&&e!=null)e.setEnd(n),e.status=t,W(this,C,de).call(this);else debugger}}C=new WeakSet,le=function(s){let n=this.tasks.find(t=>t.task==s);if(n==null||n==null){for(n of this.tasks)if(n.subtasks!=null&&n.subtasks!=null&&(n=n.subtasks.find(t=>t.task==s),n!=null&&n!=null))break}return n},ce=function(s){return s.map(n=>{let t=new V;return t.id=n.id,t.task=n.task,t.setStart(new Date(n.start)),t.setEnd(new Date(n.end)),t.expected=n.expected,t.status=n.status,t.expanded=n.expanded,typeof n.subtasks<"u"&&n.subtasks!=null&&(t.subtasks=n.subtasks.map(e=>{let r=new V;return r.id=e.id,r.task=e.task,r.setStart(new Date(e.start)),r.setEnd(new Date(e.end)),r.expected=e.expected,r.status=e.status,r.expanded=e.expanded,r})),t})},de=function(){let s=JSON.stringify(this);N()&&localStorage.setItem("Tasks",s)};class V{constructor(){l(this,"id",0);l(this,"task","");l(this,"start",new Date);l(this,"startDisplay","");l(this,"end",new Date);l(this,"endDisplay","");l(this,"elapsedDisplay","");l(this,"expected",0);l(this,"status","");l(this,"expanded",!1);l(this,"subtasks",[])}setEnd(s){this.end=s,this.endDisplay=`${this.end.getMinutes().toString().padStart(2,"0")}:${this.end.getSeconds().toString().padStart(2,"0")}`;let n=0,t=this.end.getSeconds()-this.start.getSeconds();t<0&&(t+=60,n=-1);let e=this.end.getMinutes()-this.start.getMinutes()+n;e<0&&(e+=60),this.elapsedDisplay=`${e.toString().padStart(2,"0")}:${t.toString().padStart(2,"0")}`}setStart(s){this.start=s,this.startDisplay=`${this.start.getMinutes().toString().padStart(2,"0")}:${this.start.getSeconds().toString().padStart(2,"0")}`}}class x{constructor(s){l(this,"Run",0);l(this,"Start",new Date);l(this,"startDisplay","");l(this,"POST");l(this,"postDisplay");l(this,"Read");l(this,"readDisplay");l(this,"Write");l(this,"writeDisplay");l(this,"Duration");l(this,"durationDisplay");this.Run=s,this.start(""),this.POST=new Date,this.postDisplay="",this.Read=new Date,this.readDisplay="",this.Write=new Date,this.writeDisplay="",this.Duration=new Date,this.durationDisplay=""}start(s){s==""?this.Start=new Date:this.Start=new Date(s),this.startDisplay=`${this.Start.getMinutes().toString().padStart(2,"0")}:${this.Start.getSeconds().toString().padStart(2,"0")}`}post(s){s==""?this.POST=new Date:this.POST=new Date(s),this.postDisplay=`${this.POST.getMinutes().toString().padStart(2,"0")}:${this.POST.getSeconds().toString().padStart(2,"0")}`}read(s){s==""?this.Read=new Date:this.Read=new Date(s),this.readDisplay=`${this.Read.getMinutes().toString().padStart(2,"0")}:${this.Read.getSeconds().toString().padStart(2,"0")}`}write(s){s==""?this.Write=new Date:this.Write=new Date(s),this.writeDisplay=`${this.Write.getMinutes().toString().padStart(2,"0")}:${this.Write.getSeconds().toString().padStart(2,"0")}`,this.Duration=new Date(this.Write.getTime()-this.Start.getTime()),this.durationDisplay=`${this.Duration.getMinutes().toString().padStart(2,"0")}:${this.Duration.getSeconds().toString().padStart(2,"0")}`}}class me{constructor(s){Y(this,M);l(this,"milestones",[]);this.init(s)}init(s){if(N()){let n=localStorage.getItem("syncmilestones");if(n!=null&&typeof n=="string"&&n!==""){let e=JSON.parse(n);if(e.length!==0)if(s)localStorage.removeItem("syncmilestones");else{W(this,M,ue).call(this,e);return}}}W(this,M,ue).call(this,ot)}save(){let s=JSON.stringify(this.milestones);N()&&localStorage.setItem("syncmilestones",s)}start(s){if(this.milestones==null||this.milestones.length<1){debugger;return}let n=Number(this.milestones[0].Run),t=new x(n+1);this.milestones.unshift(t),this.milestones=this.milestones.map(e=>{let r=new x(e.Run);return r.Start=e.Start,r.startDisplay=e.startDisplay,r.POST=e.POST,r.postDisplay=e.postDisplay,r.Read=e.Read,r.readDisplay=e.readDisplay,r.Write=e.Write,r.writeDisplay=e.writeDisplay,r.Duration=e.Duration,r.durationDisplay=e.durationDisplay,r}),s(this.milestones),console.log(`Start milestone: ${this.milestones[0].Run}:${this.milestones[0].Start}`)}unstart(s){if(this.milestones==null||this.milestones.length<1){debugger;return}let n=this.milestones.shift();this.milestones=this.milestones.map(t=>{let e=new x(t.Run);return e.Start=t.Start,e.startDisplay=t.startDisplay,e.POST=t.POST,e.postDisplay=t.postDisplay,e.Read=t.Read,e.readDisplay=t.readDisplay,e.Write=t.Write,e.writeDisplay=t.writeDisplay,e.Duration=t.Duration,e.durationDisplay=t.durationDisplay,e}),s(this.milestones),console.log(`Unstart removed first milestone: ${n.Run}:${n.Start}`)}post(s){if(this.milestones==null||this.milestones.length<1){debugger;return}this.milestones[0].post(""),s(this.milestones),console.log(`POST milestone: ${this.milestones[0].Run}:${this.milestones[0].POST}`)}read(s){if(this.milestones==null||this.milestones.length<1){debugger;return}this.milestones[0].read(""),s(this.milestones),console.log(`Read milestone: ${this.milestones[0].Run}:${this.milestones[0].Read}`)}write(s){if(this.milestones==null||this.milestones.length<1){debugger;return}for(this.milestones[0].write("");this.milestones.length>10;){let n=this.milestones.pop();console.log(`Removed milestone #${n.Run}: ${n.Start}`)}this.save(),this.milestones=this.milestones.map(n=>{let t=new x(n.Run);return t.Start=n.Start,t.startDisplay=n.startDisplay,t.POST=n.POST,t.postDisplay=n.postDisplay,t.Read=n.Read,t.readDisplay=n.readDisplay,t.Write=n.Write,t.writeDisplay=n.writeDisplay,t.Duration=n.Duration,t.durationDisplay=n.durationDisplay,t}),s(this.milestones)}}M=new WeakSet,ue=function(s){s==null?this.milestones=new Array:this.milestones=s.map(n=>{let t=new x(Number(n.Run));return t.start(n.Start),t.post(n.POST),t.read(n.Read),t.write(n.Write),t})};class Tt{constructor(s,n,t){l(this,"tenantNodes");l(this,"pb_startTS");l(this,"pb_progress");l(this,"pb_increment");l(this,"pb_idle");l(this,"pb_idleMax");l(this,"pb_total");l(this,"pb_timer");l(this,"milestoneArray");this.tenantNodes=new Array,this.init(s,n,t),this.pb_startTS=0,this.pb_progress=0,this.pb_increment=0,this.pb_timer=null,this.pb_idle=0,this.pb_idleMax=0,this.pb_total=0,this.milestoneArray=new me(!1)}init(s,n,t){console.log(`Calling BatchArray::init(config: "${s?s.name:"null"}", bClearLocalStorage: ${t?"true":"false"})`),t&&N()&&(localStorage.removeItem(s.name),this.milestoneArray.init(t)),s!=null&&s.tenants!=null&&n!=null&&(this.tenantNodes.length=0,s.tenants.map(e=>{if(e.configurationTenantType==="source"||e.configurationTenantType==="sourcetarget"){let r=n.ts.find(o=>o.tid===e.tid);if(r!=null){let o=new ee(e.tid,r.name,e.batchId);this.tenantNodes.push(o)}else{console.log(`Error: no tenant found for config source tenant ${s.name}`);debugger;return}}}),this.tenantNodes.map(e=>{s.tenants.map(r=>{if((r.configurationTenantType==="target"||r.configurationTenantType==="sourcetarget")&&r.tid!==e.tid){let o=n.ts.find(d=>d.tid===r.tid);if(o!=null){let d=new ee(r.tid,o.name,r.batchId);e.targets.push(d),e.expanded=!0}else{console.log(`Error: no tenant found for config target tenant ${s.name}`);debugger;return}}})}))}initializeProgressBar(s,n,t,e){this.pb_startTS=Date.now(),this.pb_progress=0,this.pb_increment=.25,this.pb_idle=0,this.pb_idleMax=0,this.pb_total=0,this.pb_timer=setInterval(()=>{this.milestoneArray.milestones[0].Write!=null?(clearInterval(this.pb_timer),this.pb_timer=null,this.pb_progress=100,s(this.pb_progress),t(`Complete. [max idle: ${this.pb_idleMax}]`)):(this.pb_total=this.pb_total+1,this.pb_idle=this.pb_idle+1,this.pb_idleMax=Math.max(this.pb_idle,this.pb_idleMax),t(`${this.pb_total} seconds elapsed. Last update ${this.pb_idle} seconds ago. [max idle: ${this.pb_idleMax}/60]`),this.pb_idle>=60&&this.milestoneArray.milestones[0].Write==null&&n(`sync continuing, but no update for ${this.pb_idle} seconds`),this.pb_progress<100&&(this.pb_progress=Math.min(100,this.pb_progress+this.pb_increment),s(this.pb_progress)))},1e3),this.milestoneArray.start(e)}uninitializeProgressBar(s,n,t,e){this.pb_startTS=0,this.pb_progress=0,s(this.pb_progress),n("sync failed to execute"),this.pb_increment=0,clearInterval(this.pb_timer),this.pb_timer=null,this.pb_idle=0,this.pb_idleMax=0,t(`No updates seen for ${this.pb_idle} seconds. [max idle: ${this.pb_idleMax}]`),this.milestoneArray.unstart(e)}initializeSignalR(s,n,t,e,r,o,d,i,c,u,h){this.milestoneArray.post(c),u("started sync, waiting for updates..."),this.init(s,n,!1);let k=D=>{console.log(D);let G=JSON.parse(D);this.pb_idle=0;let R=t.find(m=>m.BatchId==G.TargetID);if(R==null){console.log(`Batch ${G.TargetID} not found in batchIdArray.`);debugger;return}let g=this.tenantNodes.find(m=>m.tid===R.SourceId);if(g==null){console.log(`Tenant ${R.SourceId} not found in BatchArray.`);debugger;return}g.batchId=R.BatchId;let P=G.Stats,w=Object.keys(P),E=Object.values(P),je=!1,qe=!1;for(let m=0;m<w.length;m++){let O=w[m].endsWith("TotalCount"),X=w[m].endsWith("CurrentCount"),j=w[m].endsWith("DeferredCount"),oe=w[m].endsWith("RescheduledCount");if(w[m].startsWith("Reader")){let F=/Reader\/TID:(.+)\/TotalCount/;if(X&&(F=/Reader\/TID:(.+)\/CurrentCount/),j&&(F=/Reader\/TID:(.+)\/DeferredCount/),oe&&(F=/Reader\/TID:(.+)\/RescheduledCount/),w[m].match(F)==null){console.log(`tid not found in ${w[m]}.`);debugger;return}O?(je=Number(E[m])==0,g.total=Math.max(Number(E[m]),g.total),console.log(`----- ${g.name} TID: ${g.tid} batchId: ${g.batchId}`),console.log(`----- ${g.name} Total To Read: ${g.total}`)):(qe=Number(E[m])==0,g.read=Math.max(Number(E[m]),g.read),console.log(`----- ${g.name} Currently Read: ${g.read}`))}if(g.nothingtosync=je&&qe,w[m].startsWith("Writer")){let F=/Writer\/TID:(.+)\/TotalCount/;X&&(F=/Writer\/TID:(.+)\/CurrentCount/),j&&(F=/Writer\/TID:(.+)\/DeferredCount/),oe&&(F=/Writer\/TID:(.+)\/RescheduledCount/);let ie=w[m].match(F);if(ie==null){console.log(`tid not found in ${w[m]}.`);debugger;return}let I=g.targets.find(Yt=>Yt.tid===ie[1]);if(I==null){console.log(`Writer ${g.name} not found under Reader ${g.name}.`);debugger;return}if(I.batchId=R.BatchId,O)I.total=Math.max(Number(E[m]),I.total),console.log(`----- ${I.name} TID: ${I.tid} batchId: ${I.batchId}`),console.log(`----- ${I.name} Total To Write: ${I.total}`);else if(X)I.written=Math.max(Number(E[m]),I.written),console.log(`----- ${I.name} Total Written: ${I.written}`);else if(j||oe)I.deferred=Math.max(Number(E[m]),I.deferred),console.log(`----- ${I.name} Total Deferred: ${I.deferred}`);else{console.log("unknown writer type");debugger;return}I.update(I.total,I.read,I.written,I.deferred)}}g.update(g.total,g.read,g.written,g.deferred);let He=!0,Je=!0,Ke=!1,Ve=!0,ae=0,Ze=0,Qe=0,Xe=0;if(this.tenantNodes.map(m=>{m.targets.map(O=>{Je&&(Je=O.status=="complete"||O.status=="failed"),Ke||(Ke=O.total>0||O.status!="not started"),Qe+=Math.max(O.total,m.total),Xe+=O.written}),Ve&&(Ve=m.nothingtosync),He&&(He=m.status=="complete"||m.status=="failed"),ae+=m.total,Ze+=m.read}),r(ae),o(Ze),d(Math.max(Qe,ae)),i(Xe),Ve)this.milestoneArray.write(c),u("nothing to sync"),console.log('Setting config sync result: "nothing to sync"');else{if(He&&this.milestoneArray.milestones[0].Read==null){this.milestoneArray.read(c),u("reading complete"),console.log('Setting config sync result: "reading complete"'),e(s.workspaceId);let j=(Date.now()-this.pb_startTS)/1e3/8.5;this.pb_increment=j,console.log(`Setting increment: ${this.pb_increment}% per second`)}Je?(this.milestoneArray.write(c),u("sync complete"),console.log('Setting config sync result: "complete"')):Ke?(u("writing in progress"),console.log('Setting config sync result: "writing in progress"')):this.milestoneArray.milestones[0].Read==null&&(u("reading in progress"),console.log('Setting config sync result: "reading in progress"'))}};t.map(D=>{const G=T.signalREndpoint();let R=new URL(G);R.searchParams.append("statsId",D.BatchId),console.log(`Creating SignalR Hub for TID: ${D.SourceId} ${R.href}`);const g=new q.HubConnectionBuilder().withUrl(R.href).withAutomaticReconnect().configureLogging(q.LogLevel.Information).build();g.on("newMessage",k),g.onreconnecting(P=>{console.assert(g.state===q.HubConnectionState.Reconnecting),console.log(`Connection lost due to error "${P}". Reconnecting.`)}),g.onreconnected(P=>{console.assert(g.state===q.HubConnectionState.Connected),console.log(`Connection reestablished. Connected with connectionId "${P}".`)}),g.onclose(async()=>{console.log("Connection closing. Attempting restart."),await g.start()}),g.start().catch(console.error)})}async startSync(s,n,t){let e=new y;if(this.tenantNodes==null||this.tenantNodes.length==0){debugger;return e.result=!1,e.error="startSync: invalid parameters",e.status=500,e}return e=await Me(s,n,t),e}}class ee{constructor(s,n,t){l(this,"expanded");l(this,"status","");l(this,"name");l(this,"tid");l(this,"batchId");l(this,"total",0);l(this,"read",0);l(this,"written",0);l(this,"deferred",0);l(this,"nothingtosync");l(this,"targets");this.expanded=!1,this.name=n,this.tid=s,this.batchId=t,this.nothingtosync=!1,this.targets=new Array,this.update(0,0,0,0)}update(s,n,t,e){this.total=s,this.read=n,this.written=t,this.deferred=e,this.read===0&&this.written===0&&(this.status="not started"),this.read>0?this.read<this.total?this.status="in progress":this.read===this.total&&(this.status="complete"):this.written>0&&(this.written+this.deferred<this.total?this.status="in progress":this.written===this.total?this.status="complete":this.written+this.deferred>=this.total&&(this.status="failed"))}}class te{constructor(s,n){l(this,"resourceNodes");this.resourceNodes=new Array,s&&this.init(n)}init(s){if(console.log(`Calling ResourceArray::init(bClearLocalStorage: ${s?"true":"false"})`),N()){let t=localStorage.getItem("ResourceArray");if(t!=null&&typeof t=="string"&&t!=="")if(s)localStorage.removeItem("ResourceArray");else{let r=JSON.parse(t);this.resourceNodes=r.resourceNodes;return}}var n=JSON.stringify(it);try{this.resourceNodes=v.deserializeArray(ye,n)}catch{debugger}}async read(s,n){let t=new te(!1,!1);return t.resourceNodes=await Qt(s,n),t}save(){if(N()){let s=JSON.stringify(this);localStorage.setItem("ResourceArray",s)}}}class ye{constructor(s,n,t){l(this,"type");l(this,"resource");l(this,"cost");l(this,"expanded");l(this,"resources");this.type=s,this.resource=n,this.cost=t,this.expanded=!1,this.resources=new Array}}class St{constructor(s){l(this,"actorNodes");this.actorNodes=new Array,this.init(s)}init(s){if(console.log(`Calling ResourceArray::init(bClearLocalStorage: ${s?"true":"false"})`),N()){let t=localStorage.getItem("RBACActors");if(t!=null&&typeof t=="string"&&t!=="")if(s)localStorage.removeItem("RBACActors");else{let r=JSON.parse(t);this.actorNodes=r.actorNodes;return}}var n=JSON.stringify(lt);try{this.actorNodes=v.deserializeArray(we,n)}catch{debugger}}}class we{constructor(s,n,t,e,r,o){l(this,"type");l(this,"actor");l(this,"resource");l(this,"role");l(this,"updatedby");l(this,"updatedon");l(this,"actors");this.type=s,this.actor=n,this.resource=t,this.role=e,this.updatedby=r,this.updatedon=o,this.actors=new Array}}function bt(a){return"Group.Read.All User.Read.All openid profile offline_access User.Read Contacts.Read CrossTenantInformation.ReadBasic.All"}async function Z(a,s){const n=new Headers;n.append("Content-Type","application/json"),n.append("accept","*/*");const t=bt();if(s.graphAccessToken==null||s.graphAccessToken==="")try{let e=await a.acquireTokenByCode({code:s.spacode});s.graphAccessToken=e.accessToken,console.log("Front end token acquired by code: "+s.graphAccessToken.slice(0,20))}catch(e){console.log("Front end token failure: "+e)}else try{let e=a.getAllAccounts(),r=s.oid+"."+s.tid,o=null;for(let i=0;i<e.length;i++)e[i].homeAccountId==r&&(o=e[i]);let d=await a.acquireTokenSilent({scopes:[t],account:o});s.graphAccessToken=d.accessToken,console.log("Front end token graph acquired silently: "+s.graphAccessToken.slice(0,20))}catch(e){try{console.log("Front end graph token silent acquisition failure: "+e);let r=a.getAllAccounts(),o=s.oid+"."+s.tid,d=null;for(let i=0;i<r.length;i++)r[i].homeAccountId==o&&(d=r[i]);a.acquireTokenRedirect({scopes:[t],account:d})}catch(r){console.log("Front end graph token redirect acquisition failure: "+r)}}return n.append("Authorization",`Bearer ${s.graphAccessToken}`),n}async function It(a,s,n){if(s==null||s.spacode=="")return{groups:[],error:"500: invalid user passed to groupsGet"};let e={method:"GET",headers:await Z(a,s)};try{let r=_(s.authority)+p.graphGroupsPredicate;r+=`/?$filter=startsWith(displayName, '${n}')`;let d=await(await fetch(r,e)).json();return typeof d.error<"u"?{groups:[],error:`${d.error.code}: ${d.error.message}`}:{groups:d.value,error:""}}catch(r){return console.log(r),{groups:[],error:`Exception: ${r}`}}}async function Te(a,s,n,t){try{let e=_(s.authority)+p.graphOauth2PermissionGrantsPredicate,r=new URL(e);r.searchParams.append("$filter",`resourceId eq '${n}' and consentType eq 'Principal' and principalId eq '${t}'`);let d=await(await fetch(r.href,a)).json();if(typeof d.error<"u")return{grants:null,id:null,error:`${d.error.code}: ${d.error.message}`};if(d.value.length!=1){debugger;return{grants:null,id:null,error:"oauth2PermissionGrantsGet: more than one matching delegated consent grant."}}return{grants:d.value[0].scope,id:d.value[0].id,error:""}}catch(e){return console.log(e),{grants:null,id:null,error:`Exception: ${e}`}}}async function Se(a,s,n,t){if(s==null||s.spacode=="")return!1;try{let e=_(s.authority);e+=p.graphOauth2PermissionGrantsPredicate+`/${n}`;let r=`{ "scope": "${t}" }`,d={method:"PATCH",headers:await Z(a,s),body:r},i=await fetch(e,d),c=await i.json();if(i.status==204&&i.statusText=="No Content")return!0;debugger;return console.log(`oauth2PermissionGrantsSet: PATCH failed ${c.error.code}: ${c.error.message}`),!1}catch(e){debugger;return console.log(e),!1}}function At(a,s){let n=ht(a.authority);n+=a.tid,n+="/adminconsent";let t=new URL(n),e=pt(a.authority,s);t.searchParams.append("client_id",e),t.searchParams.append("redirect_uri",window.location.origin),t.searchParams.append("domain_hint",a.companyDomain),t.searchParams.append("login_hint",a.mail),window.location.assign(t.href)}async function be(a,s,n){try{let t=_(s.authority);t+=p.graphServicePrincipalsPredicate,t+=`(appId='${n}')`;let e=new URL(t);e.searchParams.append("$select","id,appId,displayName");let o=await(await fetch(e.href,a)).json();return typeof o.error<"u"?{spid:"",error:`${o.error.code}: ${o.error.message}`}:{spid:o.id,error:""}}catch(t){return console.log(t),{spid:"",error:`Exception: ${t}`}}}async function $t(a,s){if(a.authority==""){let e=new L;if(e.domain=a.tid,await se(e,!1))a.authority=e.authority;else{debugger;return!1}}let n=window.location.href;switch(a.authority){case p.authorityWW:n+="MicrosoftIdentity/Account/SignIn";break;case p.authorityUS:n+="USGov/SignIn";break;case p.authorityCN:n+="China/SignIn";break;default:return!1}let t=new URL(n);if(t.searchParams.append("redirectUri",window.location.origin),a.oid!=="1"){t.searchParams.append("loginHint",a.mail);const e=/@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})$/,r=a.mail.match(e);let o=r?r[1]:"organizations";t.searchParams.append("domainHint",o)}else t.searchParams.append("domainHint","organizations");return s.setTaskStart("initialization",new Date),s.setTaskStart("authenticate user",new Date),window.location.assign(t.href),!0}function kt(a,s){debugger;if(a.oid=="1")return;let n=window.location.href;switch(a.authority){case p.authorityWW:n+="MicrosoftIdentity/Account/Challenge";break;case p.authorityUS:n+="USGov/Challenge";break;case p.authorityCN:n+="China/Challenge";break;default:return}let t=new URL(n);t.searchParams.append("redirectUri",window.location.origin),t.searchParams.append("scope",s),t.searchParams.append("domainHint","organizations"),t.searchParams.append("loginHint",a.mail),window.location.assign(t.href)}async function Dt(a){if(a.oid=="1")return!1;let s=window.location.href;s+="user";let n=new URL(s);n.searchParams.append("oid",a.oid),n.searchParams.append("tid",a.tid),n.searchParams.append("loginHint",a.loginHint),n.searchParams.append("verb","LOGOUT");let t={method:"PATCH"},e=await fetch(n.href,t);if(e.status==200&&e.statusText=="OK")console.log(`Successfully set admin ${a.mail} logout_hint`);else return console.log(`Failed to set admin ${a.mail} logout_hint`),!1;let r=window.location.href;switch(a.authority){case p.authorityWW:r+="MicrosoftIdentity/Account/SignOut";break;case p.authorityUS:r+="USGov/SignOut";break;case p.authorityCN:r+="China/SignOut";break;default:return!1}return n=new URL(r),n.searchParams.append("redirectUri",window.location.origin),window.location.assign(n.href),!0}async function vt(a,s,n,t){if(t)debugger;if(s.name!=null&&s.name!=="")return!1;if(a.graphAccessToken!=null&&a.graphAccessToken===""){console.log(`tenantRelationshipsGetByDomain called with invalid logged in user: ${a.name}`);try{let i=await n.acquireTokenByCode({code:a.spacode,scopes:["user.read","contacts.read","CrossTenantInformation.ReadBasic.All"]});a.graphAccessToken=i.accessToken,console.log("tenantRelationshipsGetByDomain: Front end token acquired: "+a.graphAccessToken.slice(0,20))}catch(i){return console.log("tenantRelationshipsGetByDomain: Front end token failure: "+i),!1}}const e=new Headers,r=`Bearer ${a.graphAccessToken}`;e.append("Authorization",r);let o={method:"GET",headers:e};try{var d=_(s.authority)+p.graphTenantByDomainPredicate;d+="(domainName='",d+=s.domain,d+="')",console.log("tenantRelationshipsGetByDomain: Attempting GET from /findTenantInformationByDomainName:",d);let i=await fetch(d,o);if(i.status==200){let c=await i.json();if(c){if(c.error!=null){debugger;return console.log("tenantRelationshipsGetByDomain: Failed GET from /findTenantInformationByDomainName: ",c.error.message),!1}else if(c.displayName!=null&&c.displayName!=="")return s.tid=c.tenantId,s.name=c.displayName,console.log("tenantRelationshipsGetByDomain: Successful GET from /findTenantInformationByDomainName: ",c.displayName),!0}else console.log("tenantRelationshipsGetByDomain: Failed to GET from /findTenantInformationByDomainName: ",d)}}catch(i){return console.log("Failed to GET from /findTenantInformationByDomainName: ",i),!1}return!1}async function Ie(a,s,n,t,e){if(console.log("**** tenantRelationshipsGetById"),e)debugger;if(a.graphAccessToken==="")try{let c=await t.acquireTokenByCode({code:a.spacode,scopes:["user.read","contacts.read","CrossTenantInformation.ReadBasic.All"]});a.graphAccessToken=c.accessToken,console.log("tenantRelationshipsGetById: Front end token acquired: "+a.graphAccessToken.slice(0,20))}catch(c){return console.log("tenantRelationshipsGetById: Front end token failure: "+c),!1}const r=new Headers,o=`Bearer ${a.graphAccessToken}`;r.append("Authorization",o);let d={method:"GET",headers:r};try{var i=_(a.authority)+p.graphTenantByIdPredicate;i+="(tenantId='",i+=s.tid,i+="')",console.log("tenantRelationshipsGetById: Attempting GET from /findTenantInformationByTenantId:",i);let u=await(await fetch(i,d)).json();if(u&&typeof u.displayName!==void 0&&u.displayName!==""){if(s!==void 0)s.name=u.displayName,s.domain=u.defaultDomainName;else{console.log("tenantRelationshipsGetById: missing associated tenant for logged in user.");debugger}return console.log("tenantRelationshipsGetById: Successful GET from /findTenantInformationByTenantId: ",u.displayName),!0}else console.log("tenantRelationshipsGetById: Failed to GET from /findTenantInformationByTenantId: ",i)}catch(c){return console.log("tenantRelationshipsGetById: Failed to GET from /findTenantInformationByTenantId: ",c),!1}return!1}async function se(a,s){if(s)debugger;let n=[p.authorityWW,p.authorityUS,p.authorityCN],t=[p.authorityWWRegex,p.authorityUSRegex,p.authorityCNRegex],e=null;try{for(let i=0;i<3;i++){var r=n[i];if(a.lookupfield=="Domain"?r+=a.domain:a.lookupfield=="Tenant ID"&&(r+=a.tid),r+="/.well-known/openid-configuration",console.log("Attempting GET from openid well-known endpoint: ",r),e=await fetch(r),e.status==200){let c=await e.json();if(c){var o=c.authorization_endpoint;for(let u=0;u<3;u++){var d=o.match(t[u]);if(d!=null)return a.tid=d[2],a.authority=d[1],console.log(`Successful GET from openid well-known endpoint: tid: ${a.tid} authority: ${a.authority}`),!0}}else console.log(`Failed JSON parse of openid well-known endpoint response ${r}.`)}else console.log(`Failed GET from ${r}.`)}}catch(i){console.log("Failed to GET from openid well-known endpoint: ",i)}return(a.tid==""||a.authority=="")&&console.log(`GET from openid well-known endpoint failed to find tenant: ${e?e.statusText:"unknown"}`),!1}async function Ae(a,s,n){if(s==null||s.spacode==""||n==null){debugger;return{scopes:null,id:null,error:"500: invalid parameter(s) passed to getUserDelegatedScopes"}}let e={method:"GET",headers:await Z(a,s)};try{if(n.graphSP==""){let{spid:i,error:c}=await be(e,s,"00000003-0000-0000-c000-000000000000");if(c!=""){debugger;return{scopes:null,id:null,error:`${c}`}}n.graphSP=i}let{grants:r,id:o,error:d}=await Te(e,s,n.graphSP,s.oid);if(d!=""){debugger;return{scopes:null,id:null,error:`${d}`}}return{scopes:r,id:o,error:""}}catch(r){debugger;return console.log(r),{scopes:null,id:null,error:`Exception: ${r}`}}}async function Pt(a,s,n,t){if(s==null||s.spacode==""||n==null){debugger;return!1}let{scopes:e,id:r,error:o}=await Ae(a,s,n);if(o!=""){debugger;return console.log(`userDelegatedScopesRemove: cannot find userDelegatedScopes for ${s.mail}: ${o}`),!1}e=e.replace(t,"");let d=await Se(a,s,r,e);if(!d){debugger;return console.log(`userDelegatedScopesRemove: cannot set oauth2PermissionGrants for ${s.mail}: ${o}`),!1}return s.scopes=e.split(" "),d}async function Rt(a,s){if(s==null||s.spacode=="")return{users:[],error:"500: invalid user passed to usersGet"};try{let t={method:"GET",headers:await Z(a,s)},e=_(s.authority);e+=p.graphUsersPredicate;let o=await(await fetch(e,t)).json();if(typeof o.error<"u")return{users:[],error:`${o.error.code}: ${o.error.message}`};let d=new Array;for(let i of o.value)d.push(i.mail);return{users:d,error:""}}catch(n){return console.log(n),{users:[],error:`Exception: ${n}`}}}async function Gt(a,s,n,t){return Pe(a,s,n,t)}async function Et(a,s,n){return Re()}async function Ct(a,s,n){return Ge(a,s,n)}async function Nt(a,s,n,t,e,r,o,d){let i=new y;if(n.id==="1"){if(i=await We(a,s,n,r.id,d),i.result){t&&t(n.id);const c={};Object.defineProperty(c,n.id,{value:!0,writable:!0,enumerable:!0}),e(c);let u=r.associatedConfigs.findIndex(h=>h=="1");u!==-1&&(r.associatedConfigs.splice(u,1),r.associatedConfigs.push(n.id))}}else i=await Fe(a,s,n,d);return o.save(),i}async function Ot(a,s,n,t,e){let r=new y;return r=await Oe(a,s,n,t,e),r}async function Wt(a,s,n,t,e){return Ee(a,s,n,t,e)}async function Ft(a,s,n,t,e){return Ce(a,s,n,t,e)}async function Bt(a,s,n,t,e){let r=new y;if(e)debugger;try{let o=t.ws.find(d=>d.id===n);if(o!=null){o.associatedConfigs.length=0;let d=await re(a,s,o.id,e);if(!d.result)return d;let i="";for(let c of o.associatedConfigs){let u=t.cs.find(h=>h.id===c);u!=null&&u.sel&&(i=u.id)}$e(o,t,d.array,i),t.tagWithWorkspaces()}return r}catch(o){console.log(o.message),r.error=o.message}return r.result=!1,r.status=500,r}async function _t(a,s,n,t,e){return Ne(a,s,n,t)}async function Ut(a,s,n,t,e){console.log(">>>>>> initGet");let r=new y;if(e)debugger;let o=new L;return o.tid=s.tid,o.domain=s.tid,await se(o,e)?(s.authority=o.authority,t.setTaskStart("GET tenant details",new Date),r.result=await Ie(s,o,n,a,e),t.setTaskEnd("GET tenant details",new Date,"complete"),r.result&&(s.companyName=o.name,s.companyDomain=o.domain,t.setTaskStart("POST config init",new Date),r=await Be(a,s,e),t.setTaskEnd("POST config init",new Date,r.result?"complete":"failed")),r.result&&(t.setTaskStart("GET workspaces",new Date),r=await Jt(a,s,n,e),t.setTaskEnd("GET workspaces",new Date,r.result?"complete":"failed")),console.log("initGet complete. Version: "+B()),r):(r.error=`Failed to retrieve authority for user "${s.mail}" TID ${s.tid}.`,r.result=!1,r)}async function zt(a,s,n,t){return ze(a,s,n,t)}async function Lt(a,s,n,t,e){return _e(a,s,n,t)}async function xt(a,s,n,t){return ve(a,s,n,t)}async function Mt(a,s,n,t){return ke(a,s,n,t)}async function jt(a,s,n,t){return await Le(a,s,n,t)}function qt(a,s,n,t){n.map(e=>{let r=null,o=s.us.findIndex(c=>c.oid===e.userId||c.oid===e.email);if(o===-1){let c=s.us.findIndex(u=>u.oid==="1");if(c!==-1){r=s.us.at(c);let u=a.associatedUsers.findIndex(h=>h=="1");u!==-1&&(a.associatedUsers.splice(u,1),a.associatedUsers.push(e.userId))}else r=new H,s.us.push(r)}else r=s.us.at(o);r.sel=t===e.userId,r.oid=e.userId?e.userId:e.email,r.name=e.firstName??r.name,r.mail=e.email,r.tid=e.tenantId;let d=s.ts.find(c=>c.tid===r.tid);d!=null&&(r.authority=d.authority,r.companyName=d.name,r.companyDomain=d.domain),a.associatedUsers.findIndex(c=>c===r.oid)==-1&&a.associatedUsers.push(r.oid)}),s.save()}function Ht(a,s,n,t){n.map(e=>{let r=null,o=s.ts.findIndex(u=>u.tid===e.tenantId);if(o===-1){let u=s.ts.findIndex(h=>h.tid==="1");if(u!==-1){r=s.ts.at(u);let h=a.associatedTenants.findIndex(k=>k=="1");h!==-1&&(a.associatedTenants.splice(h,1),a.associatedTenants.push(e.tenantId))}else r=new L,s.ts.push(r)}else r=s.ts.at(o);r.sel=t===e.tenantId,r.tid=e.tenantId,r.name=e.name,r.domain=e.domain,r.tenantType=e.type.toLowerCase();const d=/^(https:\/\/login.microsoftonline.(?:us|com)\/)organizations\/v2.0$/,i=e.authority.match(d);r.authority=i?i[1]:e.authority,a.associatedTenants.findIndex(u=>u===e.tenantId)==-1&&a.associatedTenants.push(e.tenantId)}),s.save()}function $e(a,s,n,t){n.map(e=>{let r=null,o=s.cs.findIndex(i=>i.id===e.id);if(o===-1){let i=s.cs.findIndex(c=>c.id==="1");if(i!==-1){r=s.cs.at(i);let c=a.associatedConfigs.findIndex(u=>u=="1");c!==-1&&(a.associatedConfigs.splice(c,1),a.associatedConfigs.push(e.id))}else r=new J,s.cs.push(r)}else r=s.cs.at(o);r.sel=t===e.id,r.id=e.id,r.workspaceId=e.workspaceId,r.name=e.name,r.description=e.description,r.isEnabled=e.isEnabled,r.tenants.length=0,e.tenants.map(i=>{let c=new ge;c.tid=i.tenantId,c.sourceGroupId=i.sourceGroupId??"",c.sourceGroupName=i.sourceGroupName??"",c.targetGroupId=i.targetGroupId??"",c.targetGroupName=i.targetGroupName??"",c.configurationTenantType=i.configurationTenantType.toLowerCase(),c.deltaToken=i.deltaToken??"",c.configId=r.id,c.batchId=i.batchId??"",c.isReadPermissionConsented=i.isReadPermissionConsented,c.isWritePermissionConsented=i.isWritePermissionConsented,r.tenants.push(c)}),a.associatedConfigs.findIndex(i=>i===e.id)==-1&&a.associatedConfigs.push(e.id)}),s.save()}async function Jt(a,s,n,t){let e=new y;if(t)debugger;try{if(e=await xe(a,s,t),e.result){for(let r of e.array){let o=null,d=n.ws.findIndex(P=>P.id===r.id);if(d===-1){let P=n.ws.findIndex(w=>w.id==="1");P!==-1?o=n.ws.at(P):(o=new K,n.ws.push(o))}else o=n.ws.at(d);let i="";for(let P of o.associatedUsers){let w=n.us.find(E=>E.oid===P);w!=null&&w.sel&&(i=w.oid)}let c="";for(let P of o.associatedTenants){let w=n.ts.find(E=>E.tid===P);w!=null&&w.sel&&(c=w.tid)}let u="";for(let P of o.associatedConfigs){let w=n.cs.find(E=>E.id===P);w!=null&&w.sel&&(u=w.id)}o.associatedUsers.length=0,o.associatedTenants.length=0,o.associatedConfigs.length=0,o.id=r.id,o.name=r.name,o.ownerid=r.workspaceOwnerUserId;let h=De(a,s,o.id,t),k=Ue(a,s,o.id,t),D=re(a,s,o.id,t),[G,R,g]=await Promise.all([h,k,D]);if(!G.result)return G;if(!R.result)return R;if(!g.result)return g;Ht(o,n,R.array,c),qt(o,n,G.array,i),$e(o,n,g.array,u),n.tagWithWorkspaces()}return e}}catch(r){console.log(r.message),e.error=r.message}return e.result=!1,e.status=500,e}async function Kt(a,s){let n="",t=B();try{let e=a.getAllAccounts(),r=s.oid+"."+s.tid,o=null;for(let i=0;i<e.length;i++)e[i].homeAccountId==r&&(o=e[i]);n=(await a.acquireTokenSilent({scopes:["https://analysis.windows.net/powerbi/api/App.Read.All","https://analysis.windows.net/powerbi/api/Dataset.ReadWrite.All","https://analysis.windows.net/powerbi/api/Report.ReadWrite.All","https://analysis.windows.net/powerbi/api/Workspace.ReadWrite.All"],account:o})).accessToken,console.log("PowerBI token acquired silently: "+n.slice(0,20))}catch{console.log("PowerBI token failed to be acquired silently")}return console.log(t),n}async function ne(a,s){const n=new Headers;if(n.append("Content-Type","application/json"),n.append("accept","*/*"),s.azureAccessToken==null||s.azureAccessToken==="")try{let t=a.getAllAccounts(),e=s.oid+"."+s.tid,r=null;for(let d=0;d<t.length;d++)t[d].homeAccountId==e&&(r=t[d]);let o=await a.acquireTokenSilent({scopes:["https://management.azure.com/user_impersonation"],account:r});s.azureAccessToken=o.accessToken,console.log("Front end token acquired silently: "+s.azureAccessToken.slice(0,20))}catch(t){try{console.log("Front end token silent acquisition failure: "+t);let e=a.getAllAccounts(),r=s.oid+"."+s.tid,o=null;for(let d=0;d<e.length;d++)e[d].homeAccountId==r&&(o=e[d]);a.acquireTokenRedirect({scopes:["https://management.azure.com/user_impersonation"],account:o})}catch(e){console.log("Front end token popup acquisition failure: "+e)}}return n.append("Authorization",`Bearer ${s.azureAccessToken}`),n}async function Vt(a,s){if(s==null||s.spacode=="")return!1;try{let t={method:"GET",headers:await ne(a,s)},e=z.azureListRootAssignments;e+="'",e+=s.oid,e+="'";let r=await fetch(e,t);if(r.status==200){let o=await r.json();o=o;debugger;console.log("Successful call to Azure Resource Graph list root assignments")}else return console.log(await S(r)),!1}catch(n){return console.log(n),!1}return!0}async function Zt(a,s){if(s==null||s.spacode=="")return!1;try{let t={method:"POST",headers:await ne(a,s)},e=z.azureElevateAccess,r=await fetch(e,t);if(r.status==200)console.log("Successful call to Azure Resource Graph list root assignments");else return console.log(await S(r)),!1}catch(n){return console.log(n),!1}return!0}async function Qt(a,s){let n=new Array;if(s==null||s.spacode=="")return n;try{let e={method:"GET",headers:await ne(a,s)},r=z.azureListRootAssignments;r+="'",r+=s.oid,r+="'";let o=await fetch(r,e);if(o.status==200){let d=await o.json();d=d;debugger;console.log("Successful call to Azure Resource Graph list root assignments")}else return console.log(await S(o)),n}catch(t){return console.log(t),n}return n}function Xt(a){let s="8d95d21c-c378-4bb0-9f52-88c30d271e7a",n=a.authority.toLowerCase();return n.startsWith("https://login.microsoftonline.com/")?s="8d95d21c-c378-4bb0-9f52-88c30d271e7a":n.startsWith("https://login.microsoftonline.us/")?s="48da942e-ea3d-49e4-a054-81649012f8f2":n.startsWith("https://login.partner.microsoftonline.cn/")&&(s="c91d32e4-dcc5-4d77-826a-16e93ffce666"),`api://${s}/Config.Write`}async function A(a,s){const n=new Headers;n.append("Content-Type","application/json"),n.append("accept","*/*");const t=Xt(s);try{let e=a.getAllAccounts(),r=s.oid+"."+s.tid,o=null;for(let i=0;i<e.length;i++)e[i].homeAccountId==r&&(o=e[i]);let d=await a.acquireTokenSilent({scopes:[t],account:o});s.mindlineAccessToken=d.accessToken,console.log("Front end mindline token acquired silently: "+s.mindlineAccessToken.slice(0,20))}catch(e){try{console.log("Front end mindline token silent acquisition failure, triggering redirect: "+e);let r=a.getAllAccounts(),o=s.oid+"."+s.tid,d=null;for(let i=0;i<r.length;i++)r[i].homeAccountId==o&&(d=r[i]);a.acquireTokenRedirect({scopes:[t],account:d})}catch(r){console.log("Front end mindline token redirect acquisition failure: "+r)}}return n.append("Authorization",`Bearer ${s.mindlineAccessToken}`),n}async function S(a){let s="";if(a.status===401&&(s=a.statusText,s!=""))return s;let n=await a.json();if(n.error!==void 0)s=`Error: ${n.error} Message: ${n.message}`;else if(n.errors!==void 0)s=Object.keys(n.errors).reduce((r,o)=>r+o+": "+n.errors[o]+" ","");else if(n.title!==void 0)s=n.title;else debugger;return s}async function ke(a,s,n,t){let e=new y;if(n.oid==""&&n.mail==""||t=="")return e.result=!1,e.error="adminDelete: invalid parameters",e.status=500,e;let r=null;r=new URL(T.adminEndpoint()),r.searchParams.append("workspaceId",t),r.searchParams.append("email",n.mail);let d={method:"DELETE",headers:await A(a,s)};try{console.log("Attempting DELETE from /admin: "+r.href);let i=await fetch(r.href,d);return i.status===200&&i.statusText==="OK"?(console.log(`Successful DELETE from /admin: ${r.href}`),e):(e.error=await S(i),console.log(`Failed DELETE from /admin: ${r.href}`),console.log(e.error),e.status=500,e.result=!1,e)}catch(i){e.error=i.message,e.status=500,e.result=!1,console.log(i.message)}return e}async function De(a,s,n,t){let e=new y;if(n==="")return e.result=!1,e.status=500,e.error="adminsGet: no workspace provided",e;let r=T.adminsEndpoint(),o=new URL(r);o.searchParams.append("workspaceId",n);let i={method:"GET",headers:await A(a,s)};try{if(t)debugger;console.log("Attempting GET from /admins: "+o.href);let c=await fetch(o.href,i);if(c.status===200&&c.statusText==="OK"){let u=await c.json();return u!=null?(e.array=u,console.log(`Successful GET from /admins: ${e.array.reduce((k,D)=>k+D.email+" ","")}`),e):(e.error="Failed GET from /admins: failed to JSON-parse response",console.log(e.error),e.status=500,e.result=!1,e)}else return console.log(`Failed GET from /admins: ${o.href}`),e.error=await S(c),e.status=500,e.result=!1,console.log(e.error),e}catch(c){e.error=c.message,e.status=500,e.result=!1,console.log(c.message)}return e}async function ve(a,s,n,t){let e=new y;if(n.mail==""||n.authority==""||n.tid==="")return e.result=!1,e.error="adminPost: invalid argument",e.status=500,e;let r=T.adminEndpoint();const o=await A(a,s);let d=`
|
|
1
|
+
(function(f,I){typeof exports=="object"&&typeof module<"u"?I(exports,require("@microsoft/signalr"),require("class-transformer")):typeof define=="function"&&define.amd?define(["exports","@microsoft/signalr","class-transformer"],I):(f=typeof globalThis<"u"?globalThis:f||self,I(f.sync={},f.signalR,f.classTransformer))})(this,function(f,I,P){"use strict";var as=Object.defineProperty;var st=f=>{throw TypeError(f)};var os=(f,I,P)=>I in f?as(f,I,{enumerable:!0,configurable:!0,writable:!0,value:P}):f[I]=P;var c=(f,I,P)=>os(f,typeof I!="symbol"?I+"":I,P),is=(f,I,P)=>I.has(f)||st("Cannot "+P);var Y=(f,I,P)=>I.has(f)?st("Cannot add the same private member more than once"):I instanceof WeakSet?I.add(f):I.set(f,P);var W=(f,I,P)=>(is(f,I,"access private method"),P);var Q,nt,C,ie,le,ce,M,de;function rt(a){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const n in a)if(n!=="default"){const t=Object.getOwnPropertyDescriptor(a,n);Object.defineProperty(s,n,t.get?t:{enumerable:!0,get:()=>a[n]})}}return s.default=a,Object.freeze(s)}const q=rt(I),at=[{oid:"1",name:"",mail:"",authority:"",tid:"",companyName:"",companyDomain:"",session:"Sign In",sel:!0}],ot=[{tid:"1",name:"",domain:"",tenantType:"",authority:"",sel:!0,graphSP:""}],it=[],lt=[{id:"1",name:"",associatedUsers:["1"],associatedTenants:["1"],associatedConfigs:[],sel:!0}],ct=[{Run:"3",Start:"2023-09-17T12:00:00.000-07:00",POST:"2023-09-17T12:00:09.500-07:00",Read:"2023-09-17T12:00:15.500-07:00",Write:"2023-09-17T12:01:30.000-07:00"},{Run:"2",Start:"2023-09-17T12:00:00.000-07:00",POST:"2023-09-17T12:00:09.500-07:00",Read:"2023-09-17T12:00:15.500-07:00",Write:"2023-09-17T12:01:30.000-07:00"},{Run:"1",Start:"2023-09-17T12:00:00.000-07:00",POST:"2023-09-17T12:00:09.500-07:00",Read:"2023-09-17T12:00:15.500-07:00",Write:"2023-09-17T12:01:30.000-07:00"}],dt=[{type:"mg",resource:"Tenant Root Group",cost:0,expanded:!0,resources:[{type:"sub",resource:"Applications",cost:16677.52,expanded:!0,resources:[{type:"rg",resource:"ssfdev",cost:7500.08,expanded:!0,resources:[{type:"resources",resource:"SSFServices",cost:0,expanded:!1,resources:[]}]}]},{type:"sub",resource:"Infrastructure",cost:8737.58,expanded:!0,resources:[{type:"rg",resource:"SFFA_Prod_Mgmt_Shared_Resources_RG",cost:7500.08,expanded:!0,resources:[{type:"resources",resource:"SSFA-Prod-UTIL-01",cost:0,expanded:!1,resources:[]}]}]}]}],ut=[{type:"user",actor:"arvind@mindline.site",resource:"kv-syncproject",role:"Key Vault Certificate Officer",updatedby:"arvind@mindline.site",updatedon:"2023-09-06T15:36:45.7760714Z",resources:[]},{type:"app",actor:"mindline1-sync-512169f5-38d1-4b57-be8b-967f2d0ae4c6",resource:"dev-subscription",role:"Contributor",updatedby:"arvind@mindline.site",updatedon:"2023-09-06T15:36:45.7760714Z",resources:[]}],_="workspaceIDs";function ft(a,s){return a+s}function pt(){return"hello NPM"}function B(){return"1.0.105"}class y{constructor(){c(this,"result");c(this,"status");c(this,"error");c(this,"version");c(this,"array");this.result=!0,this.status=200,this.error="",this.version=B(),this.array=null}}class L{}c(L,"azureElevateAccess","https://management.azure.com/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01"),c(L,"azureListRootAssignments","https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId+eq+");const $=class ${static adminEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/admin`}static adminIncompleteEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/incomplete-admin`}static adminsEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/admins`}static auditConfigEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/audit-configuration`}static auditEventsEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/audit-events`}static configConsentEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/configuration/consent`}static configEnabledEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/configuration/status`}static configEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/configuration`}static configsEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/configurations`}static initEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/configuration/init`}static readerStartSyncEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/startSync`}static tenantEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/tenant`}static tenantsEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/tenants`}static workspaceEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/workspace`}static workspacesEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/workspaces`}static workspaceConfigsEndpoint(){return`https://${$.environmentTag}-configurationapi-westus.azurewebsites.net/api/v1/workspace-configurations`}static signalREndpoint(){return`https://${$.environmentTag}-signalrdispatcher-westus.azurewebsites.net/statsHub`}};c($,"environmentTag","dev");let w=$;class h{}c(h,"graphGroupsPredicate","v1.0/groups"),c(h,"graphMailPredicate","v1.0/me/messages"),c(h,"graphMePredicate","v1.0/me"),c(h,"graphOauth2PermissionGrantsPredicate","v1.0/oauth2PermissionGrants"),c(h,"graphServicePrincipalsPredicate","v1.0/servicePrincipals"),c(h,"graphUsersPredicate","v1.0/users"),c(h,"graphTenantByDomainPredicate","beta/tenantRelationships/findTenantInformationByDomainName"),c(h,"graphTenantByIdPredicate","beta/tenantRelationships/findTenantInformationByTenantId"),c(h,"authorityWW","https://login.microsoftonline.com/"),c(h,"authorityWWRegex",/^(https:\/\/login\.microsoftonline\.com\/)([\dA-Fa-f]{8}-[\dA-Fa-f]{4}-[\dA-Fa-f]{4}-[\dA-Fa-f]{4}-[\dA-Fa-f]{12})\/oauth2\/authorize$/),c(h,"authorityUS","https://login.microsoftonline.us/"),c(h,"authorityUSRegex",/^(https:\/\/login\.microsoftonline\.us\/)([\dA-Fa-f]{8}-[\dA-Fa-f]{4}-[\dA-Fa-f]{4}-[\dA-Fa-f]{4}-[\dA-Fa-f]{12})\/oauth2\/authorize$/),c(h,"authorityCN","https://login.partner.microsoftonline.cn/"),c(h,"authorityCNRegex",/^(https:\/\/login\.partner\.microsoftonline\.cn\/)([\dA-Fa-f]{8}-[\dA-Fa-f]{4}-[\dA-Fa-f]{4}-[\dA-Fa-f]{4}-[\dA-Fa-f]{12})\/oauth2\/authorize$/);class ht{constructor(){c(this,"id","");c(this,"displayName","");c(this,"description","")}}class gt{constructor(){c(this,"group","");c(this,"value","");c(this,"consented",!1);c(this,"removable",!1);c(this,"expanded","")}static compareByValue(s,n){return s.value.localeCompare(n.value)}static compareByGroup(s,n){return s.group.localeCompare(n.group)}}class H{constructor(){c(this,"oid");c(this,"name");c(this,"mail");c(this,"authority");c(this,"tid");c(this,"companyName");c(this,"companyDomain");c(this,"workspaceIDs");c(this,"session");c(this,"spacode");c(this,"graphAccessToken");c(this,"mindlineAccessToken");c(this,"azureAccessToken");c(this,"loginHint");c(this,"scopes");c(this,"authTS");c(this,"sel");c(this,"loggingIn");this.oid="",this.name="",this.mail="",this.authority="",this.tid="",this.companyName="",this.companyDomain="",this.workspaceIDs="",this.session="Sign In",this.spacode="",this.graphAccessToken="",this.mindlineAccessToken="",this.azureAccessToken="",this.loginHint="",this.scopes=new Array,this.authTS=new Date(0),this.sel=!1,this.loggingIn=!1}}var ue=(a=>(a[a.invalid=0]="invalid",a[a.aad=1]="aad",a[a.ad=2]="ad",a[a.googleworkspace=3]="googleworkspace",a))(ue||{}),fe=(a=>(a[a.read=1]="read",a[a.write=2]="write",a[a.notassigned=3]="notassigned",a))(fe||{});class z{constructor(){c(this,"tid");c(this,"name");c(this,"domain");c(this,"tenantType");c(this,"authority");c(this,"workspaceIDs");c(this,"sel");c(this,"graphSP");c(this,"lookupfield");this.tid="",this.name="",this.domain="",this.tenantType="aad",this.authority="",this.workspaceIDs="",this.sel=!1,this.graphSP="",this.lookupfield="Domain"}}function mt(a,s){switch(a){case h.authorityWW:return s===1?"85d35da2-4118-4b03-aa05-605cedd7f2f8":"63100afe-506e-4bb2-8ff7-d8d5ab373129";case h.authorityUS:return s===1?"b08630c7-e227-4215-9746-afc9286fb864":"17aa5d5a-f09f-4cec-87a6-28596f9fa513";case h.authorityCN:return s===1?"7db7293b-add9-4a3f-8562-1a20bfe27d5e":"debd015b-1154-4111-a4cb-fc220a537697";default:debugger;return""}}function U(a){switch(a){case h.authorityWW:return"https://graph.microsoft.com/";case h.authorityUS:return"https://graph.microsoft.us/";case h.authorityCN:return"https://microsoftgraph.chinacloudapi.cn/";default:debugger;return""}}function yt(a){switch(a){case h.authorityWW:return"https://login.microsoftonline.com/";case h.authorityUS:return"https://login.microsoftonline.us/";case h.authorityCN:return"https://login.partner.microsoftonline.cn/";default:debugger;return""}}var pe=(a=>(a[a.source=1]="source",a[a.target=2]="target",a[a.sourcetarget=3]="sourcetarget",a))(pe||{});class he{constructor(){c(this,"tid");c(this,"sourceGroupId");c(this,"sourceGroupName");c(this,"targetGroupId");c(this,"targetGroupName");c(this,"configurationTenantType");c(this,"deltaToken");c(this,"usersWritten");c(this,"configId");c(this,"batchId");c(this,"isReadPermissionConsented");c(this,"isWritePermissionConsented");this.tid="",this.sourceGroupId="",this.sourceGroupName="",this.targetGroupId="",this.targetGroupName="",this.configurationTenantType="source",this.deltaToken="",this.usersWritten=0,this.configId="",this.batchId="",this.isReadPermissionConsented=!1,this.isWritePermissionConsented=!1}}class K{constructor(){c(this,"id");c(this,"workspaceId");c(this,"name");c(this,"description");c(this,"tenants");c(this,"isEnabled");c(this,"workspaceIDs");c(this,"sel");this.id="",this.name="",this.workspaceId="",this.description="",this.tenants=new Array,this.isEnabled=!1,this.workspaceIDs="",this.sel=!1}}class wt{constructor(){c(this,"id");c(this,"workspaceId");c(this,"name");c(this,"description");c(this,"isEnabled");c(this,"isReadPermissionConsented");c(this,"email");c(this,"tenantId");c(this,"sel");this.id="",this.name="",this.workspaceId="",this.description="",this.isEnabled=!1,this.isReadPermissionConsented=!1,this.email="",this.tenantId="",this.sel=!1}}class J{constructor(){c(this,"id");c(this,"name");c(this,"ownerid");c(this,"associatedUsers");c(this,"associatedTenants");c(this,"associatedConfigs");c(this,"sel");this.id="",this.name="",this.ownerid="",this.associatedUsers=new Array,this.associatedTenants=new Array,this.associatedConfigs=new Array,this.sel=!1}}function N(){let a;try{a=window.localStorage;const s="__storage_test__";return a.setItem(s,s),a.removeItem(s),!0}catch(s){return s instanceof DOMException&&(s.code===22||s.code===1014||s.name==="QuotaExceededError"||s.name==="NS_ERROR_DOM_QUOTA_REACHED")&&a&&a.length!==0}}class Tt{constructor(s=!1){Y(this,Q);c(this,"version",B());c(this,"tab",0);c(this,"us",[]);c(this,"ts",[]);c(this,"cs",[]);c(this,"acs",[]);c(this,"ws",[]);c(this,"configlevelconsent_configid","");c(this,"configlevelconsent_access",3);this.init(s)}init(s){if(console.log(`Calling InitInfo::init(bClearLocalStorage: ${s?"true":"false"})`),N()){let o=localStorage.getItem("InitInfo");if(o!=null&&typeof o=="string"&&o!==""){let i=JSON.parse(o);if(i.us.length!==0)if(s)localStorage.removeItem("InitInfo");else{W(this,Q,nt).call(this,i);return}}}this.tab=0,this.version=B(),this.configlevelconsent_configid="",this.configlevelconsent_access=3;var n=JSON.stringify(at),t=JSON.stringify(ot),e=JSON.stringify(it),r=JSON.stringify(lt);try{this.us=P.deserializeArray(H,n),this.ts=P.deserializeArray(z,t),this.cs=P.deserializeArray(K,e),this.ws=P.deserializeArray(J,r),this.tagWithWorkspaces()}catch{debugger}}save(){let s=JSON.stringify(this);localStorage.setItem("InitInfo",s)}tagWithWorkspaces(){this.us.map(s=>s.workspaceIDs=""),this.ts.map(s=>s.workspaceIDs=""),this.cs.map(s=>s.workspaceIDs="");for(let s of this.ws){for(let n of s.associatedUsers){let t=this.us.find(e=>e.oid===n);if(t!==void 0)t[_]+=s.id,t[_]+=" ";else debugger}for(let n of s.associatedTenants){let t=this.ts.find(e=>e.tid===n);if(t!==void 0)t[_]+=s.id,t[_]+=" ";else debugger}for(let n of s.associatedConfigs){let t=this.cs.find(e=>e.id===n);if(t!==void 0)t[_]+=s.id,t[_]+=" ";else debugger}}return!0}}Q=new WeakSet,nt=function(s){this.tab=s.tab,this.version=B(),this.configlevelconsent_configid=s.configlevelconsent_configid,this.configlevelconsent_access=s.configlevelconsent_access,typeof s.us>"u"?this.us=new Array:this.us=s.us.map(n=>{let t=new H;return t.oid=n.oid,t.name=n.name,t.mail=n.mail,t.authority=n.authority,t.tid=n.tid,t.companyName=n.companyName,t.companyDomain=n.companyDomain,t.workspaceIDs=n.workspaceIDs,t.session=n.session,t.spacode=n.spacode,t.graphAccessToken=n.graphAccessToken,t.mindlineAccessToken=n.mindlineAccessToken,t.azureAccessToken=n.azureAccessToken,t.loginHint=n.loginHint,t.scopes=n.scopes,t.authTS=new Date(n.authTS),t.sel=n.sel,t.loggingIn=n.loggingIn,t}),typeof s.ts>"u"?this.ts=new Array:this.ts=s.ts.map(n=>{let t=new z;return t.tid=n.tid,t.name=n.name,t.domain=n.domain,t.tenantType=n.tenantType,t.authority=n.authority,t.workspaceIDs=n.workspaceIDs,t.sel=n.sel,t.lookupfield=n.lookupfield,t}),typeof s.cs>"u"?this.cs=new Array:this.cs=s.cs.map(n=>{let t=new K;return t.id=n.id,t.workspaceId=n.workspaceId,t.name=n.name,t.description=n.description,t.tenants=n.tenants,t.isEnabled=n.isEnabled,t.workspaceIDs=n.workspaceIDs,t.sel=n.sel,t}),typeof s.ws>"u"?this.ws=new Array:this.ws=s.ws.map(n=>{let t=new J;return t.id=n.id,t.name=n.name,t.ownerid=n.ownerid,t.associatedUsers=n.associatedUsers,t.associatedTenants=n.associatedTenants,t.associatedConfigs=n.associatedConfigs,t.sel=n.sel,t})};const St=[{id:1,task:"initialization",start:"1970-01-01T00:00:00",end:"1970-01-01T00:00:00",expected:"0:22",status:"not started",expanded:!0,subtasks:[{id:2,task:"authenticate user",start:"1970-01-01T00:00:00",end:"1970-01-01T00:00:00",expected:"0:01",status:"not started"},{id:3,task:"reload React",start:"1970-01-01T00:00:00",end:"1970-01-01T00:00:00",expected:"0:07",status:"not started"},{id:4,task:"GET tenant details",start:"1970-01-01T00:00:00",end:"1970-01-01T00:00:00",expected:"0:01",status:"not started"},{id:5,task:"POST config init",start:"1970-01-01T00:00:00",end:"1970-01-01T00:00:00",expected:"0:10",status:"not started"},{id:6,task:"GET workspaces",start:"1970-01-01T00:00:00",end:"1970-01-01T00:00:00",expected:"0:04",status:"not started"}]}];class bt{constructor(s){Y(this,C);c(this,"tasks");this.tasks=[new V],this.init(s)}init(s){if(console.log(`Calling TaskArray::init(bClearLocalStorage: ${s?"true":"false"})`),this.tasks.length=0,s&&N()&&localStorage.removeItem("Tasks"),N()){let n=localStorage.getItem("Tasks");if(n!=null&&typeof n=="string"&&n!==""){let e=JSON.parse(n);if(this.tasks=W(this,C,le).call(this,e.tasks),this.tasks.length!==0)return}}this.tasks=W(this,C,le).call(this,St)}setTaskStart(s,n){let t=W(this,C,ie).call(this,s);if(t!=null&&t!=null)t.setStart(n),t.status="in progress",W(this,C,ce).call(this);else debugger}setTaskEnd(s,n,t){let e=W(this,C,ie).call(this,s);if(e!=null&&e!=null)e.setEnd(n),e.status=t,W(this,C,ce).call(this);else debugger}}C=new WeakSet,ie=function(s){let n=this.tasks.find(t=>t.task==s);if(n==null||n==null){for(n of this.tasks)if(n.subtasks!=null&&n.subtasks!=null&&(n=n.subtasks.find(t=>t.task==s),n!=null&&n!=null))break}return n},le=function(s){return s.map(n=>{let t=new V;return t.id=n.id,t.task=n.task,t.setStart(new Date(n.start)),t.setEnd(new Date(n.end)),t.expected=n.expected,t.status=n.status,t.expanded=n.expanded,typeof n.subtasks<"u"&&n.subtasks!=null&&(t.subtasks=n.subtasks.map(e=>{let r=new V;return r.id=e.id,r.task=e.task,r.setStart(new Date(e.start)),r.setEnd(new Date(e.end)),r.expected=e.expected,r.status=e.status,r.expanded=e.expanded,r})),t})},ce=function(){let s=JSON.stringify(this);N()&&localStorage.setItem("Tasks",s)};class V{constructor(){c(this,"id",0);c(this,"task","");c(this,"start",new Date);c(this,"startDisplay","");c(this,"end",new Date);c(this,"endDisplay","");c(this,"elapsedDisplay","");c(this,"expected",0);c(this,"status","");c(this,"expanded",!1);c(this,"subtasks",[])}setEnd(s){this.end=s,this.endDisplay=`${this.end.getMinutes().toString().padStart(2,"0")}:${this.end.getSeconds().toString().padStart(2,"0")}`;let n=0,t=this.end.getSeconds()-this.start.getSeconds();t<0&&(t+=60,n=-1);let e=this.end.getMinutes()-this.start.getMinutes()+n;e<0&&(e+=60),this.elapsedDisplay=`${e.toString().padStart(2,"0")}:${t.toString().padStart(2,"0")}`}setStart(s){this.start=s,this.startDisplay=`${this.start.getMinutes().toString().padStart(2,"0")}:${this.start.getSeconds().toString().padStart(2,"0")}`}}class x{constructor(s){c(this,"Run",0);c(this,"Start",new Date);c(this,"startDisplay","");c(this,"POST");c(this,"postDisplay");c(this,"Read");c(this,"readDisplay");c(this,"Write");c(this,"writeDisplay");c(this,"Duration");c(this,"durationDisplay");this.Run=s,this.start(""),this.POST=new Date,this.postDisplay="",this.Read=new Date,this.readDisplay="",this.Write=new Date,this.writeDisplay="",this.Duration=new Date,this.durationDisplay=""}start(s){s==""?this.Start=new Date:this.Start=new Date(s),this.startDisplay=`${this.Start.getMinutes().toString().padStart(2,"0")}:${this.Start.getSeconds().toString().padStart(2,"0")}`}post(s){s==""?this.POST=new Date:this.POST=new Date(s),this.postDisplay=`${this.POST.getMinutes().toString().padStart(2,"0")}:${this.POST.getSeconds().toString().padStart(2,"0")}`}read(s){s==""?this.Read=new Date:this.Read=new Date(s),this.readDisplay=`${this.Read.getMinutes().toString().padStart(2,"0")}:${this.Read.getSeconds().toString().padStart(2,"0")}`}write(s){s==""?this.Write=new Date:this.Write=new Date(s),this.writeDisplay=`${this.Write.getMinutes().toString().padStart(2,"0")}:${this.Write.getSeconds().toString().padStart(2,"0")}`,this.Duration=new Date(this.Write.getTime()-this.Start.getTime()),this.durationDisplay=`${this.Duration.getMinutes().toString().padStart(2,"0")}:${this.Duration.getSeconds().toString().padStart(2,"0")}`}}class ge{constructor(s){Y(this,M);c(this,"milestones",[]);this.init(s)}init(s){if(N()){let n=localStorage.getItem("syncmilestones");if(n!=null&&typeof n=="string"&&n!==""){let e=JSON.parse(n);if(e.length!==0)if(s)localStorage.removeItem("syncmilestones");else{W(this,M,de).call(this,e);return}}}W(this,M,de).call(this,ct)}save(){let s=JSON.stringify(this.milestones);N()&&localStorage.setItem("syncmilestones",s)}start(s){if(this.milestones==null||this.milestones.length<1){debugger;return}let n=Number(this.milestones[0].Run),t=new x(n+1);this.milestones.unshift(t),this.milestones=this.milestones.map(e=>{let r=new x(e.Run);return r.Start=e.Start,r.startDisplay=e.startDisplay,r.POST=e.POST,r.postDisplay=e.postDisplay,r.Read=e.Read,r.readDisplay=e.readDisplay,r.Write=e.Write,r.writeDisplay=e.writeDisplay,r.Duration=e.Duration,r.durationDisplay=e.durationDisplay,r}),s(this.milestones),console.log(`Start milestone: ${this.milestones[0].Run}:${this.milestones[0].Start}`)}unstart(s){if(this.milestones==null||this.milestones.length<1){debugger;return}let n=this.milestones.shift();this.milestones=this.milestones.map(t=>{let e=new x(t.Run);return e.Start=t.Start,e.startDisplay=t.startDisplay,e.POST=t.POST,e.postDisplay=t.postDisplay,e.Read=t.Read,e.readDisplay=t.readDisplay,e.Write=t.Write,e.writeDisplay=t.writeDisplay,e.Duration=t.Duration,e.durationDisplay=t.durationDisplay,e}),s(this.milestones),console.log(`Unstart removed first milestone: ${n.Run}:${n.Start}`)}post(s){if(this.milestones==null||this.milestones.length<1){debugger;return}this.milestones[0].post(""),s(this.milestones),console.log(`POST milestone: ${this.milestones[0].Run}:${this.milestones[0].POST}`)}read(s){if(this.milestones==null||this.milestones.length<1){debugger;return}this.milestones[0].read(""),s(this.milestones),console.log(`Read milestone: ${this.milestones[0].Run}:${this.milestones[0].Read}`)}write(s){if(this.milestones==null||this.milestones.length<1){debugger;return}for(this.milestones[0].write("");this.milestones.length>10;){let n=this.milestones.pop();console.log(`Removed milestone #${n.Run}: ${n.Start}`)}this.save(),this.milestones=this.milestones.map(n=>{let t=new x(n.Run);return t.Start=n.Start,t.startDisplay=n.startDisplay,t.POST=n.POST,t.postDisplay=n.postDisplay,t.Read=n.Read,t.readDisplay=n.readDisplay,t.Write=n.Write,t.writeDisplay=n.writeDisplay,t.Duration=n.Duration,t.durationDisplay=n.durationDisplay,t}),s(this.milestones)}}M=new WeakSet,de=function(s){s==null?this.milestones=new Array:this.milestones=s.map(n=>{let t=new x(Number(n.Run));return t.start(n.Start),t.post(n.POST),t.read(n.Read),t.write(n.Write),t})};class It{constructor(s,n,t){c(this,"tenantNodes");c(this,"pb_startTS");c(this,"pb_progress");c(this,"pb_increment");c(this,"pb_idle");c(this,"pb_idleMax");c(this,"pb_total");c(this,"pb_timer");c(this,"milestoneArray");this.tenantNodes=new Array,this.init(s,n,t),this.pb_startTS=0,this.pb_progress=0,this.pb_increment=0,this.pb_timer=null,this.pb_idle=0,this.pb_idleMax=0,this.pb_total=0,this.milestoneArray=new ge(!1)}init(s,n,t){console.log(`Calling BatchArray::init(config: "${s?s.name:"null"}", bClearLocalStorage: ${t?"true":"false"})`),t&&N()&&(localStorage.removeItem(s.name),this.milestoneArray.init(t)),s!=null&&s.tenants!=null&&n!=null&&(this.tenantNodes.length=0,s.tenants.map(e=>{if(e.configurationTenantType==="source"||e.configurationTenantType==="sourcetarget"){let r=n.ts.find(o=>o.tid===e.tid);if(r!=null){let o=new ee(e.tid,r.name,e.batchId);this.tenantNodes.push(o)}else{console.log(`Error: no tenant found for config source tenant ${s.name}`);debugger;return}}}),this.tenantNodes.map(e=>{s.tenants.map(r=>{if((r.configurationTenantType==="target"||r.configurationTenantType==="sourcetarget")&&r.tid!==e.tid){let o=n.ts.find(d=>d.tid===r.tid);if(o!=null){let d=new ee(r.tid,o.name,r.batchId);e.targets.push(d),e.expanded=!0}else{console.log(`Error: no tenant found for config target tenant ${s.name}`);debugger;return}}})}))}initializeProgressBar(s,n,t,e){this.pb_startTS=Date.now(),this.pb_progress=0,this.pb_increment=.25,this.pb_idle=0,this.pb_idleMax=0,this.pb_total=0,this.pb_timer=setInterval(()=>{this.milestoneArray.milestones[0].Write!=null?(clearInterval(this.pb_timer),this.pb_timer=null,this.pb_progress=100,s(this.pb_progress),t(`Complete. [max idle: ${this.pb_idleMax}]`)):(this.pb_total=this.pb_total+1,this.pb_idle=this.pb_idle+1,this.pb_idleMax=Math.max(this.pb_idle,this.pb_idleMax),t(`${this.pb_total} seconds elapsed. Last update ${this.pb_idle} seconds ago. [max idle: ${this.pb_idleMax}/60]`),this.pb_idle>=60&&this.milestoneArray.milestones[0].Write==null&&n(`sync continuing, but no update for ${this.pb_idle} seconds`),this.pb_progress<100&&(this.pb_progress=Math.min(100,this.pb_progress+this.pb_increment),s(this.pb_progress)))},1e3),this.milestoneArray.start(e)}uninitializeProgressBar(s,n,t,e){this.pb_startTS=0,this.pb_progress=0,s(this.pb_progress),n("sync failed to execute"),this.pb_increment=0,clearInterval(this.pb_timer),this.pb_timer=null,this.pb_idle=0,this.pb_idleMax=0,t(`No updates seen for ${this.pb_idle} seconds. [max idle: ${this.pb_idleMax}]`),this.milestoneArray.unstart(e)}initializeSignalR(s,n,t,e,r,o,d,i,l,u,p){this.milestoneArray.post(l),u("started sync, waiting for updates..."),this.init(s,n,!1);let k=D=>{console.log(D);let R=JSON.parse(D);this.pb_idle=0;let E=t.find(m=>m.BatchId==R.TargetID);if(E==null){console.log(`Batch ${R.TargetID} not found in batchIdArray.`);debugger;return}let g=this.tenantNodes.find(m=>m.tid===E.SourceId);if(g==null){console.log(`Tenant ${E.SourceId} not found in BatchArray.`);debugger;return}g.batchId=E.BatchId;let v=R.Stats,S=Object.keys(v),G=Object.values(v),Ke=!1,Je=!1;for(let m=0;m<S.length;m++){let O=S[m].endsWith("TotalCount"),X=S[m].endsWith("CurrentCount"),j=S[m].endsWith("DeferredCount"),ae=S[m].endsWith("RescheduledCount");if(S[m].startsWith("Reader")){let F=/Reader\/TID:(.+)\/TotalCount/;if(X&&(F=/Reader\/TID:(.+)\/CurrentCount/),j&&(F=/Reader\/TID:(.+)\/DeferredCount/),ae&&(F=/Reader\/TID:(.+)\/RescheduledCount/),S[m].match(F)==null){console.log(`tid not found in ${S[m]}.`);debugger;return}O?(Ke=Number(G[m])==0,g.total=Math.max(Number(G[m]),g.total),console.log(`----- ${g.name} TID: ${g.tid} batchId: ${g.batchId}`),console.log(`----- ${g.name} Total To Read: ${g.total}`)):(Je=Number(G[m])==0,g.read=Math.max(Number(G[m]),g.read),console.log(`----- ${g.name} Currently Read: ${g.read}`))}if(g.nothingtosync=Ke&&Je,S[m].startsWith("Writer")){let F=/Writer\/TID:(.+)\/TotalCount/;X&&(F=/Writer\/TID:(.+)\/CurrentCount/),j&&(F=/Writer\/TID:(.+)\/DeferredCount/),ae&&(F=/Writer\/TID:(.+)\/RescheduledCount/);let oe=S[m].match(F);if(oe==null){console.log(`tid not found in ${S[m]}.`);debugger;return}let A=g.targets.find(rs=>rs.tid===oe[1]);if(A==null){console.log(`Writer ${g.name} not found under Reader ${g.name}.`);debugger;return}if(A.batchId=E.BatchId,O)A.total=Math.max(Number(G[m]),A.total),console.log(`----- ${A.name} TID: ${A.tid} batchId: ${A.batchId}`),console.log(`----- ${A.name} Total To Write: ${A.total}`);else if(X)A.written=Math.max(Number(G[m]),A.written),console.log(`----- ${A.name} Total Written: ${A.written}`);else if(j||ae)A.deferred=Math.max(Number(G[m]),A.deferred),console.log(`----- ${A.name} Total Deferred: ${A.deferred}`);else{console.log("unknown writer type");debugger;return}A.update(A.total,A.read,A.written,A.deferred)}}g.update(g.total,g.read,g.written,g.deferred);let Ve=!0,Ze=!0,Qe=!1,Xe=!0,re=0,Ye=0,et=0,tt=0;if(this.tenantNodes.map(m=>{m.targets.map(O=>{Ze&&(Ze=O.status=="complete"||O.status=="failed"),Qe||(Qe=O.total>0||O.status!="not started"),et+=Math.max(O.total,m.total),tt+=O.written}),Xe&&(Xe=m.nothingtosync),Ve&&(Ve=m.status=="complete"||m.status=="failed"),re+=m.total,Ye+=m.read}),r(re),o(Ye),d(Math.max(et,re)),i(tt),Xe)this.milestoneArray.write(l),u("nothing to sync"),console.log('Setting config sync result: "nothing to sync"');else{if(Ve&&this.milestoneArray.milestones[0].Read==null){this.milestoneArray.read(l),u("reading complete"),console.log('Setting config sync result: "reading complete"'),e(s.workspaceId);let j=(Date.now()-this.pb_startTS)/1e3/8.5;this.pb_increment=j,console.log(`Setting increment: ${this.pb_increment}% per second`)}Ze?(this.milestoneArray.write(l),u("sync complete"),console.log('Setting config sync result: "complete"')):Qe?(u("writing in progress"),console.log('Setting config sync result: "writing in progress"')):this.milestoneArray.milestones[0].Read==null&&(u("reading in progress"),console.log('Setting config sync result: "reading in progress"'))}};t.map(D=>{const R=w.signalREndpoint();let E=new URL(R);E.searchParams.append("statsId",D.BatchId),console.log(`Creating SignalR Hub for TID: ${D.SourceId} ${E.href}`);const g=new q.HubConnectionBuilder().withUrl(E.href).withAutomaticReconnect().configureLogging(q.LogLevel.Information).build();g.on("newMessage",k),g.onreconnecting(v=>{console.assert(g.state===q.HubConnectionState.Reconnecting),console.log(`Connection lost due to error "${v}". Reconnecting.`)}),g.onreconnected(v=>{console.assert(g.state===q.HubConnectionState.Connected),console.log(`Connection reestablished. Connected with connectionId "${v}".`)}),g.onclose(async()=>{console.log("Connection closing. Attempting restart."),await g.start()}),g.start().catch(console.error)})}async startSync(s,n,t){let e=new y;if(this.tenantNodes==null||this.tenantNodes.length==0){debugger;return e.result=!1,e.error="startSync: invalid parameters",e.status=500,e}return e=await He(s,n,t),e}}class ee{constructor(s,n,t){c(this,"expanded");c(this,"status","");c(this,"name");c(this,"tid");c(this,"batchId");c(this,"total",0);c(this,"read",0);c(this,"written",0);c(this,"deferred",0);c(this,"nothingtosync");c(this,"targets");this.expanded=!1,this.name=n,this.tid=s,this.batchId=t,this.nothingtosync=!1,this.targets=new Array,this.update(0,0,0,0)}update(s,n,t,e){this.total=s,this.read=n,this.written=t,this.deferred=e,this.read===0&&this.written===0&&(this.status="not started"),this.read>0?this.read<this.total?this.status="in progress":this.read===this.total&&(this.status="complete"):this.written>0&&(this.written+this.deferred<this.total?this.status="in progress":this.written===this.total?this.status="complete":this.written+this.deferred>=this.total&&(this.status="failed"))}}class te{constructor(s,n){c(this,"resourceNodes");this.resourceNodes=new Array,s&&this.init(n)}init(s){if(console.log(`Calling ResourceArray::init(bClearLocalStorage: ${s?"true":"false"})`),N()){let t=localStorage.getItem("ResourceArray");if(t!=null&&typeof t=="string"&&t!=="")if(s)localStorage.removeItem("ResourceArray");else{let r=JSON.parse(t);this.resourceNodes=r.resourceNodes;return}}var n=JSON.stringify(dt);try{this.resourceNodes=P.deserializeArray(me,n)}catch{debugger}}async read(s,n){let t=new te(!1,!1);return t.resourceNodes=await ss(s,n),t}save(){if(N()){let s=JSON.stringify(this);localStorage.setItem("ResourceArray",s)}}}class me{constructor(s,n,t){c(this,"type");c(this,"resource");c(this,"cost");c(this,"expanded");c(this,"resources");this.type=s,this.resource=n,this.cost=t,this.expanded=!1,this.resources=new Array}}class At{constructor(s){c(this,"actorNodes");this.actorNodes=new Array,this.init(s)}init(s){if(console.log(`Calling ResourceArray::init(bClearLocalStorage: ${s?"true":"false"})`),N()){let t=localStorage.getItem("RBACActors");if(t!=null&&typeof t=="string"&&t!=="")if(s)localStorage.removeItem("RBACActors");else{let r=JSON.parse(t);this.actorNodes=r.actorNodes;return}}var n=JSON.stringify(ut);try{this.actorNodes=P.deserializeArray(ye,n)}catch{debugger}}}class ye{constructor(s,n,t,e,r,o){c(this,"type");c(this,"actor");c(this,"resource");c(this,"role");c(this,"updatedby");c(this,"updatedon");c(this,"actors");this.type=s,this.actor=n,this.resource=t,this.role=e,this.updatedby=r,this.updatedon=o,this.actors=new Array}}function $t(a){return"Group.Read.All User.Read.All openid profile offline_access User.Read Contacts.Read CrossTenantInformation.ReadBasic.All"}async function Z(a,s){const n=new Headers;n.append("Content-Type","application/json"),n.append("accept","*/*");const t=$t();if(s.graphAccessToken==null||s.graphAccessToken==="")try{let e=await a.acquireTokenByCode({code:s.spacode});s.graphAccessToken=e.accessToken,console.log("Front end token acquired by code: "+s.graphAccessToken.slice(0,20))}catch(e){console.log("Front end token failure: "+e)}else try{let e=a.getAllAccounts(),r=s.oid+"."+s.tid,o=null;for(let i=0;i<e.length;i++)e[i].homeAccountId==r&&(o=e[i]);let d=await a.acquireTokenSilent({scopes:[t],account:o});s.graphAccessToken=d.accessToken,console.log("Front end token graph acquired silently: "+s.graphAccessToken.slice(0,20))}catch(e){try{console.log("Front end graph token silent acquisition failure: "+e);let r=a.getAllAccounts(),o=s.oid+"."+s.tid,d=null;for(let i=0;i<r.length;i++)r[i].homeAccountId==o&&(d=r[i]);a.acquireTokenRedirect({scopes:[t],account:d})}catch(r){console.log("Front end graph token redirect acquisition failure: "+r)}}return n.append("Authorization",`Bearer ${s.graphAccessToken}`),n}async function kt(a,s,n){if(s==null||s.spacode=="")return{groups:[],error:"500: invalid user passed to groupsGet"};let e={method:"GET",headers:await Z(a,s)};try{let r=U(s.authority)+h.graphGroupsPredicate;r+=`/?$filter=startsWith(displayName, '${n}')`;let d=await(await fetch(r,e)).json();return typeof d.error<"u"?{groups:[],error:`${d.error.code}: ${d.error.message}`}:{groups:d.value,error:""}}catch(r){return console.log(r),{groups:[],error:`Exception: ${r}`}}}async function we(a,s,n,t){try{let e=U(s.authority)+h.graphOauth2PermissionGrantsPredicate,r=new URL(e);r.searchParams.append("$filter",`resourceId eq '${n}' and consentType eq 'Principal' and principalId eq '${t}'`);let d=await(await fetch(r.href,a)).json();if(typeof d.error<"u")return{grants:null,id:null,error:`${d.error.code}: ${d.error.message}`};if(d.value.length!=1){debugger;return{grants:null,id:null,error:"oauth2PermissionGrantsGet: more than one matching delegated consent grant."}}return{grants:d.value[0].scope,id:d.value[0].id,error:""}}catch(e){return console.log(e),{grants:null,id:null,error:`Exception: ${e}`}}}async function Te(a,s,n,t){if(s==null||s.spacode=="")return!1;try{let e=U(s.authority);e+=h.graphOauth2PermissionGrantsPredicate+`/${n}`;let r=`{ "scope": "${t}" }`,d={method:"PATCH",headers:await Z(a,s),body:r},i=await fetch(e,d),l=await i.json();if(i.status==204&&i.statusText=="No Content")return!0;debugger;return console.log(`oauth2PermissionGrantsSet: PATCH failed ${l.error.code}: ${l.error.message}`),!1}catch(e){debugger;return console.log(e),!1}}function Dt(a,s){let n=yt(a.authority);n+=a.tid,n+="/adminconsent";let t=new URL(n),e=mt(a.authority,s);t.searchParams.append("client_id",e),t.searchParams.append("redirect_uri",window.location.origin),t.searchParams.append("domain_hint",a.companyDomain),t.searchParams.append("login_hint",a.mail),window.location.assign(t.href)}async function Se(a,s,n){try{let t=U(s.authority);t+=h.graphServicePrincipalsPredicate,t+=`(appId='${n}')`;let e=new URL(t);e.searchParams.append("$select","id,appId,displayName");let o=await(await fetch(e.href,a)).json();return typeof o.error<"u"?{spid:"",error:`${o.error.code}: ${o.error.message}`}:{spid:o.id,error:""}}catch(t){return console.log(t),{spid:"",error:`Exception: ${t}`}}}async function Pt(a,s){if(a.authority==""){let e=new z;if(e.domain=a.tid,await se(e,!1))a.authority=e.authority;else{debugger;return!1}}let n=window.location.href;switch(a.authority){case h.authorityWW:n+="MicrosoftIdentity/Account/SignIn";break;case h.authorityUS:n+="USGov/SignIn";break;case h.authorityCN:n+="China/SignIn";break;default:return!1}let t=new URL(n);if(t.searchParams.append("redirectUri",window.location.origin),a.oid!=="1"){t.searchParams.append("loginHint",a.mail);const e=/@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})$/,r=a.mail.match(e);let o=r?r[1]:"organizations";t.searchParams.append("domainHint",o)}else t.searchParams.append("domainHint","organizations");return s.setTaskStart("initialization",new Date),s.setTaskStart("authenticate user",new Date),window.location.assign(t.href),!0}function vt(a,s){debugger;if(a.oid=="1")return;let n=window.location.href;switch(a.authority){case h.authorityWW:n+="MicrosoftIdentity/Account/Challenge";break;case h.authorityUS:n+="USGov/Challenge";break;case h.authorityCN:n+="China/Challenge";break;default:return}let t=new URL(n);t.searchParams.append("redirectUri",window.location.origin),t.searchParams.append("scope",s),t.searchParams.append("domainHint","organizations"),t.searchParams.append("loginHint",a.mail),window.location.assign(t.href)}async function Et(a){if(a.oid=="1")return!1;let s=window.location.href;s+="user";let n=new URL(s);n.searchParams.append("oid",a.oid),n.searchParams.append("tid",a.tid),n.searchParams.append("loginHint",a.loginHint),n.searchParams.append("verb","LOGOUT");let t={method:"PATCH"},e=await fetch(n.href,t);if(e.status==200&&e.statusText=="OK")console.log(`Successfully set admin ${a.mail} logout_hint`);else return console.log(`Failed to set admin ${a.mail} logout_hint`),!1;let r=window.location.href;switch(a.authority){case h.authorityWW:r+="MicrosoftIdentity/Account/SignOut";break;case h.authorityUS:r+="USGov/SignOut";break;case h.authorityCN:r+="China/SignOut";break;default:return!1}return n=new URL(r),n.searchParams.append("redirectUri",window.location.origin),window.location.assign(n.href),!0}async function Rt(a,s,n,t){if(t)debugger;if(s.name!=null&&s.name!=="")return!1;if(a.graphAccessToken!=null&&a.graphAccessToken===""){console.log(`tenantRelationshipsGetByDomain called with invalid logged in user: ${a.name}`);try{let i=await n.acquireTokenByCode({code:a.spacode,scopes:["user.read","contacts.read","CrossTenantInformation.ReadBasic.All"]});a.graphAccessToken=i.accessToken,console.log("tenantRelationshipsGetByDomain: Front end token acquired: "+a.graphAccessToken.slice(0,20))}catch(i){return console.log("tenantRelationshipsGetByDomain: Front end token failure: "+i),!1}}const e=new Headers,r=`Bearer ${a.graphAccessToken}`;e.append("Authorization",r);let o={method:"GET",headers:e};try{var d=U(s.authority)+h.graphTenantByDomainPredicate;d+="(domainName='",d+=s.domain,d+="')",console.log("tenantRelationshipsGetByDomain: Attempting GET from /findTenantInformationByDomainName:",d);let i=await fetch(d,o);if(i.status==200){let l=await i.json();if(l){if(l.error!=null){debugger;return console.log("tenantRelationshipsGetByDomain: Failed GET from /findTenantInformationByDomainName: ",l.error.message),!1}else if(l.displayName!=null&&l.displayName!=="")return s.tid=l.tenantId,s.name=l.displayName,console.log("tenantRelationshipsGetByDomain: Successful GET from /findTenantInformationByDomainName: ",l.displayName),!0}else console.log("tenantRelationshipsGetByDomain: Failed to GET from /findTenantInformationByDomainName: ",d)}}catch(i){return console.log("Failed to GET from /findTenantInformationByDomainName: ",i),!1}return!1}async function be(a,s,n,t,e){if(console.log("**** tenantRelationshipsGetById"),e)debugger;if(a.graphAccessToken==="")try{let l=await t.acquireTokenByCode({code:a.spacode,scopes:["user.read","contacts.read","CrossTenantInformation.ReadBasic.All"]});a.graphAccessToken=l.accessToken,console.log("tenantRelationshipsGetById: Front end token acquired: "+a.graphAccessToken.slice(0,20))}catch(l){return console.log("tenantRelationshipsGetById: Front end token failure: "+l),!1}const r=new Headers,o=`Bearer ${a.graphAccessToken}`;r.append("Authorization",o);let d={method:"GET",headers:r};try{var i=U(a.authority)+h.graphTenantByIdPredicate;i+="(tenantId='",i+=s.tid,i+="')",console.log("tenantRelationshipsGetById: Attempting GET from /findTenantInformationByTenantId:",i);let u=await(await fetch(i,d)).json();if(u&&typeof u.displayName!==void 0&&u.displayName!==""){if(s!==void 0)s.name=u.displayName,s.domain=u.defaultDomainName;else{console.log("tenantRelationshipsGetById: missing associated tenant for logged in user.");debugger}return console.log("tenantRelationshipsGetById: Successful GET from /findTenantInformationByTenantId: ",u.displayName),!0}else console.log("tenantRelationshipsGetById: Failed to GET from /findTenantInformationByTenantId: ",i)}catch(l){return console.log("tenantRelationshipsGetById: Failed to GET from /findTenantInformationByTenantId: ",l),!1}return!1}async function se(a,s){if(s)debugger;let n=[h.authorityWW,h.authorityUS,h.authorityCN],t=[h.authorityWWRegex,h.authorityUSRegex,h.authorityCNRegex],e=null;try{for(let i=0;i<3;i++){var r=n[i];if(a.lookupfield=="Domain"?r+=a.domain:a.lookupfield=="Tenant ID"&&(r+=a.tid),r+="/.well-known/openid-configuration",console.log("Attempting GET from openid well-known endpoint: ",r),e=await fetch(r),e.status==200){let l=await e.json();if(l){var o=l.authorization_endpoint;for(let u=0;u<3;u++){var d=o.match(t[u]);if(d!=null)return a.tid=d[2],a.authority=d[1],console.log(`Successful GET from openid well-known endpoint: tid: ${a.tid} authority: ${a.authority}`),!0}}else console.log(`Failed JSON parse of openid well-known endpoint response ${r}.`)}else console.log(`Failed GET from ${r}.`)}}catch(i){console.log("Failed to GET from openid well-known endpoint: ",i)}return(a.tid==""||a.authority=="")&&console.log(`GET from openid well-known endpoint failed to find tenant: ${e?e.statusText:"unknown"}`),!1}async function Ie(a,s,n){if(s==null||s.spacode==""||n==null){debugger;return{scopes:null,id:null,error:"500: invalid parameter(s) passed to getUserDelegatedScopes"}}let e={method:"GET",headers:await Z(a,s)};try{if(n.graphSP==""){let{spid:i,error:l}=await Se(e,s,"00000003-0000-0000-c000-000000000000");if(l!=""){debugger;return{scopes:null,id:null,error:`${l}`}}n.graphSP=i}let{grants:r,id:o,error:d}=await we(e,s,n.graphSP,s.oid);if(d!=""){debugger;return{scopes:null,id:null,error:`${d}`}}return{scopes:r,id:o,error:""}}catch(r){debugger;return console.log(r),{scopes:null,id:null,error:`Exception: ${r}`}}}async function Gt(a,s,n,t){if(s==null||s.spacode==""||n==null){debugger;return!1}let{scopes:e,id:r,error:o}=await Ie(a,s,n);if(o!=""){debugger;return console.log(`userDelegatedScopesRemove: cannot find userDelegatedScopes for ${s.mail}: ${o}`),!1}e=e.replace(t,"");let d=await Te(a,s,r,e);if(!d){debugger;return console.log(`userDelegatedScopesRemove: cannot set oauth2PermissionGrants for ${s.mail}: ${o}`),!1}return s.scopes=e.split(" "),d}async function Ct(a,s){if(s==null||s.spacode=="")return{users:[],error:"500: invalid user passed to usersGet"};try{let t={method:"GET",headers:await Z(a,s)},e=U(s.authority);e+=h.graphUsersPredicate;let o=await(await fetch(e,t)).json();if(typeof o.error<"u")return{users:[],error:`${o.error.code}: ${o.error.message}`};let d=new Array;for(let i of o.value)d.push(i.mail);return{users:d,error:""}}catch(n){return console.log(n),{users:[],error:`Exception: ${n}`}}}async function Nt(a,s,n,t){return Pe(a,s,n,t)}async function Ot(a,s,n,t){return ve(a,s,n,t)}async function Wt(a,s,n,t,e){return Ee(a,s,n,t,e)}async function Ft(a,s,n,t){return Re(a,s,n,t)}async function Bt(a,s,n){return Ge(a,s,n)}async function Ut(a,s,n,t,e,r,o,d){let i=new y;if(n.id==="1"){if(i=await Fe(a,s,n,r.id,d),i.result){t&&t(n.id);const l={};Object.defineProperty(l,n.id,{value:!0,writable:!0,enumerable:!0}),e(l);let u=r.associatedConfigs.findIndex(p=>p=="1");u!==-1&&(r.associatedConfigs.splice(u,1),r.associatedConfigs.push(n.id))}}else i=await Be(a,s,n,d);return o.save(),i}async function _t(a,s,n,t,e){let r=new y;return r=await We(a,s,n,t,e),r}async function Lt(a,s,n,t,e){return Ce(a,s,n,t,e)}async function zt(a,s,n,t,e){return Ne(a,s,n,t,e)}async function xt(a,s,n,t,e){let r=new y;if(e)debugger;try{let o=t.ws.find(d=>d.id===n);if(o!=null){o.associatedConfigs.length=0;let d=await _e(a,s,o.id,e);if(!d.result)return d;let i="";for(let l of o.associatedConfigs){let u=t.cs.find(p=>p.id===l);u!=null&&u.sel&&(t.cs.find(p=>p.id===l)??t.acs.find(p=>p.id===l),u&&u.sel&&(i=u.id)),Ae(o,t,d.array,i),t.tagWithWorkspaces()}return d}else return r.result=!1,r.error="Workspace not found.",r.status=404,r}catch(o){return console.log(o.message),r.error=o.message,r.result=!1,r.status=500,r}}async function Mt(a,s,n,t,e){return Oe(a,s,n,t)}async function jt(a,s,n,t,e){console.log(">>>>>> initGet");let r=new y;if(e)debugger;let o=new z;return o.tid=s.tid,o.domain=s.tid,await se(o,e)?(s.authority=o.authority,t.setTaskStart("GET tenant details",new Date),r.result=await be(s,o,n,a,e),t.setTaskEnd("GET tenant details",new Date,"complete"),r.result&&(s.companyName=o.name,s.companyDomain=o.domain,t.setTaskStart("POST config init",new Date),r=await Le(a,s,e),t.setTaskEnd("POST config init",new Date,r.result?"complete":"failed")),r.result&&(t.setTaskStart("GET workspaces",new Date),r=await Xt(a,s,n,e),t.setTaskEnd("GET workspaces",new Date,r.result?"complete":"failed")),console.log("initGet complete. Version: "+B()),r):(r.error=`Failed to retrieve authority for user "${s.mail}" TID ${s.tid}.`,r.result=!1,r)}async function qt(a,s,n,t){return Me(a,s,n,t)}async function Ht(a,s,n,t,e){return ze(a,s,n,t)}async function Kt(a,s,n,t){return De(a,s,n,t)}async function Jt(a,s,n,t){return $e(a,s,n,t)}async function Vt(a,s,n,t){return await je(a,s,n,t)}function Zt(a,s,n,t){n.map(e=>{let r=null,o=s.us.findIndex(l=>l.oid===e.userId||l.oid===e.email);if(o===-1){let l=s.us.findIndex(u=>u.oid==="1");if(l!==-1){r=s.us.at(l);let u=a.associatedUsers.findIndex(p=>p=="1");u!==-1&&(a.associatedUsers.splice(u,1),a.associatedUsers.push(e.userId))}else r=new H,s.us.push(r)}else r=s.us.at(o);r.sel=t===e.userId,r.oid=e.userId?e.userId:e.email,r.name=e.firstName??r.name,r.mail=e.email,r.tid=e.tenantId;let d=s.ts.find(l=>l.tid===r.tid);d!=null&&(r.authority=d.authority,r.companyName=d.name,r.companyDomain=d.domain),a.associatedUsers.findIndex(l=>l===r.oid)==-1&&a.associatedUsers.push(r.oid)}),s.save()}function Qt(a,s,n,t){n.map(e=>{let r=null,o=s.ts.findIndex(u=>u.tid===e.tenantId);if(o===-1){let u=s.ts.findIndex(p=>p.tid==="1");if(u!==-1){r=s.ts.at(u);let p=a.associatedTenants.findIndex(k=>k=="1");p!==-1&&(a.associatedTenants.splice(p,1),a.associatedTenants.push(e.tenantId))}else r=new z,s.ts.push(r)}else r=s.ts.at(o);r.sel=t===e.tenantId,r.tid=e.tenantId,r.name=e.name,r.domain=e.domain,r.tenantType=e.type.toLowerCase();const d=/^(https:\/\/login.microsoftonline.(?:us|com)\/)organizations\/v2.0$/,i=e.authority.match(d);r.authority=i?i[1]:e.authority,a.associatedTenants.findIndex(u=>u===e.tenantId)==-1&&a.associatedTenants.push(e.tenantId)}),s.save()}function Ae(a,s,n,t){n.map(e=>{let r=null,o=s.cs.findIndex(i=>i.id===e.id);if(o===-1){let i=s.cs.findIndex(l=>l.id==="1");if(i!==-1){r=s.cs.at(i);let l=a.associatedConfigs.findIndex(u=>u=="1");l!==-1&&(a.associatedConfigs.splice(l,1),a.associatedConfigs.push(e.id))}else r=new K,s.cs.push(r)}else r=s.cs.at(o);r.sel=t===e.id,r.id=e.id,r.workspaceId=e.workspaceId,r.name=e.name,r.description=e.description,r.isEnabled=e.isEnabled,r.tenants.length=0,e.tenants.map(i=>{let l=new he;l.tid=i.tenantId,l.sourceGroupId=i.sourceGroupId??"",l.sourceGroupName=i.sourceGroupName??"",l.targetGroupId=i.targetGroupId??"",l.targetGroupName=i.targetGroupName??"",l.configurationTenantType=i.configurationTenantType.toLowerCase(),l.deltaToken=i.deltaToken??"",l.configId=r.id,l.batchId=i.batchId??"",l.isReadPermissionConsented=i.isReadPermissionConsented,l.isWritePermissionConsented=i.isWritePermissionConsented,r.tenants.push(l)}),a.associatedConfigs.findIndex(i=>i===e.id)==-1&&a.associatedConfigs.push(e.id)}),s.save()}async function Xt(a,s,n,t){let e=new y;if(t)debugger;try{if(e=await qe(a,s,t),e.result){for(let r of e.array){let o=null,d=n.ws.findIndex(v=>v.id===r.id);if(d===-1){let v=n.ws.findIndex(S=>S.id==="1");v!==-1?o=n.ws.at(v):(o=new J,n.ws.push(o))}else o=n.ws.at(d);let i="";for(let v of o.associatedUsers){let S=n.us.find(G=>G.oid===v);S!=null&&S.sel&&(i=S.oid)}let l="";for(let v of o.associatedTenants){let S=n.ts.find(G=>G.tid===v);S!=null&&S.sel&&(l=S.tid)}let u="";for(let v of o.associatedConfigs){let S=n.cs.find(G=>G.id===v);S!=null&&S.sel&&(u=S.id)}o.associatedUsers.length=0,o.associatedTenants.length=0,o.associatedConfigs.length=0,o.id=r.id,o.name=r.name,o.ownerid=r.workspaceOwnerUserId;let p=ke(a,s,o.id,t),k=xe(a,s,o.id,t),D=Ue(a,s,o.id,t),[R,E,g]=await Promise.all([p,k,D]);if(!R.result)return R;if(!E.result)return E;if(!g.result)return g;Qt(o,n,E.array,l),Zt(o,n,R.array,i),Ae(o,n,g.array,u),n.tagWithWorkspaces()}return e}}catch(r){console.log(r.message),e.error=r.message}return e.result=!1,e.status=500,e}async function Yt(a,s){let n="",t=B();try{let e=a.getAllAccounts(),r=s.oid+"."+s.tid,o=null;for(let i=0;i<e.length;i++)e[i].homeAccountId==r&&(o=e[i]);n=(await a.acquireTokenSilent({scopes:["https://analysis.windows.net/powerbi/api/App.Read.All","https://analysis.windows.net/powerbi/api/Dataset.ReadWrite.All","https://analysis.windows.net/powerbi/api/Report.ReadWrite.All","https://analysis.windows.net/powerbi/api/Workspace.ReadWrite.All"],account:o})).accessToken,console.log("PowerBI token acquired silently: "+n.slice(0,20))}catch{console.log("PowerBI token failed to be acquired silently")}return console.log(t),n}async function ne(a,s){const n=new Headers;if(n.append("Content-Type","application/json"),n.append("accept","*/*"),s.azureAccessToken==null||s.azureAccessToken==="")try{let t=a.getAllAccounts(),e=s.oid+"."+s.tid,r=null;for(let d=0;d<t.length;d++)t[d].homeAccountId==e&&(r=t[d]);let o=await a.acquireTokenSilent({scopes:["https://management.azure.com/user_impersonation"],account:r});s.azureAccessToken=o.accessToken,console.log("Front end token acquired silently: "+s.azureAccessToken.slice(0,20))}catch(t){try{console.log("Front end token silent acquisition failure: "+t);let e=a.getAllAccounts(),r=s.oid+"."+s.tid,o=null;for(let d=0;d<e.length;d++)e[d].homeAccountId==r&&(o=e[d]);a.acquireTokenRedirect({scopes:["https://management.azure.com/user_impersonation"],account:o})}catch(e){console.log("Front end token popup acquisition failure: "+e)}}return n.append("Authorization",`Bearer ${s.azureAccessToken}`),n}async function es(a,s){if(s==null||s.spacode=="")return!1;try{let t={method:"GET",headers:await ne(a,s)},e=L.azureListRootAssignments;e+="'",e+=s.oid,e+="'";let r=await fetch(e,t);if(r.status==200){let o=await r.json();o=o;debugger;console.log("Successful call to Azure Resource Graph list root assignments")}else return console.log(await T(r)),!1}catch(n){return console.log(n),!1}return!0}async function ts(a,s){if(s==null||s.spacode=="")return!1;try{let t={method:"POST",headers:await ne(a,s)},e=L.azureElevateAccess,r=await fetch(e,t);if(r.status==200)console.log("Successful call to Azure Resource Graph list root assignments");else return console.log(await T(r)),!1}catch(n){return console.log(n),!1}return!0}async function ss(a,s){let n=new Array;if(s==null||s.spacode=="")return n;try{let e={method:"GET",headers:await ne(a,s)},r=L.azureListRootAssignments;r+="'",r+=s.oid,r+="'";let o=await fetch(r,e);if(o.status==200){let d=await o.json();d=d;debugger;console.log("Successful call to Azure Resource Graph list root assignments")}else return console.log(await T(o)),n}catch(t){return console.log(t),n}return n}function ns(a){let s="8d95d21c-c378-4bb0-9f52-88c30d271e7a",n=a.authority.toLowerCase();return n.startsWith("https://login.microsoftonline.com/")?s="8d95d21c-c378-4bb0-9f52-88c30d271e7a":n.startsWith("https://login.microsoftonline.us/")?s="48da942e-ea3d-49e4-a054-81649012f8f2":n.startsWith("https://login.partner.microsoftonline.cn/")&&(s="c91d32e4-dcc5-4d77-826a-16e93ffce666"),`api://${s}/Config.Write`}async function b(a,s){const n=new Headers;n.append("Content-Type","application/json"),n.append("accept","*/*");const t=ns(s);try{let e=a.getAllAccounts(),r=s.oid+"."+s.tid,o=null;for(let i=0;i<e.length;i++)e[i].homeAccountId==r&&(o=e[i]);let d=await a.acquireTokenSilent({scopes:[t],account:o});s.mindlineAccessToken=d.accessToken,console.log("Front end mindline token acquired silently: "+s.mindlineAccessToken.slice(0,20))}catch(e){try{console.log("Front end mindline token silent acquisition failure, triggering redirect: "+e);let r=a.getAllAccounts(),o=s.oid+"."+s.tid,d=null;for(let i=0;i<r.length;i++)r[i].homeAccountId==o&&(d=r[i]);a.acquireTokenRedirect({scopes:[t],account:d})}catch(r){console.log("Front end mindline token redirect acquisition failure: "+r)}}return n.append("Authorization",`Bearer ${s.mindlineAccessToken}`),n}async function T(a){let s="";if(a.status===401&&(s=a.statusText,s!=""))return s;let n=await a.json();if(n.error!==void 0)s=`Error: ${n.error} Message: ${n.message}`;else if(n.errors!==void 0)s=Object.keys(n.errors).reduce((r,o)=>r+o+": "+n.errors[o]+" ","");else if(n.title!==void 0)s=n.title;else debugger;return s}async function $e(a,s,n,t){let e=new y;if(n.oid==""&&n.mail==""||t=="")return e.result=!1,e.error="adminDelete: invalid parameters",e.status=500,e;let r=null;r=new URL(w.adminEndpoint()),r.searchParams.append("workspaceId",t),r.searchParams.append("email",n.mail);let d={method:"DELETE",headers:await b(a,s)};try{console.log("Attempting DELETE from /admin: "+r.href);let i=await fetch(r.href,d);return i.status===200&&i.statusText==="OK"?(console.log(`Successful DELETE from /admin: ${r.href}`),e):(e.error=await T(i),console.log(`Failed DELETE from /admin: ${r.href}`),console.log(e.error),e.status=500,e.result=!1,e)}catch(i){e.error=i.message,e.status=500,e.result=!1,console.log(i.message)}return e}async function ke(a,s,n,t){let e=new y;if(n==="")return e.result=!1,e.status=500,e.error="adminsGet: no workspace provided",e;let r=w.adminsEndpoint(),o=new URL(r);o.searchParams.append("workspaceId",n);let i={method:"GET",headers:await b(a,s)};try{if(t)debugger;console.log("Attempting GET from /admins: "+o.href);let l=await fetch(o.href,i);if(l.status===200&&l.statusText==="OK"){let u=await l.json();return u!=null?(e.array=u,console.log(`Successful GET from /admins: ${e.array.reduce((k,D)=>k+D.email+" ","")}`),e):(e.error="Failed GET from /admins: failed to JSON-parse response",console.log(e.error),e.status=500,e.result=!1,e)}else return console.log(`Failed GET from /admins: ${o.href}`),e.error=await T(l),e.status=500,e.result=!1,console.log(e.error),e}catch(l){e.error=l.message,e.status=500,e.result=!1,console.log(l.message)}return e}async function De(a,s,n,t){let e=new y;if(n.mail==""||n.authority==""||n.tid==="")return e.result=!1,e.error="adminPost: invalid argument",e.status=500,e;let r=w.adminEndpoint();const o=await b(a,s);let d=`
|
|
2
2
|
{"email": "${n.mail}",
|
|
3
3
|
"tenantId": "${n.tid}",
|
|
4
4
|
"workspaceId": "${t}"
|
|
5
|
-
}`,i={method:"POST",headers:o,body:d};try{console.log("Attempting POST to /admin: "+r);let
|
|
5
|
+
}`,i={method:"POST",headers:o,body:d};try{console.log("Attempting POST to /admin: "+r);let l=await fetch(r,i);return l.status===200&&l.statusText==="OK"?(console.log(`Successful POST to /admin: ${d}`),e):(e.error=await T(l),console.log(`Failed POST to /admin: ${d}`),console.log(e.error),e.status=500,e.result=!1,e)}catch(l){e.error=l.message,e.status=500,e.result=!1,console.log(l.message)}return e}async function Pe(a,s,n,t){a=a,s=s,t=t;let e=new y;if(n.id==="")return e.result=!1,e.error="auditConfigPost: invalid config ID",e.status=500,e;let r=w.auditConfigEndpoint();const o=await b(a,s);let d=`
|
|
6
6
|
{
|
|
7
7
|
"workspaceId": "${n.workspaceId}",
|
|
8
8
|
"name": "${n.name}",
|
|
@@ -10,40 +10,47 @@
|
|
|
10
10
|
"isEnabled": ${n.isEnabled},
|
|
11
11
|
"email": "${n.email}",
|
|
12
12
|
"tenantId": "${n.tenantId}"
|
|
13
|
-
}`,i={method:"POST",headers:o,body:d};try{if(t)debugger;console.log("Attempting POST to /audit-configuration: "+r);let
|
|
13
|
+
}`,i={method:"POST",headers:o,body:d};try{if(t)debugger;console.log("Attempting POST to /audit-configuration: "+r);let l=await fetch(r,i);if(l.status===200&&l.statusText==="OK"){let u=await l.json();return n.id=u,console.log(`Successful AuditConfigID: ${u} from POST to /audit-configuration: ${d}`),e}else return e.error=await T(l),console.log(`Failed POST to /audit-configuration: ${d}`),console.log(e.error),e.status=500,e.result=!1,e}catch(l){return e.status=500,e.result=!1,e.error=l.message,console.log(e.error),e}return e}async function ve(a,s,n,t){a=a,s=s,t=t;let e=new y;if(s.mail==null||s.mail=="")return e.result=!1,e.status=500,e.error="auditConfigGet: no user provided",e;if(!n||n.trim()==="")return e.result=!1,e.error="auditConfigGet: configurationId is required",e.status=500,e;let r=w.auditConfigEndpoint(),o=new URL(`${r}/${n}`),i={method:"GET",headers:await b(a,s)};try{if(t)debugger;console.log("Attempting GET to /audit-configuration: "+o.href);const l=await fetch(o.href,i);if(l.status===200&&l.statusText==="OK"){let u=await l.json();e.result=!0,e.status=l.status,console.log("Successful GET from /audit-configuration:",u)}else e.error=await T(l),console.log("Failed GET from /audit-configuration: "+o.href),console.log(e.error),e.status=l.status,e.result=!1}catch(l){e.status=500,e.result=!1,e.error=l.message,console.log("Error during auditConfigGet:",l.message)}return e}async function Ee(a,s,n,t,e){let r=new y;if(!n||n.trim()==="")return r.result=!1,r.error="auditConfigPut: invalid configuration ID",r.status=500,r;let o=w.auditConfigEndpoint(),d=new URL(o);d.searchParams.append("configurationId",n);const i=await b(a,s);let l=`
|
|
14
|
+
{
|
|
15
|
+
"name": "${t.name}",
|
|
16
|
+
"description": "${t.description}",
|
|
17
|
+
"isEnabled": ${t.isEnabled},
|
|
18
|
+
"isReadPermissionConsented": ${t.isReadPermissionConsented},
|
|
19
|
+
"email": "${t.email}"
|
|
20
|
+
}`,u={method:"PUT",headers:i,body:l};try{if(e)debugger;console.log("Attempting PUT to /audit-configuration: "+d.href);const p=await fetch(d.href,u);p.status===200&&p.statusText==="OK"?(r.result=!0,console.log(`Successful PUT to ${d.href}: ${l}`)):(r.error=await T(p),console.error(`Failed PUT to ${d.href}: ${l}`),r.status=p.status,r.result=!1)}catch(p){r.error=p.message,r.status=500,r.result=!1,console.error("Error during auditConfigPut:",p.message)}return r}async function Re(a,s,n,t){let e=new y;if(!s.mail)return e.result=!1,e.status=500,e.error="auditConfigDelete: no user provided",e;if(!n||n.trim()==="")return e.result=!1,e.status=500,e.error="auditConfigDelete: configurationId is required",e;let r=w.auditConfigEndpoint(),o=new URL(r);o.searchParams.append("configurationId",n);const i={method:"DELETE",headers:await b(a,s)};try{if(t)debugger;console.log(`Attempting DELETE to /audit-configuration: ${o.href}`);const l=await fetch(o.href,i);l.ok?(e.result=!0,console.log(`Successful DELETE for configurationId ${n}`)):(e.error=await T(l),e.status=l.status,e.result=!1,console.error(`Failed DELETE for configurationId ${n}`))}catch(l){e.status=500,e.result=!1,e.error=l.message,console.error("Error during auditConfigDelete:",l.message)}return e}async function Ge(a,s,n){let t=new y;if(s.mail==null||s.mail=="")return t.result=!1,t.status=500,t.error="auditEventsGet: no user provided",t;let e=w.auditEventsEndpoint(),r=new URL(e),d={method:"GET",headers:await b(a,s)};try{if(n)debugger;console.log("Attempting GET from /audit-events endpoint: "+r.href);let i=await fetch(r.href,d);if(i.status===200&&i.statusText==="OK"){let l=await i.json();if(Array.isArray(l.data)){let u=l.data;if(u!=null)return t.array=u,console.log(`Successful GET from /audit-events: ${t.array.reduce((k,D)=>k+D.initiatedByUser+" ","")}`),t}return t.error="Failed GET from /audit-events: failed to JSON-parse response",console.log(t.error),t.status=500,t.result=!1,t}else return console.log(`Failed GET from /audit-events: ${r.href}`),t.error=await T(i),t.status=500,t.result=!1,console.log(t.error),t}catch(i){t.error=i.message,t.status=500,t.result=!1,console.log(i.message)}return t}async function Ce(a,s,n,t,e){let r=new y,o=w.configConsentEndpoint(),d=new URL(o);d.searchParams.append("configurationId",n);const i=await b(a,s);let l=`
|
|
14
21
|
{
|
|
15
22
|
"tenantId": "${t}",
|
|
16
23
|
"isReadPermissionConsented": ${e?"true":"false"}
|
|
17
|
-
}`,u={method:"PUT",headers:i,body:
|
|
24
|
+
}`,u={method:"PUT",headers:i,body:l};try{console.log("Attempting PUT read consent to /configuration/consent: "+d.href);let p=await fetch(d.href,u);return p.status===200&&p.statusText==="OK"?(console.log(`Successful PUT to ${d.href}`),r):(r.error=await T(p),console.log(`Failed PUT to ${d.href}`),console.log(r.error),r.status=500,r.result=!1,r)}catch(p){r.error=p.message,r.status=500,r.result=!1,console.log(p.message)}return r}async function Ne(a,s,n,t,e){let r=new y,o=w.configConsentEndpoint(),d=new URL(o);d.searchParams.append("configurationId",n);const i=await b(a,s);let l=`
|
|
18
25
|
{
|
|
19
26
|
"tenantId": "${t}",
|
|
20
27
|
"isWritePermissionConsented": ${e?"true":"false"}
|
|
21
|
-
}`,u={method:"PUT",headers:i,body:
|
|
28
|
+
}`,u={method:"PUT",headers:i,body:l};try{console.log("Attempting PUT read consent to /configuration/consent: "+d.href);let p=await fetch(d.href,u);return p.status===200&&p.statusText==="OK"?(console.log(`Successful PUT to ${d.href}`),r):(r.error=await T(p),console.log(`Failed PUT to ${d.href}`),console.log(r.error),r.status=500,r.result=!1,r)}catch(p){r.error=p.message,r.status=500,r.result=!1,console.log(p.message)}return r}async function Oe(a,s,n,t,e){let r=new y;if(n.id===""||t=="")return r.result=!1,r.error="configPost: invalid config ID",r.status=500,r;let o=null;o=new URL(w.configEndpoint()),o.searchParams.append("configurationId",n.id);let i={method:"DELETE",headers:await b(a,s)};try{console.log("Attempting DELETE from /config: "+o.href);let l=await fetch(o.href,i);return l.status===200&&l.statusText==="OK"?(console.log("Successful DELETE from /config"),r):(r.error=await T(l),console.log(`Failed DELETE from ${o.href}`),console.log(r.error),r.status=500,r.result=!1,r)}catch(l){r.error=l.message,r.status=500,r.result=!1,console.log(l.message)}return r}async function We(a,s,n,t,e){let r=new y;if(n==="")return r.result=!1,r.error="configPatch: invalid config ID",r.status=500,r;let o=w.configEnabledEndpoint(),d=new URL(o);d.searchParams.append("configurationId",n),d.searchParams.append("isEnabled",t.toString());let l={method:"PATCH",headers:await b(a,s)};try{if(e)debugger;console.log("Attempting PATCH to /config: "+d.href);let u=await fetch(d.href,l);return u.status===200&&u.statusText==="OK"?(console.log(`Successful PATCH to ${d.href}: ${t.toString()}`),r):(r.error=await T(u),console.log(`Failed PATCH to ${d.href}: ${t.toString()}`),console.log(r.error),r.status=500,r.result=!1,r)}catch(u){r.error=u.message,r.status=500,r.result=!1,console.log(u.message)}return r}async function Fe(a,s,n,t,e){let r=new y;if(n.id==="")return r.result=!1,r.error="configPost: invalid config ID",r.status=500,r;let o=w.configEndpoint();const d=await b(a,s);let i=`
|
|
22
29
|
{
|
|
23
30
|
"workspaceId": "${t}",
|
|
24
31
|
"name": "${n.name}",
|
|
25
32
|
"description": "${n.description}",
|
|
26
33
|
"isEnabled": ${n.isEnabled},
|
|
27
|
-
"tenants": [`;n.tenants.map(u=>{let
|
|
34
|
+
"tenants": [`;n.tenants.map(u=>{let p=u.sourceGroupId!=""?`"${u.sourceGroupId}"`:"null",k=u.sourceGroupName!=""?`"${u.sourceGroupName}"`:"null",D=u.targetGroupId!=""?`"${u.targetGroupId}"`:"null",R=u.targetGroupName!=""?`"${u.targetGroupName}"`:"null";i.slice(-1)==="}"&&(i+=","),i+=`{
|
|
28
35
|
"tenantId": "${u.tid}",
|
|
29
|
-
"sourceGroupId": ${
|
|
36
|
+
"sourceGroupId": ${p},
|
|
30
37
|
"sourceGroupName": ${k},
|
|
31
38
|
"targetGroupId": ${D},
|
|
32
|
-
"targetGroupName": ${
|
|
39
|
+
"targetGroupName": ${R},
|
|
33
40
|
"configurationTenantType": "${u.configurationTenantType}"
|
|
34
|
-
}`}),i+="]}";let
|
|
41
|
+
}`}),i+="]}";let l={method:"POST",headers:d,body:i};try{if(e)debugger;console.log("Attempting POST to /config: "+o);let u=await fetch(o,l);if(u.status===200&&u.statusText==="OK"){let p=await u.json();return n.id=p,console.log(`Successful ConfigID: ${p} from POST to /config: ${i}`),r}else return r.error=await T(u),console.log(`Failed PUT to /config: ${i}`),console.log(r.error),r.status=500,r.result=!1,r}catch(u){return r.status=500,r.result=!1,r.error=u.message,console.log(r.error),r}}async function Be(a,s,n,t){let e=new y;if(n.id==="")return e.result=!1,e.error="configPost: invalid config ID",e.status=500,e;let r=w.configEndpoint(),o=new URL(r);o.searchParams.append("configurationId",n.id);const d=await b(a,s);let i=`
|
|
35
42
|
{
|
|
36
43
|
"name": "${n.name}",
|
|
37
44
|
"description": "${n.description}",
|
|
38
|
-
"tenants": [`;n.tenants.map(u=>{i.slice(-1)==="}"&&(i+=",");let k=u.sourceGroupId!=""?`"${u.sourceGroupId}"`:"null",D=u.sourceGroupName!=""?`"${u.sourceGroupName}"`:"null",
|
|
45
|
+
"tenants": [`;n.tenants.map(u=>{i.slice(-1)==="}"&&(i+=",");let k=u.sourceGroupId!=""?`"${u.sourceGroupId}"`:"null",D=u.sourceGroupName!=""?`"${u.sourceGroupName}"`:"null",R=u.targetGroupId!=""?`"${u.targetGroupId}"`:"null",E=u.targetGroupName!=""?`"${u.targetGroupName}"`:"null";i+=`{
|
|
39
46
|
"tenantId": "${u.tid}",
|
|
40
47
|
"sourceGroupId": ${k},
|
|
41
48
|
"sourceGroupName": ${D},
|
|
42
|
-
"targetGroupId": ${
|
|
43
|
-
"targetGroupName": ${
|
|
49
|
+
"targetGroupId": ${R},
|
|
50
|
+
"targetGroupName": ${E},
|
|
44
51
|
"configurationTenantType": "${u.configurationTenantType}",
|
|
45
52
|
"deltaToken": "${u.deltaToken}"
|
|
46
|
-
}`}),i+="]}";let
|
|
53
|
+
}`}),i+="]}";let l={method:"PUT",headers:d,body:i};try{if(t)debugger;console.log("Attempting PUT to /config: "+o.href);let u=await fetch(o.href,l);return u.status===200&&u.statusText==="OK"?(console.log(`Successful PUT to ${o.href}: ${i}`),e):(e.error=await T(u),console.log(`Failed PUT to ${o.href}: ${i}`),console.log(e.error),e.status=500,e.result=!1,e)}catch(u){e.error=u.message,e.status=500,e.result=!1,console.log(u.message)}return e}async function Ue(a,s,n,t){let e=new y;if(n==="")return e.result=!1,e.status=500,e.error="configsGet: no workspace provided",e;let r=w.configsEndpoint(),o=new URL(r);o.searchParams.append("workspaceId",n);let i={method:"GET",headers:await b(a,s)};try{if(t)debugger;console.log("Attempting GET from /configurations: "+o.href);let l=await fetch(o.href,i);if(l.status===200&&l.statusText==="OK"){let u=await l.json();return u!=null?(e.array=u,console.log(`Successful GET from /configurations: ${e.array.reduce((k,D)=>k+D.name+" ","")}`),e):(e.error="Failed GET from /configurations: failed to JSON-parse response",console.log(e.error),e.status=500,e.result=!1,e)}else return console.log(`Failed GET from /configurations: ${o.href}`),e.error=await T(l),e.status=500,e.result=!1,console.log(e.error),e}catch(l){e.error=l.message,e.status=500,e.result=!1,console.log(l.message)}return e}async function _e(a,s,n,t){let e=new y;if(!n)return e.result=!1,e.status=500,e.error="workspaceConfigsGet: no workspace provided",e;let r=w.workspaceConfigsEndpoint(),o=new URL(r);o.searchParams.append("workspaceId",n);let i={method:"GET",headers:await b(a,s)};try{if(t)debugger;console.log("Attempting GET from /workspaceConfigs: "+o.href);const l=await fetch(o.href,i);if(l.status===200&&l.statusText==="OK"){const u=await l.json();if(u)return e.array=u.map(p=>({id:p.id,name:p.name,description:p.description,configurationType:p.configurationType,isEnabled:p.isEnabled})),console.log(`workspaceConfigsGet: found ${e.array.length} configs.`),e;e.error="workspaceConfigsGet: failed to parse returned configs",e.result=!1,e.status=500}else e.error=await T(l),e.result=!1,e.status=l.status,console.log(e.error)}catch(l){e.error=l.message,e.result=!1,e.status=500}return e}async function Le(a,s,n){let t=new y;if(s.companyName===""||s.companyDomain==="")return t.result=!1,t.error="initPost: invalid company name or domain",t.status=500,t;let e=w.initEndpoint();const r=await b(a,s);let o=`
|
|
47
54
|
{
|
|
48
55
|
"tenantCreateModel": {
|
|
49
56
|
"tenantId": "${s.tid}",
|
|
@@ -52,11 +59,11 @@
|
|
|
52
59
|
"type": "aad",
|
|
53
60
|
"authority": "${s.authority}"
|
|
54
61
|
}
|
|
55
|
-
}`,d={method:"POST",headers:r,body:o};try{if(n)debugger;console.log("Attempting POST to /configuration/init: "+e);let i=await fetch(e,d);return i.status===200&&i.statusText==="OK"?(console.log(`Successful POST to /configuration/init: ${o}`),t):(t.error=await
|
|
62
|
+
}`,d={method:"POST",headers:r,body:o};try{if(n)debugger;console.log("Attempting POST to /configuration/init: "+e);let i=await fetch(e,d);return i.status===200&&i.statusText==="OK"?(console.log(`Successful POST to /configuration/init: ${o}`),t):(t.error=await T(i),t.status=500,t.result=!1,console.log(`Failed POST to /configuration/init: ${o}`),console.log(t.error),t)}catch(i){t.error=i.message,console.log(t.error)}return t.status=500,t.result=!1,t}async function ze(a,s,n,t,e){let r=new y;if(n.tid===""||t==="")return r.result=!1,r.error="tenantDelete: invalid tid, workspaceId",r.status=500,r;let o=new URL(w.tenantEndpoint());o.searchParams.append("tenantId",n.tid),o.searchParams.append("workspaceId",t);let i={method:"DELETE",headers:await b(a,s)};try{console.log("Attempting DELETE from /tenant: "+o.href);let l=await fetch(o.href,i);return l.status===200&&l.statusText==="OK"?(console.log(`Successful DELETE from /tenant: ${o.href}`),r):(console.log(`Failed DELETE from /tenant: ${o.href}`),r.error=await T(l),console.log(r.error),r.status=500,r.result=!1,r)}catch(l){r.error=l.message,r.status=500,r.result=!1,console.log(r.error)}return r}async function xe(a,s,n,t){let e=new y;if(n==="")return e.result=!1,e.status=500,e.error="tenantsGet: no workspace provided",e;let r=w.tenantsEndpoint(),o=new URL(r);o.searchParams.append("workspaceId",n);let i={method:"GET",headers:await b(a,s)};try{if(t)debugger;console.log(`Attempting GET from /tenants: ${o.href}`);let l=await fetch(o.href,i);if(l.status===200&&l.statusText==="OK"){let u=await l.json();return u!=null?(e.array=u,console.log(`Successful GET from /tenants: ${e.array.reduce((k,D)=>k+D.domain+" ","")}`),e):(e.error="Failed GET from /tenants: failed to JSON-parse response",console.log(e.error),e.status=500,e.result=!1,e)}else return console.log(`Failed GET from /tenants: ${o.href}`),e.error=await T(l),e.status=500,e.result=!1,console.log(e.error),e}catch(l){e.error=l.message,e.status=500,e.result=!1,console.log(l.message)}return e}async function Me(a,s,n,t){let e=new y;if(n.tid===""||n.name===""||n.domain==="")return e.result=!1,e.error="tenantPost: invalid tid, name, domain",e.status=500,e;let r=w.tenantEndpoint(),o=new URL(r);o.searchParams.append("workspaceId",t);const d=await b(a,s);let i=`
|
|
56
63
|
{"tenantId": "${n.tid}",
|
|
57
64
|
"name": "${n.name}",
|
|
58
65
|
"domain": "${n.domain}",
|
|
59
66
|
"type": 1,
|
|
60
67
|
"authority": "${n.authority}"
|
|
61
|
-
}`,
|
|
68
|
+
}`,l={method:"POST",headers:d,body:i};try{console.log(`Attempting POST to ${o.href}: ${i}`);let u=await fetch(o.href,l);return u.status===200&&u.statusText==="OK"?(console.log(`Successful POST to ${o.href}: ${i}`),e):(console.log(`Failed POST to ${o.href}: ${i}`),e.error=await T(u),console.log(e.error),e.status=500,e.result=!1,e)}catch(u){e.error=u.message,e.status=500,e.result=!1,console.log(e.error)}return e}async function je(a,s,n,t){let e=new y;if(n==""||t=="")return e.result=!1,e.error="workspacePut: invalid workspace ID or name",e.status=500,e;let r=w.workspaceEndpoint(),o=new URL(r);o.searchParams.append("workspaceId",n),o.searchParams.append("workspaceName",t);let i={method:"PUT",headers:await b(a,s)};try{console.log("Attempting PUT to /workspace: "+o.href);let l=await fetch(o.href,i);return l.status===200&&l.statusText==="OK"?(console.log(`Successful PUT to ${o.href}`),e):(e.error=await T(l),console.log(`Failed PUT to ${o.href}`),console.log(e.error),e.status=500,e.result=!1,e)}catch(l){e.error=l.message,e.status=500,e.result=!1,console.log(l.message)}return e}async function qe(a,s,n){let t=new y;if(s.mail==null||s.mail=="")return t.result=!1,t.status=500,t.error="adminsGet: no workspace provided",t;let e=w.workspacesEndpoint(),r=new URL(e),d={method:"GET",headers:await b(a,s)};try{if(n)debugger;console.log("Attempting GET from /workspaces endpoint: "+r.href);let i=await fetch(r.href,d);if(i.status===200&&i.statusText==="OK"){let l=await i.json();return l!=null?(t.array=l,console.log(`Successful GET from /workspaces: ${t.array.reduce((p,k)=>p+k.name+" ","")}`),t):(t.error="Failed GET from /workspaces: failed to JSON-parse response",console.log(t.error),t.status=500,t.result=!1,t)}else return console.log(`Failed GET from /workspaces: ${r.href}`),t.error=await T(i),t.status=500,t.result=!1,console.log(t.error),t}catch(i){t.error=i.message,t.status=500,t.result=!1,console.log(i.message)}return t}async function He(a,s,n){let t=new y;if(a==null||s==null)return t.result=!1,t.error="readerPost: invalid parameters",t.status=500,t;let e=w.readerStartSyncEndpoint(),r=new URL(e);r.searchParams.append("configurationId",n.id);let d={method:"POST",headers:await b(a,s)};try{console.log("Attempting POST to /startSync: "+r.href);let i=await fetch(r.href,d);if(i.status===200&&i.statusText==="OK"){console.log(`Successful POST to /startSync: ${e}`);let l=await i.json();return l.PayloadStr!=""?t.array=JSON.parse(l.PayloadStr):(t.result=!1,t.error="readerPost: blank payload returned, sync may be disabled on back end",t.status=500),t}else return t.error=await T(i),console.log(`Failed POST to /startSync: ${e}`),console.log(t.error),t.status=500,t.result=!1,t}catch(i){t.error=i.message,t.status=500,t.result=!1,console.log(i.message)}return t}f.APIResult=y,f.ActorArray=At,f.ActorNode=ye,f.AuditConfig=wt,f.BatchArray=It,f.Group=ht,f.InitInfo=Tt,f.Milestone=x,f.MilestoneArray=ge,f.ResourceArray=te,f.ResourceNode=me,f.SyncConfig=K,f.Task=V,f.TaskArray=bt,f.Tenant=z,f.TenantConfigInfo=he,f.TenantConfigType=pe,f.TenantNode=ee,f.TenantPermissionType=fe,f.TenantType=ue,f.User=H,f.UserScope=gt,f.Workspace=J,f.adminDelete=$e,f.adminPost=De,f.adminsGet=ke,f.auditConfigAdd=Nt,f.auditConfigDelete=Re,f.auditConfigEdit=Wt,f.auditConfigGet=ve,f.auditConfigPost=Pe,f.auditConfigPut=Ee,f.auditConfigRemove=Ft,f.auditConfigRetrieve=Ot,f.auditEventsGet=Ge,f.auditEventsRetrieve=Bt,f.azureConfig=L,f.canListRootAssignments=es,f.configConsentForRead=Lt,f.configConsentForWrite=zt,f.configConsentReadPut=Ce,f.configConsentWritePut=Ne,f.configDelete=Oe,f.configEdit=Ut,f.configEnable=_t,f.configPatch=We,f.configPost=Fe,f.configPut=Be,f.configRemove=Mt,f.configsGet=Ue,f.configsRefresh=xt,f.elevateGlobalAdminToUserAccessAdmin=ts,f.getPowerBIAccessToken=Yt,f.getSyncVersion=B,f.graphConfig=h,f.groupsGet=kt,f.helloNpm=pt,f.initGet=jt,f.initPost=Le,f.mindlineConfig=w,f.oauth2PermissionGrantsGet=we,f.oauth2PermissionGrantsSet=Te,f.processErrors=T,f.readerPost=He,f.requestAdminConsent=Dt,f.servicePrincipalGet=Se,f.signIn=Pt,f.signInIncrementally=vt,f.signOut=Et,f.sum=ft,f.tenantAdd=qt,f.tenantDelete=ze,f.tenantPost=Me,f.tenantRelationshipsGetByDomain=Rt,f.tenantRelationshipsGetById=be,f.tenantRemove=Ht,f.tenantUnauthenticatedLookup=se,f.tenantsGet=xe,f.userAdd=Kt,f.userDelegatedScopesGet=Ie,f.userDelegatedScopesRemove=Gt,f.userRemove=Jt,f.usersGet=Ct,f.workspaceConfigsGet=_e,f.workspaceEdit=Vt,f.workspacePut=je,f.workspacesGet=qe,Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})});
|
|
62
69
|
//# sourceMappingURL=sync.umd.js.map
|