@descope/audit-management-widget 0.6.9 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/index.js +2 -2
- package/dist/index.d.ts +40 -40
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/dist/esm/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
/**
|
|
3
|
-
* @descope/audit-management-widget v0.
|
|
3
|
+
* @descope/audit-management-widget v0.7.0
|
|
4
4
|
*/
|
|
5
|
-
import{createSingletonMixin as e,compose as t,createTemplate as s,debounce as i,withMemCache as o,generateCsv as r,downloadCsv as a}from"@descope/sdk-helpers";import{__rest as n,__awaiter as d,__classPrivateFieldGet as c,__classPrivateFieldSet as l}from"tslib";import{projectIdMixin as u,observeAttributesMixin as h,loggerMixin as g,baseUrlMixin as m,cookieConfigMixin as p,createValidateAttributesMixin as v,createStateManagementMixin as f,initLifecycleMixin as w,staticResourcesMixin as b,descopeUiMixin as y,initElementMixin as _,debuggerMixin as R,themeMixin as j}from"@descope/sdk-mixins";import{TextFieldDriver as C,SingleSelectDriver as I,GridDriver as x,ButtonDriver as k}from"@descope/sdk-component-drivers";import{createAsyncThunk as O}from"@reduxjs/toolkit";import{createSelector as A}from"reselect";import L from"@descope/web-js-sdk";const W=(e,t)=>t?{[e]:t}:{},D=e=>{if(!e)return;const t=JSON.parse(e);return Array.isArray(t)&&0===t.length?void 0:t},S=e=>e.selectedAuditId,$=A((e=>e.auditList.data),(e=>e.map((e=>{const t=e||{},{occurred:s,ID:i,type:o}=t,r=t.data,a=void 0===r?{saml_request:"",saml_response:"",saml_generated_user:"",saml_generated_roles:"",oidc_response:"",oidc_generated_user:"",scim_request:"",scim_result:"",Change:""}:r,{saml_request:d,saml_response:c,saml_generated_user:l,saml_generated_roles:u,oidc_response:h,oidc_generated_user:g,scim_request:m,scim_result:p,Change:v}=a,f=n(a,["saml_request","saml_response","saml_generated_user","saml_generated_roles","oidc_response","oidc_generated_user","scim_request","scim_result","Change"]),w=n(t,["occurred","ID","type","data"]);var b;return(e=>Object.fromEntries(Object.entries(e).filter((([e,t])=>!!t))))(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},w),{data:f}),W("type",(b=o)&&b[0].toUpperCase()+b.slice(1))),W("saml_request",d)),W("saml_response",c)),W("saml_generated_user",D(l))),W("saml_generated_roles",D(u))),W("oidc_response",D(h))),W("oidc_generated_user",D(g))),W("scim_request",m)),W("scim_result",p)),W("Change",v)),{occurredFormatted:s?new Date(Number(s)||0).toLocaleString():"N/A"}))}))));A(S,$,((e,t)=>t.find((t=>e===t.id)))),A(S,(e=>!!e));const P=O("audit/search",((e,{extra:{api:t},getState:s})=>{const i=s().searchParams;return t.audit.search(Object.assign(Object.assign({},i),e))})),q=(e=>(...t)=>s=>{s.addCase(e.pending,((e,s)=>{t.forEach((({onPending:t})=>{null==t||t(e,s)}))})),s.addCase(e.fulfilled,((e,s)=>{t.forEach((({onFulfilled:t})=>{null==t||t(e,s)}))})),s.addCase(e.rejected,((e,s)=>{t.forEach((({onRejected:t})=>{null==t||t(e,s)}))}))})(P)({onPending:(e,t)=>{e.searchParams=Object.assign(Object.assign({},e.searchParams),t.meta.arg)},onFulfilled:(e,t)=>{e.auditList.data=t.payload}},(M=e=>e.auditList,{onFulfilled:e=>{M(e).loading=!1},onPending:e=>{M(e).loading=!0,M(e).error=null},onRejected:(e,t)=>{M(e).loading=!1,M(e).error=t.error}}));var M;const E={action:P,reducer:q},T={auditList:{data:[],loading:!1,error:null},searchParams:{text:"",sort:[]},selectedAuditId:""},N={search:"/v1/mgmt/audit/search"},F=e=>d(void 0,[e],void 0,(function*({text:e,sort:t}){return new Promise((s=>{const i=[],o=(new Date).getTime()/1e3+2592e3,r=new Date(o).toLocaleString();for(let e=1;e<9;e+=1)i.push({id:`Audit ${e}`,action:`Action ${e}`,actorId:`Actor ${e}`,type:"info",method:`Method ${e}`,userId:`User ${e}`,device:`Device ${e}`,geo:`Geo ${e}`,remoteAddress:`127.0.0.${e}`,externalIds:[`Login ID ${e}`],occurred:o,occurredFormatted:r});t.forEach((e=>{i.sort(((t,s)=>{var i,o;return e.desc?null===(o=s[e.field])||void 0===o?void 0:o.localeCompare(t[e.field]):null===(i=t[e.field])||void 0===i?void 0:i.localeCompare(s[e.field])}))})),s(i.filter((t=>t.id.toLowerCase().includes(e.toLowerCase())||t.action.toLowerCase().includes(e.toLowerCase())||t.type.toLowerCase().includes(e.toLowerCase())||t.device.toLowerCase().includes(e.toLowerCase())||t.method.toLowerCase().includes(e.toLowerCase())||t.geo.toLowerCase().includes(e.toLowerCase())||t.remoteAddress.toLowerCase().includes(e.toLowerCase())||t.externalIds.includes(e.toLowerCase())||t.userId.toLowerCase().includes(e.toLowerCase()))))}))})),H=({httpClient:e,tenant:t,mock:s})=>({search:(...i)=>d(void 0,[...i],void 0,(function*({page:i,limit:o=1e4,text:r,sort:a,from:n}={}){if(s)return F({page:i,limit:o,text:r,sort:a},t);const c=yield e.post(N.search,{limit:o,page:i,text:r,sort:a,from:n},{queryParams:{tenant:t}});yield(e=>d(void 0,void 0,void 0,(function*(){const t=yield e.text(),s=JSON.parse(t);if(!e.ok){const t=`${s.errorDescription}${s.errorMessage?`: ${s.errorMessage}`:""}`;throw Error(t||`${e.status} ${e.statusText}`)}e.json=()=>Promise.resolve(s),e.text=()=>Promise.resolve(t)})))(c);return(yield c.json()).audits}))}),U=e((e=>{var s,i,o,r;const a=t(u,h,g,m,p,v({tenant:v.missingAttrValidator}))(e);return r=class extends a{constructor(){super(...arguments),s.add(this),i.set(this,void 0)}get tenantId(){return this.getAttribute("tenant")}get widgetId(){return this.getAttribute("widget-id")}get mock(){return this.getAttribute("mock")}get api(){return c(this,i,"f")||c(this,s,"m",o).call(this),c(this,i,"f")}init(){const e=Object.create(null,{init:{get:()=>super.init}});return d(this,void 0,void 0,(function*(){var t;yield null===(t=e.init)||void 0===t?void 0:t.call(this),this.observeAttributes(["project-id","base-url","tenant"],(()=>{c(this,i,"f")&&c(this,s,"m",o).call(this)}))}))}},i=new WeakMap,s=new WeakSet,o=function(){this.logger.debug("creating an sdk instance"),l(this,i,((e,t,s,i)=>{const o=L(Object.assign(Object.assign({},e),{persistTokens:!0,baseHeaders:{"x-descope-widget-type":"audit-management-widget","x-descope-widget-id":i,"x-descope-widget-version":"0.6.9"}}));return{audit:H({httpClient:o.httpClient,tenant:t,mock:s})}})({projectId:this.projectId,baseUrl:this.baseUrl,refreshCookieName:this.refreshCookieName},this.tenantId,"true"===this.mock,this.widgetId),"f")},r})),B=e((e=>{const s=t(f({name:"widget",initialState:T,reducers:{setSelectedAuditId:(e,{payload:t})=>{e.selectedAuditId=t}},extraReducers:e=>{E.reducer(e)},asyncActions:{searchAudit:E.action}}),w,g,U)(e);return class extends s{constructor(...e){super(...e),this.state=T,this.subscribe((e=>{this.logger.debug("State update:",e),this.state=e}))}}})),G=e((e=>{const s=t(b,v({"widget-id":v.missingAttrValidator}))(e);return class extends s{get widgetId(){return this.getAttribute("widget-id")}fetchWidgetPage(e){return d(this,void 0,void 0,(function*(){return(yield this.fetchStaticResource(`audit-management-widget/${this.widgetId}/${e}`,"text")).body}))}}})),J=e((e=>{var i,o,r;return r=class extends(t(g,w,y,_,G,B)(e)){constructor(){super(...arguments),i.add(this)}onWidgetRootReady(){return d(this,void 0,void 0,(function*(){}))}init(){const e=Object.create(null,{init:{get:()=>super.init}});return d(this,void 0,void 0,(function*(){var t;yield null===(t=e.init)||void 0===t?void 0:t.call(this),yield Promise.all([c(this,i,"m",o).call(this)]),yield this.onWidgetRootReady(),this.dispatchEvent(new CustomEvent("ready"))}))}},i=new WeakSet,o=function(){return d(this,void 0,void 0,(function*(){const e=s(yield this.fetchWidgetPage("root.html"));yield this.loadDescopeUiComponents(e),this.contentRootElement.append(e.content.cloneNode(!0))}))},r})),V=e((e=>{var s,o,r,a,n;return n=class extends(t(g,J,B)(e)){constructor(){super(...arguments),s.add(this),o.set(this,i((()=>{const e=this.rangeInput.value,t=new Date;let s;switch(e){case"minuets15":s=t.setMinutes(t.getMinutes()-15);break;case"hour":s=t.setHours(t.getHours()-1);break;case"hour6":s=t.setHours(t.getHours()-6);break;case"day":default:s=t.setDate(t.getDate()-1);break;case"day3":s=t.setDate(t.getDate()-3);break;case"week":s=t.setDate(t.getDate()-7);break;case"week2":s=t.setDate(t.getDate()-14);break;case"month":s=t.setMonth(t.getMonth()-1)}this.actions.searchAudit({text:this.searchInput.value,from:Math.floor(new Date(s).getTime())})})))}onWidgetRootReady(){const e=Object.create(null,{onWidgetRootReady:{get:()=>super.onWidgetRootReady}});return d(this,void 0,void 0,(function*(){var t;yield null===(t=e.onWidgetRootReady)||void 0===t?void 0:t.call(this),c(this,s,"m",r).call(this),c(this,s,"m",a).call(this)}))}},o=new WeakMap,s=new WeakSet,r=function(){var e;this.searchInput=new C(null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector('[data-id="search-input"]'),{logger:this.logger}),this.searchInput.onInput(c(this,o,"f")),c(this,o,"f").call(this)},a=function(){var e;this.rangeInput=new I(null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector('[data-id="range-input"]'),{logger:this.logger}),this.rangeInput.onInput(c(this,o,"f"))},n})),z=e((e=>{var s,i,r,a;return a=class extends(t(B,g,J)(e)){constructor(){super(...arguments),s.add(this),r.set(this,o((e=>{this.auditTable.data=e})))}onWidgetRootReady(){const e=Object.create(null,{onWidgetRootReady:{get:()=>super.onWidgetRootReady}});return d(this,void 0,void 0,(function*(){var t;yield null===(t=e.onWidgetRootReady)||void 0===t?void 0:t.call(this),c(this,s,"m",i).call(this),c(this,r,"f").call(this,$(this.state)),this.subscribe(c(this,r,"f").bind(this),$)}))}},r=new WeakMap,s=new WeakSet,i=function(){var e;this.auditTable=new x(null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector('[data-id="audit-table"]'),{logger:this.logger}),this.auditTable.onSelectedItemsChange((e=>{this.actions.setSelectedAuditId(e.detail.value.map((({id:e})=>e)))}))},a})),K=[{header:"Occurred",path:"occurredFormatted"},{header:"User ID",path:"userId"},{header:"Actor",path:"actorId"},{header:"Login IDs",path:"externalIds"},{header:"Remote Address",path:"remoteAddress"},{header:"Type",path:"type"},{header:"Action",path:"action"},{header:"Device",path:"device"},{header:"Method",path:"method"},{header:"Geo",path:"geo"}],Q=e((e=>{var s,i,o;return o=class extends(t(g,J,B)(e)){constructor(){super(...arguments),s.add(this)}onWidgetRootReady(){const e=Object.create(null,{onWidgetRootReady:{get:()=>super.onWidgetRootReady}});return d(this,void 0,void 0,(function*(){var t;yield null===(t=e.onWidgetRootReady)||void 0===t?void 0:t.call(this),c(this,s,"m",i).call(this)}))}},s=new WeakSet,i=function(){var e;this.exportButton=new k(null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector('[data-id="export-button"]'),{logger:this.logger}),this.exportButton.onClick((()=>{const e=$(this.state);if(!e.length)return void this.logger.warn("No audit data to export");const t=r(e,K),s=(new Date).toISOString().slice(0,10);a(t,`audit_logs_${s}.csv`)}))},o})),X=e((e=>class extends(t(R,j,z,V,Q)(e)){init(){const e=Object.create(null,{init:{get:()=>super.init}});return d(this,void 0,void 0,(function*(){var t;yield null===(t=e.init)||void 0===t?void 0:t.call(this)}))}})),Y=t((e=>class extends(X(e)){}))(HTMLElement);customElements.define("descope-audit-management-widget",Y);export{Y as default};
|
|
5
|
+
import{createSingletonMixin as e,compose as t,createTemplate as s,debounce as i,withMemCache as o,generateCsv as r,downloadCsv as a}from"@descope/sdk-helpers";import{__rest as n,__awaiter as d,__classPrivateFieldGet as c,__classPrivateFieldSet as l}from"tslib";import{projectIdMixin as u,observeAttributesMixin as h,loggerMixin as g,baseUrlMixin as m,cookieConfigMixin as p,createValidateAttributesMixin as v,createStateManagementMixin as f,initLifecycleMixin as w,staticResourcesMixin as b,descopeUiMixin as y,initElementMixin as _,debuggerMixin as R,themeMixin as j}from"@descope/sdk-mixins";import{TextFieldDriver as C,SingleSelectDriver as I,GridDriver as x,ButtonDriver as k}from"@descope/sdk-component-drivers";import{createAsyncThunk as O}from"@reduxjs/toolkit";import{createSelector as A}from"reselect";import L from"@descope/web-js-sdk";const W=(e,t)=>t?{[e]:t}:{},D=e=>{if(!e)return;const t=JSON.parse(e);return Array.isArray(t)&&0===t.length?void 0:t},S=e=>e.selectedAuditId,$=A((e=>e.auditList.data),(e=>e.map((e=>{const t=e||{},{occurred:s,ID:i,type:o}=t,r=t.data,a=void 0===r?{saml_request:"",saml_response:"",saml_generated_user:"",saml_generated_roles:"",oidc_response:"",oidc_generated_user:"",scim_request:"",scim_result:"",Change:""}:r,{saml_request:d,saml_response:c,saml_generated_user:l,saml_generated_roles:u,oidc_response:h,oidc_generated_user:g,scim_request:m,scim_result:p,Change:v}=a,f=n(a,["saml_request","saml_response","saml_generated_user","saml_generated_roles","oidc_response","oidc_generated_user","scim_request","scim_result","Change"]),w=n(t,["occurred","ID","type","data"]);var b;return(e=>Object.fromEntries(Object.entries(e).filter((([e,t])=>!!t))))(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},w),{data:f}),W("type",(b=o)&&b[0].toUpperCase()+b.slice(1))),W("saml_request",d)),W("saml_response",c)),W("saml_generated_user",D(l))),W("saml_generated_roles",D(u))),W("oidc_response",D(h))),W("oidc_generated_user",D(g))),W("scim_request",m)),W("scim_result",p)),W("Change",v)),{occurredFormatted:s?new Date(Number(s)||0).toLocaleString():"N/A"}))}))));A(S,$,((e,t)=>t.find((t=>e===t.id)))),A(S,(e=>!!e));const P=O("audit/search",((e,{extra:{api:t},getState:s})=>{const i=s().searchParams;return t.audit.search(Object.assign(Object.assign({},i),e))})),q=(e=>(...t)=>s=>{s.addCase(e.pending,((e,s)=>{t.forEach((({onPending:t})=>{null==t||t(e,s)}))})),s.addCase(e.fulfilled,((e,s)=>{t.forEach((({onFulfilled:t})=>{null==t||t(e,s)}))})),s.addCase(e.rejected,((e,s)=>{t.forEach((({onRejected:t})=>{null==t||t(e,s)}))}))})(P)({onPending:(e,t)=>{e.searchParams=Object.assign(Object.assign({},e.searchParams),t.meta.arg)},onFulfilled:(e,t)=>{e.auditList.data=t.payload}},(M=e=>e.auditList,{onFulfilled:e=>{M(e).loading=!1},onPending:e=>{M(e).loading=!0,M(e).error=null},onRejected:(e,t)=>{M(e).loading=!1,M(e).error=t.error}}));var M;const E={action:P,reducer:q},T={auditList:{data:[],loading:!1,error:null},searchParams:{text:"",sort:[]},selectedAuditId:""},N={search:"/v1/mgmt/audit/search"},F=e=>d(void 0,[e],void 0,(function*({text:e,sort:t}){return new Promise((s=>{const i=[],o=(new Date).getTime()/1e3+2592e3,r=new Date(o).toLocaleString();for(let e=1;e<9;e+=1)i.push({id:`Audit ${e}`,action:`Action ${e}`,actorId:`Actor ${e}`,type:"info",method:`Method ${e}`,userId:`User ${e}`,device:`Device ${e}`,geo:`Geo ${e}`,remoteAddress:`127.0.0.${e}`,externalIds:[`Login ID ${e}`],occurred:o,occurredFormatted:r});t.forEach((e=>{i.sort(((t,s)=>{var i,o;return e.desc?null===(o=s[e.field])||void 0===o?void 0:o.localeCompare(t[e.field]):null===(i=t[e.field])||void 0===i?void 0:i.localeCompare(s[e.field])}))})),s(i.filter((t=>t.id.toLowerCase().includes(e.toLowerCase())||t.action.toLowerCase().includes(e.toLowerCase())||t.type.toLowerCase().includes(e.toLowerCase())||t.device.toLowerCase().includes(e.toLowerCase())||t.method.toLowerCase().includes(e.toLowerCase())||t.geo.toLowerCase().includes(e.toLowerCase())||t.remoteAddress.toLowerCase().includes(e.toLowerCase())||t.externalIds.includes(e.toLowerCase())||t.userId.toLowerCase().includes(e.toLowerCase()))))}))})),H=({httpClient:e,tenant:t,mock:s})=>({search:(...i)=>d(void 0,[...i],void 0,(function*({page:i,limit:o=1e4,text:r,sort:a,from:n}={}){if(s)return F({page:i,limit:o,text:r,sort:a},t);const c=yield e.post(N.search,{limit:o,page:i,text:r,sort:a,from:n},{queryParams:{tenant:t}});yield(e=>d(void 0,void 0,void 0,(function*(){const t=yield e.text(),s=JSON.parse(t);if(!e.ok){const t=`${s.errorDescription}${s.errorMessage?`: ${s.errorMessage}`:""}`;throw Error(t||`${e.status} ${e.statusText}`)}e.json=()=>Promise.resolve(s),e.text=()=>Promise.resolve(t)})))(c);return(yield c.json()).audits}))}),U=e((e=>{var s,i,o,r;const a=t(u,h,g,m,p,v({tenant:v.missingAttrValidator}))(e);return r=class extends a{constructor(){super(...arguments),s.add(this),i.set(this,void 0)}get tenantId(){return this.getAttribute("tenant")}get widgetId(){return this.getAttribute("widget-id")}get mock(){return this.getAttribute("mock")}get api(){return c(this,i,"f")||c(this,s,"m",o).call(this),c(this,i,"f")}init(){const e=Object.create(null,{init:{get:()=>super.init}});return d(this,void 0,void 0,(function*(){var t;yield null===(t=e.init)||void 0===t?void 0:t.call(this),this.observeAttributes(["project-id","base-url","tenant"],(()=>{c(this,i,"f")&&c(this,s,"m",o).call(this)}))}))}},i=new WeakMap,s=new WeakSet,o=function(){this.logger.debug("creating an sdk instance"),l(this,i,((e,t,s,i)=>{const o=L(Object.assign(Object.assign({},e),{persistTokens:!0,baseHeaders:{"x-descope-widget-type":"audit-management-widget","x-descope-widget-id":i,"x-descope-widget-version":"0.7.0"}}));return{audit:H({httpClient:o.httpClient,tenant:t,mock:s})}})({projectId:this.projectId,baseUrl:this.baseUrl,refreshCookieName:this.refreshCookieName},this.tenantId,"true"===this.mock,this.widgetId),"f")},r})),B=e((e=>{const s=t(f({name:"widget",initialState:T,reducers:{setSelectedAuditId:(e,{payload:t})=>{e.selectedAuditId=t}},extraReducers:e=>{E.reducer(e)},asyncActions:{searchAudit:E.action}}),w,g,U)(e);return class extends s{constructor(...e){super(...e),this.state=T,this.subscribe((e=>{this.logger.debug("State update:",e),this.state=e}))}}})),G=e((e=>{const s=t(b,v({"widget-id":v.missingAttrValidator}))(e);return class extends s{get widgetId(){return this.getAttribute("widget-id")}fetchWidgetPage(e){return d(this,void 0,void 0,(function*(){return(yield this.fetchStaticResource(`audit-management-widget/${this.widgetId}/${e}`,"text")).body}))}}})),J=e((e=>{var i,o,r;return r=class extends(t(g,w,y,_,G,B)(e)){constructor(){super(...arguments),i.add(this)}onWidgetRootReady(){return d(this,void 0,void 0,(function*(){}))}init(){const e=Object.create(null,{init:{get:()=>super.init}});return d(this,void 0,void 0,(function*(){var t;yield null===(t=e.init)||void 0===t?void 0:t.call(this),yield Promise.all([c(this,i,"m",o).call(this)]),yield this.onWidgetRootReady(),this.dispatchEvent(new CustomEvent("ready"))}))}},i=new WeakSet,o=function(){return d(this,void 0,void 0,(function*(){const e=s(yield this.fetchWidgetPage("root.html"));yield this.loadDescopeUiComponents(e),this.contentRootElement.append(e.content.cloneNode(!0))}))},r})),V=e((e=>{var s,o,r,a,n;return n=class extends(t(g,J,B)(e)){constructor(){super(...arguments),s.add(this),o.set(this,i((()=>{const e=this.rangeInput.value,t=new Date;let s;switch(e){case"minuets15":s=t.setMinutes(t.getMinutes()-15);break;case"hour":s=t.setHours(t.getHours()-1);break;case"hour6":s=t.setHours(t.getHours()-6);break;case"day":default:s=t.setDate(t.getDate()-1);break;case"day3":s=t.setDate(t.getDate()-3);break;case"week":s=t.setDate(t.getDate()-7);break;case"week2":s=t.setDate(t.getDate()-14);break;case"month":s=t.setMonth(t.getMonth()-1)}this.actions.searchAudit({text:this.searchInput.value,from:Math.floor(new Date(s).getTime())})})))}onWidgetRootReady(){const e=Object.create(null,{onWidgetRootReady:{get:()=>super.onWidgetRootReady}});return d(this,void 0,void 0,(function*(){var t;yield null===(t=e.onWidgetRootReady)||void 0===t?void 0:t.call(this),c(this,s,"m",r).call(this),c(this,s,"m",a).call(this)}))}},o=new WeakMap,s=new WeakSet,r=function(){var e;this.searchInput=new C(null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector('[data-id="search-input"]'),{logger:this.logger}),this.searchInput.onInput(c(this,o,"f")),c(this,o,"f").call(this)},a=function(){var e;this.rangeInput=new I(null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector('[data-id="range-input"]'),{logger:this.logger}),this.rangeInput.onInput(c(this,o,"f"))},n})),z=e((e=>{var s,i,r,a;return a=class extends(t(B,g,J)(e)){constructor(){super(...arguments),s.add(this),r.set(this,o((e=>{this.auditTable.data=e})))}onWidgetRootReady(){const e=Object.create(null,{onWidgetRootReady:{get:()=>super.onWidgetRootReady}});return d(this,void 0,void 0,(function*(){var t;yield null===(t=e.onWidgetRootReady)||void 0===t?void 0:t.call(this),c(this,s,"m",i).call(this),c(this,r,"f").call(this,$(this.state)),this.subscribe(c(this,r,"f").bind(this),$)}))}},r=new WeakMap,s=new WeakSet,i=function(){var e;this.auditTable=new x(null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector('[data-id="audit-table"]'),{logger:this.logger}),this.auditTable.onSelectedItemsChange((e=>{this.actions.setSelectedAuditId(e.detail.value.map((({id:e})=>e)))}))},a})),K=[{header:"Occurred",path:"occurredFormatted"},{header:"User ID",path:"userId"},{header:"Actor",path:"actorId"},{header:"Login IDs",path:"externalIds"},{header:"Remote Address",path:"remoteAddress"},{header:"Type",path:"type"},{header:"Action",path:"action"},{header:"Device",path:"device"},{header:"Method",path:"method"},{header:"Geo",path:"geo"}],Q=e((e=>{var s,i,o;return o=class extends(t(g,J,B)(e)){constructor(){super(...arguments),s.add(this)}onWidgetRootReady(){const e=Object.create(null,{onWidgetRootReady:{get:()=>super.onWidgetRootReady}});return d(this,void 0,void 0,(function*(){var t;yield null===(t=e.onWidgetRootReady)||void 0===t?void 0:t.call(this),c(this,s,"m",i).call(this)}))}},s=new WeakSet,i=function(){var e;this.exportButton=new k(null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector('[data-id="export-button"]'),{logger:this.logger}),this.exportButton.onClick((()=>{const e=$(this.state);if(!e.length)return void this.logger.warn("No audit data to export");const t=r(e,K),s=(new Date).toISOString().slice(0,10);a(t,`audit_logs_${s}.csv`)}))},o})),X=e((e=>class extends(t(R,j,z,V,Q)(e)){init(){const e=Object.create(null,{init:{get:()=>super.init}});return d(this,void 0,void 0,(function*(){var t;yield null===(t=e.init)||void 0===t?void 0:t.call(this)}))}})),Y=t((e=>class extends(X(e)){}))(HTMLElement);customElements.define("descope-audit-management-widget",Y);export{Y as default};
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -65,11 +65,11 @@ declare const AuditManagementWidget: {
|
|
|
65
65
|
search: (config: SearchAuditConfig) => Promise<Audit[]>;
|
|
66
66
|
};
|
|
67
67
|
};
|
|
68
|
-
"__#
|
|
69
|
-
"__#
|
|
68
|
+
"__#32285@#handleError": ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void);
|
|
69
|
+
"__#32284@#observeMappings": {};
|
|
70
70
|
observeAttribute: ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any);
|
|
71
71
|
observeAttributes: ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void);
|
|
72
|
-
"__#
|
|
72
|
+
"__#32283@#isInit": boolean;
|
|
73
73
|
connectedCallback: (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void);
|
|
74
74
|
accessKey: string;
|
|
75
75
|
readonly accessKeyLabel: string;
|
|
@@ -975,8 +975,8 @@ declare const AuditManagementWidget: {
|
|
|
975
975
|
tabIndex: number;
|
|
976
976
|
blur: (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void);
|
|
977
977
|
focus: ((options?: FocusOptions) => void) & ((options?: FocusOptions) => void) & ((options?: FocusOptions) => void) & ((options?: FocusOptions) => void) & ((options?: FocusOptions) => void) & ((options?: FocusOptions) => void) & ((options?: FocusOptions) => void) & ((options?: FocusOptions) => void) & ((options?: FocusOptions) => void) & ((options?: FocusOptions) => void) & ((options?: FocusOptions) => void) & ((options?: FocusOptions) => void) & ((options?: FocusOptions) => void) & ((options?: FocusOptions) => void);
|
|
978
|
-
"__#
|
|
979
|
-
"__#
|
|
978
|
+
"__#32282@#logger": _descope_sdk_mixins.Logger;
|
|
979
|
+
"__#32282@#wrapLogger": ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger) & ((logger: Partial<_descope_sdk_mixins.Logger>) => _descope_sdk_mixins.Logger);
|
|
980
980
|
logger: _descope_sdk_mixins.Logger;
|
|
981
981
|
onLogEvent: ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", data: any[]) => void) & ((logLevel: "info" | "error" | "warn" | "debug", args: any[]) => void);
|
|
982
982
|
readonly refreshCookieName: string;
|
|
@@ -1335,10 +1335,10 @@ declare const AuditManagementWidget: {
|
|
|
1335
1335
|
}) => SelectorR) => redux.Unsubscribe;
|
|
1336
1336
|
"__#6@#initWidgetRoot": (() => Promise<void>) & (() => Promise<void>) & (() => Promise<void>);
|
|
1337
1337
|
fetchWidgetPage: ((filename: string) => Promise<string>) & ((filename: string) => Promise<string>) & ((filename: string) => Promise<string>);
|
|
1338
|
-
"__#
|
|
1339
|
-
"__#
|
|
1340
|
-
"__#
|
|
1341
|
-
"__#
|
|
1338
|
+
"__#32286@#lastBaseUrl"?: string;
|
|
1339
|
+
"__#32286@#workingBaseUrl"?: string;
|
|
1340
|
+
"__#32286@#failedUrls": Set<string>;
|
|
1341
|
+
"__#32286@#getResourceUrls": ((filename: string) => (URL & {
|
|
1342
1342
|
baseUrl: string;
|
|
1343
1343
|
}) | (URL & {
|
|
1344
1344
|
baseUrl: string;
|
|
@@ -1359,7 +1359,7 @@ declare const AuditManagementWidget: {
|
|
|
1359
1359
|
}) | (URL & {
|
|
1360
1360
|
baseUrl: string;
|
|
1361
1361
|
})[]);
|
|
1362
|
-
"__#
|
|
1362
|
+
"__#32286@#createResourceUrl": ((filename: string, baseUrl: string) => URL & {
|
|
1363
1363
|
baseUrl: string;
|
|
1364
1364
|
}) & ((filename: string, baseUrl: string) => URL & {
|
|
1365
1365
|
baseUrl: string;
|
|
@@ -1411,13 +1411,13 @@ declare const AuditManagementWidget: {
|
|
|
1411
1411
|
replaceSync(cssString: string): void;
|
|
1412
1412
|
readonly cssRules: CSSRuleList;
|
|
1413
1413
|
});
|
|
1414
|
-
"__#
|
|
1415
|
-
"__#
|
|
1416
|
-
"__#
|
|
1417
|
-
"__#
|
|
1414
|
+
"__#32289@#setNonce": (() => void) & (() => void) & (() => void);
|
|
1415
|
+
"__#32292@#getComponentsVersion": (() => Promise<string>) & (() => Promise<string>);
|
|
1416
|
+
"__#32292@#getComponentsVersionSri": (() => Promise<string>) & (() => Promise<string>);
|
|
1417
|
+
"__#32292@#descopeUi": Promise<any>;
|
|
1418
1418
|
readonly descopeUi: Promise<any>;
|
|
1419
|
-
"__#
|
|
1420
|
-
"__#
|
|
1419
|
+
"__#32292@#loadDescopeUiComponent": ((componentName: string) => Promise<any>) & ((componentName: string) => Promise<any>);
|
|
1420
|
+
"__#32292@#getDescopeUi": (() => Promise<any>) & (() => Promise<any>);
|
|
1421
1421
|
loadDescopeUiComponents: ((templateOrComponentNames: string[] | HTMLTemplateElement) => Promise<any[]>) & ((templateOrComponentNames: string[] | HTMLTemplateElement) => Promise<any[]>);
|
|
1422
1422
|
readonly baseCdnUrl: string;
|
|
1423
1423
|
injectNpmLib: ((libName: string, version: string, filePath?: string, overrides?: string[], integrity?: string) => Promise<{
|
|
@@ -1430,10 +1430,10 @@ declare const AuditManagementWidget: {
|
|
|
1430
1430
|
integrity?: string;
|
|
1431
1431
|
}>);
|
|
1432
1432
|
readonly config: Promise<_descope_sdk_mixins.Config>;
|
|
1433
|
-
"__#
|
|
1434
|
-
"__#
|
|
1435
|
-
"__#
|
|
1436
|
-
"__#
|
|
1433
|
+
"__#32288@#configCacheClear": (() => void) & (() => void) & (() => void);
|
|
1434
|
+
"__#32288@#_configResource": Promise<_descope_sdk_mixins.Config>;
|
|
1435
|
+
"__#32288@#fetchConfig": (() => Promise<_descope_sdk_mixins.Config>) & (() => Promise<_descope_sdk_mixins.Config>) & (() => Promise<_descope_sdk_mixins.Config>);
|
|
1436
|
+
"__#32287@#callbacks": Map<string, () => void> & Map<string, () => void> & Map<string, () => void>;
|
|
1437
1437
|
onReset: ((sectionId: string, callback: () => void | Promise<void>) => () => void) & ((sectionId: string, callback: () => void | Promise<void>) => () => void) & ((sectionId: string, callback: () => void | Promise<void>) => () => void);
|
|
1438
1438
|
reset: ((...sectionIds: string[]) => Promise<void>) & ((...sectionIds: string[]) => Promise<void>) & ((...sectionIds: string[]) => Promise<void>);
|
|
1439
1439
|
searchInput: _descope_sdk_component_drivers.TextFieldDriver;
|
|
@@ -1446,27 +1446,27 @@ declare const AuditManagementWidget: {
|
|
|
1446
1446
|
"__#8@#onAuditListUpdate": (auditList: {
|
|
1447
1447
|
[k: string]: any;
|
|
1448
1448
|
}[]) => void;
|
|
1449
|
-
"__#
|
|
1450
|
-
"__#
|
|
1449
|
+
"__#32298@#globalStyle": _descope_sdk_mixins.InjectedStyle;
|
|
1450
|
+
"__#32298@#customStyle": _descope_sdk_mixins.InjectedStyle;
|
|
1451
1451
|
readonly theme: _descope_sdk_mixins.ThemeOptions;
|
|
1452
1452
|
readonly styleId: string;
|
|
1453
1453
|
readonly themeOverride: Record<string, any>;
|
|
1454
|
-
"__#
|
|
1455
|
-
"__#
|
|
1456
|
-
"__#
|
|
1457
|
-
readonly "__#
|
|
1458
|
-
"__#
|
|
1459
|
-
"__#
|
|
1460
|
-
"__#
|
|
1461
|
-
"__#
|
|
1454
|
+
"__#32298@#getThemeOverrideString"(): string;
|
|
1455
|
+
"__#32298@#_themeResource": Promise<void | Record<string, any>>;
|
|
1456
|
+
"__#32298@#fetchTheme"(): Promise<Record<string, any>>;
|
|
1457
|
+
readonly "__#32298@#themeResource": Promise<void | Record<string, any>>;
|
|
1458
|
+
"__#32298@#loadGlobalStyle"(): Promise<void>;
|
|
1459
|
+
"__#32298@#loadCustomStyle"(): Promise<void>;
|
|
1460
|
+
"__#32298@#loadComponentsStyle"(): Promise<void>;
|
|
1461
|
+
"__#32298@#getFontsConfig"(): Promise<Record<string, {
|
|
1462
1462
|
url?: string;
|
|
1463
1463
|
}>>;
|
|
1464
|
-
"__#
|
|
1465
|
-
"__#
|
|
1466
|
-
"__#
|
|
1467
|
-
"__#
|
|
1468
|
-
"__#
|
|
1469
|
-
"__#
|
|
1464
|
+
"__#32298@#loadFonts"(): Promise<void>;
|
|
1465
|
+
"__#32298@#applyTheme"(): Promise<void>;
|
|
1466
|
+
"__#32298@#onThemeChange": () => void;
|
|
1467
|
+
"__#32298@#loadTheme"(): void;
|
|
1468
|
+
"__#32298@#toggleOsThemeChangeListener": (listen: boolean) => void;
|
|
1469
|
+
"__#32291@#debuggerEle": HTMLElement & {
|
|
1470
1470
|
updateData: (data: {
|
|
1471
1471
|
title: string;
|
|
1472
1472
|
description?: string;
|
|
@@ -1475,11 +1475,11 @@ declare const AuditManagementWidget: {
|
|
|
1475
1475
|
description?: string;
|
|
1476
1476
|
}[]) => void;
|
|
1477
1477
|
};
|
|
1478
|
-
"__#
|
|
1479
|
-
"__#
|
|
1478
|
+
"__#32291@#disableDebugger"(): void;
|
|
1479
|
+
"__#32291@#enableDebugger"(): Promise<void>;
|
|
1480
1480
|
readonly debug: boolean;
|
|
1481
|
-
"__#
|
|
1482
|
-
"__#
|
|
1481
|
+
"__#32291@#handleDebugMode"(): void;
|
|
1482
|
+
"__#32291@#updateDebuggerMessages"(title: string, description: string): void;
|
|
1483
1483
|
};
|
|
1484
1484
|
};
|
|
1485
1485
|
|